- From: Saied Tazari <Saied.Tazari@zgdv.de>
- Date: Tue, 25 Mar 2003 10:15:30 +0100
- To: lchewhun@dso.org.sg
- CC: www-rdf-logic@w3.org
lchewhun@dso.org.sg schrieb: > Hi, > > I'm interested in what CANNOT be represented (declared) in OWL/DAML. Your > comments or pointers to papers are much appreciated. > > What I'm hoping to do is to be able to represent constraints (or axioms or > rules) in a DAML ontology so that an inferencing engine can check the ontology > for consistency. For instance, if I have > > <age rdf:about="#Tom"> <age_type rdf:about="#child"/> </age> > <age rdf:about="#John> <age_type rdf:about="#man"/> </age> > <less rdf:about="#child"> <age_type rdf:about="#man"/> </less> This is erroneous. You certainly don't mean that 'Tom' is of type 'age' and if it were so, you cannot embed a subdescription without a "connector" predicate (i.e. you must change 'rdf:about' in '<age_type ...' into 'rdf:resource'). I would define Baby, Child, TeenAger, Youth, Man, Woman, OldMan, and OldWoman as subclasses of a class called Person. The class Person has an attribute called 'age' that accepts values of type 'xsd:nonNegativeInteger' and an attribute called 'youngerThan' which accepts instances of Person as value. One can use daml:Restriction to say a Baby is a Person with 0<=age<=2, a Child is a Person with 3<=age<=12, a TeenAger is a Person with 13<=age<=19, etc. (I must add that I don't know how I can express these ranges in OWL; one way would be to define new datatypes, such as zeroToTwo, as subtypes of xsd:nonNegativeInteger and then restrict 'age' to only accept values from those subtypes.) Anyway, this way the rule that 'a Child has an age less than the age of a TeenAger' need not be defined explicitly, but if we did want to, then I don't know how I could! > in the DAML ontology, I would like to define an axiom <younger> in terms of > <age> and <less> in such a way that the additional statement > > <younger rdf:about="#John"> <age_type rdf:about="#Tom"/> </younger> > > would be flagged as inconsistent. Again, the above XML is not RDF conform, but I must add that I also don't know how I can express the following rule in OWL: for all instances p1 and p2 from Person if p1 youngerThan p2 then p1.age <= p2.age -- Saied
Received on Tuesday, 25 March 2003 04:15:50 UTC