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.
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.
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.