I've gotten inferencing on inverseOf to work in Virtuoso, so that

DEFINE input:inference 'urn:ifs.ontology'
select ?o where {
  <X> ifs:has-address ?o  .
}

returns an address that's actually associated the other way with ifs:address-of.

However, if I try

DEFINE input:inference 'urn:ifs.ontology'
select ?p ?o where {
  <X> ?p ?o  .
}

the address is not returned. I guess this means that Virtuoso will only run 
rules for defined predicates?

I also tried

DEFINE input:inference 'urn:ifs.ontology'
select ?p ?o where {
  ?p owl:inverseOf ifs:address-of .
  <X> ?p ?o  .
}

so that ?p will be bound by the time we try the final clause, but that didn't 
work, either.


Is it impossible to get this to work without actually specifying the predicate 
in the query? We really need this to work in the open form, since we are using 
ontology annotation to see which properties to look for.

--Lars M.
http://www.garshol.priv.no/tmphoto/
http://www.garshol.priv.no/blog/


Reply via email to