Ontology representation and reasoning with SMem in Soar
Description
Feasibility study. Demonstrated could (i) represent ontologies in SMem and (ii) perform domain-independent reasoning using a subset of property restrictions. Inference module uses forward chaining, and is sound but not guaranteed to be complete. Preliminary testing showed polynomial decision growth for agent as the knowledge base increased. Worst case polynomial (or potentially worse) growth demonstrated more readily by queries with uncertain results.

This is a baseline implementation. General use cases could guide restrictions that still permit tractible inference. See the slides for more conclusions.
Downloads
Utilities and inference
- family-example.owl: Sample ontology used for development of inference agent and presentation.
- Onto2SMem: Utility that converts from OWL ontology to declarative add that Soar can use to build the SMem knowledge base.
- Soar inference agent: includes inference module and sample queries, two of which are uncertain. Uses Onto2SMem output from family-example.owl. 155KB, ZIP
- Last updated: May 21 2010. (Reason: fixed bug in reflexive condition that sporadically resulted corrupted nodes in SMem)
- Soar Workshop 2010 presentation: Representing Ontologies and Reasoning with SMem 2.5MB, PDF
Testing
- OWLFamiliesGenerator: simple utility that generates a valid family ontology with one or more family instances, each with one mother, one father and three siblings. Used for performance testing the reasoner. 6.5KB, ZIP
- SoarQueryFamiliesGenerator: simple utility that generates queries for agents using ontologies generated by OWLFamiliesGenerator. 6.5KB, ZIP
- Last updated: May 20 2010. (Reason: reflexive and transitive features of hasSibling not explicitly tested in generated queries)
- generate.sh: Using tools on this page, generates OWL, declarative add and initialization files for agent for trials based on user-specified counts for families, queries and trials per condition. TXT
- build-trial.sh: Uses output from generate.sh to allow user to quickly build an agent based on number of families, number of queries and trial number. TXT