[Top] [All Lists]

Re: [ontolog-forum] Defining everything in terms of relations (was Charl

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: William Frank <williamf.frank@xxxxxxxxx>
Date: Mon, 24 Feb 2014 19:06:32 -0500
Message-id: <CALuUwtD7GXvCK3NWNF_jpkH4dZTbmjmB_M9gJYu2JoEO3MgazQ@xxxxxxxxxxxxxx>
Ed, Sorry for the long reply. I was so excited by so many challenging deep questions.

The short of it is very simple.

Nothing wrong with the word 'attribute', or the way CHEN and now everyone uses it. 

EXCEPT FOR Tthe BIG MISTAKE of thinking that a certain kind of thingie (say blue) IS an attribute, just because it **can play that role.**

instead of realizing that the thingie is PLAYING THE ROLE of attribute in an attributive relation, such as in say,' the sky is blue.'    In another attibutive relation, the same thingie, blue, can play the role of attributed to, such as in 'blue is a color.'  Again, these roles are parts of speech, and the same concepts flit like butterflies from one part of speech to the next, in the same language, and even really migrate like monarchs across languages.

Now, we can,as a matter of definition, say that some concepts are attributive, meaning that it is possible for them to play an attributive role, and others may not be.   But that does not mean they can ONLY play that role.  Otherwise, no langauge but English would be logical.

This, I have found, is a fundamental mistake in software engienering.  Once people have decided to CAST something in a certain way, they decide that must be what it 'really is'.  (All those tiresome arguments about what is 'really' an object.)

Did you ever have clients who had trouble seeing that 'customer' was a role, and that so was 'vendor,' so that the vendor and customer might be the same company?   (A japanese client once took a half year and paid a half million dollars to my company just to get this idea.)

Same deal here, except I expect no money, only some stress and I hope fun and I hope contribute. 



On Mon, Feb 24, 2014 at 6:43 PM, William Frank <williamf.frank@xxxxxxxxx> wrote:

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 base? 

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. 

I think that my Wittgenstein quote gave the wrong impression, as does some of Halpin's early writing.

 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.

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.   

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.  I think this is  legitimate 'going all meta'.  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. 


there is the rub.  

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.  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.


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

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.
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 so.

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.  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.

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. 

I would agree, but also, 

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.

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. 

Exactly.  I am with you. 

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. 

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.  


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.

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!

Thanks for this highly stimulating exchange.






From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of William Frank
Sent: Monday, February 24, 2014 1:59 PM
To: [ontolog-forum]
Subject: Re: [ontolog-forum] Defining everything in terms of relations (was Charles Fillmore...)



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.


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


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

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    (01)

<Prev in Thread] Current Thread [Next in Thread>