more on a same-syntax extension from RDF(S) to OWL

		How to Drive Towards a Same-Syntax Extension

	NB: This leads to semantic paradoxes.
	NB: This is incomplete.


1. Disclaimer

I am not a proponent of OWL as a same-syntax extension of RDF(S).  Some WG
members seem to want it.  I am putting together a document to show how such
a version of OWL (BOWL) would have to work.

The result is essentially a version of DAML+OIL with the following changes:
1/ The DAML+OIL constructs are restricted to be used in the intended ways,
   i.e., no malformed lists or restrictions with multiple onProperty's.
2/ Entailment gets you (closer to) what is needed.


2. Examples of Mandated Inferences

I believe that any version of OWL must have the following sorts of valid
inferences.

I1/ If John is in both A and B, then John is in the (an) intersection of A
   and B. 

I2/ If John is an object, then John is in the (a) singleton class (or
   restriction) whose sole instance is John.  

I3/ If John has a child that is a Person, then John belongs to the (a)
   restriction that requires that its members have a child that is a
   Person.

I4/ If John is in a restriction R whose p's all belong to R, then John is in
   some restriction whose p's all belong to the restriction itself.  

I5/ If Bill has no p's, then then Bill is in any restriction whose p's all
   belong to the restriction itself. 

The impact of these inferences will be seen below.  In general, they
require that lots of lists, classes, and restrictions exist in
interpretations.  


3. Same-syntax extensions

Definition: same-syntax extension of RDF(S) ignoring datatypes

A same-syntax extension of RDF(S) is a formalism, F, that 
a/ uses the same syntax as RDF, i.e., an F KB is an RDF graph in the form
   of a collection of triples, whose first and second elements are URI
   references and whose third elements are either URI references or
   literals, but not all RDF(S) graphs may be valid F KBs;
   and
b/ whose interpretations are RDF(S) interpretations with extra
   conditions, i.e., all F interpretations of a KB are also RDF(S)
   interpretations of the same KB. 


4. Syntax

The syntax of BOWL is the same as the syntax of RDF(S).  That is, a BOWL KB
is an RDF graph in the form of a collection of triples, whose first and
second elements are URI references and whose third element is either a URI
reference or a literal.  However, not all RDF(S) graphs are BOWL KBs.

BOWL is concerned with the following URIs:

  Lists	bowl:List, bowl:first, bowl:rest, bowl:nil

  Boolean Combinations of Classes
	bowl:intersectionOf, bowl:unionOf, bowl:disjointUnionOf,
	bowl:complementOf, bowl:sameClassAs 

  Finite Sets
	bowl:oneOf

  Restrictions
	bowl:Restriction, bowl:onProperty, bowl:hasClass, bowl:toClass,
	bowl:maxCardinalityQ, bowl:hasClassQ, ... 

  Properties
	bowl:TransitiveProperty, bowl:UniqueProperty,
	bowl:UnambiguousProperty, ... 

A BOWL KB is an RDF graph with the following provisios

Lists:  
	A list node is a node that has a bowl:first or bowl:rest property.
	All list nodes are anonymous. (Is this needed?.)
	All list nodes have exactly one bowl:first and one bowl:rest property.
	The object of a bowl:rest statement is either a list node or bowl:nil.
	Lists are finite and non-circular.

Booleans: 
	The object of a bowl:intersectionOf statement is a list node.
	The object of a bowl:unionOf statement is a list node.
	The object of a bowl:disjointUnionOf statement is a list node.

Restrictions: 
	A restriction node is a node with an rdf:type of bowl:Restriction.
	A restriction node has exactly one bowl:onProperty.
	A restriction node has exactly one of the following
	  a) one bowl:hasClass,
	  b) one bowl:toClass,
	  c) one bowl:hasClassQ and one bowl:maxCardinalityQ,
	  ...
...


5. Semantics

A BOWL interpretation is an RDFS interpretation with the following
additions:

A/ Generation Rules

Boolean combinations of classes
  - For every finite sequence of classes in an interpretation
    there is a list containing that sequence and a class related to that
    list via a bowl:intersectionOf/bowl:unionOf property.
      * This is needed to make I1 be a valid inference.
  - For every class in an interpretation
    there is a class related to that class via a bowl:complementOf property.

Finite sets
  - For every finite sequence of objects in an interpretation
    there is a list containing that sequence and a class related to that
    list via a bowl:oneOf property
      * This is needed to make I2 be a valid inference.

Restrictions
  - If p is a property and c is a class in an interpretation
    there is a restriction r with the following relationships
	<r,bowl:Restriction> in EXT(rdf:type)
	<r,p> in EXT(bowl:onProperty)
	<r,c> in EXT(bowl:hasClass>.
      * This is needed to make I3 a valid inference.
  - If p is a property and c is a class in an interpretation
    then for any non-negative number n
    there is a restriction r with the following relationships
	<r,bowl:Restriction> in EXT(rdf:type)
	<r,p> in EXT(bowl:onProperty)
	<r,n> in EXT(bowl:maxCardinalityQ>
	<r,c> in EXT(bowl:hasClassQ>.
  - [and so on for the other kinds of restrictions]
    ...

Looping
  NB:  This is certainly not standard, and is probably not sufficient.
  - If r1,...,rn are restrictions or classes;
       c1,...,cm are restrictions or classes; and 
       l1,...,lo are lists
    and sk are the statements that have them as subjects
    then there is a restriction r',
	 restrictions and classes (as c1,...,cm are restrictions or
	   classes) c1', ..., cm', and 
	 lists l1',...,lo'
    such that for <x,y> in EXT(p) with x an ri, ci, or li 
    then <x',y'> in EXT(p) 
    where x' is r' if x is an ri, ci' if x is ci, li' if x is li
    and y' is r' if y is an ri, ci' if y is ci, li' if y is li, y otherwise
      * Something like this is needed to make I5 be a valid inference.

B/ Conditions on BOWL vocabulary

Intersection
    If <c,l> in EXT(bowl:intersectionOf) for l a list with elements li
    then CEXT(c) = CEXT(l1) ^ ... ^ CEXT(ln).

Union
    If <c,l> in EXT(bowl:unionOf) for l a list with elements li
    then CEXT(c) = CEXT(l1) v ... v CEXT(ln).

DisjointUnion
    If <c,l> in EXT(bowl:disjointUnionOf) for l a list with elements li
    then CEXT(c) = CEXT(l1) v ... v CEXT(ln) 
    and  CEXT(li) ^ CEXT(lj) = {} for 1<=i<j<=n.

Complement
    If <c,d> in EXT(bowl:complementOf) then CEXT(c) = R - CEXT(d).

SameClass
    If <c,d> in EXT(bowl:sameClassAs) then CEXT(c) = CEXT(d).

Restrictions
   If 	<r,bowl:Restriction> in EXT(rdf:type)
	<r,p> in EXT(bowl:onProperty)
	<r,c> in EXT(bowl:hasClass>
   then CEXT(r) = { x : E y  <x,y> in EXT(p) and y in CEXT(c) }
   If 	<r,bowl:Restriction> in EXT(rdf:type)
	<r,p> in EXT(bowl:onProperty)
	<r,c> in EXT(bowl:hasClassQ>
	<r,n> in EXT(bowl:maxCardinalityQ>
   then CEXT(r) = { x : E at most n y  <x,y> in EXT(p) and y in CEXT(c) }
   [and so on for the other kinds of restrictions]

Properties
   If <p,bowl:TransitiveProperty> in EXT(rdf:type)
   then <x,y>,<y,z> in EXT(p) implies <x,z> in EXT(p).
   If <p,bowl:UniqueProperty> in EXT(rdf:type)
   then <x,y>,<x,z> in EXT(p) implies y=z.
   If <p,bowl:UnambiguousProperty> in EXT(rdf:type)
   then <x,y>,<z,y> in EXT(p) implies x=z.


6. Paradox

Every BWOL interpretation has resources for the following vocabulary
   rdf:type, owl:nil, rdfs:Literal
therefore, from the finite set generation rule, in every BOWL
interpretation there is a list l and class c as follows
   <l,bowl:List> in EXT(rdf:type)
   <l,rdfs:Literal> in EXT(bowl:first)
   <l,bowl:nil> in EXT(bowl:rest)
   <c,rdfs:Class> in EXT(rdf:type)
   <c,l> in EXT(bowl:oneOf)
The class c is a singleton class consisting of rdfs:Literal.

Now from the maxCardinalityQ generation rule, there is a restriction r
as follows
   <r,bowl:Restriction> in EXT(rdf:type)
   <r,rdf:type> in EXT(bowl:onProperty)
   <r,0> in EXT(bowl:maxCardinalityQ)
   <r,c> in EXT(bowl:hasClassQ)
The restriction r contains those resources that have no rdf:type's that
belong to the singleton class consisting of rdfs:Literal.

Now from the looping rule on r, rdfs:Literal; c; and l there is a
restriction r', class c', and list l' such that
   <r',bowl:Restriction> in EXT(rdf:type)
   <r',rdf:type> in EXT(bowl:onProperty)
   <r',0> in EXT(bowl:maxCardinalityQ)
   <r',c'> in EXT(bowl:hasClassQ)
   <c',rdfs:Class> in EXT(rdf:type)
   <c',l'> in EXT(bowl:oneOf)
   <l',bowl:List> in EXT(rdf:type)
   <l',r'> in EXT(bowl:first)
   <l',bowl:nil> in EXT(bowl:rest)

The restriction r' exhibits the paradox.  It is a restriction whose
instances do not have an rdf:type property that belongs to the class whose
sole member is the restriction itself.

If <r,r'> in EXT(rdf:type) then r does not meet the requirements of r' and
thus <r,r'> must not be in EXT(rdf:type). 
If <r,r'> is not in EXT(rdf:type) then r does meet the requirements of r'
and thus <r,r'> must be in EXT(rdf:type). 

So there can be no interpretation that has a restriction like this.
However, all BOWL interpretations much have a restriction like this.
Therefore there are no BOWL interpretations.

Received on Friday, 1 March 2002 15:39:50 UTC