thanks, ivan, i realized that well, thats why i tried <http://www.turnguard.com/ElectroPop> skos:related ?o OPTION (T_DISTINCT). in my second test, but that leads to 37000 Error SP031 ...
which is analog to kingsley's query to my point of view, but there's something i'm missing. @kingsley : - my test instances are @ http://turnguard.com/virtuoso/test10.rdf - i'm loading data like this : DB.DBA.RDF_LOAD_RDFXML (http_get ('http://www.w3.org/2009/08/skos-reference/skos-owl1-dl.rdf'), 'no', 'urn:reasonertest'); DB.DBA.RDF_LOAD_RDFXML (http_get ('http://www.w3.org/2002/07/owl.rdf'), 'no', 'urn:reasonertest'); DB.DBA.RDF_LOAD_RDFXML (http_get ('http://turnguard.com/virtuoso/test10.rdf'), 'no', 'urn:reasonertest'); rdfs_rule_set ('reasoner', 'urn:reasonertest'); i'll have a test with the relationship data on my server and report back this evening. thank you very much for your help! wkr turnguard ----- Original Message ----- From: "Ivan Mikhailov" <imikhai...@openlinksw.com> To: "Jürgen Jakobitsch" <jakobits...@punkt.at> Cc: "Kingsley Idehen" <kide...@openlinksw.com>, virtuoso-users@lists.sourceforge.net Sent: Saturday, February 6, 2010 3:32:14 AM Subject: Re: [Virtuoso-users] CORRECTION 6.1 owl support Hello Jürgen, owl:TransitiveProperty inference is enabled only if triple pattern contains fixed transitive P. It does not work With variable ?p so the option T_DISTINCT becomes misleading. Best Regards, Ivan Mikhailov OpenLink Software http://virtuoso.openlinksw.com On Fri, 2010-02-05 at 23:42 +0100, Jürgen Jakobitsch wrote: > hi kingsley, arigato gozaimasu, so far, > > now these queries look really promising on http://lod.openlinksw.com/sparql. > > but with > > ./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 > > > and the following query (analog to your sample) > > define input:inference "reasoner" > SELECT * > FROM <urn:reasonertest> > WHERE > { > <http://www.turnguard.com/ElectroPop> ?p ?o OPTION (T_DISTINCT). > } > > > i get > > 37000 Error SP031: SPARQL compiler: Transitive-specific options can be > specified only for group patterns, not for triple patterns > > > > and with > > define input:inference "reasoner" > PREFIX skos: <http://www.w3.org/2004/02/skos/core#> > SELECT * > FROM <urn:reasonertest> > WHERE > { > <http://www.turnguard.com/ElectroPop> skos:related ?o OPTION > (T_DISTINCT). > } > > i get > > 37000 Error SP031: SPARQL compiler: Options are not supported for a > triple pattern with property name > "http://www.w3.org/2004/02/skos/core#related" that is > declared in inference rules "reasoner" as a property with inverse > > > so i can't test with own data. > > > do i have the latest changes with a sourceforge download and install from the > 4th of feb? > i might have taken a bad built or some, i also noted that in > conductor->rdf->graphs i only have > one : http://www.openlinksw.com/schemas/virtrdf# > > i also realized that you put A- and T-box in one graph - is this optional or > a must? > > your efforts really appreciated > > wkr turnguard > > > ----- Original Message ----- > From: "Kingsley Idehen" <kide...@openlinksw.com> > To: "Kingsley Idehen" <kide...@openlinksw.com> > Cc: "Jürgen Jakobitsch" <jakobits...@punkt.at>, > virtuoso-users@lists.sourceforge.net > Sent: Friday, February 5, 2010 8:46:48 PM > Subject: CORRECTION [Virtuoso-users] 6.1 owl support > > 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" <kide...@openlinksw.com> > >> To: "Jürgen Jakobitsch" <jakobits...@punkt.at> > >> Cc: virtuoso-users@lists.sourceforge.net > >> 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 > > > > > > -- punkt. netServices ______________________________ Jürgen Jakobitsch Codeography Lerchenfelder Gürtel 43 Top 5/2 A - 1160 Wien Tel.: 01 / 897 41 22 - 29 Fax: 01 / 897 41 22 - 22 netServices http://www.punkt.at