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.
You should send a message to pp@ksl.stanford.edu in order
to have a login and password for the IWBase Core
node.
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.
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.
The process is pretty much similar of adding an engine.
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.
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.
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:
ns, ie, lg, must be valid
URIs. IWBase entries, i.e.,
http://inferenceweb.stanford.edu/registry/IE/JTP.owl#JTP, are already
valid URIs. Thus, problems with URIrefs are normally related to
parameters requiring either node set URIs or query URIs such as
CreateNodeSet's ns, qy, and
nsant. If your proof is going to be published locally,
then you may have some value like http://localhost:8080/foo.owl#foo
for ns, for example. java.net.UnknownServiceException: no content-type at
java.net.URLConnection.getContentHandler(URLConnection.java:1062) at
java.net.URLConnection.getContent(URLConnection.java:586) The PML generation services:
| Parameter Name | Function | Is Mandatory |
|---|---|---|
| ns | URIref of the node set to be created | YES |
| qy | URIref for the query file | NO |
| nsroot | URIref for the root node set | NO |
| ie | URIref for the associated inference engine | YES |
| nscont | Node set conclusion (as a string) | YES |
| lg | URIref for the language used to write the node set conclusion | YES |
| rl | URIref of inference rule applied | NO |
| trlist | A list of terms for variable bindings separated by comma | only if vrlist is provided |
| vrlist | A list of variables for variable bindings separated by comma. Variables are preceeded by a question mark (?). The list should have the same number of elements of trlist | only if trlist is provided |
| nsant | List of URIrefs of antecedent node sets separated by comma | NO |
| nsdis | List of URIrefs of discharged node sets separated by comma | NO |
| kslist | List of URIrefs of associated knowledge sources separated by comma | NO |
The response is a text tagged with one or more of the following elements:
| Tag | Name | Meaning |
|---|---|---|
| RC | Return Code | 0 if successful; >0 if fail |
| result | DAML file | A DAML file representing the requested node set. |
| errormsg | Error message | A description of the error when RC>0 |
| Parameter Name | Function | Is Mandatory |
|---|---|---|
| qy | URIref for the query file to be created | YES |
| qycont | The query itself | YES |
| ie | URIref of the inference engine performing the query | YES |
| qt | URIref of associated question | NO |
| nslist | URIref of associated node sets that are answers for the query | NO |
Answers can be added to this query later by using the AddAnswers services.
| Parameter Name | Function | Is Mandatory |
|---|---|---|
| qt | URIref of the question file to be created | YES |
| qtcont | A question in natural language, e.g., 'What is a cat?' | YES |
| ap | Answer pattern - a sentence in natural language where variables are identified with a question mark sign, e.g., 'A cat is a ?answer' | NO |
| qylist | List of URIrefs of associated queries | NO |
| Parameter Name | Function | Is Mandatory |
|---|---|---|
| url | A URL | YES |
The following rarely used services are also available:
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.
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.
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.
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.
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.