I wrote: (01)
>> (3) Matt doesn't mention the CDIF notation for "subtype"/subsumption.
>> This is a foundational concept in OWL, and it is very important to
>> modeling measurement concepts. In particular, every 'measurement unit'
>> is_a 'quantity'. I would be wary of a notation like:
>> measurement-unit -- is a --> quantity (02)
Matthew West wrote:
> [MW] I do not recall that CDIF has a specific notation, so you can either do
> what you have done here, or quite often I use the EXPRESS notation as an
> extension. (03)
My point is that we need notation for subsumption, at least, and I think
it useful to have a notation for unions and intersections and exclusions
(all of which the ODM added to UML, for OWL). I also believe in ternary
and occasionally quaternary relations, and I prefer to see some
distinguishing notation for them. (The VIM has at least one ternary
relationship in it: system-of-units appoints base-measurement-unit for
quantity-kind.) (04)
>> because it makes the notation ambiguous. 'is_a' is a class-to-class
>> relationship, rather than an instance-to-instance relationship (like
>> 'part of'). It models an axiom, not just a relation. That is:
>> A -- is part of --> B
>> models a relation "is part of" whose domain is things that satisfy
>> relation (class) A, and whose range is things that satisfy relation B -
>> -
>> a vocabulary item. It has two free variables. Whereas,
>> A -- is a --> B
>> models a proposition, a statement: Every A is a B. Formally,
>> (forall x) (if (A x) (B x))
>> It has no free variables. And the model asserts that proposition,
>> making it an axiom.
>> So I would object to overuse of the arrow notation, if it leads to such
>> an ambiguity.
>
> [MW] I'd just like to push back on this a bit. I agree that you need to be
> careful to distinguish between relationships between classes and
> relationships that hold between members of classes. However, I had
> understood subtype/supertype as being able to be seen in either way. So that
> one way of seeing subtype/supertype is as an identity relationship between
> members of the subtype and members of the supertype.
>
> Comments? (05)
This might be better discussed on the Forum exploder. (06)
In languages like CDIF and UML, specifying A and B to be "classes" or
"entities", defines a relation with one free variable (A x) or (B x),
where x is an arbitrary thing from the universe of discourse -- a
discovered entity instance or object -- and the "result" of (A x) is
either true or false -- the new x either is an A or it isn't. (It is
possible that we don't know which, but there is an underlying
epistemological assumption that exactly one of those statements is true,
axiomatized as the "law of the excluded middle": (forall x)(OR (A x)
(NOT (A x)).) (07)
And in those same languages: "A is-part-of B" introduces a relation
(is-part-of a b)
which maps an ordered pair of arbitrary things (a, b) to either true or
false. There are some semantic scoping rules that have various
interpretations, but let us assume that "is-part-of" is a unique
relation that is specified to be meaningful only for class A. (The
alternative is that it specifies a relationship "A:is-part-of", which is
different from an "X:is-part-of" relationship for any other domain X.)
That means that the specification implies an axiom:
(forall a b)(if (is-part-of a b) (A a))
in any such actual relationship, the first thing must be an A.
And similarly, the second thing must be a B. (08)
Notably, this specification, of itself, does NOT say that every A is
part of some B. In UML, I can add a notation, which we could represent as:
A -- is part of --> 1..1 B
and that adds two more axioms:
(forall a)(if (A a) (exists b)(is-part-of a b))
If a thing is an A then there is a b that it is part of. Each A
is-part-of at least 1 B. And:
(forall x b c)(if (and (is-part-of x b) (is-part-of x c))
(= b c))
If a thing x is a part of two things b and c, b and c must be the same
thing. Each A is part of at most one B. (09)
So, following the above semantic interpretation patterns:
A -- is-a --> B
means (forall x y)(if (is-a x y) (A x))
If for any two things x and y "x is-a y" is true, then x must be an A.
The alternative interpretation, noted above, is that:
A -->is-a --> B
specifies a relationship "A:is-a", which is different from any other
"is-a" relationship. I doubt that either of these is the interpretation
we want for "is-a", which means that the notation doesn't have
consistent semantics. (010)
And this goes further. If one chooses Matthew's SQL-like
instance-to-instance identity relationship as the meaning, we have the
further problem that
A -- is-a --> B
does not by itself say that every A is-a some B. We would need
something like:
A -- is-a --> 1..1 B.
That is, we want to assert that the instance-to-instance relationship
must exist. "pediatrician is-a doctor" is different from
"pediatrician is-a-member-of preferred-provider-organization". (011)
This is why I am uncomfortable with such ad hoc conventions. It's not
that one cannot agree to use: A -- is-a --> B to represent subsumption;
it is that one must be clear that:
-- is-a -->
has importantly different semantics from
-- <term> -->
where the <term> is anything other than "is-a". And this violates what
Bernd Wenzel calls the Law of Least Astonishment: it encourages false
analogies and erroneous interpretations. (012)
-Ed (013)
--
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 (014)
"The opinions expressed above do not reflect consensus of NIST,
and have not been reviewed by any Government authority." (015)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/uom-ontology-std/
Subscribe: mailto:uom-ontology-std-join@xxxxxxxxxxxxxxxx
Config/Unsubscribe: http://ontolog.cim3.net/mailman/listinfo/uom-ontology-std/
Shared Files: http://ontolog.cim3.net/file/work/UoM/
Wiki: http://ontolog.cim3.net/cgi-bin/wiki.pl?UoM_Ontology_Standard (016)
|