One of the crucial components to ontologies and semantic constructs is the ability to infer new information based upon a collection of facts. The reasoners derive additional facts based upon ontology structures or other rules.

The reasoners are still in development.


The RecordReasoner infers and augments information contained in a set of DataRecords. It performs reasoning based upon an ontology. For each record, the RecordReasoner attempts to identify its ontology class, and use this identification to derive additional information.

The configuration for the reasoner follows a similar structure to the configuration of DataTemplates. Here is an example:

    <recReasoner owlclass="Wine" classfield="Wine Type" templatename="allwines">
        <owlFile url="" />
        <fieldDesc fieldname="Winery" sourcefield="hasMaker" fieldtype="text"
                create="true" />
        <fieldDesc fieldname="Wine Type" sourcefield="hasColor"
                fieldtype="text" multivalue="true" />
        <fieldDesc fieldname="Body" sourcefield="hasBody" fieldtype="text" />
        <fieldDesc fieldname="Region" sourcefield="locatedIn"
                fieldtype="location" create="true" multivalue="true">
        <fieldDesc fieldname="Grape" sourcefield="madeFromGrape"

The recReasoner tag is analogous to the dataTemplate tag, and contains similar features. The owlClass attribute indicates which class within the ontology represents the objects in the collection of records. The classField attribute identifies which field within the DataRecord should be used to identify the subclass of the class for a particular record. The templateName matches one of the names of a dataTemplate.

The owlFile tag identifies which ontology should be loaded. The fieldDesc tags are identical to the tags in the dataTemplate. The sourceField attribute refers to the property of the class, while the fieldName matches the fieldName in the template.


The OwlClassReasoner attempts to deduce possible values for fields within a class based upon other properties. For instance, the reasoner could be used to suggest possible dishes to serve with a particular wine.