Data modeling gets intricateThis week, it's "Counting and sets in OWL". Intricate stuff for a newbie data modeler, and takes me back to A level maths (I scraped a pass. With tutoring).
As the title suggests there's a lot of set theory here. The chapter kicks off with a reminder about restrictions and how they can be used
- "to define notions like Vegetarian"
- "to sift information from a table"
- "to manage groups of people"
Intersections, unions and other class relationshipsThe rest of the chapter then covers how combining restrictions with the set theory language provided in OWL enables complex and precise relationships and identities to be defined. OWL set theory language includes
- intersections: an intersection of two or more classes = a new class owl:intersectionOf
- unions: all the members of all the classes combined owl:unionOf
- complements: " the complement of a set is the set of all things not in that set". owl:complementOf. This needs to be used with care as say, the complement of the set of, say, everyone in the Iranian women's football squad includes not only everyone in Iran who isn't in the national football squad, but everything else in the known (and unknown) universe: animate, inanimate and other*.
- disjoints - two sets with no members in common. eg: ":Meat owl:disjointWith :Fruit"
Anyone can (still) Say Anything about Any topicGiven the Open World Assumption – Anyone can say Anything about Any topic – this can be a tricky value to establish in many instances. However, there are some numeric values that do stay stable for long enough for, at least, upper and lower limits to be articulated. For example, the number of people on each team at the start of a league football match will be n=11 (owl:cardinality 11). The number of people in the squad from which the team is picked will be >11 (owl:minCardinality 12).
"Cardinality refers to the number of distinct values a property has".
Using owl:oneOf closes a set, but, given the Open World assumption, it should only be applied judiciously, "in situations in which the definition of a class is not likely to change – or at least not change very often".
For an example the authors take us back to the planets in the solar system:
ss:SolarPlant ref:type owl:Class
owl:oneOf (ss:Mercury ss:Venus ss: Earth ss:Mars
ss:Jupiter ss:Saturn ss:Uranus ss:Neptune) .
"When combined with owl:someValuesFrom… [this] … provides a generalization of owl:hasValue. Whereas owl:hasValue specifies a single value that a property can take, owl:someValuesFrom combined with owl:oneOf specifies a distinct set of values that a property can take."This enables an inference to be drawn that tells us that "some triple from a small set holds, but we don't know which one". Owl:oneOf, is also commonly used with owl:AllDifferent to specify that the members of a set are, as one might expect, all different from each other. This is essential, because we can't assume that things in the same set aren't called by different names.
Can't get no satisfactionThe remainder of the chapter (Yep. It was another long one this week.) is devoted to contradictions, unsatisfiable classes, inferring class relationships and reasoning with individuals and with classes.
- Contradictions exist when data modeling produces results that are "logically inconsistent": when a model reflects something impossible in the real world. Because "a model is a description of the world" it "can be mistaken".
- An unsatisfiable class is one with no members.
- Inferring class relationships involves the application of OWL's set language and other restrictions to make inferences about classes.
- Reasoning with individuals and classes. Where reasoning with individuals "draws specific conclusions about individuals in a data stream", class reasoning "determines how data are related in general". The combination of the two, in the authors' words means "we have a powerful system that smoothly integrates general reasoning with specific data transformations".
*In other words, ex:AnimateThings may not be owl:complementOf ex:InanimateThings. There might be a third class, say, ex:SchrodingersThings…