RE: Why Triples? (was Re: What do the ontologists want)

> 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