ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] A Question About Mathematical Logic

To: "[ontolog-forum] " <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Edward Barkmeyer <ebarkmeyer@xxxxxxxxxxxx>
Date: Wed, 21 Oct 2015 20:04:31 +0000
Message-id: <CO2PR11MB0005EA10B140F7D8031DA633BC380@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

+1

 

-Ed

 

From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of David Price
Sent: Wednesday, October 21, 2015 12:20 PM
To: [ontolog-forum]
Subject: Re: [ontolog-forum] A Question About Mathematical Logic

 

My only real point was that what you thought was “odd” is actually commonplace.

 

Cheers,

David


UK +44 7788 561308

US +1 336 283 0606

 



 

On 21 Oct 2015, at 16:45, Thomas Johnston <tmj44p@xxxxxxx> wrote:

 

David,

 

I don't understand the point of your example of classes and subclasses. Ed's example and my comments take it for granted that a type/subtype hierarchy has been defined, in some language or other.

 

Is there some additional semantics defined in CLASS/SUBCLASS structures that come into play here? Specifically:

 

In your example, is there some syntax/keyword that tells us that (i) byGender and ByEUness are non-exclusive under Human, (ii) that male/female are mutually exclusive under byGender, (iii) that male/female are jointly exhaustive under byGender, (iv) that EU/non-EU are mutually exclusive under byEUness, and (iv) that EU/non-EU are jointly exhaustive under byEUness? (mutually exclusive and jointly exhaustive being the defining criteria of partitions).

 

 

You then wrote:

<<<We can then write rules that say an instance of Human must be classified by a member of ClassOfHumanByGender and by a member of ClassOfHumanByEU-ness.>>>



I could write rules like that in COBOL. The point is that if a type/subtype (class/subclass) can be defined as a partitioning, then we shouldn't have to write rules to guarantee that an individual will be classified by exactly one member of that partitioning. The point is also that, if we do have to write such rules, we may get them wrong. It would be like turning off DBMS-enforced referential integrity and instead writing our own, case by case.

 

One mistake might be if you wrote a rule that says that an <<<... instance of Human must be classified by a member of ClassOfHumanByGender and by a member of ClassOfHumanByEU-ness.>>>

 

That "must" was not in Ed's example, or in my commentary on it. What was in the example supported only the following rule: 

 

an instance of Human may be classified by at most one member of ClassOf HumanByGender, or by at most one member of ClassOfHumanByEu-ness, or by both, or by neither.

 

The particular technology you use to write your rules (OWL, SPIN) does change this point. If you write the rules for this case, you may get them wrong. Do it often enough, and you WILL get them wrong.

 

If designing data structures that express important mathematical properties, so that existing algorithms can manipulate them in conformance with those properties "isn't practical", then I suggest you think hard about the costs of using instead, data structures which you think are practical.

 

 

On Wednesday, October 21, 2015 8:57 AM, David Price <dprice@xxxxxxxxxxxxxxx> wrote:

 

 

On 21 Oct 2015, at 13:31, Thomas Johnston <tmj44p@xxxxxxx> wrote:

 

Ed,

 

I wonder if the "type" vs. "role" distinction lines up with the distinction between supertype/subtype structures which are partitionings vs. those which are not. 

 

On that take, your example might violate an (unstated) rule of well-formedness because (i) male vs. female is certainly a partitioning, as is EU Person vs. non-EU Person, but (ii) the use of all four as subtypes of a common supertype is obviously not a partitioning. 

 

It does seem odd to me to create a set of subtypes of a given supertype which, taken together, are non-exclusive, but when taken separately, are partitionings (exclusive (and exhaustive)) of the immediate supertype they have in common. 

 

In my experience, many ontologies of a reasonable complexity exhibit this structure.



 

It also seems that your "hybrid" structure provides no way to identify the orthogonal sets of partitionings of the shared parent (Person, in this example). And it seems a shame to have partitionings which can't be formally recognized as such, because then mistakes are possible.

 

Class of class can be use to understand partitions :

 

Human

ClassOfHuman

ClassOfHumanByGender subClassOf ClassOfHuman

Male subClassOf Human

Female subClassOf Human

Male isA ClassOfHumanByGender

Female  isA ClassOfHumanByGender

 

ClassOfHumanByEU-ness  subClassOf ClassOfHuman

EU-Citizen subClassOf Human

Not-EH-Citizen subClassOf Human

EU-Citizen isA ClassOfHumanByEU-ness

Not-EH-Citizen isA ClassOfHumanByEU-ness

 

We can then write rules that say an instance of Human must be classified by a member of ClassOfHumanByGender and by a member of ClassOfHumanByEU-ness.

 

 

If, on the other hand, the hierarchy distinguished BiologicalPerson from CitizenPerson, then each would be the supertype of a partitioning. Generalized partition-management algorithms could recognize that fact, and avoid assigning a particular person to more than one subtype in each partitioning. It could also recognize that, since each was a partitioning, there could be no further subtypes that could be added under either supertype.

 

This is all a good thing. Important semantics are expressed clearly in this structure. Using your hybrid structure, special-case hardcoding will be necessary to avoid the mistakes I mentioned.

 

What of BiologicalPerson and CitizenPerson themselves? Their common supertype is Person, and they are non-exclusive subtypes. So they are roles for Person, whereas (i) MalePerson and FemalePerson are (sub)types (classes, in your terminology) of Biological Person, and (ii) EUPerson and non-EUPerson are (sub)types of CitizenPerson.

 

Moral of the story: don't mix different sets of partitionings under the same immediate parent node in a tree structure.

 

Nope :-) Not practical.



 

What do you think?

 

This is a common structure and there are conceptually simple ways to handle it. Note that we’ve implemented this structure many times using OWL and SPIN as the rules language, so won't make any claims wrt the nth-order logic required to support it.

 

Cheers,

David



 

Tom

 

 

 

On Tuesday, October 20, 2015 6:52 PM, Edward Barkmeyer <ebarkmeyer@xxxxxxxxxxxx> wrote:

 

Tom,

 

The idea of exclusive and non-exclusive subtypes also existed in IDEF-1X and NIAM/ORM and (ISO) EXPRESS and others  – all 1980s information modeling languages.  But in most of those languages, exclusion is/was a relationship between subtypes. 

 

There are many non-role examples of non-exclusive subtypes.  Consider Person having the subtypes MalePerson, FemalePerson, EUCitizen, nonEUCitizen, etc.  While MalePerson and FemalePerson are mutually exclusive, MalePerson overlaps both EUCitizen and NonEUCitizen, along with MedicalDoctor, and many others.  The concept of categorization (system) – mutually exclusive sets of subtypes -- was supported in some of the 1980s languages, while OO modeling often assumed it.  A mere 25 years later, it became possible to express categorizations in UML, after removing the OO prejudices.

 

There is nothing wrong with your decision to use ‘non-exclusive subtype’ to represent a ‘role’ in Erwin.  In a similar way, roles were modeled as 'mixin classes' in some OO languages.  But the real semantics of your ‘customer’ was really “customer of the firm the model is about”, which is a class.  In a supply-chain model, the concept ‘customer’ is not an entity/class; it is a (view of) a relationship between parties, and it cannot be a subtype of anything but another relationship between parties. 

 

-Ed

 

 

Edward J. Barkmeyer

Thematix Partners

Phone: +1 240-672-5800

 

 

 

 

From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Thomas Johnston
Sent: Sunday, October 18, 2015 4:39 PM
To: [ontolog-forum]
Subject: Re: [ontolog-forum] A Question About Mathematical Logic

 

Some nice distinctions in this discussion of roles.

 

In my relational data modeling days, I distinguishes between roles and subtypes. Relational data modeling tools (like Erwin) allowed the modeler to create subtype hierarchies which were either "exclusive" or "non-exclusive". 

 

With non- exclusive subtypes, something could belong to more than one of those subtypes. So a common two-level type hierarchy was Organization, with subtypes Supplier, Self and Customer. These are non-exclusive subtypes since the same company could be both a supplier and a customer.

 

With exclusive subtypes, something could belong to only one of a set of subtypes. An example of a two-level exclusive type hierarchy is Financial Instrument Document, with subtypes Purchase Order and Invoice. A document may be a purchase order, but if it is, it can't also be an invoice. And vice versa.

 

I used the term "role" for non-exclusive subtypes, since in natural language, any of us can take on multiple roles, e.g. father, Little League coach, employee, church deacon, etc. And I used the term "type" for exclusive subtypes, since for a set of types with a common supertype (e.g. Team Member with subtypes Player or Coach), one ordinarily thinks that someone is either a coach or a player, but not both.

 

I think it's a good choice of terminology to associate with the non-exclusive / exclusive distinction. Also, "type", I think, is more often associated with ontology taxonomies (hierarchies) than is "role". And ontology taxonomies are partitionings, from which it follows that they are exclusive hierarchies.

 

But I don't know whether or not this contributes anything other than a nice terminological distinction to this discussion.

 

Tom

 

 

On Friday, October 16, 2015 6:26 PM, Edward Barkmeyer <ebarkmeyer@xxxxxxxxxxxx> wrote:

 

John,

You have hit upon an issue that has troubled a lot of 'conceptual model' and 'ontology' developers for many years.  I would describe that issue as the ambiguity of the term 'role'.  Pat's examples: employee, buyer, seller are instances of what one might call a 'relational role' (there is probably a more formal philosophical term).  That is, such terms only make sense *relative* to some specific situation or thing.  One cannot be "a buyer"; one can only be "a buyer of" something.

Student, OTOH, can be a relational role -- one can be a "student of" a given professor, or a "student at" a given school; but student can also be a (temporal) class.  The class is derived from the relational role by existential quantification of the related object.  Student = a human who is enrolled as a "student at" *some* school.  Museums, for example, often treat students and 'seniors' (another temporal category) as special classes of human when charging entry fees.  (Then again, one might treat 'student' as a specialization of the relational role 'visitor' in that case, and it might be argued that every use of the supposed class 'student' is actually a specialization of some other relational role.)  

I have also sometimes found it important semantically to distinguish between a 'participation role' and a relational role.  One can be 'the buyer in' a specific purchase transaction, which is a relationship to the event/situation, as distinct from 'the buyer of' the item that is purchased in that transaction.  The relationship between the person and the purchased item is derived from the participation relationship.  The concept of 'role' in process modeling is always a participation.

There is yet another kind of role which we might dub 'reified role', but most organizations would call a 'position', such as Dean of the Engineering School.  Such a role exists as a thing in the UoD, even when no thing plays the role.

Put another way, the different notions of 'role' can be modeled in OWL as a Property, a Property slot, a Class, or an Individual, according to what one intends by the term 'role' and how one expects to use it in making inferences.

I do expect that an expert in one of the cognitive science disciplines can tell us that 'role' is carefully defined in that discipline and should be used only with that intent.  (In particular, I'm pretty sure Pat used the term carefully, with the accepted meaning in some discipline.)  But the literature of the information sciences is littered with uses of 'role' that appeal to the intuition of the reader to determine what is meant.  Even worse, some of the literature "defines" the term in such a way that it is not clear which of the above is intended.

-Ed


-----Original Message-----
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of John F Sowa
Sent: Friday, October 16, 2015 4:31 PM
To: ontolog-forum@xxxxxxxxxxxxxxxx
Subject: Re: [ontolog-forum] A Question About Mathematical Logic

On 10/16/2015 1:44 PM, Obrst, Leo J. wrote:
> Example: Student. Employee. Buyer. Seller. And so on.
> These are roles, and can be characterized in a role hierarchy, if one 
> wishes.

I agree that it's important to distinguish roles.  In my CS book (1984), I distinguished them as role type (e.g., Student) vs.
natural type (e.g., Human).  Nouns that represent role types have more typical or expected relationships than those that represent natural types.  But natural types also have expected relationships (e.g., Human vs Elephant vs Rose vs Cabbage).

> But e.g., Student is not a subclass of Person (or, more clearly Human).

That is a prime example of a typical confusion.  The phrase 'more clearly' is a clue that it's not clear.

A class is normally defined as a set that is characterized by some criterion that may be stated by a monadic predicate.  The students in a school form a set that may be represented by a monadic predicate.

Q: Why would anyone claim that 'Student' is not worthy of being a class?

A: Some philosopher said so.

Q: Does that distinction make a difference in how the term is
    represented in ordinary language?

A: Role types and natural types are both represented as nouns.
    But a noun that represents a role may occur in some phrases
    that are not expected for a natural type:  e.g., "a student
    of physics", "a teacher of physics", but it's unusual to say
    "a man of physics".  In any case, 'unusual' means "unexpected,
    but not impossible".

Q: Does it make a difference in how the term is represented in logic?

A: Not in predicate calculus.  But some people choose different
    ways of making that distinction in some versions of logic.

Q: Does it make a difference in a theorem prover?

A: No.  If you represent all the required, expected, and unusual
    relationships, you get the same implications.

Q: So why does anyone make that distinction?

A: Because some philosopher said so.

Q: Do all philosophers agree on that point?

A: No.  Some say it's a pseudo-problem.  Others say there's
    a continuum with many borderline cases.

Summary:  I have a high regard for good philosophy.  But I have little patience with those who make a fetish of distinctions that don't make a difference in computing the implications.  I have even less patience when those distinctions create incompatibilities between systems that happen to make different choices.

John

_________________________________________________________________
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

 


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