Kingsley Idehen wrote:
Jürgen Jakobitsch wrote:

Just realized the last owl:inverseOf query is incorrect. It should be:

## Test owl:inverseOf Reasoning
## Should show triples exposing the inverseOf relation.
## In this case rel:employedBy instance data triples exist, the system must infer rel:employerOf triples

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>

SELECT *
FROM <urn:owl.tests>
WHERE {?s rel:employerOf ?o}

Kingsley
hi, again.

there might be a fundamental difference about the view
what inference is or i'm fundamentaly misusing virtuoso
- i have to confess that i'm spoiled by owlim.

here's exactly what i do :

1. DB.DBA.RDF_LOAD_RDFXML (http_get 
('http://www.w3.org/2009/08/skos-reference/skos-owl1-dl.rdf'), 'no', 
'urn:rules.skos');
2. DB.DBA.RDF_LOAD_RDFXML (http_get ('http://www.w3.org/2002/07/owl.rdf'), 
'no', 'urn:rules.skos');
3. DB.DBA.RDF_LOAD_RDFXML (http_get 
('http://turnguard.com/virtuoso/test10.rdf'), 'no', 
'http://www.turnguard.com/virtuoso');
4. rdfs_rule_set ('skos-inference', 'urn:rules.skos');

(note: test10.rdf is more or less the same data i sent two mails ago, i added 
one concept with a skos:related property,
please open in a browser and take a look, the following queries are about these 
five concepts)

now if i do :



Query :

define input:inference "skos-inference"
SELECT * FROM <http://www.turnguard.com/virtuoso> WHERE {
 <http://www.turnguard.com/ElectroPop> ?p ?o
}

Expected : Expected result with support for symmetricProperty would include http://www.turnguard.com/KrautRock (Solution : <http://www.turnguard.com/ElectroPop> skos:related <http://www.turnguard.com/KrautRock>) Expected result with support for inverseOf would include (Solution : <http://www.turnguard.com/ElectroPop> skos:broader <http://www.turnguard.com/TechnoPop>)

at least these two solutions are missing.

essentially i get the exact same results as with the previous release (6.0.) 
the only thing that
for sure works as expected is rdfs:subPropertyOF all these tests were made on
./virtuoso-t -?

Virtuoso Open Source Edition (multi threaded)
Version 6.1.0.3126-pthreads as of Feb  4 2010
Compiled for Linux (i686-pc-linux-gnu)
Copyright (C) 1998-2010 OpenLink Software

with a complete fresh installation and newly imported data.

any idea really appreciated

wkr turnguard

Okay, think we found out what amiss here, basically missing docs re. the use of the Transitive Option when using this inference feature.

You can test the no SPARUL and Rule Creation bits via the following endpoints:

1. http://lod.openlinksw.com/sparql
2. http://uriburner.com/sparql


Example based on Relationship Vocab:
## Verify Ontology Data is in Quad Store by using Sponger pragmas to re-load cache if missing
## Ontology: <http://vocab.org/relationship/> (Relationship Ontology)

DEFINE get:soft "replace"
SELECT *
FROM <http://vocab.org/relationship/>
WHERE {?s ?p ?o}


## Clean up instance data graph

CLEAR GRAPH <urn:owl.tests.data>

## Create Instance Data for Relationship Ontology

PREFIX rel: <http://purl.org/vocab/relationship/>

INSERT into GRAPH <urn:owl.tests>
{<http://kingsley.idehen.name/dataspace/person/kidehen#this> rel:employedBy <http://www.openlinksw.com/dataspace/organization#this>. <http://myopenlink.net/dataspace/person/tthibodeau#this> rel:worksWith <http://kingsley.idehen.name/dataspace/person/kidehen#this>. <http://kingsley.idehen.name/dataspace/person/kidehen#this> rel:worksWith <http://demo.openlinksw.com/dataspace/person/demo#this>.}

## Verify instance data graph has expected data

SELECT *
FROM  <urn:owl.tests> where {?s ?p ?o}

-- SQL mode
-- Create Inference Rule that references the Relationship Ontology Named Graph

rdfs_rule_set ('urn:owl.tests', 'http://vocab.org/relationship') ;

-- Verify rule creation (just a double check)

SELECT * FROM sys_rdf_schema ;

## Back to RDF realm

## Test owl:TransitiveProperty Reasoning
## Start with a specific URI
## Goal: See inferred Triples
## In this case, relationship between: <http://myopenlink.net/dataspace/person/tthibodeau#this>
## and <http://demo.openlinksw.com/dataspace/person/demo#this>)
## NOTE: use of the Transitivity Option re. (T_DISTINCT)

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT *
FROM <urn:owl.tests>
WHERE { <http://myopenlink.net/dataspace/person/tthibodeau#this> rel:worksWith ?o OPTION (T_DISTINCT)
      }
## OR
## Should get all combinations of workWith relationships in solution
## Including the inferred triple

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT ?o ?o2
FROM <urn:owl.tests>
WHERE { <http://myopenlink.net/dataspace/person/tthibodeau#this> rel:worksWith ?o OPTION (T_DISTINCT).
               ?o rel:worksWith ?o2 OPTION (T_DISTINCT).
      }

## Test owl:SymmetricalProperty Reasoning
## Should show same data irrespective of worksWith data in Subject or Object slots of Triple

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT *
FROM <urn:owl.tests>
WHERE {<http://kingsley.idehen.name/dataspace/person/kidehen#this> rel:worksWith ?o OPTION (T_DISTINCT)}

## OR

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT *
FROM <urn:owl.tests>
WHERE {?s rel:worksWith <http://kingsley.idehen.name/dataspace/person/kidehen#this> OPTION (T_DISTINCT)}


## Test owl:inverseOf Reasoning
## Should show triples exposing the inverseOf relation.
## In this case rel:employerOf instance data triple exist, so the system should add the inverse triples for rel:employedBy

DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT *
FROM <urn:owl.tests>
WHERE {?s rel:employedBy ?o}


Conclusion:

Due to docs trailing the release the need for Transitivity option wasn't clear :-)



Kingsley

----- Original Message -----
From: "Kingsley Idehen" <[email protected]>
To: "Jürgen Jakobitsch" <[email protected]>
Cc: [email protected]
Sent: Thursday, February 4, 2010 3:34:03 PM
Subject: Re: [Virtuoso-users] 6.1 owl support

Jürgen Jakobitsch wrote:
hi,

first, congrats to the new release and the many improvements.


is there a doc or could you shed some light on how i would have to understand support for owl:SymmetricProperty, owl:inverseOf and owl:TransitiveProperty?


any pointer really appreciated

wkr turnguard

Sure, we're still rolling things out, but stay tuned for examples.

BTW - this simply means that you can have the assertions in an OWL graph that is used for an Inference Rules context (as per usual), then when you SPARQL (with inference rules pragma) see the effects on the solution based on the inference context.






--

Regards,

Kingsley Idehen President & CEO OpenLink Software Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter: kidehen





Reply via email to