Re: layering (5.3,5.10): a first-order same-syntax model theory

I've tested part of your proposal in
http://www.agfa.com/w3c/euler/owl-rules.n3
but still kept most of the rdf list stuff
and all of my tests succeeded (without DT)

-- ,
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/





Dan Connolly <connolly@w3.org>
Sent by: www-webont-wg-request@w3.org
2002-06-19 11:26 PM


        To:     www-webont-wg@w3.org
        cc:
        Subject:        layering (5.3,5.10): a first-order same-syntax
model theory



This is an attempt to address feedback on:

  layering (5.3,5.10): a same-syntax model theory
  From: Dan Connolly (connolly@w3.org)
  Date: Thu, May 30 2002
  http://lists.w3.org/Archives/Public/www-webont-wg/2002May/0264.html

in particular, issues around lists and recursive
definitions. This leaves lists out altogether.
I think the result is a little bit klunky,
so I'd like to figure out how to formalize
lists properly, but until I understand more about how
semantics for recursion/induction/whatever works,
I'd like to know if this is
a coherent model theory for OWL:



As in [RDFMT], an interpretation I of a vocabulary V is

1. A non-empty set IR of resources, called the domain or universe of I.

2. A mapping IEXT from IR into the powerset of IR x (IR union LV)
   i.e. the set of sets of pairs <x,y> with x in IR and y in IR or LV

3. A mapping IS from V into IR


Every owl interpretations is an RDF interpretations (i.e. IR
contains IS(rdf:type)) and an RDFS interpretation (i.e.
the RDFS closure rules apply).

Recall that ICEXT(x) abbreviates {y | <y,x> is in IEXT(I(rdf:type)) }.

Additionally, owl reserves the following vocabulary:

    * complementOf
    * differentFrom
    * disjointWith
    * equivalentTo
    * hasClass
    * hasValue
    * imports
    * intersectionOf1
    * intersectionOf2
    * inverseOf
    * oneOf1
    * oneOf2
    * onProperty
    * Ontology
    * Restriction
    * sameClassAs
    * samePropertyAs
    * toClass
    * TransitiveProperty
    * ManyToOneProperty
    * manyToOneOver
    * unionOf1
    * unionOf2
    * OneToManyProperty
    * oneToManyOver
    * versionInfo


That is, it reserves the URI references
  http://www.w3.org/2001/10/daml+oil#complementOf ,
  http://www.w3.org/2001/10/daml+oil#differentFrom ,
and so on; in this document, we'll abbreviate these
as ont:cardinality, ont:complementOf and so on.

The following closure rules apply:

  ont:imports rdfs:subPropertyOf rdfs:seeAlso.
  ont:versionInfo rdfs:subPropertyOf rdfs:comment.

The following constraints on interpretations apply:

complementOf:
<?s, ?o> is in IEXT(I(ont:complementOf)),
iff ICEXT(?s) is the complement of ICEXT(?o)
relative to IR.

differentFrom:
<?s, ?o> is in IEXT(I(ont:differentFrom)),
iff ?s is not equal to ?o.


disjointWith:
<?s, ?o> is in IEXT(I(ont:disjointWith)),
iff ICEXT(?s) is disjoint from ICEXT(?o).

equivalentTo:
<?s, ?o> is in IEXT(I(ont:equivalentTo)),
iff IEXT(?s) = IEXT(?o).


onProperty/hasClass:
if <?r, ?p> is in IEXT(I(ont:onProperty))
and <?r, ?a> is in IEXT(I(ont:hasClass)),
then the set
  { ?o: for some ?s in ICEXT(?r), <?s, ?o> is in IEXT(?p)
        and ?o is in ICEXT(?a) }
has at least one element.

onProperty/hasValue:
if <?r, ?p> is in IEXT(I(ont:onProperty))
and <?r, ?a> is in IEXT(I(ont:hasValue)),
then the set
  { ?o: for some ?s in ICEXT(?r), <?s, ?a> is in IEXT(?p) }
isn't empty.


imports:
none. imports doesn't constrain interpretations
(other than having the subproperty relationship
with rdfs:seeAlso).


intersectionOf1/intersectionOf2:

if <?a, ?b> is in IEXT(I(ont:intersectionOf1))
and <?a, ?c> is in IEXT(I(ont:intersectionOf2))
and ?x is in ICEXT(?b) and in ICEXT(?c)
then ?x is in ICEXT(?a).

conversely,

if <?a, ?b> is in IEXT(I(ont:intersectionOf1))
and <?a, ?c> is in IEXT(I(ont:intersectionOf2))
and ?x is in ICEXT(?a).
then ?x is in ICEXT(?b) and in ICEXT(?c)


inverseOf:

<?p, ?q> is in IEXT(I(ont:intersectionOf))
iff IEXT(?p) is the relational inverse of IEXT(?q);
  IEXT(?p) = { <y, x> | <x, y> in IEXT(?q) }.


oneOf1/oneOf2:

if  <?a, ?b> is in IEXT(I(ont:oneOf1))
and <?a, ?c> is in IEXT(I(ont:oneOf2))
then ?b is in ICEXT(?a)
and ICEXT(?c) is a subset of ICEXT(?a).

 conversely,
if  <?a, ?b> is in IEXT(I(ont:oneOf1))
and <?a, ?c> is in IEXT(I(ont:oneOf2))
and ?x is in ICEXT(?a)
then either ?x = ?b or ?x is in ICEXT(?c).

onProperty:
[see hasClass, hasValue, toClass]

Ontology:
none. There are no constraints on interpretation
specific to Ontology.

Restriction:
none.

sameClassAs:
<?s, ?o> is in IEXT(I(ont:sameClassAs)),
iff ICEXT(?s) = ICEXT(?o).

samePropertyAs:
<?s, ?o> is in IEXT(I(samePropertyAs)),
iff IEXT(?s) = IEXT(?o).

toClass:
if  <?a, ?c> in IEXT(I(ont:toClass))
and <?a, ?p> in IEXT(I(ont:onProperty))
and <?x, ?y> in IEXT(?p)
and ?x in ICEXT(?a)
then ?y in ICEXT(?c).

TransitiveProperty:

?p in ICEXT(I(ont:TransitiveProperty))
iff for every ?x, ?y, and ?z in IR,
  if <?x, ?y> in IEXT(?p)
   and <?y, ?z> in IEXT(?p)
  then <?x, ?z> in IEXT(?p).

manyToOneOver:

<?p, ?c> in IEXT(I(ont:manyToOneOver))
iff for every ?x, ?y, and ?z in IR,
  if ?x in ICEXT(?c)
    and <?x, ?y> in IEXT(?p)
    and <?x, ?z> in IEXT(?p)
  then ?y = ?z.

ManyToOneProperty:

?p in IEXT(I(ont:ManyToOneProperty))
iff for every ?x, ?y, and ?z in IR,
  if    <?x, ?y> in IEXT(?p)
    and <?x, ?z> in IEXT(?p)
  then ?y = ?z.


manyToOneOver:

<?p, ?c> in IEXT(I(ont:manyToOneOver))
iff for every ?x, ?y, and ?z in IR,
  if ?x in ICEXT(?c)
    and <?x, ?y> in IEXT(?p)
    and <?x, ?z> in IEXT(?p)
  then ?y = ?z.


OneToManyProperty:

?p in IEXT(I(ont:OneToManyProperty))
iff for every ?x, ?y, and ?z in IR,
  if    <?y, ?x> in IEXT(?p)
    and <?z, ?x> in IEXT(?p)
  then ?y = ?z.

oneToManyOver:

<?p, ?c> in IEXT(I(ont:oneToManyOver))
iff for every ?x, ?y, and ?z in IR,
  if ?x in ICEXT(?c)
    and <?y, ?x> in IEXT(?p)
    and <?z, ?x> in IEXT(?p)
  then ?y = ?z.


unionOf1/unionOf2:

if <?a, ?b> is in IEXT(I(ont:unionOf1))
and <?a, ?c> is in IEXT(I(ont:unionOf2))
and ?x is in ICEXT(?b) or in ICEXT(?c)
then ?x is in ICEXT(?a).

conversely,

if <?a, ?b> is in IEXT(I(ont:unionOf1))
and <?a, ?c> is in IEXT(I(ont:unionOf2))
and ?x is in ICEXT(?a).
then ?x is in ICEXT(?b) or in ICEXT(?c)

versionInfo:
none.




Notes:

dropped per WG decision:
    * cardinalityQ
    * hasClassQ
    * maxCardinalityQ
    * minCardinalityQ

dropped re 'uniform treatment of literals'
    * Datatype
    * DatatypeProperty
    * DatatypeRestriction
    * ObjectClass
    * ObjectProperty
    * ObjectRestriction
    * sameIndividualAs
    * differentIndividualFrom (renamed differentFrom)

already specified by RDF MT:
    * domain
    * Property
    * range
    * Class
    * subClassOf
    * subPropertyOf


I have adopted the suggestion to drop...
    * disjointUnionOf
     cf suggestion from Mike Dean 30 May
     http://lists.w3.org/Archives/Public/www-webont-wg/2002May/0262.html

and I got a little lazy around
cardinality, cutting out
    * cardinality
    * maxCardinality
    * minCardinality

leaving just OneToMany, ManyToOne,
 oneToManyOver, and ManyToOneOver.
i.e. leaving just the maxcardinality 1 idioms.


[RDFMT]  RDF Model Theory
 W3C Working Draft 29 April 2002
 http://www.w3.org/TR/2002/WD-rdf-mt-20020429/
esp section
 http://www.w3.org/TR/2002/WD-rdf-mt-20020429/#sinterp


--
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Thursday, 20 June 2002 18:37:55 UTC