<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Managing RDF Using Named Graphs</title>
	<atom:link href="http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/</link>
	<description>A journal of no fixed aims or direction, by Leigh Dodds</description>
	<lastBuildDate>Fri, 10 Dec 2010 14:02:04 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-368</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Tue, 10 Nov 2009 09:46:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-368</guid>
		<description>Hi Peter,

I&#039;m not sure I see a big overlap between Resource Maps and Named Graphs. Resource Maps are an RDF resource that describes an aggregation of other resources, whereas a Named Graph provides context to a set of triples. I suppose in a loose sense, the Resource Map is also providing &quot;context&quot;, but I don&#039;t think the implementation or use cases really overlap. We might use one Named Graph for each Resource Map, but we could just as easily store several of them in a Named Graph.

I did wonder if a Resource Map could be considered as a serialization of a Named Graph, but I don&#039;t think that makes a lot of sense. One could probably implement a means to populate a collection of Named Graphs from a set of Resource Maps, but I think this would be messing with the semantics of both. 

For me Resource Maps are just extra assertions, describing additional relationships between resources, whereas Named Graphs contextualise data in a different, more &quot;out of band&quot; way.</description>
		<content:encoded><![CDATA[<p>Hi Peter,</p>
<p>I&#8217;m not sure I see a big overlap between Resource Maps and Named Graphs. Resource Maps are an RDF resource that describes an aggregation of other resources, whereas a Named Graph provides context to a set of triples. I suppose in a loose sense, the Resource Map is also providing &#8220;context&#8221;, but I don&#8217;t think the implementation or use cases really overlap. We might use one Named Graph for each Resource Map, but we could just as easily store several of them in a Named Graph.</p>
<p>I did wonder if a Resource Map could be considered as a serialization of a Named Graph, but I don&#8217;t think that makes a lot of sense. One could probably implement a means to populate a collection of Named Graphs from a set of Resource Maps, but I think this would be messing with the semantics of both. </p>
<p>For me Resource Maps are just extra assertions, describing additional relationships between resources, whereas Named Graphs contextualise data in a different, more &#8220;out of band&#8221; way.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Reinhardt</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-367</link>
		<dc:creator>Simon Reinhardt</dc:creator>
		<pubDate>Sun, 08 Nov 2009 09:57:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-367</guid>
		<description>The &quot;synthetic graphs&quot; idea seems very similar to the notion of &quot;views&quot; in relational databases and there is an implementation for Sesame called Networked Graphs which basically does that. But I think you need to combine this with access control management on the graph level (I think you can do that in Virtuoso). So for open external access you only offer a set of synthetic graphs for querying. But an application that has to query+update the data would get access to the original graphs for both operations. Otherwise you get some nasty problems, comparable to updates on views in RDBs.

Regarding subgraphs: http://www.w3.org/2004/03/trix/rdfg-1/ has a predicate for just that. But I wonder if explicitly stating this relationship is the best way of doing it. You can either associate statements with one graph only and then group those graphs together into larger graphs which don&#039;t actually have any statements associated with them in the store but are just linked to the subgraphs with this predicate. Or you can add statements to several graphs at once where some graphs contain fewer statements and are for more fine-grained purposes. The store could still store this efficiently by using statement IDs and associating those with different graph URIs instead of storing the statement multiple times. I&#039;m sure that&#039;s what some stores do anyway.</description>
		<content:encoded><![CDATA[<p>The &#8220;synthetic graphs&#8221; idea seems very similar to the notion of &#8220;views&#8221; in relational databases and there is an implementation for Sesame called Networked Graphs which basically does that. But I think you need to combine this with access control management on the graph level (I think you can do that in Virtuoso). So for open external access you only offer a set of synthetic graphs for querying. But an application that has to query+update the data would get access to the original graphs for both operations. Otherwise you get some nasty problems, comparable to updates on views in RDBs.</p>
<p>Regarding subgraphs: <a href="http://www.w3.org/2004/03/trix/rdfg-1/" rel="nofollow">http://www.w3.org/2004/03/trix/rdfg-1/</a> has a predicate for just that. But I wonder if explicitly stating this relationship is the best way of doing it. You can either associate statements with one graph only and then group those graphs together into larger graphs which don&#8217;t actually have any statements associated with them in the store but are just linked to the subgraphs with this predicate. Or you can add statements to several graphs at once where some graphs contain fewer statements and are for more fine-grained purposes. The store could still store this efficiently by using statement IDs and associating those with different graph URIs instead of storing the statement multiple times. I&#8217;m sure that&#8217;s what some stores do anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard Cyganiak</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-364</link>
		<dc:creator>Richard Cyganiak</dc:creator>
		<pubDate>Sat, 07 Nov 2009 20:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-364</guid>
		<description>In addition to TriG and TriX, &lt;a href=&quot;http://sw.deri.org/2008/07/n-quads/&quot; rel=&quot;nofollow&quot;&gt;N-Quads&lt;/a&gt; can also be handy. It&#039;s analogous to N-Triples, but has an optional fourth element.</description>
		<content:encoded><![CDATA[<p>In addition to TriG and TriX, <a href="http://sw.deri.org/2008/07/n-quads/" rel="nofollow">N-Quads</a> can also be handy. It&#8217;s analogous to N-Triples, but has an optional fourth element.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Murray</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-362</link>
		<dc:creator>Peter Murray</dc:creator>
		<pubDate>Fri, 06 Nov 2009 14:16:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-362</guid>
		<description>Great summary of the work on Named Graphs.  I wonder if you could comment on the intersection, if any, of Named Graphs with &lt;a href=&quot;http://www.openarchives.org/ore/1.0/primer#Nutshell&quot; rel=&quot;nofollow&quot;&gt;OAI-ORE Resource Maps&lt;/a&gt;.  An ORE Resource Map is obviously a much more weighty implementation of a collection of triples than a Named Graph as you have been describing.  (The &lt;a href=&quot;http://www.openarchives.org/ore/1.0/datamodel#Metadata_about_the_ReM&quot; rel=&quot;nofollow&quot;&gt;minimum metadata about an aggregation&lt;/a&gt; comes to mind immediately.)  I&#039;m wondering if there are more subtle distinctions, though.</description>
		<content:encoded><![CDATA[<p>Great summary of the work on Named Graphs.  I wonder if you could comment on the intersection, if any, of Named Graphs with <a href="http://www.openarchives.org/ore/1.0/primer#Nutshell" rel="nofollow">OAI-ORE Resource Maps</a>.  An ORE Resource Map is obviously a much more weighty implementation of a collection of triples than a Named Graph as you have been describing.  (The <a href="http://www.openarchives.org/ore/1.0/datamodel#Metadata_about_the_ReM" rel="nofollow">minimum metadata about an aggregation</a> comes to mind immediately.)  I&#8217;m wondering if there are more subtle distinctions, though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Hammond</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-361</link>
		<dc:creator>Tony Hammond</dc:creator>
		<pubDate>Fri, 06 Nov 2009 12:04:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-361</guid>
		<description>Re namespacing, I wasn&#039;t implying any semantic overloading. Nor, I think, is that necessarily true in an XML context. Far from it.

Basically namespacing is a mechanism that allows for a simple modularization so that two separate peer entities (or structures) can be managed within a common application space.

In that sense I do see think that &quot;namespacing&quot; is exactly what the &quot;named&quot; qualifier in &quot;Named Graphs&quot;  is bringing to the party. It allows for seperate RDF graphs to be &quot;named&quot; (hence &quot;namespaced&quot;) and to coexist within a single application. 

How that &quot;namespace&quot; is applied - i.e. the semantic overtones attributed to it - is another matter.

But just as XML were namespaces developed subsequently to XML 1.0 and that XML 1.0 had no namespaces, so RDF namespaces (or Named Graphs) are not represented in RDF 1.0. (aka RDF).

Tony</description>
		<content:encoded><![CDATA[<p>Re namespacing, I wasn&#8217;t implying any semantic overloading. Nor, I think, is that necessarily true in an XML context. Far from it.</p>
<p>Basically namespacing is a mechanism that allows for a simple modularization so that two separate peer entities (or structures) can be managed within a common application space.</p>
<p>In that sense I do see think that &#8220;namespacing&#8221; is exactly what the &#8220;named&#8221; qualifier in &#8220;Named Graphs&#8221;  is bringing to the party. It allows for seperate RDF graphs to be &#8220;named&#8221; (hence &#8220;namespaced&#8221;) and to coexist within a single application. </p>
<p>How that &#8220;namespace&#8221; is applied &#8211; i.e. the semantic overtones attributed to it &#8211; is another matter.</p>
<p>But just as XML were namespaces developed subsequently to XML 1.0 and that XML 1.0 had no namespaces, so RDF namespaces (or Named Graphs) are not represented in RDF 1.0. (aka RDF).</p>
<p>Tony</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-360</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 06 Nov 2009 10:55:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-360</guid>
		<description>Hi Gavin,

Great feedback thanks. The issue of how easy it is to support the different styles on the client, server, and implications for proxy servers (e.g. for caching) is definitely something that needs closer attention.

The &lt;code&gt;?graph=&lt;/code&gt; is easier to handle on the client side if you&#039;re using curl, wget, or HTML forms. These clients wil more readily handle the escaping if the graph uri is in a parameter. If you&#039;re coding something up then I&#039;d argue that using a query string or constructing a complete URI is just as easy either way. Depending on your HTTP client library, you might not need to care about encoding of parameters, so the code *may* be slightly cleaner, but thats clearly debatable.

On the server side, I&#039;m not sure I see much of a distinction either. In my experience its just as easy (and in some cases easier) to pull out a parameter from a request than split up the request URI. This is with both Ruby and Java frameworks. In the latter case I&#039;ve not used Restlet, but I&#039;m pretty sure that Jersey handles this OK. You mention that &quot;routing based on query parameter&quot; is slightly harder, and I agree, although I think most frameworks are leaning towards supporting binding to all aspects of the URI? I&#039;ll have to do some more digging.

Your comments lead me to dig into the public-rdf-dawg mailing list to see how the Working Group have been discussing this issue. There is some interesting, related discussion on &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-rdf-dawg/2009OctDec/0030.html&quot; rel=&quot;nofollow&quot;&gt;this thread about REST and HTTP Update&lt;/a&gt; and these &lt;a href=&quot;http://lists.w3.org/Archives/Public/public-rdf-dawg/2009AprJun/0329.html&quot; rel=&quot;nofollow&quot;&gt;suggestions for HTTP updates&lt;/a&gt;. Haven&#039;t digested it all yet, but the main issues seem to be support for PUT with parameters in web frameworks, and impact of parameters on caching of requests.

Cheers,

L.</description>
		<content:encoded><![CDATA[<p>Hi Gavin,</p>
<p>Great feedback thanks. The issue of how easy it is to support the different styles on the client, server, and implications for proxy servers (e.g. for caching) is definitely something that needs closer attention.</p>
<p>The <code>?graph=</code> is easier to handle on the client side if you&#8217;re using curl, wget, or HTML forms. These clients wil more readily handle the escaping if the graph uri is in a parameter. If you&#8217;re coding something up then I&#8217;d argue that using a query string or constructing a complete URI is just as easy either way. Depending on your HTTP client library, you might not need to care about encoding of parameters, so the code *may* be slightly cleaner, but thats clearly debatable.</p>
<p>On the server side, I&#8217;m not sure I see much of a distinction either. In my experience its just as easy (and in some cases easier) to pull out a parameter from a request than split up the request URI. This is with both Ruby and Java frameworks. In the latter case I&#8217;ve not used Restlet, but I&#8217;m pretty sure that Jersey handles this OK. You mention that &#8220;routing based on query parameter&#8221; is slightly harder, and I agree, although I think most frameworks are leaning towards supporting binding to all aspects of the URI? I&#8217;ll have to do some more digging.</p>
<p>Your comments lead me to dig into the public-rdf-dawg mailing list to see how the Working Group have been discussing this issue. There is some interesting, related discussion on <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg/2009OctDec/0030.html" rel="nofollow">this thread about REST and HTTP Update</a> and these <a href="http://lists.w3.org/Archives/Public/public-rdf-dawg/2009AprJun/0329.html" rel="nofollow">suggestions for HTTP updates</a>. Haven&#8217;t digested it all yet, but the main issues seem to be support for PUT with parameters in web frameworks, and impact of parameters on caching of requests.</p>
<p>Cheers,</p>
<p>L.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-358</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 06 Nov 2009 10:08:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-358</guid>
		<description>Hi Olivier,

I&#039;ll do my best to answer your questions.

1. Is TriX compatible with RDF/XML?

TriX is a completely separate XML serialization for RDF. As an extension it includes supports for grouping triples into graphs. There are some examples here: http://sw.nokia.com/trix/examples.xml

So from a syntax point of view, the two are incompatible. From an RDF model point of you, TriX can encode things (like named graphs) that you can&#039;t encode in RDF/XML.

2. how to include the same triple to several different named graphs (syntax in RDF/XML is prefered)

As RDF/XML doesn&#039;t allow you to indicate that a triple is included in a specific graph, then there&#039;s no way I can provide an example using that syntax I&#039;m afraid! :)

Using TriG notation (which I prefer) you could write:


&lt;code&gt;
@prefix: &lt;http://www.example.org/doc#&gt; .
@foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.

:G1 {  foaf:name &quot;Leigh Dodds&quot;. }
:G2 {  foaf:name &quot;Leigh Dodds&quot;. }
&lt;/code&gt;


This asserts the same triple in two different graphs. If we had a synthetic graph which was the RDF merge of these two, then it would contain a single triple.

3. is it possible to declare that a graph includes other graphs? (i.e a kind of supergraph – subgraphs)

I don&#039;t think either TriG or TriX address this, but then I&#039;m not sure I&#039;d expect them to as they&#039;re primarily a serialization format. I think what you&#039;re asking here is how we can associate metadata with graphs, e.g. to indicate that they have some relationship. I&#039;m sure there has been work done on this, but I&#039;m not aware of it. 

Metadata about named graphs, and how to manage that separately from the graphs themselves is something I can to cover in my next posting.</description>
		<content:encoded><![CDATA[<p>Hi Olivier,</p>
<p>I&#8217;ll do my best to answer your questions.</p>
<p>1. Is TriX compatible with RDF/XML?</p>
<p>TriX is a completely separate XML serialization for RDF. As an extension it includes supports for grouping triples into graphs. There are some examples here: <a href="http://sw.nokia.com/trix/examples.xml" rel="nofollow">http://sw.nokia.com/trix/examples.xml</a></p>
<p>So from a syntax point of view, the two are incompatible. From an RDF model point of you, TriX can encode things (like named graphs) that you can&#8217;t encode in RDF/XML.</p>
<p>2. how to include the same triple to several different named graphs (syntax in RDF/XML is prefered)</p>
<p>As RDF/XML doesn&#8217;t allow you to indicate that a triple is included in a specific graph, then there&#8217;s no way I can provide an example using that syntax I&#8217;m afraid! <img src='http://www.ldodds.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Using TriG notation (which I prefer) you could write:</p>
<p><code><br />
@prefix: &lt;http://www.example.org/doc#&gt; .<br />
@foaf: &lt;http://xmlns.com/foaf/0.1/&gt;.</p>
<p>:G1 {  foaf:name "Leigh Dodds". }<br />
:G2 {  foaf:name "Leigh Dodds". }<br />
</code></p>
<p>This asserts the same triple in two different graphs. If we had a synthetic graph which was the RDF merge of these two, then it would contain a single triple.</p>
<p>3. is it possible to declare that a graph includes other graphs? (i.e a kind of supergraph – subgraphs)</p>
<p>I don&#8217;t think either TriG or TriX address this, but then I&#8217;m not sure I&#8217;d expect them to as they&#8217;re primarily a serialization format. I think what you&#8217;re asking here is how we can associate metadata with graphs, e.g. to indicate that they have some relationship. I&#8217;m sure there has been work done on this, but I&#8217;m not aware of it. </p>
<p>Metadata about named graphs, and how to manage that separately from the graphs themselves is something I can to cover in my next posting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-356</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 06 Nov 2009 09:57:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-356</guid>
		<description>Hi Tony,

I&#039;m *very* wary about using the word &quot;namespace&quot; in conjunction with Named Graphs :)

In the sense that they provide some context, then yes, they I suppose they are similar. 

But XML namespaces typically indicate some collection of elements and attributes that have been defined by a specific source. So the closest analogy to a namespace in the RDF world is a schema or vocabulary. There&#039;s no implication for named graphs that the data in the graph is all from one source, or uses one vocabulary, or is about one thing. There are many ways they can be used.</description>
		<content:encoded><![CDATA[<p>Hi Tony,</p>
<p>I&#8217;m *very* wary about using the word &#8220;namespace&#8221; in conjunction with Named Graphs <img src='http://www.ldodds.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In the sense that they provide some context, then yes, they I suppose they are similar. </p>
<p>But XML namespaces typically indicate some collection of elements and attributes that have been defined by a specific source. So the closest analogy to a namespace in the RDF world is a schema or vocabulary. There&#8217;s no implication for named graphs that the data in the graph is all from one source, or uses one vocabulary, or is about one thing. There are many ways they can be used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Hammond</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-354</link>
		<dc:creator>Tony Hammond</dc:creator>
		<pubDate>Fri, 06 Nov 2009 08:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-354</guid>
		<description>Hi Leigh:

Would it be fair to characterize Named Graphs as nothing more (or less) than namespacing for RDF?

Cheers,

Tony</description>
		<content:encoded><![CDATA[<p>Hi Leigh:</p>
<p>Would it be fair to characterize Named Graphs as nothing more (or less) than namespacing for RDF?</p>
<p>Cheers,</p>
<p>Tony</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olivier Rossel</title>
		<link>http://www.ldodds.com/blog/2009/11/managing-rdf-using-named-graphs/comment-page-1/#comment-350</link>
		<dc:creator>Olivier Rossel</dc:creator>
		<pubDate>Thu, 05 Nov 2009 19:29:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=349#comment-350</guid>
		<description>A few questions:
- is TriX compatible with RDF/XML ?
- how to include the same triple to several different named graphs (syntax in RDF/XML is prefered)
 - is it possible to declare that a graph includes other graphs? (i.e a kind of supergraph - subgraphs)</description>
		<content:encoded><![CDATA[<p>A few questions:<br />
- is TriX compatible with RDF/XML ?<br />
- how to include the same triple to several different named graphs (syntax in RDF/XML is prefered)<br />
 &#8211; is it possible to declare that a graph includes other graphs? (i.e a kind of supergraph &#8211; subgraphs)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

