Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright The Sett Ltd, 2005 to 2014.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.thesett.aima.logic.fol.wam.machine;
 
WAMEngine implements a com.thesett.aima.logic.fol.interpreter.ResolutionEngine for an WAM-based Prolog with built-ins. This engine loads its standard library of built-ins from a resource on the classpath.

CRC Card
Responsibilities Collaborations
Load the Prolog built-in library from a resource on the classpath when the engine is reset.

Author(s):
Rupert Smith
 
 {
    
Holds the name of the resource on the classpath that contains the built-in library.
 
     private static final String BUILT_IN_LIB = "wam_builtins.pl";

    
Builds an logical resolution engine from a parser, interner, compiler and resolver.

Parameters:
parser The parser.
interner The interner.
compiler The compiler.
resolver The resolver.
 
     public WAMEngine(Parser<ClauseTokenparserVariableAndFunctorInterner interner,
         Resolver<WAMCompiledPredicateWAMCompiledQueryresolver)
     {
         super(parserinternercompilerresolver);
     }

    

Loads the built-in library resource specified by BUILT_IN_LIB.

 
     public void reset()
     {
         // Reset the resolver to completely clear out its domain.
         .reset();
 
         // Create a token source to load the model rules from.
         Source<TokentokenSource =
             TokenSource.getTokenSourceForInputStream(WAMEngine.class.getClassLoader().getResourceAsStream(
                     ));
 
         // Set up a parser on the token source.
         Parser<ClauseTokenlibParser = new SentenceParser();
         libParser.setTokenSource(tokenSource);
 
         // Load the built-ins into the domain.
         try
         {
             while (true)
             {
                 Sentence<Clausesentence = libParser.parse();
 
                 if (sentence == null)
                 {
                     break;
                 }
 
                 .compile(sentence);
             }
 
             .endScope();
         }
        catch (SourceCodeException e)
        {
            // There should not be any errors in the built in library, if there are then the prolog engine just
            // isn't going to work, so report this as a bug.
            throw new RuntimeException("Got an exception whilst loading the built-in library."e);
        }
    }
New to GrepCode? Check out our FAQ X