Re: [Zope3-dev] Re: Zope3-dev Digest, Vol 25, Issue 37
[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
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
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
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
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
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