Ontology Reasoners

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

The ontology reasoners are still in development. They are part of Prajna's Automated Reasoning component.

RecordReasoner

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="http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine" />
        <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">
            <transform>-Region</transform>
        </fieldDesc>
        <fieldDesc fieldname="Grape" sourcefield="madeFromGrape"
                multivalue="true">
            <transform>-Grape</transform>
        </fieldDesc>
    </recReasoner>

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.

OwlClassReasoner

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.