All,
Yesterday, the relationship vocabulary was updated, basically the
rel:worksWith property is no longer Transitive re. changes that affect
my initial set of examples.
Here is a revised version using the re:ancestorOf property for
Transitive & InverseOf property reasoning examples. I've also picked
rel:siblingOf for the Symmetrical property reasoning examples.
## Verify Ontology Data is in Quad Store
## Ontology: <http://vocab.org/relationship/> (Relationship Ontology)
## Use pragma to put latest in Quad store.
DEFINE get:soft "replace"
SELECT *
FROM <http://vocab.org/relationship/>
WHERE {?s ?p ?o}
## Clean up
CLEAR GRAPH <urn:owl.tests>
## Create Instance Data for Relationship Ontology
PREFIX rel: <http://purl.org/vocab/relationship/>
INSERT into GRAPH <urn:owl.tests>
{<http://dbpedia.org/resource/Prince_William_of_Wales> rel:siblingOf
<http://dbpedia.org/resource/Prince_Harry_of_Wales>.
<http://dbpedia.org/resource/Elizabeth_Bowes-Lyon> rel:ancestorOf
<http://dbpedia.org/resource/Elizabeth_II_of_the_United_Kingdom>.
<http://dbpedia.org/resource/Elizabeth_II_of_the_United_Kingdom>
rel:ancestorOf
<http://dbpedia.org/resource/Charles%2C_Prince_of_Wales>.
<http://dbpedia.org/resource/Charles%2C_Prince_of_Wales> rel:ancestorOf
<http://dbpedia.org/resource/Prince_William_of_Wales>.
}
;
## Verify
SELECT *
FROM <urn:owl.tests> where {?s ?p ?o}
## Create an Inference Rule that references the Relationship Ontology
Named Graph
rdfs_rule_set ('urn:owl.tests', 'http://vocab.org/relationship') ;
## Verify Rule's existence
SELECT * FROM sys_rdf_schema ;
## Test owl:TransitiveProperty Reasoning
## Start with a specific URI
## Goal: See inferred Triples
## In this case, relationship between:
<http://dbpedia.org/resource/Elizabeth_Bowes-Lyon>
## and her descendants: Queen Elizabeth, Prince Charles, Prince William,
and Prince Harry)
DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT *
FROM <urn:owl.tests>
WHERE {
<http://dbpedia.org/resource/Elizabeth_Bowes-Lyon> rel:ancestorOf ?o
}
## Test owl:SymmetricalProperty Reasoning
## Should show same result irrespective of rel:siblingOf URI 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://dbpedia.org/resource/Prince_William_of_Wales>
rel:siblingOf ?o}
## 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:siblingOf
<http://dbpedia.org/resource/Prince_William_of_Wales> }
## Test owl:inverseOf Reasoning
## Should show triples exposing the inverseOf relation.
## In this case rel:ancestorOf instance data triples exist,so the system
must infer rel:descendant Of triples
DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT *
FROM <urn:owl.tests>
WHERE {<http://dbpedia.org/resource/Elizabeth_II_of_the_United_Kingdom>
rel:descendantOf ?o}
## OR with Transitivity Option applied
DEFINE input:inference 'urn:owl.tests'
PREFIX rel: <http://purl.org/vocab/relationship/>
SELECT *
FROM <urn:owl.tests>
WHERE {<http://dbpedia.org/resource/Prince_William_of_Wales>
rel:descendantOf ?o option (T_DISTINCT)}
--
Regards,
Kingsley Idehen
President & CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen