OWL builds on RDF and RDF-Schema (I talked about these briefly in an earlier post). From RDF and RDF-S, you get the ability to define classes (types of things), subclasses (more specific types of things), properties (and tie the applicability of the properties to different classes), and individuals (of a class). You can also label everything, and say where the concepts were defined using standard annotations. Interesting, but not enough, IMHO.
OWL then adds equality/inequality information for classes and properties, various property characteristics and restrictions (including cardinality), union/intersection and complement of classes, versioning information (like what an ontology is incompatibleWith), and other semantic details such as defining a class by an enumeration of its members or by specific values of its properties!
Sounds interesting - but what does this really mean? How about some examples?
- equivalentClass, equivalentProperty - You can say that a class "Dog" and a class "Canine" are equivalent. Therefore any instances of the class, Canine, are reasoned to also be instances of the class, Dog. This is very necessary when aligning databases and different representation schemes!
- disjointWith (class-level) - You can say that a class "Man" is disjoint from the class "Woman". Therefore, an instance cannot simultaneously belong to both classes - and a reasoner can infer that an instance that IS a Man, IS NOT a Woman.
- sameAs and differentFrom (individual-level) - You can say that the Man named "Frank" is different from the Man named "George". In the Open World Assumption (see my definitions post if this doesn't mean anything to you), the Man Frank and the Man George may be the same person. Sometimes this is useful, and sometimes it is dangerous. Both Open and Closed World Assumptions come in handy.
- inverseOf (property-level) - You can say that the property HasHusband is the inverse of HasWife. And, knowing that John's HasWife property is set to Mary, means that Mary's HasHusband property should/could be set to John.
- TransitiveProperty, SymmetricProperty and FunctionalProperty - These concepts take you back to your math days in high school. A transitive property means that if a is related to b, and b is related to c, then a is related to c. The most often cited example of this is ancestry. If Mary is the ancestor of Bob, and Bob is the ancestor of Sue, then Mary is the ancestor of Sue. A symmetric property is one that holds in any order. An example of this is friendship - if Mary is friends with Julie, then Julie is friends with Mary (or so we hope). Lastly, a functional property means that there is zero or one unique value for an individual (remember a function has one output for each input). Cool!
- allValuesFrom, someValuesFrom (property restrictions) - You can say that all values of the property, HasWife, must come from the class, Woman. Or, using the someValuesFrom restriction, you can indicate that at least one of the values of a property must range over the instances of a particular class. For example, a medical doctor can have a property HasCollegeDegrees, that must include at least one instance of the M.D. degree.
- oneOf - A great example of this is the property DaysOfTheWeek, which must be oneOf Sunday, Monday, Tuesday, ... (at least in English). This is your basic enumeration!
- hasValue - You can define a class by the value of its properties. For example, a Student is defined as someone with a value in its property, CurrentSchool.
- unionOf, complementOf, intersetionOf (class-level) - These allow the combination of classes and restrictions. A great example is the membership of the European Union - which can be defined as the union of all citizens of all the member countries.
No comments:
Post a Comment