Hello Ian, In the current version of Virtuoso, there's no support for inference of rdfs:domain and rdfs:range . I've put the enhancement request to internal bugzilla for future version.
However the processing of ...domain and ...range will not be enabled by default, the query will require a special pragma. The reason is that there are too many "dirty" data sources, really "pure" graphs occur in textbooks more than in practice. As a temporary workaround, I'll publish a small toolkit to enrich a given graph with more predicates like rdf:type and making basic integrity checks. That toolkit is tried on processing R2RML files that usually lack most of required rdf:type triples but domains and ranges of all properties are restricted by the spec. It may be similar to what you need, but with materialization instead of on-demand inference. Best Regards, Ivan Mikhailov OpenLink Software http://virtuoso.openlinksw.com On Thu, 2012-04-26 at 07:45 -0400, Ian Harrison wrote: > Hi > > I'm running virtuoso 6.1.5.3127 on Mac Lion (Open Source version). > > I can get all the kinds of inferencing I need to work, except for rdfs:range > and rdfs:domain type inference. > > Here's the relevant snippet from my RDF/XML > > <rdf:RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:owl="http://www.w3.org/2002/07/owl#" > xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" > xmlns:ex="http://www.example.com/example#" > xmlns:err="http://www.w3.org/2005/xqt-errors#" > xmlns:fn="http://www.w3.org/2005/xpath-functions#" > xmlns:xs="http://www.w3.org/2001/XMLSchema#"> > <rdf:Description rdf:about="http://www.example.com/example#ian"> > <ex:has-pet rdf:resource="http://www.example.com/example#slate"/> > </rdf:Description> > > <rdf:Description rdf:about="http://www.example.com/example#fhas-pet"> > <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/> > </rdf:Description> > <rdf:Description rdf:about="http://www.example.com/example#has-pet"> > <rdfs:range rdf:resource="http://www.example.com/example#pet"/> > </rdf:Description> > <rdf:Description rdf:about="http://www.example.com/example#has-pet"> > <rdfs:domain rdf:resource="http://www.example.com/example#human"/> > </rdf:Description> > </rdf:RDF> > > I should be able to infer that ian is of type human and slate is of type > pet .... but it just returns nothing > > I'm using the sparql query > > select * where {ex:ian rdf:type ?y} > > what am I missing? > > N.B. subClassOf,subPropertyOf, inverseOf, symmetric and transitive > property inferecing, and sameAs inferencing works for me on the same dataset > ... just not the > range/domain inferemcing queries > > Thanks > > ian > -- > Ian Harrison Email: [email protected] > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ Virtuoso-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/virtuoso-users
