W3C home > Mailing lists > Public > public-egov-ig@w3.org > April 2010

Re: [dcat] rdf graphs and documents

From: William Waites <william.waites@okfn.org>
Date: Fri, 30 Apr 2010 11:49:06 +0100
Message-ID: <4BDAB5A2.7010301@okfn.org>
To: Chris Beer <chris@e-beer.net.au>
CC: Erik Wilde <dret@berkeley.edu>, Cory Casanave <cory-c@modeldriven.com>, "public-egov-ig@w3.org" <public-egov-ig@w3.org>, Richard Cyganiak <richard@cyganiak.de>
\On 10-04-30 06:46, Chris Beer wrote:
> I seriously ( unless my RDF understanding is flawed ) would of assumed
> that you cannot by definition have a rdf:graph element. The graph has
> to be by nature dynamic, that is, it is, graph can only exist when
> subject, predicate, and object are known. It could act as a container
> for the 3 rdf elements, but in and of itself I see no point in
> defining it. I guess what I'm saying, by example, that there is no use
> in trying to define x in algebra, as x could be anything, or more
> importantly, x by itself could be anything. Or to put it another way -
> is there any point in defining a "page containing any combination of
> elements" within HTML - the concept of a page is the end result of
> markup, just as a graph is the end result of any rdf markup. (then
> again, prehaps it is worth defining graph as a rdf doctype or
> something). I'm no expert, so be gentle if I'm completely on the wrong
> track here :)

I think we're talking at cross purposes - probably my fault for
diverting the discussion a bit.

The meaning of graph is application-specific. That said, most back-ends
that I am familiar with (rdflib, 4store, redland) have the idea of a
graph or context as a container for triples - regardless of how they may
be returned from a web server. This allows, for example, SPARQL queries
of the form SELECT * WHERE { GRAPH <g> { ... }}.

I am concerned with versioned updates to these stores. The only
vocabulary for expressing changesets that I am aware of is the talis one
which makes use of reification, e.g.:

:foo a cs:ChangeSet;
    cs:addition [
        rdf:subject <bar>;
        rdf:predicate <baz>;
        rdf:object "hello"
    ] .

In this case, adding e.g. rdf:graph <g> in the addition is unambiguous
and meaningful. In fact it is necessary to communicate to the back-end
quadstore where it should put the triple.
Absence of rdf:graph means, to me, "put the triple in the default graph".

This is not to say that that anything in RDF requires this behaviour or
that implementations have a concept of graph or default graph that works
this way. But right now it is impossible to make a system like this
without an ad-hoc definition of a xyz:graph predicate and it feels like
such a predicate is close enough to the core that it should be defined
somewhere standard.


William Waites           <william.waites@okfn.org>
Mob: +44 789 798 9965    Open Knowledge Foundation
Fax: +44 131 464 4948                Edinburgh, UK
Received on Friday, 30 April 2010 10:50:19 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:00:43 UTC