- From: Phil Archer <phil@philarcher.org>
- Date: Thu, 01 Mar 2012 08:33:07 +0000
- To: Ruben Verborgh <ruben.verborgh@ugent.be>
- CC: W3C SWIG Mailing-List <semantic-web@w3.org>
(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