Re: Can't RDF describe collection resources?

(Just replying on Sem Web IG)

Hi Ruben,

Back in the midsts of time there were rdf predicates of aboutEach and 
aboutEachPrefix but these were shown to be logically flawed and, to 
great shouts of joy, were dropped from the 2004 specs that we all use today.

Wind forward several years and a solution to the aboutEach problem was 
provided by POWDER [1]. It allows you to create a little bit of XML that 
says what you want to say and that can then be processed to return 
individual triples that can be generated automatically.

The POWDER file would look something like this:

<powder xmlns="http://www.w3.org/2007/05/powder#"
         xmlns:ex="http://example.org/vocab#">

   <attribution>
     <issuedby src="http://example.org/company.rdf#me" />
     <issued>2012-03-01T08:12:00</issued>
   </attribution>

   <dr>
     <iriset>
       <includehosts>ugent.be</includehosts>
       <includepathstartswith>/posts/35/comments/</includepathstartswith>
     </iriset>

     <descriptorset>
       <ex:memberOf>http://ugent.be/posts/35/comments</ex:color>
     </descriptorset>
   </dr>
</powder>

Which I've put online at [2].

Give that as a data source to a POWDER Processor [3] and then you can 
throw comment URIs at it and get back the triples you want, so if you 
pass it http://www.ugent.be/posts/35/comments/3 you get back triples 
that include the one you're after, i.e.

<http://www.ugent.be/posts/35/comments/3> :memberOf 
<http://ugent.be/posts/35/comments>

See [4] for the full output (which comes as RDF/XML).

Basically what we're doing here is making assertions based on URI 
patterns which means using a semantic extension (defined in POWDER's 
Formal Semantics document). I know that this is is heresy to many Sem 
Web folk but it does provide a way to solve exactly the problem you pose 
whilst ending up with what one might call 'proper triples.'

HTH

Phil.

P.S. In the broader context, people spend a lot of time and effort 
designing URI schemes - good, that's as it should be. But without 
something like POWDER, all that design effort - the intention behind 
those Cool URIs - gets thrown out with the bathwater.

[1] http://www.w3.org/standards/techs/powder
[2] http://philarcher.org/powder/blogcomments.xml
[3] http://i-sieve.com/powderprocessor/
[4] http://kwz.me/bz


On 01/03/2012 07:28, Ruben Verborgh wrote:
> Dear Semantic Web enthousiasts,
>
> Suppose we have a Web application for blogging:
> - /posts/35 is a blog post
> - /posts/35/comments are the comments to that post
> - /posts/35/comments/3 is a specific comment to this post
>
> In RDF, it is straightforward to make the relation between the blog post and a specific comment:
>    </posts/35>  :hasComment</posts/35/comments/3>.
> It is also easy to describe the relation between a specific comment and all comments:
>    </posts/35/comments/4>  :memberOf</posts/35/comments>.
>
> However, how do we indicate the relationship between the blog post and *all* comments that belong to it?
> I.e., what is the relationship between</posts/35>  and</posts/35/comments>  ?
>
> One could make a new predicate for that of course:
>    </posts/35/>  :hasComments</posts/35/comments>.
> But then, we still have to explain the relation between :hasComments and :hasComment; and we’d have to do that for every such plural predicate.
>
> This seems to be a fundamental problem.
> Clearly, the resource “comments on blog post 35” exists, but there doesn’t seem to be a straightforward way to describe it in RDF.
> RDF lists will not be sufficient: they could indeed explain the relation between a specific comment and all comments, but not the relation between all comments and the blog post.
> Also note that the indirect relation “_:x :hasComment _:y. _:y :memberOf _:z” is not sufficient: a blog post can have no comments, but even then it still has an (empty) comments resource.
>
> Have you encountered this issue and how do you solve it?
>
> Kind regards,

-- 

Phil Archer
http://philarcher.org/
+44 (0)7887 767755
@philarcher1

Received on Thursday, 1 March 2012 08:33:47 UTC