- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Wed, 20 Feb 2008 19:55:19 -0500 (EST)
- To: public-owl-wg@w3.org
- Cc: jjc@hpl.hp.com
I dug out this exchange between Jeremy and myself, which didn't get
attached to ISSUE-68. This is, I think, the problem that Jeremy is
raising.
Consider two ontologies:
O1 has an object property p and a class c = objectatmost 5 p
O2 has an object property p and a class c = objectatmost 5 p
plus a data property p and a class c1 = dataatmost 5 p
The translation of O1 into triples (modulo declarations) is something
like:
p rdf:type owl:ObjectProperty .
c rdf:type owl:Class .
c owl:equivalentClass _:r1 .
_:r1 rdf:type owl:Restriction .
_:r1 owl:onProperty p .
_:r1 owl:maxCardinality "5"^^xsd:nonNegativeInteger .
The translation of O2 is something like:
p rdf:type owl:ObjectProperty .
c rdf:type owl:Class .
c owl:equivalentClass _:r1 .
_:r1 rdf:type owl11:ObjectRestriction .
_:r1 owl:onProperty p .
_:r1 owl:maxCardinality "5"^^xsd:nonNegativeInteger .
p rdf:type owl:DataProperty .
c1 rdf:type owl:Class .
c1 owl:equivalentClass _:r2 .
_:r2 rdf:type owl11:DataRestriction .
_:r2 owl:onProperty p .
_:r2 owl:maxCardinality "5"^^xsd:nonNegativeInteger .
Note that the translation of O2 is not a superset of the translation of
O1 even though O2 is a superset of O1. Note also that it is a
combination of property-property punning, backwards compatability, and
minimality that causes the issue.
Peter F. Patel-Schneider
From: Jeremy Carroll <jjc@hpl.hp.com>
Subject: Re: nonmon mapping and punning
Date: Wed, 23 Jan 2008 17:44:37 +0000
> Peter F. Patel-Schneider wrote:
>
> > When would a triple-based implementation have to modify "a triple in
> > response to adding a triple"? Which design principle does this
> violate,
> > and where did it come from?
> >
>
>
> If I have understood correctly, the following sequence of operations, at
> an API level, would result in this situation. I'll express it as a merge
> of two ontologies, in order to answer your second question about design
> principle.
>
>
> A program manipulates an API, such as the Jena Ontology API
>
> http://jena.sourceforge.net/ontology/index.html
>
> It creates an ontology and adds an object property p to it, and adds a
> maxCardinality restriction on p. This ontology is then written out to a
> file.
>
> If I understand correctly the RDF/XML corresponding to the
> maxCardinality restriction should have type owl:Restriction
>
> It then creates a second ontology and adds a data property, also called
> p to it, and adds a minCardinality restriction on p. This second
> ontology is then written out to a second file.
>
> If I understand correctly the RDF/XML corresponding to the
> minCardinality restriction should have type owl:Restriction
>
> It then creates a third ontology, being the union of the first two,
> corresponding to the RDF merge operation.
>
> If this is written out to a third file, in a way that conforms with OWL
> 1.1 DL, then
>
> If I understand correctly the RDF/XML corresponding to the
> maxCardinality restriction should have type owl:ObjectRestriction
>
> and
> the minCardinality restriction should have type owl:DataRestriction.
>
>
> This has involved the deletion of two triples with predicate rdf:type
> and object owl:Restriction.
>
> Our expectations for merge are found in RDF Semantics, for example,
>
> http://www.w3.org/TR/rdf-mt/#mergelem
> [[
> Merging lemma. The merge of a set S of RDF graphs is entailed by S, and
> entails every member of S.
>
> This means that a set of graphs can be treated as equivalent to its
> merge
> ]]
>
> Jeremy
Received on Thursday, 21 February 2008 01:02:38 UTC