I have two addenda to this topic that are only somewhat distant from the
recent postings. (01)
Pat Hayes wrote: (02)
> In practice, there seems to far more unary/binary than anything else, (03)
Yes! (04)
> and one can routinely encode an n-ary relation is a conjunction of
> binary ones. (05)
Of course, but the interesting question is whether that is a purely
syntactic manipulation, or there is real semantics to the intermediate
object so created. (06)
My experience matches Ian's to a large extent. Examination of the
dependencies in a ternary or quaternary relationship often reveals an
intermediate object that has semantics and should actually be called out
in creating a strong ontology for the domain in question. (07)
So I can also agree with what Pat says here: (08)
> Well, I also like to have arbitrary arities available, but I have to
> concede that it is hard to think of many relations that are irreducibly
> three- or four-way. (09)
And now to an interesting example:
> The classical example of an irreducibly trinary
> relation is betweenness: (between B A C) means that B is between A and
> C. BUt of course this can be restated as: there is a linesegment L with
> A and B as its endpoints and C on it; a conjunction of one unary and
> three binary assertions. (010)
The real question here is: Did the domain need the 'linesegment'
concept at all? Did it really just need a notion of 'between-ness'?
Some of the time, adding the 'linesegment' model actually clarifies more
than one domain relationship and captures a concept that is implicit in
the mental models that the domain folk actually have. But at other
times, 'linesegment' is noise. If Fred is sitting _between_ Mary and
Jack, there is no 'linesegment' involved. And the problem for the
knowledge engineer is that things like 'linesegment' are on the
borderline -- sometimes their introduction is a good thing, and
sometimes it's semantically valid, but not a domain concept. (011)
Now, in John's example, we have an identifiably ugly artifice that has
no redeeming social value: (012)
> As an example, the English word 'add' maps to the mathematical '+',
> which represents a function with two inputs and one output.
>
> It is possible to represent such things with a concept type Add
> that represents an add operation, which is linked to three dyadic
> relations:
>
> 1. Arg1 links the Add concept to the first argument.
>
> 2. Arg2 links Add to the second argument.
>
> 3. Rslt links Add to the result. (013)
For business arithmetic, this is a purely syntactic transform of the
ternary relation
(add a b sum)
into a set of binary relations. It's an ugly artifice. (014)
But an algebraist, or a software engineer, might want to talk about
"add" as an operator. And in that case, John's model for "add" is the
general model for 'binary operator'. Like beauty, ugliness is in the
eye of the beholder. (015)
OWL limits properties to binary relations for good reason. And if you
want to work with OWL reasoners, you may have to recast true n-ary
relations into a set of reified role relations and a unary
artifice/state relation, as in Pat's example. (016)
But my experience of 30 years is that too many software engineers take
pattern workarounds like this as "the way models should naturally be
written", that such artifices "of course capture the real semantics."
What I really want to convey to young knowledge engineers is that that
transform isn't "natural"; it is a syntactic subterfuge. You do it
because you have to; you don't convince yourself that there are no
ternary relationships. (017)
-Ed (018)
--
Edward J. Barkmeyer Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8263 Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263 FAX: +1 301-975-4694 (019)
"The opinions expressed above do not reflect consensus of NIST,
and have not been reviewed by any Government authority." (020)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (021)
|