- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Thu, 25 Jul 2024 15:01:11 -0400
- To: RDF-star Working Group <public-rdf-star-wg@w3.org>
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