triple terms are not a universal panacea

TLDR: Triple terms are not a panacea and not even the best choice for 
representing things like events.

[This message might, or might not, be related to the concerns that Thomas 
Lörtsch has brought up.]


There seems to be a feeling that triple terms can do anything.   Although that 
is technically true, if only because triples can do anything, there are things 
that triple terms may not be the best solution for.

Consider, for example, events (or indeed any other n-ary relationship). 
Suppose we want to represent events, like marriages, and also want to describe 
events that are not necessarily true (as far as we are concerned).

The old RDF way would be to create nodes for each event, with properties for 
the roles of the event, as in

:m1 a :marriage ;
     :spouse :liz ;
     :spouse :conrad ;
     :start "6 May 1950"^^date ;
     :place :beverlyhills .

:m5 a :marriage ;
     :spouse :liz ;
     :spouse :richard ;
     :start "15 March 1964"^^date ;
     :place :Ritz-Carlton .

:m6 a :marriage ;
     :spouse :liz ;
     :spouse :richard ;
     :start "26 June 1974"^^date ;
     :place :Chobe .

With triple terms it is possible to use edges instead, as in

:liz :spouse :conrad .
:m1 rdf:reifies << :liz :spouse :conrad >>;
      :start "6 May 1950"^^date ;
      :place :beverlyhills  .

:liz :spouse :richard .
:m5 rdf:reifies << :liz :spouse  :richard >>
      :start "15 March 1964"^^date ;
      :place :Ritz-Carlton  .

:liz :spouse :richard .
:m6 rdf:reifies << :liz :spouse  :richard >>
      :start "26 June 1974"^^date ;
      :place :Chobe .

So far, so good, with a savings of one triple per event, and two for events 
that reuse a triple term.  Note, however, that two of the events do share a 
triple term, which is an indication that there might be problems.

But the edge-based representation has issues related to the node-based one. 
The edge-based representation elevates two of the property values of the event 
to primary status and relegates the others to secondary status.  The 
edge-based representation also imposes an order on these two values - one has 
to be the subject and the other the object.  If the relationship is symmetric 
as is the one above then it is unclear which value to make the subject and 
which the object.  This can be overcome by using two triples but the 
two-triple solution has its own problems.


If one of the events that share a triple term is disputed then things get more 
difficult and if one wants to keep the edge-centric representation one has to 
(uniformly) add something stating whether the triple term information is part 
of an event that actually happened.  (Here I am being deliberatively imprecise 
as the notion itself is imprecise.)

:liz :spouse :conrad .
:m1 rdf:reifies << :liz :spouse :conrad >>
      :status :happened ;
      :start "6 May 1950"^^date ;
      :place :beverlyhills .

:liz :spouse :richard .
:m5 rdf:reifies << :liz :spouse  :richard >>
      :status :happened ;
      :start "15 March 1964"^^date ;
      :place :Ritz-Carlton .

:m6 rdf:reifies << :liz :spouse  :richard >>
      :status :nothappened ;
      :start "26 June 1974"^^date ;
      :place :Chobe .


In the end, it seems to me that the old way is actually a better way of 
capturing events.  Using triple terms does sometimes provide an easier upgrade 
path for someone who is already using single triples as the (sole) 
representation of an event or a state related to an event but as far as I am 
concerned this is the only reason to use and edge-centric representation for 
events.

peter

Received on Thursday, 25 July 2024 19:01:17 UTC