Just as an added note

If you express the example in the Manchester simplifeid syntax it becomes more obvious.
See just below previous example

On 28 Aug 2006, at 19:28, Drew McDermott wrote:



[EMAIL PROTECTED]

[...]
2. Mapping UML attributes RDF properties
In OO, all attributes of a class will be inherited by its subclasses. In
RDF/OWL, there is not such "inheritance", such that

{?A ?P ?X. ?B rdfs:subClassOf ?A} => {?B ?P ?X}

(the above rule does not exist in OWL semantics)

I think some clarification is needed here.  (Perhaps just to clear up
my own ignorance about UML.)  In OO-land one often writes ?A ?P ?X as
a shorthand for "Every element of class ?A has value ?X for property
?P."  I assume that's what's meant here.  If so, then OWL _does_ have
inheritance, but it's expressed in somewhat indirect ways.

For instance, one might write (using N3 notation):

   P a owl:Property .
   A a owl:Class;
     rdfs:subClassOf [a owl:Restriction
                        owl:onProperty P;
                        owl:allValuesFrom [a owl:Class;
                                             owl:oneOf (X)]] .
   B a owl:Class;
     rdfs:subClassOf A .

PROPERTY p.
CLASS X.
CLASS B --> A.
CLASS A -->
      p ONLY {X}.


NB: this assumes X is an individual.

then it follows that the restriction p SOME X also applies to B.

IF all Bs are As AND
IF all As only have property P with values of the class {X}
THEN all Bs only have property P with values of the class {X}.

There is a further ambiguity as to whether (A p X) is intended to mean (A --> p VALUE X) or (A--> p ONLY {X}) or both. In the former case, all As are related to the individual X, but might be related to individuals, in the the latter it means that all As are related by p only to the individual X if they are related by p to anything, but might not be related to anything. The two statements are independent: neither implies the other.

If the link is between two classes then we have a potential choice of:

A --> p ONLY C. (ONLY == allValuesFrom) "All As relatede by P only to Cs" A--> p SOME C (SOME == someValuesFrom) "All As related by P to some C"

and in OWL full

        A --> p VALUE C                   "All As related by p to the class C"
        A FACT p VALUE C                "The class A is related by P to the class 
C"

Whether VALUE (value) SOME (someValuesFrom) or ONLY (allValuesFrom) the restriction is "inherited" by all subclasses. The phrase "inheritance" in this case is just a specific case of logical implication.

The fact of a link between the two classes, qua classes is not inherited because it is about the classes themselves. It is a meta - statement rather than a statement.

The problem is really in the transformation from RDF to OWL, which is either ambiguous - if you take the simple forms such as (A P X) or roundabout and verbose if you take the official representation. It is inevitable that simple transformation from RDF to OWL will be ambiguous because OWL is richer than RDF. Therefore there is not enough information in a simple RDF representation for a transformations to OWL without making some added assumptions.

What we are missing is a clean convention of the assumptions for "projecting" OWL onto RDF, and onto RDF(S). To do that we need conventions for specifying the intended semantics of (A P X) in RDF. If A and X are both classes, then the literal RDF interpretation is almost never the literal interpretation of the RDF without supplemental assumptions. To take a concrete example The class Finger is not a part of the class Hand, rather Fingers are parts of Hands, or rather more precisely all Fingers are part of some Hand (or were at some time except in truly pathological cases we don't usually worry about.)

Returning to the UML issue, a line with a cardinality attached in UML A -- p_association -- [n..m] C can be read in OWL 1.1 which includes qualified cardinality constraints as

        CLASS A --> p_association MIN n MAX m C;
                        -->  p_association ONLY C.


which will necessarily be true of any subclass of A. (This doesn't take account of the possibility of n-ary relations in UML-2, but covers almost all common cases.)


 or in N3 notation

  P a owl:Property .
  B a owl:Class.
   A a owl:Class;
     rdfs:subClassOf [a owl:Restriction
                        owl:onProperty P;
                        owl: [a owl:Class;
                                             owl:Min(n) C] ;
             subClassOf [a owl:Restriction
                       owl:onProperty P
                       owl:[a owl:Class
                                             owl:Max(m) C].







Any inference one can make about an element of class A having value X
for property P one can also make about an element of class B.

However, if by ?A ?P ?X is literally meant that the class A itself has
a certain property, then the inference rule is simply wrong.  For
instance, if P = 'size' and X = 1000, then obviously one wouldn't
conclude that every subclass of a class with 1000 elements had 1000
elements.

One caveat: I assume that UML, like most OO systems, imposes few
formal limits on inheritance, and in particular allows it to be
"overridden," perhaps constrained by the dictates of some formal
nonmonotonic framework (although I doubt it).  In contrast, OWL is
100% logically pure, so that no exceptions to the inheritance rule are
allowed.

                                             -- Drew McDermott



-----------------------
Alan Rector
Professor of Medical InformaticsallValuesFrom
School of Computer Science
University of Manchester
Manchester M13 9PL, UK
TEL +44 (0) 161 275 6149/6188
FAX +44 (0) 161 275 6204
www.cs.man.ac.uk/mig
www.clinical-esciences.org
www.co-ode.org



Reply via email to