some minor clarifications, as [EJB2]
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx]
On Behalf Of William Frank
Sent: Monday, February 24, 2014 6:44 PM
Subject: Re: [ontolog-forum] Defining everything in terms of relations (was Charles Fillmore...)
On Mon, Feb 24, 2014 at 5:03 PM, Barkmeyer, Edward J <edward.barkmeyer@xxxxxxxx> wrote:
The roles in a relation are yet more entities, of course.
An ‘entity’ in this sense is just an ‘individual’ in your Universe of Discourse.
The question (which John’s prior email suggested) is: Do you distinguish between the conceptual schema and the information
Yes, of course,
between the things that are true by definition, such as mercury is a metal,
and those that are true by observation, such as there is 1 cc of mercury in this thermometer. Of course, the line between analytic and synthetic knowledge is famously difficult to get too precise about. But, for practical purposes, in a given domain, we
can pretty easily figure out where we want to draw the line, if we have learned about definitions, etc.
[EJB2] Well, not “of course”. Ontologies may not distinguish
between currently true and always true. Some logic languages have the notion ‘necessity’; FOL does not. That is why I asked.
I think that my Wittgenstein quote gave the wrong impression, as does some of Halpin's early writing.
[EJB2] I took the concept of a ‘world’ (universe of
discourse) consisting of ‘facts’ rather than ‘things’ literally. There are logics built on that approach, particularly in the domain of ‘possible worlds’. That was probably an unintended rabbit hole.
A conceptual model shows how **concepts** in a domain are related to each other, so that for members of the knoweldge community, there will be large agreement that things MUST be that way. Squares have four
equal sides and four equal angles. Contracts have parties to the contracts, each of whom have rights and obligations under the contract. I think that conceptual models are prescriptive within a community.
For me, a 'fact base' has a set of synthetic assertions that are taken to be true, but might not be true. There is a contract C between Exon and Royal Dutch Petrolium. These are descriptive, not prescriptive.
[EJB2] Absolutely. A knowledge base consists of axiomatic
concept definitions and propositions that we take to be true. The axiomatic part is ‘true’ by definition. The rest of the propositions are ‘true’ by our decree, whatever our basis for that belief. That is not the difference between the conceptual schema
and the knowledge base. It is common that a conceptual schema includes ‘necessities’ that do not coincide with everyone’s observations of realities. It suffices that the audience for the intended usage agrees that they are ‘true’.
Again, names of individuals give some trouble, because unless they are defined as functions or properties as the result of something akin to a lamda operator, or are stipulated as an axiom, like the existence of the number zero or the empty string, then we
can only prove that there is a unique x that necessarily exists, such as the unique number that is the sucessor of 3, and give it a name, via something equivelent to an iota operation. Otherwise, names (or 0-order relations, ***are just hanging out**, waiting
for a job, given to them by a particular interpretation of the theory.
I have found that what is taken to exist of necessity is very domain dependent. For example, in the domain of U.S. law, we might take the fact that there is a unique court called the supreme court as part of the domain concept model. Of course, in the domain
of the theory of legal systems, I would NOT expect the existence of the supreme court to be taken as an axiom.
Are the named classes and named relations just other entities in the information base?
Well, first, I am always very suspicious of the word 'just'. What does it add, from a logical point of view. It seems to me an emotive word, that says there is nothing else about them that is *of importance*.
For surely, everything is also something else besides just what we have said about.
[EJB2] What I meant was: Are classes and relations
‘things’ in the universe of discourse? Is it possible them to play roles in modeler-defined relationships? The more formal version of this question is: Can a symbol for a predicate/relation appear as an argument to another predicate/relation while both
occurrences of the symbol refer to the same ‘thing’? “entities” – things in the UoD -- are the things that can appear in argument slots. Are named classes and named relations among them? Can the object named ‘metal’ BE both a ‘class’ and an ‘individual’?
By “just other entities” I meant “not something completely different”.
Second, what I am asserting is that ONE PERSON"S set of necessary assertions, (a prescription -- if you want to play chess, these are the rules, if you want to do natural number arithmetic, these are the rules)
in one context, is ANOTHER PERSON's fact base, in a different context. For example, I can **describe** the set of concepts and relations used by alchemists, without a personal commiment to the sense of the whole thing. This would be, to me, a fact base about
their conceptual scheme.
[EJB2] That is something else entirely. That is the
idea of an ontology that describes other ontologies, or in OMG terms a “metamodel”. But the things in that kind of Universe of Discourse are ONLY the things that are elements of the described ontology per se, typically as instances of concepts in the ontology
language. With the possible exception of “ground facts”, that UoD does not actually contain any of the things in the world that the described ontology describes.
I think this is legitimate 'going all meta'.
[EJB2] Yes! But what I am talking about is what OMG
would call ‘mixing metalevels’: A universe in which an instance of ‘design’ can be related to an instance of the class ‘class of product’, e.g., by ‘design specifies product class’ and the class ‘class of product’ can have an instance that is Toaster, which
itself can have instances that are serial-numbered toasters. You can’t do this in a UML model, or in an OWL/DL model. You can do it in CLIF and RDF. This is distinguished from ‘going all meta’ in the fact that the ‘instanceOf’ (meta)relation is the SAME
relation in all of these usages. (In the ‘all meta’ case, the meta-relation Toaster to ‘class of product’ is rdfs:instanceOf(individual, (meta)class), but the physical toaster to class Toaster relation is myonto:instanceOf(individual, individual). Just the
concept of ‘designDefinesClass’ is instant metalevel mixture.
OTOH, If I am constructing a domain ontology for use by minerologists, following interviews, literature reviews, etc. I am proposing a prescription for the conceptual relations in the language. As a description,
the counterexamples will be the mere fact that someone in the community is using the terms differently. (Not everybody plays cricket this way) As prescription, the counterexamples will be that there is something ineffective about following these rules (these
damn rules will cause cricket matches to take days to play!).
Are “John Sowa”, “person”, and “writes” all just the names of entities?
Well, without the 'just' for sure. John Sowa is an entity I happen to know about in my fact domain. Person
and Writes are part of my conceptual model.
Whatever your formal model is, you need some kind of glue between all these entities.
The glue is a structure that turns a tuple of entities, and possibly other linguistic elements, into a statement of fact.
I disagree. The glue needed is only (or just?) Logical glue, no domain content.
[EJB2] I am not talking about domain content. Assuming
a ‘semantic fact’ consists of at least a subject and a verb phrase, I have to have a linguistic structure that has slots for subject and verb and is recognizable as that structure. That is what I meant by linguistic glue.
As in John's example:
John Sowa HAS AS A PROPERTY maleness.
Would be a synthetic statement, while
A Husband HAS AS A PROPERTY maleness
would be analytic, in may domains.
[EJB2] HAS AS A PROPERTY is the linguistic glue. Otherwise
all you have is JohnSowa and maleness, and possibly (JohnSowa, maleness). Two entities, but no verb sense.
A CAR HAS AS AN AFFORDANCE carrying passengers on a road.
would also be analytic, in most domains.
So, parts, affordances, properties, subtypes, etc., are part of the logical glue of ANY domain.
You can model a Relationship as a Class of states, of course, but then the Roles are the glue/properties that link the
Relationship to the entities that play the roles. And that makes each Role a binary relation: <role>(relation entity, role player).
Exactly. And, x IS A ROLE IN y
is another part of the logical, domain independent glue,
so, while I start with common logic, I would not end there. I
[EJB2]. It is not only domain-independent, it is a
meta-statement: PlayingWhite IS A ROLE IN ChessGame. But that (alone) doesn’t give me the linguistic glue to link Bobby Fischer to a world championship game. What I need is some form of PlaysWhiteIn(BobbyFischer, 1972 international championship game 6).
Enter the Participation glue:
Alternatively, the <role> entities can participate in a fixed ternary relation: Participation(relation entity, <role> entity, role player entity),
where Participation itself is not an entity.
Yes, I agree fully. I am only saying the domain specific things, like courts and lawyers and defendents and jurisdictions and trials and attorneys for the prossecution and objections are all thingies.
I do not think that quantifiers, variables, boolean connectives, modal operators, speech act operators, part-whole, inclusion, is a role in, are entities, in the domain of discourse of law. (They could be in the domain of discourse of mathematical logic,
or discussions about the elments of an ontology, such as this discussion.)
And similarly, you can create hasProperty(owning entity, property entity, property value entity). This turns the glue into a fixed part of your language, as distinct from a user-defined set of Relations and/or Properties.
For example, assuming you can distinguish Property entity symbols from Role entity symbols,
ah, but this is exactly what one wants to avoid!!! Property entity symbols vs. role entity symbols break our symbols up according to the parts of speech. Now, I need to have a separat symbol for the color blue, the property blue, and
the role of blue in the frame x agent is coloring affected y color z.
[EJB2] Not at all. If I can distinguish the notion PROPERTY and the notion ROLE
at the metalevel, I mean to interpret the bald tuple (x, PropertySymbol, y) as: x has y as the value of the property denoted by PropertySymbol. And I mean to interpret the bald tuple (x, RoleSymbol, y) as: x plays the role denoted by RoleSymbol in the state
of affairs y. Remember, this assumes that an entity symbol refers to a thing in the UoD, full stop.
[EJB2] If I have ‘color’ as PropertySymbol, then I can write: (x, Color, blue).
If I have only RoleSymbols and bald tuples, I have to represent the property as:
(nil, propertyState, p), (x, propertyAssignee, p), (Color, propertyAttributed, p), (blue, propertyValue, p).
[EJB2] If I mean also to have a Role named ‘color’ in some kind of state or event,
then it is almost certainly not the same concept as the Property named ‘color’. And whether the Property named Color is the same as or different from the colorimetry concept Color is a matter for the domain modeler and his/her intent. So I see no problem
with distinguishing Event entities, Property entities and Role entities; but if you do, then you need a different linguistic glue. The problem is literally: Which linguistic distinctions and structures do you want to invent for the purpose of turning a list/tuple
of entities into a ‘fact’? In relational systems, there is just Table (verb), Column (role), Row (tuple), and Cell (participant). And our example becomes:
(nil, CarColor, rowN), (x, Car, rowN), (blue, Color, rowN)
But then I need to know that CarColor is a propertyAssignment event, the Car column
is the assignee, and that Color (the column label) is the property symbol, and the Color cell is the property value. And, of course, I can have some way of declaring all that in the conceptual schema, which is a kind of user-defined specializations of more
general (and less meaningful) linguistic glue.
every instance of either of the above ternary relations is one RDF triple in which the “verb” is the role or property entity. That is,
hasProperty(owning entity, property entity, property value entity)
owning-entity-symbol property-entity-symbol property-value-symbol
...#WilliamFrank ...#name “William Frank”
The meaning of ...#name, of course, is ‘has as name’; and it is commonly spelled “rdf:label”. The model you propose
is exactly what is done in common RDF usage.
Ah, this is the question I was afraid to ask, because the answer would be too complicated. As I have said, I can use my sematics with UML diagrams, and hang the 'fathers'. I wondered, how about RDF, how about OWL? I would have guessed
But RDF users frequently use both nouns and verbs in the central slot in the triple;
SURE. My point (stated again) is, there is no semantic difference between nouns and verbs! Noun and verb is a part of speech, only.
[EJB2] Until you produce syntax for expressing a fact. Then I have to know where/what
the verb phrase is, i.e., what entity is to be interpreted as the verb in the statement of fact. ColorAssignment is a fine verb phrase. In the “Russian virgin lands in peril” headline, I have to know that “in peril” is the verb phrase and not “lands”.
It is not a question of what part of speech they are; it is a question of the interpretation of the syntactic glue.
Parts of speech jump all over. To be silent is a verb in German. There is no such verb in English. Silence is the concept. I can apply it as I will, in different frames.
[EJB2] “is silent” and “schweigt” and “se tait” are all verb phrases. The rest
is what Fabian Neuhaus calls ‘syntactic sugar’. It is just conventions for _expression_, and all those are different. “Silence” is surely a concept. Whether it is the same thing as ‘being silent’ is up to the domain modeler; and whether it is interpreted
as the verb or the subject in ‘silence is golden’ is about the interpretation of the linguistic glue, not the syntactic sugar.
most think of that slot as the predicate for a unary or binary relation (which they call a ‘class’ or ‘attribute’ or
‘relationship’). Formally, it is in any case an ‘entity’, i.e., individual thing denoted by an IRI. But in all cases, the ‘entity’ appearing in that slot has the semantics of some kind of verb or relationship predicate.
So, to me, this is all about formal aspects of language.
Of course, one can MAP most any language to any other. We can use 1s and 0s, or even just 1s. But we don't, why not?
I think you are really reacting to the presence of all the conceptual overload in the descriptions of the concepts entity,
class, relationship, etc., in standard modeling languages.
Most of that is there to give naïve modelers a useful intuition as to the intent of a construct.
In UML, it does not. I bet not 1 in 1000 users of UML understand the convoluted official semantics, with all its distinctions. For people to understand, we want a theory with 5 to 9 primitives. And, how many primitives we choose is
up to US.
[EJB2] I don’t understand the official semantics. The problem with UML is that
it started life as a model of object-oriented software applications and has tried to become a more general abstraction without losing the original audience, and OBTW, being able to express other implementation conventions, as well. So everyone picks and chooses
the parts s/he will use to express their particular intent, which may be at any level of abstraction for any set of implementation conventions, including none. What the UML community refused to do was label a model with its intended interpretation, in the
dubious theory that an implementation model could be abstract enough to be used for something else as well. This is partly left over from the incorrect idea that object-oriented modeling is “natural”.
Ted Codd’s relational algebra was presented as a mathematical structure, with examples of how it could be used to solve
practical problems. But all it gave many business modelers was patterns, rather than intuition.
What Peter Chen added was a “semantic intuition” that distinguished kinds of relations using ideas from natural language.
I agree there too, ONLY, that particular semantic intuition is not as universal as one would think, and not that useful in many contexts. I am, by this time, so convinced that ROLES are a much more flexible,
easier to understand for the truly unitiated in ER modelling, that are attributes, and all the 'keys' that go with them.
[EJB2] No “particular semantic intuition” is as universal
as one would think. All of this is about capturing concepts in a formal way, either for communication with humans or for communication with software tools. The idea is to make it SIMPLER to express (some kinds of) intent, not necessarily EASIER. ROLES is
an intuition minefield (see separate treatise). ‘keys’ is a whole different can of worms – it is about the nature of references to entities, which is another important topic in all formal languages and the subject of much linguistic and semantic theory for
natural languages. KEYS are a restricted generalization of ‘names’. The rest is complicated by the fact that there are significant differences in the practices for naming and referring to things, and an effort was made to formally support several such practices.
(As Scott Henderson pointed out in some standards group, “a part number is no use without a manufacturer id, even when it is one of our own business units.”)
When you render these surface distinctions back into their intrinsic mathematical properties, you are discarding that
“intuition assistance” baggage, because YOU don’t need it.
Again, this seems to be because you think I don't want semantic intuitions. I do, I just want more fundamental, easier for the average speaker
of malagasy, tagalog, latin, or greek to understand.
[EJB2] Well, Sir William, I wish you good fortune in your quest for the Holy Grail.
Other brave knights have gone before you.
In response to a critique of one of his books from computer scientists trying to sort out the exact intents of the proposed
modeling constructs, Jim Rumbaugh once replied, “You may know more about modelING than I do, but you know much less about modelERS!” Most modelers need the intuition assistance of semantic categories.
I could not agree more. I am with you even more that you are with you, maybe. I believe that INTENTION and ACCOUNTABILITY rule! Not formal mathematics. One person here used the word agent to mean, I think,
a responsible party. I think that responsible party is a human primitive concept.
But, to think that Peter Chen discovered the BEST semantic intuitions for conceptual modelling, back in 1972, so that we should change the calandar to BPC and APC, is more than highly questionable. What I have been trying to describe these last few days is
that there is a whole hafl century of study of the fundamental categories of human though that leaves E/R in the dust. So, the point is now, let us stop trying to REFINE a weak model of semantic intuitions, and find a new, richer one.
[EJB2] I agree fully that we have a 40+ year history
behind us. The problem is to learn what the good ideas were, and what they were good for! There is a big difference between designing relational databases and designing object-oriented programs and designing ontologies for DL reasoners and capturing intent
for communication with other knowledge engineers. We find ourselves somewhere down the yellow-brick road, having taken a few diversions down paths that were intended to go somewhere other than Oz. But those were not diversions for the people who wanted to
I have to say, it seems that at the beginning, you used the word 'just' on my introduction of common logic ideas, and then used that straw man to paint a picture entirely opposite of my views!
[EJB2] I think we were, and may still be, partly talking
past one another. I did not, and do not, think we are very far apart conceptually. I just have a somewhat different viewpoint, and a different mode of _expression_. I use the word “just”, not to decry, but rather to ensure that you did not mean something
more that I missed.
Thanks for this highly stimulating exchange.
[EJB2] Indeed! Thank you!
On Mon, Feb 24, 2014 at 8:05 AM, John F Sowa <sowa@xxxxxxxxxxx> wrote:
On 2/23/2014 11:18 PM, William Frank wrote:
> I have found that n-ary relations with n = 0 to *, together with roles
> (my 'computer science' meta-ontology or upper ontology) is a more
> expressive, more flexible, simpler, way to represent knowledge for
> computing purposes than 'entities', 'attributes, and 'relationships' (an
> can easily be done with UML diagrams).
I strongly agree.
(by the way, I wrote this before receiving Ed's remarks on the subject. I have to agree with him that 0-ary 'relations' are problematic, and worthy of more consideration. As an overview, I think the computer science side of the problem can be approached with
the iota operator and the lamda operator, while I would fully expect that my philosophical ontology is naive, and fraught with potential contradictions.
I have no objection to using terms like 'entity', 'attribute',
'property', 'class', etc. But each of them should be defined
in terms of relations.
Exactly. In other words, they are DERIVED terms.
For example, my preferred axiom for entity:
In other words, everything in the ontology is an entity. If your
logic lets you quantify over relations, then relations are also
entities. That lets You dispense with the endless wrangling about
reifying stuff. If you want to refer to something, then refer to it.
Exactly. That reification hagling was the very most convoluted part of the dasterdly official UML semantics. They actually believed that each 'level' of abstraction
was a model of **a different world**, hence metametameta models. I thought this went out in logic with Carnap, almost 75 years ago. Now, logicians use 'meta' the way you do below. As a way to discourse about the language of some other discourse, E.g. a meta
model for ontologies) not as of 1930's-old and of the (bad) 'fathers of UML" where they seem to use it as a way to separate sets from individuals, sets of sets from sets, etc, and treat them all as somehow incompatable.
Your set of axioms here is exactly what I have been using implicitly. The roles in a relation are yet more entities, of course.
I only just now rediscovered, following along the Fillmore path, that the idea of 'case grammars', which after all, are syntactic features of individual langauges, has been largely replaced in generative linguistics by the concept of a 'theta role', an underlying
set of trans-language roles that enable inter-language mappings.
As far as I know, this began with Ed Keenan's discovery of what he at-the-time called 'voices' in Malagasy, where the subject of a sentence is preceded by a separate particle that describes in role in the verb. A more formal and modern presentation of this
is in his "Morphology is Structure - A Malagasy Test Case"
A class is defined as a pair (t,s), where t is a monadic relation
called the type, and s is the set of everything for which t is true.
If you want properties, define them:
(Ax)(Ay)(Entity(x) & HasProp(x,y) => Property(y))
This says that a property is anything that an entity has.
Q: What do you mean by HasProp?
A: HasProp is a relation between entities and properties.
Q: Isn't that a circular definition?
A: Of course it is. All your basic terms can only be defined
by their relations to one another. For examples, see Euclid.
Q: How would anyone know what kinds of things are properties?
A: Formally, state more axioms. Informally, show some examples
and discuss the pros and cons of various options.
This gives you clear, precise definitions of all the metalevel
terminology for talking about ontologies and relating them to
any system(s) that happen to use different terminology.
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/