Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-26 Thread Tim Peters
[Benji York]
> ...
> We're drifting fatally off topic here, but: Just as there are some
> statements that cannot be expressed as dyadic predicates, are there also
> those which cannot be expressed as triadic predicates?
>
> "John gives a book to Mary in exchange for 5 euros"
>
> If you store the relations "John gives a book to Mary" and "Mary gives 5
> euros to John" how will you know that the 5 euros were payment for the book?

Worse, this happened on a Sunday, in Brussels, while winds were
gusting from the south, and a nearby solicitor wearing a lime green
bowler hat advised them that their transaction was exempt from VAT ;-)

Even allowing relations of arbitrary arity, there are some kinds of
knowledge that can't be expressed in full-blown first-order logic. 
For example, Google will find lots of (mostly tedious )
discussion of the Geach-Kaplan sentence:

Some critics admire only one another.
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-26 Thread Jean-Marc Orliaguet
Benji York wrote:

> Jean-Marc Orliaguet wrote:
>
>> Benji York wrote:
>>
>>> Can you give an example of one of these pieces of knowledge?
>>
>>
>> "John gives a book to Mary"
>
>
>> If you store the relations "John drops the book" and "Mary picks the
>> book" how will you know if the book belongs to Mary and belonged to John
>> before it was given to her? You could add "the book belongs to John"
>> "the book belongs to Mary", add some date information, add the fact that
>> the action is a gift (reification), ... all the pieces still have to be
>> put together. This will need to be interpreted in a language (or a query
>> language that does unions, intersections, ..) that knows how to put the
>> pieces together. The model is very verbose is not explicit at all.
>
>
> I assume you mean "no combination of dyadic predicates using only
> John, the book, and Mary as subjects and objects".  If so, I agree.
>
> We're drifting fatally off topic here, but: Just as there are some
> statements that cannot be expressed as dyadic predicates, are there
> also those which cannot be expressed as triadic predicates?
>
> "John gives a book to Mary in exchange for 5 euros"
>
> If you store the relations "John gives a book to Mary" and "Mary gives
> 5 euros to John" how will you know that the 5 euros were payment for
> the book?


Now we'll really off-topic, but well:

Actually there is a theorem (called the "reduction thesis", hinted by
Peirce 100 years ago, and proved first in 1988) that says that even
though no combination of dyadic relations can be used to build a genuine
triadic relation, any relation of adicity > 3 can be built by combining
triadic relations.

Here is a quote that I found (CP. 6 is Collected Papers of C.S Peirce vol6):

   CP 6.323. A tetradic, pentadic, etc. relationship is of no higher
nature than a triadic relationship; in the sense that it consists of
triadic relationships and is constituted of them. But a triadic
relationship is of an essentially higher nature than a dyadic
relationship, in the sense that while it involves three dyadic
relationships, it is not constituted by them. If A gives B to C, he, A,
acts upon B, and acts upon C; and B acts upon C. Perhaps, for example,
he lays down B, whereupon C takes B up, and is benefited by A. But these
three acts might take place without that essentially  intellectual
operation of transferring the legal right of possession, which
axiomatically cannot be brought about by any pure dyadic relationships
whatsoever.


Here is the example that you took, analysed into 6 triadic relations:


--- START QUOTE ---

Peirce: CP 7.537
   There are no more Kainopythagorean categories than these three. For
the first category is nonrelative experience, the second is experience
of a dyadic relation, and the third is experience of a triadic relation.
It is impossible to analyze a triadic relation, or fact about three
objects, into dyadic relations; for the very idea of a compound supposes
two parts, at least, and a whole, or three objects, at least, in all. On
the other hand, every tetradic relation, or fact about four objects can
be analyzed into a compound of triadic relations. This can be shown by
an example. Suppose a seller, S, sells a thing, T, to a buyer, B, for a
sum of money, M. This sale is a tetradic relation. But if we define
precisely what it consists in, we shall find it to be a compound of six
triadic relations, as follows:

Peirce: CP 7.537
1st, S is the subject of a certain receipt of money, R, in return
for the performance of a certain act As;

Peirce: CP 7.537
2nd, This performance of the act As effects a certain delivery, D,
according to a certain contract, or agreement, C;

Peirce: CP 7.537
3rd, B is the subject of a certain acquisition of good, G, in return
for the performance of a certain act, Ab;

Peirce: CP 7.537
4th, This performance of the act Ab effects a certain payment, P,
according to the aforesaid contract C;

Peirce: CP 7.537
5th, The delivery, D, renders T the object of the acquisition of good G;

Peirce: CP 7.537
6th, The payment, P, renders M the object of the receipt of money, R.

Or we may define a sale as the execution of contract of sale. The
contract of sale has two clauses. The first clause provides for a giving
and a receiving. The giving is by the seller of the commodity; the
receiving is by the buyer of the same commodity. The second clause
provides for a giving and a receiving. The giving is by the buyer of the
price; the receiving is by the seller of the same price. The execution
is of the first clause and of the second, etc. But I do not think this
latter definition as good as the other, since it introduces several
unnecessary elements and also covertly brings in four pentadic
relations, such as the relation of the buyer to the first and second
clauses of the contract and to the separate executions of them.

--- END QUOTE ---

/JM
___
Zope3-dev m

Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-26 Thread Benji York

Jean-Marc Orliaguet wrote:

Benji York wrote:

Can you give an example of one of these pieces of knowledge?


"John gives a book to Mary"



If you store the relations "John drops the book" and "Mary picks the
book" how will you know if the book belongs to Mary and belonged to John
before it was given to her? You could add "the book belongs to John"
"the book belongs to Mary", add some date information, add the fact that
the action is a gift (reification), ... all the pieces still have to be
put together. This will need to be interpreted in a language (or a query
language that does unions, intersections, ..) that knows how to put the
pieces together. The model is very verbose is not explicit at all.


I assume you mean "no combination of dyadic predicates using only John, 
the book, and Mary as subjects and objects".  If so, I agree.


We're drifting fatally off topic here, but: Just as there are some 
statements that cannot be expressed as dyadic predicates, are there also 
those which cannot be expressed as triadic predicates?


"John gives a book to Mary in exchange for 5 euros"

If you store the relations "John gives a book to Mary" and "Mary gives 5 
euros to John" how will you know that the 5 euros were payment for the book?

--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-25 Thread Jean-Marc Orliaguet
Benji York wrote:

> Jean-Marc Orliaguet wrote:
>
>> the whole issue with RDF I think is: many who build representational
>> models have noticed that the (subject, object, predicate) triad is not
>> sufficiently flexible to represent knowledge that has to do with laws,
>> agreements, abstract concept, regularity, phenomena that evolve with
>> time, etc.
>
>
> Can you give an example of one of these pieces of knowledge?


Yes:

"John gives a book to Mary"

means more than a dyadic relation followed by another:

"John drops the book" and "Mary picks the book"

it means that there is an agreement between John and Mary that the book
is indefinitely hers (which '__ gives __ to ___' signifies). A notion of
a transfer of the right of property, which no combination of dyadic
predicates can express because all three elements in the relation must
be taken in the same act.

If you store the relations "John drops the book" and "Mary picks the
book" how will you know if the book belongs to Mary and belonged to John
before it was given to her? You could add "the book belongs to John"
"the book belongs to Mary", add some date information, add the fact that
the action is a gift (reification), ... all the pieces still have to be
put together. This will need to be interpreted in a language (or a query
language that does unions, intersections, ..) that knows how to put the
pieces together. The model is very verbose is not explicit at all.

"Joe prefers apples to cookies" cannot be expressed as a mere
combination of:

- "Joe likes apples"
- "Joe likes cookies"
- "apples are prefered to cookies"   (i.e. by whom?)
 
The last proposition is incorrect outside the context of "Joe prefering
apples to cookies". So if you add such a relation to your storage
without the context, you introduce a proposition that has no meaning.

- a feedback loop is another one that cannot be expressed as a
combination of dyads, since all 3 entities in the loop cooperate
simultaneously.

- zope adapters cannot be expressed by combining dyadic predicates only.
When you look up an adapter you must pass the context AND the new
interface. All three entities must be treated together.
 
This could be a good exercice to convert the zcml declaration of
adapters to a RDF schema and do something with it ...


/JM
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-25 Thread Benji York

Jean-Marc Orliaguet wrote:

the whole issue with RDF I think is: many who build representational
models have noticed that the (subject, object, predicate) triad is not
sufficiently flexible to represent knowledge that has to do with laws,
agreements, abstract concept, regularity, phenomena that evolve with
time, etc.


Can you give an example of one of these pieces of knowledge?
--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37

2005-08-25 Thread Jean-Marc Orliaguet
Michel Pelletier wrote:

>>From: Olivier Grisel <[EMAIL PROTECTED]>
>>Subject: [Zope3-dev] Re: [DRAFT] local portlets and perspectives
>>
>>
>
>  
>
>>>(SellerURI, merchandiseURI, BuyerURI, "Sale Transaction")
>>>
>>>  
>>>
>>Let's rewrite this relation to a prolog equivalent fact:
>>transaction(SellerURI, merchandiseURI, BuyerURI, "Sale Transaction").
>>
>>There is no primary key in that relation. We could add one such as 
>>TransactionURI for instance :
>>
>>transaction(TransactionURI, SellerURI, merchandiseURI, BuyerURI, "Sale 
>>Transaction").
>>
>>In this case we could rewrite this fact without loss of information 
>>using only binary relations/predicates by projecting it:
>>
>>transactionSeller(transactionURI, SellerURI), 
>>transactionMerchandise(transactionURI, merchandiseURI), 
>>transactionBuyer(transactionURI, buyerURI), 
>>transactionType(transactionURI, "Sale Transaction").
>>
>>This description is then equivalent and RDF friendly. However it 
>>requires the introduction of a primary key which was implicit in the 
>>first description and is much more verbose.
>>
>>
>
>I think the original triadic statement can be encoded with one rdf
>triple + context in rdflib:
>
>Graph.add((SellerURI, merchandiseURI, BuyerURI), TransactionURI)
>
>Where TransactionURI is the context.  I'm still feeling that these two
>models are either equivalent, or there is some property of triadic
>relations that I just don't "get" yet.  This paper:
>http://www.cs.indiana.edu/pub/techreports/TR606.pdf also appears (from
>reading the first five pages) to state that reified RDF triples *are*
>Peirce relations, which seems to make sense as they are statements about
>statements, although I can't claim to really understand the guts of the
>paper.
>
>I want to reiterate to you guys that I'm not trying to be argumentative
>or prove that one thing is better than the other, I take a deep interest
>in these subjects and I want to know as much as possible about them.
>But unfortunately I think we've strayed off the topic for this list.
>
>-Michel
>
>  
>

Hi Michel,

the whole issue with RDF I think is: many who build representational
models have noticed that the (subject, object, predicate) triad is not
sufficiently flexible to represent knowledge that has to do with laws,
agreements, abstract concept, regularity, phenomena that evolve with
time, etc. All these phenomena cannot be represented by using a long
chain of dyadic predicates. By adding new dyadic relations into the
graph you are not adding more information into the model,  you are just
adding more data.

Every language on Earth uses verbs that correspond to monadic, dyadic or
triadic predicates. No verb in any language uses predicates with four
terms. It means that with 3 kinds of predicates you can express just any
idea, but that you cannot with dyadic predicates only express all ideas.

For some reason, RDF was designed on the basis of dyadic predicates
(subject, object). It also means that there is a whole category of
phenomena that cannot be represented in RDF-based models, and that you
will have to use a language such as Python on top the model to add the
missing relations. You can use adapters, for instance; these are great
triadic relations.   

The only valid solution would be to break the RDF model and introduces
quads, but this would also mean breaking existing software and lose
interoperability with the triple model.

No one is willing to do this, so instead you'll find such fixes as:

- reification (turning an abstract concept into a concrete thing), i.e.
since a triadic idea cannot be modelled using a combination of dyads, we
will give it a name, and then we will be able to say: "there is a
transaction", "the transation has a buyer", "the transaction has a
seller", etc.

- adding a "context", i.e a fourth element, and use it to refer to the
relation:

  graph.add(triple, context)

  which is a variation on the reification method, but maybe easier to use.

All of this is meant to fix a model on an API level without breaking it,
but it is still dyadic relations that are used to refer to other dyadic
relations ... Basically: if you add the thing that is missing, you break
the model..

best
/JM

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com