I just upgraded and repackaged FuXi (v0.7): added some extra prints in the Versa extension function, added a 'test' directory to the source tree with an appropriate example of how FuXi could be used to make a prospective query against OWL rules and a source graph, created a DOAP instance for FuXi, a FOAF instance for myself, created a permanent home for FuXi, and added FuXi to the SemanticWebDOAPBulletinBoard WiKi. This was primarily motivated by Libby's post on Semantic Web Applications and Demos. I thought it would be perfect forum for FuXi. I probably need to move it into a CVS repository when I can find time.
Below is the output of running the test case:
loaded model with owl/rdfs minimal rules and initial test facts executing Versa query: prospective-query('urn:uuid:MinimalRules', 'urn:uuid:InitialFacts', 'distribute(list(test:Lion,test:Don_Giovanni),\'. - rdf:type -> *\')', 'urn:uuid:InitialFacts') extracted 35 rules from urn:uuid:MinimalRules extracted 16 facts from source model (scoped by urn:uuid:InitialFacts) into interpreter. Executing... inferred 15 statements in 0.0526609420776 seconds time to add inferred statements (to scope: urn:uuid:InitialFacts): 0.000159025192261 compiled prospective query, executing (over scope: urn:uuid:InitialFacts) time to execute prospective query: 0.0024938583374 time to remove inferred statements: 0.0132219791412 [[[u'http://copia.ogbuji.net/files/FuXi/test/Animal', u'http://copia.ogbuji.net/files/FuXi/test/LivingBeing']], [[u'http://copia.ogbuji.net/files/FuXi/test/DaPonteOperaOfMozart']]]
This particular test extracts inferred statements from an initial graph using a functional subset of the original owl-rules.n3 and executes the Versa query (which essentially asks: what classes do the resources test:Lion and test:Don_Giovanni belong to?) to demonstrate OWL reasoning (class membership extension by owl:oneOf and owl:unionOf, specifically).
see previous posts on FuXi/N3/4Suite:
- "FuXi v0.6 - Rearchitected / Repackaged"
- "FuXi - Versa / N3 / Rete Expert System"
- "N3 Deserialization in 4RDF (and other possiblities)"