Olivier Grisel wrote:
> Jean-Marc Orliaguet wrote:
>> (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
> 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.
> In the portletInPerspective example, one would similarly need to
> introduce a primary key to be able to describe the same facts using
> bianry relations only and thus being able to use a rdflib graph to
> store and query the local/contextual porlets layouts.
If you use a primary key to collect all the dyadic relations into a
unique relation, then you have implicitly created a triadic relation
(identified by the key), except that you also explicitly enumerate the
underlying relations. So in the end you'll have to store: the primary
key + 3 dyadic relations between 6 elements.
Zope3-dev mailing list