A Response to "AGAINST IDIOSYNCRASY IN ONTOLOGY
DEVELOPMENT"
Barry Smith with responses by Matthew West
The ONTAC-WG forum has been discussing the issue of
whether ISO 15926 (the oil and gas, etc., ontology):
http://www.tc184-sc4.org/wg3ndocs/wg3n1328/lifecycle_integration_schema.html
can
express simple inferences involving relations, and more generally whether this
ontology provides a suitable platform for high-level data and information
efforts.
Matthew responds to my request for clarification
concerning the capacity of 15926 to handle simple inferences as
follows:
> >MW: I
understand your difficulty because you are used to different
>
>formalisms. I have a sub-relation that has a relationship to the two
>
>objects that you relate. I can see by inspection, that if I join (in
>
>relational terms) my two relations I get yours.
Matthew has since sent me further documentation from his secret store, in which it does indeed seem that he can say some of the things we need to say, but only on a very broad reading of ‘say’, since the documentation he sent me consists primarily of diagrams. It is not clear that there is some sort of logical representation underlying these diagrams. What is clear, already from the above website, is that most of the formalism presented in the 15926 ontology is idiosyncratic.
MW: Interesting word "idiosyncratic", has a lot of perspective in it. Now me, I find languages like KIF and (even more so) OWL idiosyncratic.
The problem with using an idiosyncratic formalism,
i.e. a formalism which (on the face of it, at least) relates to none of the
things other people in the world of ontology development are doing,
MW: Actually, there is more ontology work going on in the development of data models than there is using the formalisms that are found here. It is just that cross over between the communities is unusual.
is that, particularly for incompetent persons like me, there is a very steep learning curve, which I illustrate by considering some of the entities the ontology lists. (Warning: THIS IS VERY LONG.)
MW: Yes, I appreciate
this. I well remember the learning curve I had getting to grips with KIF in the
early days of the SUO.
Note again: much of the apparent
nonsense in what follows derives almost certainly from my own failure to
understand the documents which have been made available on the web. Perhaps
there are further companion documents, somewhere, which will throw the needed
light on the points discussed. But in any case, my failures in understanding
will, I hope, bring the advantage that they can teach us lessons about the
general principles which a good ontology should satisfy.
MW: Probably the main
companion document you would need is ISO 10303-11 EXPRESS Language Reference
Manual (I did mention it previously). But we use a relatively small subset of
it, so the informal description I gave you of the bits we use is probably more
useful than the definitive source.
FIRST GENERAL
LESSON
THE PRINCIPLE OF OPENNESS: A GOOD ONTOLOGY SHOULD HAVE NO SECRET BITS AND ALL ITS FEATURES SHOULD BE EXPLAINABLE IN WRITING
MW: This is an interesting prejudice. As an engineer, I would much prefer a good drawing. A drawing need be no less formal than words (if you doubt me ask John Sowa about Conceptual Graphs). As it happens, EXPRESS has both a lexical and graphical form. If you look at the section underneath the definition entitled "EXPRESS Specification" you will see the lexical form (the tutorial slides I sent you gave illustrations that corresponded to the diagrams). There is also a lexical form for the instances of the data model. This is defined in ISO 10303-21 (or simply Part 21). I will inflict that on you if you insist.
----------------------------------
Consider, to get us going, the
following sample entry from the 15926
ontology:
class_of_cause_of_beginning_of_class_of_individual
DEFINITION:
A <class_of_cause_of_beginning_of_class_of_individual> is a
<class_of_relationship> that indicates that a member of a
<class_of_activity> causes the beginning of a member of a
<class_of_individual>.
That there is no
‘cause_of_beginning_of_individual’ in the ontology. The term in question
suggests that we are to focus ourselves instead on the causes of beginnings of
classes. Yet the definition (in its
strange, roundabout way) seems to be about the causes of the beginnings of individuals nonetheless (i.e. it is
about the members of the class of individuals). (This is good, because the “Note
1” provided in the entry for ‘class’ suggests, indeed, that classes do not have
beginnings, so that there could not literally be a
<class_of_cause_of_beginning_of_class_of_individual>.)
MW: This is a good challenge since there is indeed no "cause of beginning of individual" explicitly in the ontology, but it is there implicitly as the join across the "cause_of_event" and "beginning" relations.
Note that we have here a reference here to the […]
beginnings of […] individuals, yet there is no place for individuals in the
ontology but only (oddly) for what are called ‘possible individuals’ and ‘actual
individuals’? More on this below.
MW: Yes we know you don't
like possible individuals.
GENERAL LESSON
PRINCIPLE OF COMPOSITIONAL CONSTRUCTION: A GOOD ONTOLOGY SHOULD RESPECT THE PRINCIPLE THAT IF IT USES IN A SYSTEMATIC WAY TERMS OF THE FORM ‘A X B’ (WHERE X IS A TERM-BINDING OPERATOR LIKE ‘OF’) THEN IT SHOULD INCLUDE ALSO THE CORRESPONDING A AND B TERMS.
MW: There is no intention
that you should extract meaning from the structure of the terms. In principle
the names of the entity types could be "A", "B",
"C", ... We do use naming conventions for convenience, but we only
keep to them when that is also convenient, and we abbreviate labels when we can.
Most of the ‘class_of X’ entries in the ontology are indeed such
that ‘X’ is also included; not however the entry
‘class_of_cause_of_beginning_of_class_of_individual’. Why not? Are the
corresponding classes without members? If so, are they all identical to the null
class referred to in a note under the heading for ‘class’? If so, why do they have separate entries in the
ontology?
MW: Actually quite often X is not included. You point to quite a few below. The reason for this is that apart from being an upper ontology, it is also the specification for the database to hold any extension to the ontology. This means we need the entity types for them to be instances of. For this we need the class_of_X entity types, but not the Xs. They can be the first entry in class_of_X.
------------------------------------------
class
DEFINITION:
A <class> is a <thing> that is an understanding of the nature of
things and that divides things into those which are members of the class and
those which are not according to one or more criteria.
A class is an understanding?! Of the nature of things!?
MW: Yes, I quite agree. I
tried to get that changed, but failed. People preferred the warm fuzzy feeling
this definition gave them. I now have some ammunition, so thank you for that.
What is the logic which governs such understandings? What, in other words, is
the theory of classes which underlies this ontology? Astonishingly, it is not
some standard version of set theory, but rather the highly specialized
non-well-founded set theory devised by mathematician-philosophers for the
purposes of solving the liar paradox and allowing logical modelling of
non-terminating computational processes, and which allows cases where a class A is a member of itself, thereby
generating an infinitely descending chain
… A e A e A e A e A e A e A e A e A e A e A e A e A
MW: I really don't
understand the problem here. If you know that you have non-well-founded sets and
you write programs that insist on doing this, you get exactly what you deserve.
In any case, the same situation pertains with whole part when proper parts are
not insisted upon, and no one thinks that is so dreadful.
This is fun stuff, indeed, and it is pleasing to think that Shell would pay for it. But for present purposes it is, surely, rather like using the mathematics of quantum field theory to balance a checkbook.
MW: Actually it is the
class theories that tend to be packaged with standard set theory that are what
give me amusement.
Even more problematic, however, is the fact that, in
addition to the various, odd, ‘class’ terms, we also have:
difference_of_set_of_class
enumerated_number_set
enumerated_property_set
enumerated_set_of_class
intersection_of_set_of_class
union_of_set_of_class
Why
is ‘set’ used in this way in the ontology, yet there is no entry for ‘set’ and
no explanation for this term? How does the theory of sets relate to the theory of
classes, and how do both of these relate to ordinary set theory? Question: does
non-well-founded set theory apply not only to the classes but also to the sets
in this ontology?
MW: Yes. However, all but a few of the classes/sets turn out to be well founded sets, even hierarchical ones.
These questions are all the more urgent given that a
tiny microtheory of sets is included in the definitions of the mentioned six
terms, for example in:
difference_of_set_of_class
DEFINITION: A <difference_of_set_of_class> is
a <functional_mapping> that indicates that the membership of the result
<class> is the difference between the membership of the union of the
classes that are members of the <enumerated_set_of_class> and their
intersection.
There is, I think, a way of understanding this in such a
way that it makes sense. Indeed, the
EXAMPLE The difference of the
<enumerated_set_of_class> {{A,B,C},{B,C,D},{C,D,E}} is
{A,B,D,E}.
shows that we are in fact dealing with something that is
perfectly commonplace from the point of view of the ordinary theory of sets
(something called ‘naive set theory’ – see e.g. the book of the same name by
Paul Halmos).
Not only do we have non-well-founded sets, the ontology
complicates its class (set?) theory still further by allowing also classes with
possible members:
“[a]lthough there is only one <class> that has no
members, there can be a <class> that has no members in the actual world,
but which does have members in other possible worlds.”
MW: Would it not be
stranger to have possible individuals but no classes they could be members of?
The most
conspicuous problem with the treatment of class/set in the ontology, however,
turns on its inclusion of the many ‘class_of_X’ or ‘class_of_class_of_X’ terms.
For it is normally (and correctly) assumed that, if sets or classes are needed
in an ontology, and if one needs to iterate the ‘set of’ or ‘class of’
relationship, then one does this by means of some general facility, rather than
by giving names in an ad hoc way to just those ‘class of’ or ‘class of class of’
terms one thinks one needs.
MW: The reason for this
was given above. We are at least in part specifying a database to hold the
extension to the ontology.
GENERAL LESSON
THE PRINCIPLE
OF MODULARITY
A GOOD ONTOLOGY SHOULD RESPECT THE PRINCIPLE TO THE
EFFECT THAT: IF IT USES IN A SYSTEMATIC WAY OPERATORS OF THE FORM ‘A OF’ (E.G.
SET OF, CLASS OF, LOCATION OF …), WHICH ARE DEALT WITH PERFECTLY WELL ALREADY IN
SOME RESOURCE USED ALSO BY OTHER ONTOLOGY DEVELOPERS AND HAVING USEFUL LOGICAL
PROPERTIES TAILORED TO THE NEEDS OF THE ONTOLOGY, THEN IT SHOULD UTILIZE THE
MACHINERY OF THIS RECOGNIZED RESOURCE
--------------------------------
In
addition to ‘class_of_cause_of_beginning_of_class_of_individual’ we are provided
by 15926 with a number of other ‘class of X’ terms for which the corresponding
‘X’ is
missing:
class_of_composite_material
class_of_compound
class_of_dimension_for_shape
class_of_feature
class_of_feature_whole_part
class_of_functional_object
class_of_inanimate_physical_object
class_of_indirect_connection
class_of_individual
class_of_information_object
class_of_information_presentation
class_of_information_representation
class_of_isomorphic_functional_mapping
class_of_molecule
class_of_number
class_of_organism
class_of_organization
class_of_particulate_material
class_of_person
class_of_property_space
class_of_relationship_with_related_end_1
class_of_relationship_with_related_end_2
class_of_relationship_with_signature
class_of_representation_translation
class_of_scale_conversion
class_of_sub_atomic_particle
MW: These are all
deliberately missing for the reasons given above.
ONE REASON WHY THE PRINCIPLE OF COMPOSITIONALITY IS SO IMPORTANT, IS
THAT IT HELPS THE BUILDER OF AN ONTOLOGY TO AVOID ERRORS. HENCE WE SHOULD EXPECT
THAT THESE TERMS AND THEIR DEFINITIONS ARE LIKELY TO HAVE A PECULIAR HIGH
LIKELIHOOD OF CONTAINING ERRONS. AND SO, INDEED, IS THE CASE:
Puzzle: While both ‘class of feature_whole_part’ and
‘feature_whole_part’ are included in the ontology, we have ‘class_of_feature’
but not ‘feature’. Why not?
MW: We need the
constructs to store instances of these, but already have suitable a suitable
construct for features. Feature will be present in the Reference Data part of
the ontology.
Puzzle: Why, when we have ‘class_of_organism’ and ‘class_of_person’ in the ontology, do we not also have ‘organism’ and ‘person’? Are there no persons in the world of the ISO 15926 ontology designed ‘to support the integration and handover of large engineering artefacts that has been developed by the Oil and Gas and Process Plant industries’?). Was ‘person’ left out deliberately, when ‘stream’ and ‘representation_of_Gregorian_date_and_UTC_time’ were included?
MW: Again, these have deliberately been relegated to the part of the ontology held as Reference Data. It is just a design choice (in an information systems sense).
-------------------------------------------
class_of_relationship_with_related_end_1
DEFINITION:
A <class_of_relationship_with_related_end_1> is a
<class_of_relationship> where a particular <thing> is related in the
<class_of_relationship>, rather than the members of a <class>. The
related <thing> plays the <role_and_domain> indicated by the
class_of_end_1 attribute.
HERE AGAIN WE SEE A FAILURE TO FOLLOW THE
PRINCIPLE OF MODULARITY. THERE IS A PERFECTLY GOOD THEORY OF RELATIONS, RANGES,
DOMAINS, ORDERED PAIRS, AND OF THE TRANSITIVITY, SYMMETRY, ETC. OF RELATIONS.
BECAUSE THIS THEORY AND ITS TERMINOLOGY WAS IGNORED, THE RESULT IS A TERM WHICH
NO ONE WOULD ORDINARILY FEEL THE NEED TO USE, AND A DEFINITION WHICH NO ONE
WOULD ORDINARILY BE IN A POSITION TO UNDERSTAND. MOREOVER, WHEN WE SEE THE
ATTACHED
EXAMPLE Products manufactured by Bloggs & Co is a
<class_of_relationship> that points to Bloggs & Co as the related
<thing>.
THEN THIS REVEALS THAT WE ARE IN FACT DEALING WITH A VERY
SIMPLE ORDERED PAIR INVOLVING A CLASS AND AN INDIVIDUAL.
MW: That is incorrect. We
are dealing with a class_of_relationship (sub-relation) that is constrained to
have a constant in one place for its member relationships. One of the problems
here is that data models have no way of representing instances of entity types,
so we have to build a meta-model to allow us to do this at the instance level.
GENERAL
LESSON
STAY AS CLOSE
AS POSSIBLE TO THE TERMS PEOPLE ALREADY USE
A GOOD ONTOLOGY USES ONLY TERMS FOR WHICH EITHER 1.: THERE IS A REASONABLE EXPECTATION THAT INTENDED USERS OF
THE ONTOLOGY WILL HAVE A NEED FOR THEM, OR 2.: SUCH TERMS ARE NEEDED TO FILL
GAPS IN THE ONTOLOGY IN ORDER TO CREATE A COMPLETE HIERARCHY
GENERAL LESSON
USE
INTELLIGIBLE DEFINITIONS
A GOOD ONTOLOGY USES DEFINITIONS WHICH ARE BOTH (1)
HUMANLY INTELLIGIBLE (TO AVOID ERROR IN HUMAN USE AND MAINTENANCE) AND (2)
FORMALLY SPECIFIABLE (IN SUCH A WAY AS TO SUPPORT SOME STANDARD TYPE OF
SOFTWARE)
---------------------------------------
class_of_relationship_with_signature
DEFINITION:
A <class_of_relationship_with_signature> is a
<class_of_relationship> that may have a <role_and_domain> specified
for each end.
What is a relationship_with_signature? What is a signature?
What is an end?
MW: Well this is a community thing. (One expects people who read a data model to be familiar with the basic terminology of data models). If you were in the data modelling community this would be quite natural, and if I used words like tuple, or relation there I would get a blank stare. But I am not modelling relations and tuples and tuples places, but entity (types) - represented by boxes, and relationship (types) - represented by lines. It is then quite natural to talk about the ends of relationship (types).
MW: Signature should be
explained and hasn't been. I will put it on the action list. It simply means a
class of relationship that has relationships that constrain the role and domain
for one or both of its places.
Is a <class_of_relationship> which does not have a <role_and_domain>
specified for each end also a class_of_relationship_with_signature? In every case? Only in some cases?
If so in which cases?
MW: You seem to have missed the EXPRESS specification which is the formal (computer interpretable) part of the definition. This says that specifying one or other end is optional. If neither end is specified, then you would just have a class_of_relationship.
GENERAL
LESSON
AVOID
SUBJECTIVITY IN DEFINITIONS
IN FORMULATING DEFINITIONS, AVOID PHRASES LIKE ‘WHICH MAY ...’ WHICH INVITE SUBJECTIVE INTERPRETATION.
MW: How would you
describe something optional then?
-----------------------
class_of_individual
DEFINITION:
A <class_of_individual> is a class whose members are instances of
<possible_individual>
Why do we have here ‘class_of_individual’ on
the class side, but only ‘possible_individual’ on the member (?) / instance (?)
side (and on the right hand side of the definition).
MW: Because we chose to
abbreviate the name below the top level possible_individual.
-----------------------
class_of_information_object
DEFINITION: A
<class_of_information_object> is a <class_of_arranged_individual>
whose members are members of zero or more
<class_of_information_representation> and of zero or more
<class_of_information_presentation>.
NOTE Usually, it is a physical_object (like a paper document) that
is classified as a <class_of_information_object>.
EXAMPLE Newspaper is
a <class_of_information_object>.
Why do we have ‘a paper document
is classified as a <class_of_information_object>’ rather than the
seemingly more sensible: ‘a paper document is classified as a
<information_object>’? Why are classes of information objects included in
the ontology but not information objects? Why is a newspaper a
class of information object
rather than an instance / member of this class?
MW: Firstly, examples are there to show instances of the entity type defined. They are not part of the ontology defined in this standard.
MW: Secondly, you seem to have
misread this. The example says "Newspaper is a <class_of_information_object>"
not "A newspaper is a <class_of_information_object>". A
newspaper would indeed be a member of the class newspaper.
The answer to this last
question is of course: ‘Idiot, Smith, you have again willfully misunderstood
what the ontology is getting at’.
MW: You are too hard on yourself. We are all human.
Indeed. I have misunderstood because the
ontology itself fails to conform to the
GENERAL
LESSON
PRINCIPLE OF
TYPES AND INSTANCES
A GOOD ONTOLOGY IS CAREFUL TO MARK SYNTACTICALLY THROUGHOUT, BOTH IN THE ONTOLOGY ITSELF AND IN ITS DOCUMENTATION, WHETHER IN ANY GIVEN CONTEXT IT IS REFERRING TO TYPES (UNIVERSALS, KINDS, GENERALS) OR TO INSTANCES (PARTICULARS, TOKENS, INDIVIDUALS).
MW: I would be interested
if you could find a real example of this.
GENERAL LESSON
PRINCIPLE OF
HELPFULNESS
A GOOD ONTOLOGY HAS HELPFUL DOCUMENTATION
What is meant by ‘Newspaper is a
<class_of_information_object>’ is of course something like:
newspaper is_a information
object
(i.e.: The type newspaper is_a_subtype_of the type information_object.) But now we see that we can say the very same thing in terms of instances, and using English grammar: a newspaper is an information object.
MW: Which I would
expect to happen at the Reference Data level.
-------------------------
class_of_compound
DEFINITION:
A <class_of_compound> is a <class_of_arranged_individual> whose
members consist of arrangements of molecules of the same or different types,
bound together by intermolecular forces. This includes both mixtures and
alloys.
EXAMPLE Water, sulphuric acid, sand, limestone, and steel can be
represented by instances of <class_of_compound>.
Does this mean
that a given portion of water is an
instance of <class_of_compound>? Or that the corresponding substance-type is an instance of this class?
If the former, should not the ontology, given its purpose, provide (or
better: refer or link to) a good theory of portions and masses of stuff (and
indeed a good ontology of liquids)? (As far as I can tell from the supplementary
material provided by Matthew, portions are called ‘batches’ by 15926, which
includes axioms like:
A Batch is a type of Material.
All Batches are Materials.
All Equipments are Materials
Each Material must be either a Batch or an Equipment – but not both
MW: Actually these were just used as illustrations of things that might be said. None of the statements in these examples are part of ISO 15926-2.
I recommend one or other of the standard texts on mass
terms (e.g. by Pelletier).
If the latter: instead of saying that ‘water is an instance of <class_of_compound>’, why does it not simple say that ‘water is a <compound>’?
MW: Again, we are showing example instances of the entity types.
--------------------------
class_of_number
DEFINITION: A
<class_of_number> is a <class_of_class> whose members are members of
<arithmetic_number>.
EXAMPLE The class of prime numbers can be
represented by an instance <class_of_number>.
Why is
‘<arithmetic number>‘ included in the definition
but not in the ontology?
MW: It is there!
The suspicion is: (1) that this is an error, (2) that
the error was committed because ‘number’ in fact means ‘arithmetic number’. This
hypothesis is supported also by the helpful
integer_number
DEFINITION: An <integer_number> is an
<arithmetic_number> that is an integer number.
HERE WE HAVE AN
ILLUSTRATION OF THE IMPORTANCE OF THE PRINCIPLE OF COMPOSITIONALITY.
IF
‘number’ means ‘arithmetic number’
THEN
‘arithmetic
number’
MEANS
‘arithmetic number number’.
(And similarly for ‘representation’ and ‘representation of thing’;
‘individual’ and ‘possible individual’, and so on.)
The definition
of integer number also reminds us of the
GENERAL
LESSON
PRINCIPLE OF NON-CIRCULARITY OF DEFINITIONS: A GOOD ONTOLOGY SHOULD AVOID CIRCULAR DEFINITIONS (AND, A FORTIORI, IT SHOULD AVOID HL7-STYLE DEFINITIONS OF THE FORMS: ‘AN A IS THE B OF AN A’ OR: ‘AN A IS AN A WHICH IS B’)
MW: What we are actually
doing here is ostension. We are saying that our label means what the words
integer number mean, i.e. go and look it up in a dictionary. When we use words
as part of terms, e.g. <integer_number> no meaning should be attributed to
it beyond the definition. When we use words like integer number not in a label,
then they mean what the ordinary words mean in a dictionary. The clear
conclusion to draw is that we think that integer number is sufficiently well
understood that no further definition is required. Since the target audience is
largely computer programmers, who know just what to do when you ask for an
integer number, this would seem reasonable.
--------------------------
class_of_dimension_for_shape
DEFINITION:
A <class_of_dimension_for_shape> is a
<class_of_class_of_relationship> that indicates that members of the
class_of_shape have a dimension that is a member of the
class_of_dimension.
EXAMPLE Specifying that members
of the “class of circle” have members of “class of diameter” is an instance of
<class_of_dimension_for_shape>.
This means (I think): circles have
diameters.
MW:
Class_of_dimension_for_shape is intended to allow you to make statements like
"circles have diameters".
Questions: How does the use of ‘member’ here relate to the use
of ‘instance’?
MW: They both mean member of a class, but instance is used when the class is an entity type in the model, whilst member of means there is an instance of the classification entity type between instances of the data model. I had thought this had been documented in the standard, but on checking I find that it isn't. I will get it fixed.
Why is ‘member’ not included in the ontology?
MW: "is a member of" is a synonym for "is the classified object in a classification relationship".
How can SPECIFYING something be an instance of ‘class_of_dimension_for_shape’?
MW: Specifying the conditions for class membership seems quite natural to me.
When we say that ‘members of the “class of circle” have members of “class of diameter”’ are we saying that the latter is a subset of the former?
MW: No. We are saying that a member of "class of circle" and a member of "class of diameter" constrain a dimension_of_shape class_of_relationship.
And what is the correct reading of the double quotation marks around ‘class of circle’? (Note that ‘class of circle’ and ‘class of diameter’ are not included in the ontology; or not in the bit that is available free.)
MW: That you are to see
the whole string as an identifier, rather than as separate words.
There is no term ‘dimension_for_shape’, but there is a term
‘dimension_of_shape’.
MW: Typo. Thanks for spotting.
How, now, does ‘class_of_dimension_for_shape’ relate to the term
MW: The relationship is
classification.
dimension_of_shape
DEFINITION: A
<dimension_of_shape> is a <class_of_class_of_relationship> that
indicates that members of the <shape_dimension> are dimensions of the
<shape> members.
Life is made even harder here by the fact that the
example text provided:
EXAMPLE The sets of 10m lines that are diameters
of 10m circles is an example of <dimension_of_shape>
conforms only
loosely to the rules of English grammar. This is itself a reflection of the fact
that we have here a departure from
GENERAL LESSON
THE PRINCIPLE OF SINGULARITY: THE TERMS OF A GOOD ONTOLOGY ARE FORMULATED IN THE SINGULAR, AND THE ONTOLOGY’S DOCUMENTATION PAYS VERY CAREFUL ATTENTION TO THE DISTINCTION BETWEEN SINGULAR AND PLURAL
MW: I think you read too
many (or too few) grammar books..
A good special case of this general lesson is:
DO NOT USE
PLURAL NOUNS WITH SINGULAR VERBS
If we compare the two just-mentioned definitions
then we see that both <class_of_dimension_for_shape> and
<dimension_of_shape> are what are quaintly called
‘<class_of_class_of_relationship>s’.
Is the syntax of this ‘<class_of_class_of_relationship>s’ somewhere defined? Does it signify that there are distinct <class_of_class_of_relationship>s, perhaps <class_of_class_of_relationship_with_related_end_1> and the like, so that we can count them? Or does it refer to the fact that there are distinct members of the <class_of_class_of_relationship>, i.e. to what would more properly be called ‘<class_of_relationship>s’? I think we should be told.
MW: I'm not sure what the
fuss is about here. It sounds like you didn't find <class_of_class_of_relationship>.
It is there.
The use of ‘of’ and ‘for’ also reminds us of a
further:
GENERAL LESSON:
PRINCIPLE OF
COHERENCE IN THE USE OF GENERIC TERM-BUILDING
OPERATORS
IF AN ONTOLOGY USES IN A SYSTEMATIC WAY TERMS OF THE
FORM ‘A X B’ (WHERE ‘X’ IS FOR EXAMPLE ‘with’,
‘without’, ‘of’, ‘for’, ‘/’, etc.) THEN IT SHOULD SPECIFY CLEARLY THE SYNTAX OF
‘X’, PROVIDE A STATEMENT OF WHAT EXPRESSIONS OF THE FORM ‘A X B’ MEANS, AND USE
EACH SUCH FORM IN THE SAME WAY THROUGHOUT THE ONTOLOGY AND ITS DOCUMENTATION
MW: We make no pretence
at attempting to do this. You are not supposed to be able to parse the terms in
the ontology. The labels are only there for people to read and provide some clue
as to the definition.
But now things get even worse.
In addition to
‘class_of_dimension_for_shape’ we also have
class_of_shape_dimension
DEFINITION: A
<class_of_shape_dimension> is a <class_of_class> that is a dimension
of a <class_of_shape>.
EXAMPLE Diameter, height, and width (in general
rather than a particular one) are examples of
<class_of_shape_dimension>
as well as all of the following:
shape_dimension
DEFINITION: A
<shape_dimension> is a <class_of_class_of_individual> that is a set
of <individual_dimension> that define an aspect of a shape.
EXAMPLE
Diameter of 5m, height of 3mm, and width of 10cm are members of
<shape_dimension>.
individual_dimension
DEFINITION: An
<individual_dimension> is a <class_of_individual> whose members
characterize a particular <possible_individual>.
EXAMPLE The set of lines that are each a diameter of a particular
circle.
and
multidimensional_object
DEFINITION: A <multidimensional_object>
is an <abstract_object> that is an ordered list of <thing>. The
significance of the <multidimensional_object> is determined by being a
member of a <class_of_multidimensional_object> that indicates the role
played by each of its elements.
The term ‘dimension’, in all of this,
seems to have lost any claim to a single coherent meaning, contravening the
venerable
GENERAL LESSON
PRINCIPLE OF UNIVOCITY: EACH TERM IN AN
ONTOLOGY SHOULD HAVE THE SAME MEANING ON EVERY OCCASION OF USE
MW: Dimension is not a
term in the ontology, only a part of the label for a term.
The use of
expressions like ‘indicates’, ‘an aspect of’ and ‘characterize’ in these
definitions contravene in addition our principle cautioning avoidance of
subjectively interpretable phrases in definitions.
MW: I suspect the only
subjectivity here is your own.
------------------------------------
class_of_sub_atomic_particle
DEFINITION:
A <class_of_sub_atomic_particle> is a <class_of_arranged_individual>
whose members are constituent particles of atoms.
EXAMPLE Proton, electron,
meson, neutron, positron, muon, quark, and neutrino can be represented by
instances of <class_of_sub_atomic_particle>.
arranged_individual
DEFINITION: An
<arranged_individual> is a <possible_individual> that has parts that
play distinct roles with respect to the whole. The qualities of an
<arranged_individual> are distinct from the qualities of its
parts.
What are the parts of a neutrino? What distinct roles do they
play?
MW: It's a fair cop guv.
(Though I suppose I could try to weasel out with improper parts). We'll fix the
definition.
-----------------------------------
In addition to the ‘class of’
terms in the ontology we are also provided with an odd list of ‘class of class
of’
terms:
class_of_class_of_composition
class_of_class_of_definition
class_of_class_of_description
class_of_class_of_identification
class_of_class_of_individual
class_of_class_of_information_representation
class_of_class_of_relationship
class_of_class_of_relationship_with_signature
class_of_class_of_representation
class_of_class_of_representation_translation
class_of_class_of_responsibility_for_representation
class_of_class_of_usage_of_representation
where
‘class_of_class’ itself has the lovely definition:
‘A
<class_of_class> is a <class> whose members are instances of
<class>.’
(I still do not know what ‘member’ or ‘instance’ mean.)
Again, I could find no rationale for
including just these items in the list above.
Two of the items on the
list:
class_of_class_of_composition
class_of_class_of_representation
suspiciously,
have no corresponding ‘class of’ term in the ontology, though the first of these
contains a reference to such a term in its
definition:
MW: The definition has a typo (already fixed) <class_of_composition> should read <class_of_composition_of_individual>. As is our wont we abbreviate names when we think we can get away with it.
With <class_of_class_of_representation>
the relevant term is <class_of_representation_of_thing>.
class_of_class_of_composition
DEFINITION: A
<class_of_class_of_composition> is a
<class_of_class_of_relationship> whose members are instances of
<class_of_composition>. It indicates that a member of a member of the
class_of_class_of_part is a part of a member of an instance of the
class_of_class_of_whole.
EXAMPLE Toxicity description is a
class_of_class_of_part of a material data sheet, where the description “has
carcinogenic components” is a class_of_part on the Mogas Material Safety Data
Sheet, and copy #5 of the Mogas Material Safety Data Sheet has “has carcinogenic
components” as a part.
Note that ‘class_of_class_of_part’ and
‘class_of_class_of_whole’ are not included in the ontology, though the
definition and example here suggest that there might be some sort of need for
these terms, too.
MW: They are included.
You can see them as attributes of <class_of_class_of_composition>.
Astonishingly, we learn from the first clause of the
example text that a description is a class_of_class_of_part (!?); from this it
seems to follow that a description is a class (what, then, are the MEMBERS of a
description?);
MW: A piece of paper with some words on it.
the rest of the example text departs too far from grammatical
English to make sense.
--------------------------------
As to:
class_of_feature_whole_part
DEFINITION: A
<class_of_feature_whole_part> is a
<class_of_arrangement_of_individual> whose members are instances of
<feature_whole_part>.
EXAMPLE Thermowells have stems, and tables have
tops are examples of <class_of_feature_whole_part>.
‘Tables have
tops’ is a sentence; it is not an example of an entity.
MW: It is none the less
the essence of what a particular instance with attributes states.
feature_whole_part
DEFINITION: A
<feature_whole_part> is an <arrangement_of_individual> that
indicates that the part is a non-separable, contiguous part of the
whole.
NOTE This includes wholes that cannot be
non-destructively disassembled and reassembled such as the cast inlet flange of
a pump.
EXAMPLE The relation that indicates that a flange face is part of a
flange can be represented by an instance of <feature_whole_part>.
The definition says that the wholes in question should be non-separable;
yet the corresponding example under ‘class of’ includes tables and tops, and
many tops ARE separable.
MW: By top we mean the top surface, rather than the whole piece of wood (or whatever). It could be stated less ambiguously.
So what does ‘non-separable’ mean? And how does its use
here relate to its use in the definition of ‘composite material’ (see above),
where we are told that fibreglass and carbon fibre consist of SEPARABLE
compounds?
More: Is feature_whole_part a class?
MW: If you are referring to the term itself, of course it is a class. All entity types are. If you mean is a feature_whole_part a class, no, it is an <arrangement_of_individual> (as the definition says).
If yes, how does it differ from: class_of_feature_whole_part?
If no, why does it have instances?
MW: As usual, instances of the class_of_X entity type have instances of the X entity type as members.
(See EXAMPLE.) And what are the relations of ‘representation’ and ‘indication’ here?
MW: "that indicates" is just a conventional form of words we use to introduce the differentiating phrase for relationships and classes of relationship. Its use goes back to the time when as a data model its instances were considered to be records that represented something in the world rather than the thing itself.
MW: "represented" here relates the real world object to a database record.
Is the relation that indicates that a flange face is part of a flange the SAME as the actual relation between a flange face and a flange? If so, why not say so? If not, is there another place in the ontology where this ‘indication’ relation is defined?
MW: The intention is the
former. I guess what we have here is something left over from previous
conventions. At one level the instances of the data model are database records,
and they "indicate" or "represent" the real world
relationship. We have deliberately moved towards talking just in terms of the
real world objects. We use this form of words consistently in all our
relationship definitions. It occurs to me that "where" might be a
suitable alternative to "that indicates". I'll look into it.
----------------------------------
event
DEFINITION: An
<event> is a <possible_individual> with zero extent in time. An
<event> is the temporal boundary of one or more
<possible_individual>s, although there may be no knowledge of these <possible_individual>s.
GENERAL
LESSON
PRINCIPLE OF COMPLETE DEFINITIONS: DO NOT INCLUDE EXTRA CLAUSES IN DEFINITIONS WHICH CONTRIBUTE NOTHING TO THE APPLICATION OF THE DEFINITION FOR THE PURPOSES OF DETERMINING (1) THE MEANING OF THE DEFINED TERM OR (2) THE ENTITIES WHICH FALL UNDER IT.
MW: Correct. The second
sentence should have been a note.
----------------------------------
responsibility_for_representation
DEFINITION:
A <responsibility_for_representation> is a <relationship> that
indicates that the controller <possible_individual> administers the
controlled <representation_of_thing>.
class_of_responsibility_for_representation
DEFINITION: A
<class_of_responsibility_for_representation> is a
<class_of_relationship> whose members indicate that a
<possible_individual> (usually an organization) deems that members of the
pattern can be used as representations of the represented thing.
Why
is the latter not defined in terms of the former? (Some
sort of failure of recursiveness looms here.) Note also, again, the problematic
use of ‘indicates’, ‘deems’, ‘usually’ and ‘possible_individual’ here. Are there
possible_individuals which are usually organizations but occasionally also not
organizations?
MW: Well the
"usually an organization" should be a note. "indicates" we
have already covered. I don't understand the problem with "deems" or
possible_individual.
---------------------------------
actual_individual
DEFINITION: An <actual_individual> is a
<possible_individual> that is a part of the space-time continuum that we
inhabit. It exists in the present, past, or future of our universe, as opposed
to some imagined universe.
Interestingly, the entry under this heading tells us (I
think) that its record creator is an entity of the type
‘possible_individual’.
possible_individual
DEFINITION: A <possible_individual> is a
<thing> that exists in space and time. This includes:
- things where
any of the space time dimensions are vanishingly small,
- those that are
either all space for any time, or all time and any space,
- the entirety of
all space time
- things that actually exist, or have existed,
- things
that are fictional or conjectured and possibly exist in the past, present or
future,
- temporal parts (states) of other individuals,
- things that have
a specific position, but zero extent in one or more dimensions, such as points,
lines, and surfaces.
In this context existence is based upon being imaginable
within some consistent logic, including actual, hypothetical, planned, expected,
or required individuals.
Question: are things which look like small flies from a distance actual or possible individuals?
MW: They are certainly
possible_individuals, they may also be actual_individuals
Question: why did the ontology not help itself, in
accordance with the principle of modularity, to some standard modal logical
resources (which would surely have produced a more humanly intelligible result
than this)?
MW: We prefer to avoid modal logic. So far a Possible Worlds approach has worked well for the kind of planning scenarios we mostly encounter. When it breaks we will doubtless consider alternatives or additions.
Question: what is the difference between ‘being part of the space-time continuum that we inhabit’ (= being actual) and ‘existing in space and time’ (= being possible)?
MW: In a possible worlds
approach there are many universes all of which are a hunk of space time. We call
the one we inhabit the actual universe.
Question: Why are fictional things included in the list of entities which exist in space and time? Is this because ‘space’ and ‘time’ themselves refer to ‘possible space’ and ‘possible time’?
MW: Fictional things exist in possible universes, each of which will have its own space-time extent.
If so, then are actual individuals themselves more properly to be conceived as entities which exist in possible space-time?
------------------------------
spatial_location
DEFINITION:
A <spatial_location> is a <physical_object> that has continuity of
relative position.
EXAMPLE Geographic datum, license block, construction
area, country, air corridor, maritime traffic zone, hazard control zone, 4D
points, lines, planes, solids.
spatial_location
is hereby asserted to be a subtype of physical object.
physical_object
DEFINITION: A <physical_object> is a
<possible_individual> that is a distribution of matter, energy, or both.
What is the distribution of matter or energy or both that is an air
corridor?
MW: The air in the corridor.
What is the distribution of matter or energy or both that is the
boundary line between
MW: The boundary between Colorado and Utah is not a physical object, it is a line. (To be a spatial location you must first be a physical_object). So Colorado and Utah would be spatial objects, but not the boundary between them. Now if we were talking about a fence on the border, that would be a physical object. Looking at the model it strikes me that we have not covered spatial boundaries explicitly. I suspect we should have something like spatiotemporal_boundary with event and spatial_boundary as subtypes. These would work analogously to event. Your boundary line would then be the intersection (common part) of the Colorado and Utah boundaries.
What is the
distribution of matter or energy or both that is Middle Earth?
MW:
That is a possible_individual and not an actual_individual.