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



Reply via email to