[Pellet-users] SubPropertyChains in Pellet: owns/part works, uncle doesn't
Michael Schneider
schneid at fzi.de
Sun Sep 30 20:09:25 UTC 2007
Hi!
I am playing around with Pellet's support for sub role chains. I have used
Topbraid Composer (TBC) [1], which uses a pretty current version of Pellet,
to create and test two different sub role chains:
* owns/part: isOwnerOf o hasPart --> isOwnerOf
* uncle: hasParent o hasBrother --> hasUncle
Both should be allowed, according to the current OWL-1.1 draft [2]. But only
the first one seems to work with Pellet. (This is the reason why I ask here
and not in the TBC list: Because one of the two sub role chains actually
works, so this is probably *not* a TBC problem.)
In the first case, I have added three instances of 'owl:Thing': 'alice',
'car', and 'cardoor', and the following triples:
* alice isOwnerOf car
* car hasPart cardoor
Building the Pellet based inference graph (with TBC as a frontend), I get
the expected additional triple
* alice isOwnerOf cardoor
So this works.
In the case of the uncle sub role chain, I have added three instances of
owl:Thing, 'alice', 'bob', and 'charly', and the following triples:
* alice hasParent bob
* bob hasBrother charly
Trying again to build the Pellet based inference graph gave *no* result!
I have learnt a few weeks ago [3] that the general case, where the super
role ('hasUncle' here) may differ from the chained roles ('hasParent' and
'hasBrother' here), has just recently been researched to be allowed as a
feature of OWL-1.1. So I suppose that Pellet does not yet have support for
this general case. Is this correct?
Anyway, I have attached the two ontologies for you to check yourself. Maybe
it is another problem.
Cheers,
Michael
[1] Topbraid Composer Homepage:
http://www.topbraidcomposer.com/
[2] OWL-1.1 Semantics:
http://www.webont.org/owl/1.1/semantics.html#2
[3] Ian Horrocks about the "uncle" sub role chain:
http://lists.w3.org/Archives/Public/public-owl-dev/2007JulSep/0165.html
========================= owns/part Ontology =====================
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns="http://example.org/ownspart.owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://example.org/ownspart.owl">
<owl:Ontology rdf:about="">
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Created with TopBraid Composer</owl:versionInfo>
</owl:Ontology>
<owl:ObjectProperty rdf:ID="isOwnerOf"/>
<owl:ObjectProperty rdf:ID="hasPart"/>
<owl:Thing rdf:ID="cardoor"/>
<owl:Thing rdf:ID="car">
<hasPart rdf:resource="#cardoor"/>
</owl:Thing>
<rdf:List rdf:ID="subrolechain">
<rdfs:subPropertyOf rdf:resource="#isOwnerOf"/>
<rdf:first rdf:resource="#isOwnerOf"/>
<rdf:rest rdf:parseType="Collection">
<owl:ObjectProperty rdf:about="#hasPart"/>
</rdf:rest>
</rdf:List>
<owl:Thing rdf:ID="alice">
<isOwnerOf rdf:resource="#car"/>
</owl:Thing>
</rdf:RDF>
<!-- Created with TopBraid Composer -->
========================= uncle Ontology =========================
<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:owl11="http://www.w3.org/2006/12/owl11#"
xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns="http://example.org/uncle.owl#"
xml:base="http://example.org/uncle.owl">
<owl:Ontology rdf:about="">
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Created with TopBraid Composer</owl:versionInfo>
</owl:Ontology>
<owl:ObjectProperty rdf:ID="hasParent"/>
<owl:ObjectProperty rdf:ID="hasUncle"/>
<owl:ObjectProperty rdf:ID="hasBrother"/>
<owl:Thing rdf:ID="alice">
<hasParent>
<owl:Thing rdf:ID="bob">
<hasBrother>
<owl:Thing rdf:ID="charly"/>
</hasBrother>
</owl:Thing>
</hasParent>
</owl:Thing>
<rdf:List rdf:ID="subrolechain">
<rdfs:subPropertyOf rdf:resource="#hasUncle"/>
<rdf:rest rdf:parseType="Collection">
<owl:ObjectProperty rdf:about="#hasBrother"/>
</rdf:rest>
<rdf:first rdf:resource="#hasParent"/>
</rdf:List>
</rdf:RDF>
<!-- Created with TopBraid Composer -->
==================================================================
--
Dipl.-Inform. Michael Schneider
FZI Forschungszentrum Informatik Karlsruhe
Abtl. Information Process Engineering (IPE)
Tel : +49-721-9654-726
Fax : +49-721-9654-727
Email: Michael.Schneider at fzi.de
Web : http://www.fzi.de/ipe/eng/mitarbeiter.php?id=555
FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts
Az: 14-0563.1 Regierungspräsidium Karlsruhe
Vorstand: Rüdiger Dillmann, Michael Flor, Jivka Ovtcharova, Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
More information about the Pellet-users
mailing list