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? Are the named classes and named relations just other entities in the information base? Are “John Sowa”, “person”, and “writes” all just the names of entities?
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. 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). 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. 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, 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. But RDF users
frequently use both nouns and verbs in the central slot in the triple; 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. 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. 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. 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.
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.
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx]
On Behalf Of William Frank
Sent: Monday, February 24, 2014 1:59 PM
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.
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/