- From: Ziv Hellman <ziv@unicorn.com>
- Date: Sat, 19 May 2001 19:18:12 +0200
- To: "Sandro Hawke" <sandro@w3.org>
- Cc: <www-rdf-logic@w3.org>
- Message-ID: <6194CD944604E94EB76F9A1A6D0EDD230E5566@calvin.unicorn.co.il>
> There's no reason a set of triples like > > <a, color, red> > <a, size, big> > <a, flavor, sweet> > <b, color, green> > <b, size, small> > <b, flavor, bitter> > > can't be presented to users as > > object color size flavor > ====== ===== ==== ===== > a red big sweet > b green small bitter > This is a nice example, but if you examine it closely you will notice that it does not represent a true multi-ary relation, but rather a serialization of natural binary relations: an object has a colour, it has a size, it has a flavour, and each of these is an attribute of the object. In this case, the table can be directly reduced to the triples, and vice-versa. Add price to the list later, and you have just tacked on yet another binary predicate. But consider the following more complicated table that one might encounter in real life and want to make available on a semantic web: month city cinema theatre film ------- ---------- ----------- ------------ --------- April Tel Aviv Globus 1 Pokemon 2 April Tel Aviv Globus 1 Gladiator April Tel Aviv Globus 2 Miss Congeniality April Tel Aviv Peer 1 Miss Congeniality April Tel Aviv Peer 2 Cast Away April Jerusalem Gil 1 Pokemon 2 April Jerusalem Gil 2 Proof of Life April Jerusalem Globus 1 15 Minutes April Jerusalem Globus 2 102 Dalmatians May Tel Aviv Globus 1 Pokemon 2 May Tel Aviv Globus 1 Billy Elliot May Tel Aviv Globus 2 The Mummy May Tel Aviv Peer 1 The Mummy May Tel Aviv Peer 2 Exit Wounds May Jerusalem Gil 1 Pokemon 2 May Jerusalem Gil 2 The Mummy May Jerusalem Globus 1 A Hard Day's Night May Jerusalem Globus 2 15 Minutes Unfortunately, no matter how one views this, there is no way to reduce the information content here to binary attributes. In order to encode it as ground atom triples, one would probably artificially have to create 18 objects, each of which would then be associated in a binary relation to each basic item in the table. The resulting data construct would look so baroque and/or contain so much redundancy that I would guess someone somewhere will eventually notice that RDF has containers and decide to ship the table more straightforwardly as a list of lists and by-pass the triples altogether. > The best reasons I've heard for triples: > > We don't want to grant any particular properties or relations > special status. > > If we later want to add a property (column) "price" or even "price at > Whole Foods Market in Newtonville on 2001-05-18" we can do that > without breaking anything. In the cinemas example above, it is not immediately clear that adding new triples somewhere deep in a complicated triple encoding of the data is easier -- or less likely to break anything -- than tacking on a new value at the end of each list in a list of lists encoding. Cheers, Ziv
Received on Saturday, 19 May 2001 12:20:09 UTC