ISSUE-68 (was Re: nonmon mapping and punning)

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