How To Register an Engine

The Inference Web registration of an engine involves two steps: the registration of meta-information about the engine and its rules in the IWBase (Step 1); and the process of enabling the engine to generate PML documents (Step 2). If your engine is already registered in IWBase (check here), you may skip Step 1.

Step 1: Using the IWBase Core Node's registrar, add meta-information about your engine and its rules in IWBase

  1. Ask for an IWBase Core node login and password, if you don't have one

  2. You should send a message to pp@ksl.stanford.edu in order to have a login and password for the IWBase Core node.

  3. Add an entry for the new engine

  4. You need to be logged in the IWBase Core node to maintain your entries. Every entry in the registry is associated to a submitter and you are the submitter of your entries.

    Once logged, you can add a new engine by selecting the Add Inference engine option and update an existing engine that belongs to you by selecting the Update inference engine. An entry for your engine needs a name to become operational.

    Rules are an important kind of information related to engines. This does not mean that you need to register all the primitive rules that your engine implements since rules can be added to, associated with engines gradually.

  5. Identify the primitive rules supported by your engine

  6. Rules can be either primitive or derived. A rule is primitive with respect to an engine. Thus, a rule may be a primitive rule to one engine at the same time that it can be a derived rule to another engine.

    The identification of the primitive rules may be a difficult task since, for example, some of the primitive rules can be very specific to your engine and you may never considered to describe their implementations as rules.

    In general, a rule entry needs just a name to become operational. In terms of explaining the rule, however, it will be appropriate if the rule has also a description and an example in English. In terms of verifying the rule, it is required that it should have either

    KIF patterns or procedural attachments can be added later in the process of verifying proofs.

  7. Add rules implemented by your engine that are not registered in IWBase, if any

  8. The process is pretty much similar of adding an engine.

  9. Associate rules with your engine

  10. A rule can be implemented by many engines. So, rules are registered in an independent way w.r.t. engines. This means that rules need to be explicitly associated to engines by updating engine entries.

Step 2: Preparing your engine to dump proofs in the PML format

Engines can use any strategy for creating PML documents including the use of PML generation services (PGS), the use of the PML API, or even the implementation of their own code to generate PML code. We strongly suggest the use of PGS to dumping PML documents since they already have support for querying the IWBase in order to include the proof-related meta-data to the PML documents. Also, PGS provide an uniform way of generating PMLs in case the PML specification evolves.
In this document we describe the use of PGS for generating PML documents.

  1. Implement a routine for calling the PML generation services

  2. PML Generation Services (PGS)

    Beta versions of these services are currently available on iw.stanford.edu/iwregistrar/. Also, you can have your own PGS running locally if you install a copy of the of the IWBase Domain node in your computer, which is strongly suggested. The API for using these services is also displayed if you click on the service links below.

    General comments on the use of these services:

    The PML generation services:


    The following rarely used services are also available:

    Typical Uses of PGS

    A short process of generating proofs may involves the creation of Node Sets only. If you have never generated a set of PML documents, this is the preferred way of testing the capability of your engine of generating PML proofs.

    1. Task 1: For the proof of each answer of a query, the engine can traverse the proof, proof step by proof step, calling the CreateNodeSet service for each step of the proof passing the appropriate parameters. For testing purposes, the first run of this task may pass only mandatory parameters to CreateNodeSet.

    A complete process of generating proofs may involves the creation of Questions, Queries and Node Sets. The use of these services may vary from engine to another. However, they are not expected to be much different of the typical process described as follows.

    1. Task 1: An agent answering a question can use the CreateQuestion service to store the original question for future use.
    2. Task 2: The agent may reformulate the question into queries and call one or more engines to answer these queries.
    3. Task 3: Engine can use the CreateQuery service to store queries. Alternatively,the CreateQuery service can be called later in the process, after the answers are generated. Thus, the engine should be able to pass the URIs of the newly created node sets that are going to be associated with the new query as answers (Task 5 is not needed in this case).
    4. Task 4: For the proof of each answer of a query, the engine can traverse the proof, proof step by proof step, calling the CreateNodeSet service for each step of the proof passing the appropriate parameters.
    5. Task 5: Last node sets in a set of connected PML documents are usually query answers. The AddAnswers service associates node sets with queries as query answers.
    6. Task 6: The AddQueries associated service associates questions with queries.

    Since node sets are the building blocks of proofs represented in sets of PML documents, engines just need to perform Task 4 in order to generate proofs. However, proofs from engines performing Tasks 3, 4 and 5 may have a better presentation since users should be able to visualize the queries associated with proofs and answers associated with the queries.

  3. Publish successful results of PGS

  4. The routine calling the PGS need to strip off the successful results of PGS calls and to put them in a place on the local filesystem corresponding to the nodeset URI.

Step 3: Use IWBrowser to browse your PML documents

In the process of generating PML documents, it is an good idea to keep records of the URIrefs either of generated queries or the node sets concluding the answers of queries. Thus, using these URIrefs, you our a software using your engine (i.e., an agent) may be able to call the IWBrowser that is going to render proofs from the given node sets.