Michel Pelletier wrote:

>On Thu, 2005-08-25 at 04:10 +0200, Jean-Marc Orliaguet wrote:
>>You would need a quadruple store in that case (see the previous mail) -
>rdflib.Graph is actually a quadruple store.  Many users still say
>TripleStore because that was the old class name, but most RDF systems,
>rdflib included, have grown a concept called "context"  a quad-element
>that lets you assign context to a triple, sparql calls this the
>"source", and some people say that it is used to track the "provenance"
>of a triple.  Perhaps this is similar to the triadiac relations.

OK, but the idea is that you can choose the elements in the relation, if
one them is set in advance, this is just an extra parameter that is stored.

>>if you have (Subject, Predicate, Object) in RDF
>>here you have:
>>- monadic relation: (first, predicate)
>>- dyadic relation: (first, second, predicate)
>>- triadic relation: (first, second, third, predicate)
>Ok, so in RDF a dyadic relationship is (DocumentURI, dc:title, "Expense
>Report"), what would a similar triadic relationship be?

(SellerURI, merchandiseURI, BuyerURI, "Sale Transaction")

in a sale transaction a seller sells some merchandise to a buyer

the relation involves three dyadic relations:
- a relation between the seller and the buyer,
- a relation between the seller and the merchandise
- a relation between the merchandise and the buyer

but the transaction involves all three elements taken together, not any
two of the three taken separately.

let's put it that way: you can store dyadic relations in you database
and do queries to guess who the buyer is in a given transaction, who the
seller is and what the sold item is, but this will never represent the
transaction itself.

everything that involves some sort of agreement, laws, regulations,
general concepts is triadic. Remove the agreement and the dyadic
relations will fall.

one practical example is the one of a feeback loop. If you try to
decompose it into dyadic relations the feedback loop will stops working
because all three elements must be taken together (see the second part
of the message in this thread too: http://suo.ieee.org/email/msg10941.html )

an adapter is involved in a triadic relation too, when you declare the
adapter you have to specify the interface adapted, the interface
implemented and the factory. remove any of the three elements and the
"adapter" relation will make no sense. BTW adapter are stored in zcml as
triadic predicates:


regards /JM

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

Reply via email to