I noticed that in the AllegroGraph Python API tutorial here, whenever they want to use OWL reasoning they use the conn.getStatements
method instead of issuing a Prolog or SPARQL query. Is it possible to get triples inferred from the OWL reasoner by issuing a Prolog or SPARQL query instead of using the conn.getStatements
method? I tried a Prolog query:
(select (?x ?y) (q ?x !ex:owned-by ?y))
where I had defined owned-by as owl:inverseOf ex:owns
and had the triple ex:someone ex:owns ex:something
in my store, and I got no results. I do get results from using conn.getStatements
, so am I missing something essential in the Prolog query?
Did you call setIncludeInferred on the query object returned from prepareTupleQuery before calling evaluate?
IncludeInferred is False by default. I believe valid values are false (no reasoning), "rdfs++" or True, and "restriction", as mentioned in the HTTP rest documentation for the infer http query parameter. The Python implementation just passes the value through.
http://www.franz.com/agraph/support/documentation/v4/http-protocol.html#header2-364