W3C home > Mailing lists > Public > public-rdf-wg@w3.org > April 2011

Re: RDF-ISSUE-25 (Deprecate Reification)

From: Dan Brickley <danbri@danbri.org>
Date: Mon, 11 Apr 2011 08:55:15 +0200
Message-ID: <BANLkTi=mP+f-E9ZrjJSY7W1QwWwoC1XYuA@mail.gmail.com>
To: Sandro Hawke <sandro@w3.org>
Cc: Pat Hayes <phayes@ihmc.us>, RDF Working Group WG <public-rdf-wg@w3.org>
On 11 April 2011 06:50, Sandro Hawke <sandro@w3.org> wrote:
> On Sat, 2011-04-09 at 08:49 -0500, Pat Hayes wrote:
>> > ] ISSUE-25 is about the RDF reification vocabulary, which is a
>> > ] built-in vocabulary for reifying *statements*. You are talking
>> > ] about a common modeling practice in domain vocabularies for
>> > ] reifying *relationships*. That has nothing to do with ISSUE-25.
>> >
>> > Right, that was what I wanted to have explicitly clear. It's not the
>> > idea or practice of reification that is to be deprecated but the
>> > baked-in support for reifying binary relations.
>> No, really, you have this wrong. It IS the idea of reification that is
>> being deprecated; and this device that you have mentioned, of encoding
>> an n-ary relation using a bundle of binary 'role' relations, is NOT
>> reification. The two things are distinct. Using the name of one to
>> refer to the other is going to cause a lot of confusion. Reification
>> is using RDF to *describe* other pieces of RDF.
> Pat, I'm a little confused here.   What I think William is saying sounds
> right to me, so I don't know why you're calling it wrong.
> If we have ternary relationship "showing", between a movie, a show-time,
> and a theater, and we want to represent that in RDF, we have (as you've
> both pointed out) several options.   If we have a lot of similar ternary
> relations, we might choose a  generalized representation like this:
>  [ :ternaryRelation movie:showing;
>   :op1 "The Sound of Music";
>   :op2 "2011-04-11T12:40:00Z"^^xs:datetime;
>   :op3 eg:SomeTheater ]
> We could of course do something similar for any particular arity
> relation.   If we did it for the 2-ary case it would look exactly like
> 2004 RDF reification, wouldn't it?
> Now, William's example [1] was more like:
>  [ a movie:Showing;
>   movie:title "The Sound of Music";
>   movie:showtime "2011-04-11T12:40:00Z"^^xs:datetime;
>   movie:theater eg:SomeTheater;
>  ]
> ... but the difference between my two examples doesn't seem to me to
> cross a bright line, where the first is the evil reification and the
> second is recommended practice.  If you see a bright line there, could
> you try to make it more clear for me what exactly it forbids?   Thanks.

One of the original motivations for the RDF'99 M+S reification - can
we call it uppercase Reification in an RDFWG/W3C context? - was to
provide a standard encoding for descriptions of statements, distinct
from an encoding that asserted the statement itself. So it gives a
structure for passing around "there is a statement whose subject is s,
predicate is p and value is v", such that those Reifying statements
can all be true even while the underlying triple is false.

That's why you see examples from that era floating around with things
like 'eg:believes" attached to them. It was supposed to be close to
Web of Trust and so on. The older RDF spec also included a section on
signed RDF graphs, for example. It didn't really work out well, not
least because the chosen encoding fails to mix well with any kind of
identity reasoning, since x rdf:subject y & y owl:sameAs z screws
things up in textbook ways. The idea was that I might want to publish
RDF along lines "Sandro believes that
http://dbpedia.org/resource/Clark_Kent is human" without any nearby
"Clark_Kent sameAs Superman, a non-human" information messing up the
clarity of my description of Sandro's belief. (The fact that Clark
Kent is now well known as a fictional character doesn't help make this
a good example, I must say. Back to morning/evening star, perhaps?).

So the 'bright red line' is just that this particulary n-ary structure
is one designed for indirectly describing statements without asserting
them. Whereas you are giving nice examples of n-ary structures whose
'truth in the world' (eg. regarding characteristics of some movie) is
true or false directly. In those, we're not concerned with creating a
indirected package of information characterising the movie-related
claims -- the thing your movie description describes is a movie. The
thing RDF'99 Reification tries to describe is an 'RDF statement'
(which perhaps is ultimately about a movie). And the core problem is
that the "layer of indirection" is leaky, eg. when other claims
believed about the entities mentioned in rdf:subject/predicate/object
claims imply new Reified triples.





>     -- Sandro
> [1] http://lists.w3.org/Archives/Public/public-rdf-wg/2011Apr/0232.html
Received on Monday, 11 April 2011 06:55:46 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:04:05 UTC