- From: John Madden <john.madden@duke.edu>
- Date: Wed, 6 Jul 2005 09:56:34 -0400
- To: public-swbp-wg@w3.org
- Message-Id: <5766E87A-D4DA-4009-86A9-FCFAFAF2C475@duke.edu>
Natasha, Alan & Pat, and others, I've been studying the 6/2005 draft on N-ary relations, and I want to say what an exciting and thought-provoking piece of work it is. This has resulted in somewhat extended notes. Since the draft internally invites comment, I hope you might consider the following observations from a non-member for what they're worth. If there are misconceptions in what follows, I apologize up front and ask your collective indulgence. Best wishes, John Madden Duke University Durham, NC john.madden@duke.edu ======================================== (1) ABSTRACT: “...more than one individual or value. These relations are called n-ary relations.” This is purely stylistic, but... really, unary and binary relations are also n-ary relations (n=1, n=2). So even though I understand this has become the "loose" usage in some (database) circles, I think it's more appropriate to call these “multinary relations” (some people use “polyary”, but I don't like that; the “multi-” prefix is in keeping with the Latin-derived pattern set by unary, binary, ternary, etc.) You could also call them “(n>2)-ary relations.” Or “relations of arity >2”. (2) USE CASE EXAMPLES I think it's a shame to leave out the most classic example of all (and the one that in my experience most reliably produces insight): namely the between relation. How about an example like: “New York is located between Boston and Philadelphia” or “2 is an integer with magnitude between 1 and 3.” (3) PATTERN 1: “Christine has a breast tumor with high probability.” First of all, this is a wonderfully thought-provoking section, congratulations. But a suggestion: You've specifically chosen an example of a relation modified with a probability. While I love the boldness of this, I think the example is infelicitous. For the unsuspecting reader, it could conflate issues of representational best practice in RDF-OWL with tough issues of how to implement probabilistic reasoning in description logics. You leave yourself open to the objection whether this particular representation pattern is really suitable for use in construction of knowledge-bases upon which automated probabilistic inferencing will be performed. (To which, I think, the most honest answer is, “Nobody knows”; since we really don't know how probabilistic extensions to description logics will best be implemented on the Semantic Web. In fact, if I were making a public OWL ontology today that included probabilistic info, I'd probably use an annotation property.) There is also the related but intellectually prior objection, that the meaning of probability has multiple possible formal semantics. So it would take more explanation to indicate what formal sense of “probability” was intended here; and hence by reason of this vagueness, it’s not an apposite choice as a paradigmatic example for any particular representation alternative. But I can think of alternative, less controversial examples of semantically modifying a relation with this pattern. Look at it this way: this pattern could be understood as an RDF/OWL-style formal language replacement for the natural language (NL) adverb construction. In NL, adverbs specialize or restrict verbs. The owl:objectProperty can be thought of as loosely analogous (in some situations) to the verb in a natural language sentence. OWL doesn’t seem to “like” the idea of modifying owl:objectProperty with other properties (i.e. while you can define an owl:objectProperty that has a domain of owl:ObjectProperty—in effect constituting an “adverb slot” on a property—this offers no obvious---to me---advantages over simply using the OWL-native strategy of just defining a subproperty). By contrast, this pattern might be a reasonable alternative to subproperties in certain cases where NL would tend to resort to an “adverb”. For example, suppose you wanted to reason about a world that included facts like: ”Conrad is flying slowly to Zanzibar with Jimmy.” ”Dave is driving to Abilene with Gene.” “Ed is driving slowly to Butte with Howard.” “Frank is driving at breakneck speed to Cucamonga with Izzy.” One way would be to define properties isDrivingTo and isFlyingTo with domain Person and range Place, and then subproperties isFlyingSlowlyTo, isDrivingSlowlyTo and isDrivingAtBreakNeckSpeedTo. You’d still have to come up with a way of representing the passenger relation. You could define a second property isTravellingWith with domain and range Person, but that seems to introduce some semantic redundancy that invites mismodelling. A very reasonable alternative is to nominalize or “gerund-ify” the verb (recall that a gerund is noun formed from a verb, typically using the “-ing” ending) and represent this way:     These examples are very close in spirit to Example 1, but they avoid the complications of using probability. They also show how this pattern can circumvent a “combinatorial explosion” of subproperties by allowing re-use of the hasSpeed property and its associated value partition. (4) USE CASE 2: This one is very similar to Use Case 1, but I agree that it’s distinguishable. In fact, I think it’s the most familiar and broadly applicable of all the use cases presented, and I’d give it first priority in the exposition. For example, Christine has severe, terminal pneumonia with multiorgan failure could be represented many ways, but one (by my lights) good one would be to interpret it as: “Christine’s got disease situation going on: it’s pneumonia, it’s multiorgan failure, it’s severe, and it’s terminal”. So it's a kind of pattern that will get used all the time in actual knowledgebases.  (5) USE CASE 3: Considerations when introducing a new class… In the diagrams, you use the “_:” notation in the “aggregating” node. This suggests these should be implemented as blank nodes. You address this, where you say “we did not give meaningful names” to them. Then at the end of the draft, just before the notes, you then add some more discussion of this issue in “Anonymous vs. named instances in these patterns”. These two sections do not quite make the same suggestions, and ought to be reconciled and merged into a single discussion, in my view. I see several issues: (a) A blank node does not merely lack a “meaningful name”---blank nodes have no names at all, and are referenceable only indirectly, by querying their properties. I think underlying this discussion, there’s an important distinction that is not coming through clearly between “blank” nodes and “without-explicitly-named-type” nodes. (b) If the aggregating node is implemented as a blank node, then I would just like to raise a possible concern about staying within OWL DL. In OWL DL there are certain constraints (that I don't claim to fully understand) on making a blank node the object of more than one triple (see the “Avoid structure sharing section in the OWL reference, and see also Bechhofer & Carroll, Parsing OWL DL: Trees or Triples?, WWW2004, May 2004). In the examples given, it strikes me as pretty likely that the aggregating node would be a juicy target to be the object of other triples. (For example, in a medical knowledgebase with a terminology and with an assertional store comprised of many subdocuments, it would be natural to want to refer to "Christine's disease situation" from later OWL subdocuments.) So it might (please, check with an expert from S & AS) be preferable therefore to make it a named node in order to stay within OWL DL. (Apololgize if this is a red herring.) (c) You mention “a special subclass of the n-ary relation class”, and you comment that maintenance could become an issue. Does this mean you actually recommend having a named “utility” class in your ontology (something like NAryRelation), and to make these anonymous individuals be instances of this class? Well, what I see this pattern as doing is creating an anonymous individual that need not be an instance of any explicitly named class. Whether that individual has inferred type owl:Thing or some subtype of it (or, even, of owl:Class, in which case we’re in OWL Full)—to my mind, that’s something that a classifier should infer (in DL at least), and would depend a lot on what other constraints already exist in the ontology, especially, what domain and range constraints pre-exist on the properties that reference this unnamed individual (here: has_temperature, temperature_value, temperature_trend). In other words, at least in DL, why worry about maintaining the type of the unnamed node (because the classifier could do the maintaining)?. (d) At the very end of the draft where you discuss the utility of blank nodes, you say that blank nodes would be appropriate for cases where you want to indicate equivalency. But I disagree; by my lights, that would actually be a great case for named nodes, because then you could explicitly state an owl:sameAs relation among several such nodes. So, for example, in a medical record comprised of many OWL subdocuments, you could use sameAs to indicate that the “disease- situation” node characterized in document A was actually referring to the the same “disease situation” characterized in document B using a different node—-but this would be convenient and reliable only if the nodes in question were named.
Attachments
- text/html attachment: stored
- image/png attachment: image003.png
- image/png attachment: image006.png
- image/png attachment: image009.png
- image/png attachment: image012.png
- image/png attachment: image015.png
- application/pkcs7-signature attachment: smime.p7s
Received on Wednesday, 6 July 2005 13:56:53 UTC