ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] Requesting Opinions on the Benefits of Predicates as

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: Pat Hayes <phayes@xxxxxxx>
Date: Tue, 17 Jun 2014 00:03:23 -0500
Message-id: <34FF66E8-6A2B-4E2B-99B0-87B32E3AC6D0@xxxxxxx>

On Jun 16, 2014, at 8:45 AM, Mark H Linehan <mhl@xxxxxxxxxxx> wrote:    (01)

> At the risk of embarrassing myself (since I certainly am no expert on CL or 
>IKL), I’ll try to show what we want to do by example:    (02)

Thanks for this, because it makes a whole lot of things very clear. Details 
below in-line. 
>  
> Starting from the simplest example: in SBVR, one could define what’s called a 
>verb concept, such as “company employs person”, where ‘company’ and ‘person’ 
>are roles that range over concepts of the same name.      (03)

I have no idea what this SVBR jargon is intended to mean, and strongly suspect 
that it is incoherent. But the issues that you clearly want to deal with have 
benn thoroughly investigated and understood in philsophical logic and KR now 
for about 50 years or more, so I will just use the standard terminology.    (04)

> One might have a rule such as ‘if some company employs some person, then ….” 
>which in CL would be:
>  
> (exists (company c)
> (exists (person p)
>    (if (employs c p)
>         …  )))    (05)

It would have universal quantifiers, not existential ones:    (06)

(forall ((C company)(P person))(if (employs C P) ... ))    (07)


>  
> Building up the example, suppose the conditional part of the rule instead is 
>“if some company employs some person during July, then ….”      (08)

Ah, but now you have changed the meaning of 'employs'. Above, this had two 
parameters, now it has three. Which is fine in CL, by the way, but you need to 
face up to how to relate (employs C P) to (employs C P T). As far as the logic 
is concerned, they are independent in meaning, so it is up to you to provide 
axioms which relate them. For example, you might say that     (09)

(forall (C P)(iff (employs C P)(exists (T)(employs C P T)) ))    (010)


> Using the IKL “that” operator and a “during” relationship and the concept 
>“July” (a ‘calendar month’):    (011)

Whoa. No, this is NOT the right way to do it. In fact, this is meaningless. 
According to the IKL semantics, (that (employs C P)) denotes a fixed 
proposition which is true or false. There is no room for any time-dependent 
variability in its truth value, or for making it depend on some other 
parameter.     (012)

>  
> (exists (company c)
> (exists (person p)
>   (exists (‘calendar month’ July)
>   (if (during (that (employs c p)) July)
>       … ))))    (013)

What you need is more like this:    (014)

(forall ((C company)(P person))(if (employs C P July) ... ))    (015)

where 'July' is unbound because it is being treated as a constant name. (In 
fact, I would suggest treating it as a typed literal, represented in CL by a 
term ('July' YearMonthDate) )    (016)

You do not need the (that ...) operator here: all you need is the CL ability to 
use the same relation name with different numbers of arguments.    (017)

If this polyadicity property of CL bothers you or your software (as it does for 
many users) then you can relace it by the idea of an event, and treat the 
construction (employs C P) as a term rather than a sentence, one that denotes 
that event, which can then have other properties, such as holding during a 
time-interval. The simple rule above would then look like this:    (018)

(forall ((C company)(P person))(if (holds (employs C P)) ... ))    (019)

and the time-relative one like this:    (020)

(forall ((C company)(P person))(if (holds (employs C P) July) ... ))    (021)

OR, if you want to go whole hog with the event-role style of axiomatization, 
something more like this:    (022)

(forall ((C company)(P person)(E employment))(if (and (employer E C)(employee E 
C)) ... )    (023)

and    (024)

(forall ((C company)(P person)(E employment))(if (and (employer E C)(employee E 
C)(during E July)) ... )   (**)    (025)

Although I would suggest not using 'during' as this already has a widely 
accepted meaning of a relation between time-intervals. A better word might be 
'when'. The E here is the 'event' (or perhaps 'happening' might be a better 
term) of someone being employed by something. Once they are admitted into 
existence as first-class objects, events can be given any number of properties: 
they can have times, locations, causes, reasons, agents, consequences, statuses 
(eg being legal or not), etc.     (026)

> Building the example some more, imagine the concept ‘employment’, whose 
>extension contains instances of a company employing a person:    (027)

That would simply be the employs relation itself, surely?  Note that the 
entities classified as 'employments' in (**) above are not things with 
instances, but concrete individuals.     (028)

>  
> (forall (c p)
> (iff (employment c p)
>   (and
>     (company c) (person p)
>     (that (employs c p) ))))    (029)

Again, that is meaningless as written. In fact it is not even legal IKL syntax, 
since (that (employs c p)) is not a sentence. What you want to say is simply    (030)

(forall (c p)(iff (employment c p)
                     (and (company c)(person p)(employs c p))
))    (031)

>  
> Now the final step, a rule about the date of an employment (an example of 
>what I meant by “an attribute of a class”):  “if there is some employment 
>during July, then ….”:
>  
>                (forall (employment e)
>  (exists (‘calendar month’ July)
>   (if (during e July)
>          …) ))    (032)

This is best written using the full event/role mode, above:    (033)

(forall ((E employment))(if (during E July) ... ))    (034)

(BTW, you do not want to put the quantifiers in the order you have them, as it 
makes the meaning of "July" depend upon the employment.)     (035)

>  
> I’m not at all sure that I’ve got this right, but I hope it shows what we 
>want to do.    (036)


What you are wanting to do here is almost universally needed in all KR schemes. 
The basic ideas of how to do it were described by Davidson in 1967 (he analyzed 
the logical form of the sentence "He did it at midnight, in the bathroom, 
slowly and deliberately, with a knife", where it emerged that the "it" being 
described was buttering a slice of toast.) The ways to formalize this in 
various ontological frameworks are also thoroughly investigated. There are 
entire formal languages based around the event/role syntax, for example. None 
of this has anything at all to do with the IKL (that ...) operator; it is a 
completely different issue.     (037)

Best wishes    (038)

Pat Hayes    (039)

>  
> The Date-Time Vocabulary is at http://www.omg.org/spec/DTV/.  Clause 16 
>defines how we relate situations to time, and clause 16.7 (“Propositions, 
>Situation Kinds, and Occurrences”) describes how we attempt to make sense of 
>the SBVR “state of affairs” concept.
>  
> Mark H. Linehan
> -----Original Message-----
> From: Pat Hayes [mailto:phayes@xxxxxxx] 
> Sent: Sunday, June 15, 2014 11:09 PM
> To: Mark H Linehan
> Cc: [ontolog-forum]
> Subject: Re: [ontolog-forum] Requesting Opinions on the Benefits of 
>Predicates as Nodes
>  
>  
> On Jun 13, 2014, at 8:18 PM, Mark H Linehan <mhl@xxxxxxxxxxx> wrote:
>  
> > Yes, I agree with what John says.
> >
> > SBVR (the OMG "Semantics of Business Vocabulary and Rules" standard)
> > comes at semantics, ontologies, and rules from the perspective of
> > business users and business usage. It is defined using "SBVR
> > Structured English", which is a form of Controlled Natural Language.
>  
> Oh dear.
>  
> > An important (but under-defined from
> > a logician's point-of-view) concept in SBVR is "state of affairs",
> > which is the class of instances of propositions.
>  
> That does not appear to make sense, as stated.
>  
> In my understanding of "proposition", propositions are not the kind of thing 
>that can have instances. Can you expand on what you mean by 'instance of a 
>proposition'? How does this idea relate to the similarly named 'instance of a 
>class'?
>  
> >  So one can define "employment" as
> > the state of affairs that a company employs a person,
>  
> Let me use CLIF notation here for a second. Do you mean
>  
> (employs C P)  for a particular C and P
>  
> or
>  
> (exists (C P)(employs C P))
>  
> or
>  
> (lambda (C P)(employs C P)), ie simply the relation employs
>  
> or
>  
> (that (employs C P))  ie the proposition that C employs P, for a particular C 
>and P
>  
> or
>  
> (that (exists (C P)(employs C P)))  ie the propositionthat something employs 
>someone
>  
> or maybe
>  
> (lambda (C P)(that (employs C P))) ie the function from two things to the 
>proposition that the first employs the second
>  
> or...
>  
> Alternatively, can you give some kind of precise account (preferably stated 
>using mathematical ideas) of what kind of structure counts as a proposition, 
>an instance of a proposition, etc..
>  
>  
> > and then one can
> > define attributes of the "employment" concept -- i.e. attributes of
> > the class of instances of any proposition
>  
> Attributes of the CLASS? Really? (Classes don't have many attributes, as a 
>rule.) Or do you mean attributes of the instances of the class? (But then - 
>see above - what *are* the instances of this class??)
>  
> > that uses "company employs person".
> >
> > When Ed, I, and others defined a "Date-Time Vocabulary" for SBVR, one
> > of the key requirements was to relate time to concepts such as
> > "employment".  We used "state of affairs" for that.
>  
> Really? As nothing you have said so far even mentions temporal ideas, I 
>wouild love to know more about how you did that. Pointer?
>  
> Pat Hayes
>  
>  
> > We also mapped the key aspects of the
> > Date-Time Vocabulary to Common Logic and IKL, using the "that"
> > operator to express the relationship between propositions such as
> > "company x employs person y" and attributes such as start date.
> >
> > Net: the IKL "that" operator is key to addressing a requirement that
> > arises in modeling real business vocabularies and rules.
> >
> > Mark
> >
> > -----Original Message-----
> > From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
> > [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of John F
> > Sowa
> > Sent: Friday, June 13, 2014 4:10 PM
> > To: ontolog-forum@xxxxxxxxxxxxxxxx
> > Subject: Re: [ontolog-forum] Requesting Opinions on the Benefits of
> > Predicates as Nodes
> >
> > Jack and Mark,
> >
> > I've been backing up through this rather lengthy thread, and I finally
> > got to your two comments near the beginning:
> >
> > JP
> >> If I might add, I will assert that predicates as first class citizens
> >> is perhaps the only difference between an RDF graph and a topic map.
> >
> > MHL
> >> Consider the triple {CompanyX employs Person1} using a predicate
> >> called "employs".  The triple implicitly describes what an English
> >> speaker would conceptualize as an "employment", with attributes such
> >> as "start date", "end date", a location, etc.
> >
> > Yes.  This is an important issue, and it's obscured by an unfortunate
> > tendency of some logicians to call verbs predicates.
> >
> > Peirce observed that when you say "Mary gave a child a book" there are
> > four entities involved:  Mary, the child, the book, and the act of
> > giving.  He allowed any or all of the four entities to have its own
> > existential quantifier (or "line of identity").
> >
> > About 70 years later, Donald Davidson rediscovered the advantages of
> > assigning quantified variables to verbs -- for the same reasons that
> > Jack and Mark cite.
> >
> > For conceptual graphs, anything you might want to refer to or link to
> > is represented by a concept node.  Anything you don't intend to refer
> > to is represented by a relation node.  But you always have an option
> > of analyzing any relation as a graph with more nodes that can be
> > referred to or linked to.
> >
> > For the KR ontology (http://www.jfsowa.com/ontology/ ), the default
> > mapping is to assign a concept node to every verb.  That node has an
> > implicit quantifier, which represents the action or the state.
> >
> > The idea of using the letters SVO to refer to the three parts of an
> > RDF triple is more confusing than helpful.  I don't recommend it.
> >
> > 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
> >
> >
>  
> ------------------------------------------------------------
> IHMC                                     (850)434 8903 home
> 40 South Alcaniz St.            (850)202 4416   office
> Pensacola                            (850)202 4440   fax
> FL 32502                              (850)291 0667   mobile (preferred)
> phayes@xxxxxxx       http://www.ihmc.us/users/phayes
>  
>  
>  
>  
>  
> 
> _________________________________________________________________
> 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    (040)

------------------------------------------------------------
IHMC                                     (850)434 8903 home
40 South Alcaniz St.            (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile (preferred)
phayes@xxxxxxx       http://www.ihmc.us/users/phayes    (041)







_________________________________________________________________
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    (042)

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