<?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"
	>
<channel>
	<title>Comments on: RDF as Backing Storage</title>
	<atom:link href="http://crschmidt.net/blog/90/rdf-as-backing-storage/feed/" rel="self" type="application/rss+xml" />
	<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/</link>
	<description>Ramblings of a GIS Hacker</description>
	<pubDate>Wed, 19 Nov 2008 23:16:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Christopher Schmidt</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3761</link>
		<dc:creator>Christopher Schmidt</dc:creator>
		<pubDate>Sun, 25 Sep 2005 05:23:23 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3761</guid>
		<description>Leo: Regardless of whether something is "possible", if it's not done, then advocating the use of technology which doesn't do it is not ideal. SPARQL implementations at the moment - or at least Redland - are not optimized stores. Advocating their use is not ideal in the same way that advocating using a SQL store which was not optimized would not be ideal compared to other options before SQL optimization was well understood.

Things aren't difficult to do, but until they're done, and regularly, advocating SPARQL-as-query-solution is dangerous and probably not the best way to do it.</description>
		<content:encoded><![CDATA[<p>Leo: Regardless of whether something is &#8220;possible&#8221;, if it&#8217;s not done, then advocating the use of technology which doesn&#8217;t do it is not ideal. SPARQL implementations at the moment - or at least Redland - are not optimized stores. Advocating their use is not ideal in the same way that advocating using a SQL store which was not optimized would not be ideal compared to other options before SQL optimization was well understood.</p>
<p>Things aren&#8217;t difficult to do, but until they&#8217;re done, and regularly, advocating SPARQL-as-query-solution is dangerous and probably not the best way to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leo Sauermann</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3698</link>
		<dc:creator>Leo Sauermann</dc:creator>
		<pubDate>Fri, 16 Sep 2005 23:19:51 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3698</guid>
		<description>the approach suggested in 9):
-In general, triple patterns should be resolved in order of 'completeness'-

I implemented it 2 years ago for RDQL in Jena exactly like Rich suggest. Took me one day. CrSchmidt, your example is not very good as it can be easily avoided by kindergarden style triple reordering. The real lame-ness of SPARQL starts when you do graph origin questions in combination with optional joins, groups and fulltext stuff. then you can restart julie instantly. 

But these things will be solved, the standard is very good and its optimisable, database guys have been doing this for years. Good to write about sparql anyhow.</description>
		<content:encoded><![CDATA[<p>the approach suggested in 9):<br />
-In general, triple patterns should be resolved in order of &#8216;completeness&#8217;-</p>
<p>I implemented it 2 years ago for RDQL in Jena exactly like Rich suggest. Took me one day. CrSchmidt, your example is not very good as it can be easily avoided by kindergarden style triple reordering. The real lame-ness of SPARQL starts when you do graph origin questions in combination with optional joins, groups and fulltext stuff. then you can restart julie instantly. </p>
<p>But these things will be solved, the standard is very good and its optimisable, database guys have been doing this for years. Good to write about sparql anyhow.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rich</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3411</link>
		<dc:creator>Rich</dc:creator>
		<pubDate>Sun, 21 Aug 2005 23:27:15 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3411</guid>
		<description>I've thought about optimising queries when precompiling SPARQL in twinql. 

In general, triple patterns should be resolved in order of 'completeness' -- 'check' patterns (those with no variables) should always be run first, as they can short-cut the query. The remaining patterns should be refined in order to produce as few matches as possible (which, all else being equal, means running 1-var, then 2-var, then 3-var matches in that order). It would perhaps be beneficial to allow smart optimisation under normal circumstances, with user-specified optimisation for cases where you can take more time.

I think you're quite right that SPARQL is not a data access panacea. (I'd also like to see a comparison with paths, which are a common use-case.)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve thought about optimising queries when precompiling SPARQL in twinql. </p>
<p>In general, triple patterns should be resolved in order of &#8216;completeness&#8217; &#8212; &#8216;check&#8217; patterns (those with no variables) should always be run first, as they can short-cut the query. The remaining patterns should be refined in order to produce as few matches as possible (which, all else being equal, means running 1-var, then 2-var, then 3-var matches in that order). It would perhaps be beneficial to allow smart optimisation under normal circumstances, with user-specified optimisation for cases where you can take more time.</p>
<p>I think you&#8217;re quite right that SPARQL is not a data access panacea. (I&#8217;d also like to see a comparison with paths, which are a common use-case.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3402</link>
		<dc:creator>Danny</dc:creator>
		<pubDate>Sun, 21 Aug 2005 10:12:01 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3402</guid>
		<description>Ah, ok. I guess I'm probably more upbeat about SPARQL because most of my recent data access needs haven't needed anything (directly) programmatic. The XML results =&gt; XSLT =&gt; HTML/dataFormatX pipe has been working very well for me in terms of programming simplicity (or at least separation of concerns - XSLT's a dog). For traditional 3plus-tier maybe it isn't such a good fit (yet). Most of the issues I've run into haven't been directly related to the query engine, but then I'm still in early days on this stuff.  </description>
		<content:encoded><![CDATA[<p>Ah, ok. I guess I&#8217;m probably more upbeat about SPARQL because most of my recent data access needs haven&#8217;t needed anything (directly) programmatic. The XML results => XSLT => HTML/dataFormatX pipe has been working very well for me in terms of programming simplicity (or at least separation of concerns - XSLT&#8217;s a dog). For traditional 3plus-tier maybe it isn&#8217;t such a good fit (yet). Most of the issues I&#8217;ve run into haven&#8217;t been directly related to the query engine, but then I&#8217;m still in early days on this stuff.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ontogon</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3399</link>
		<dc:creator>Ontogon</dc:creator>
		<pubDate>Sun, 21 Aug 2005 03:49:04 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3399</guid>
		<description>&lt;strong&gt;RDF Storage&lt;/strong&gt;

John Barstow has a short entry about why he thinks that the relational database will lose ground to RDF based...</description>
		<content:encoded><![CDATA[<p><strong>RDF Storage</strong></p>
<p>John Barstow has a short entry about why he thinks that the relational database will lose ground to RDF based&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Schmidt</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3398</link>
		<dc:creator>Christopher Schmidt</dc:creator>
		<pubDate>Sat, 20 Aug 2005 23:48:30 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3398</guid>
		<description>"Stop. Don't do that." is only regarding "Don't tell everyone SPARQL is the end-all be-all solution to all your problems with working with RDF". Not that RDF shouldn't be used - I strongly believe it should, and can be. However, telling people who don't know RDF to switch to using SPARQL+RDF for data in an application is going to cause a lot of pain in the end. 

The biggest reason I advise against SPARQL (without due consideration) is that so many aspects of data modelling are ignored if you simply use SPARQL. If you have a good model, you really don't *need* to use it for the most part. I'll explain this a bit more:

If I have a SPARQL query to populate my variables, I'm probably going to use a specific query, a la:

&lt;tt&gt;SELECT ?nick, ?name WHERE { ?p foaf:nick ?nick; foaf:name ?name. }&lt;/tt&gt;

Now, if someone adds an additional property to ?p, I won't know about it. I think if someone uses a non-SPARQL solution -- iterating over triples fetch from a data store, rather than just fetching the specific triples -- they'll be more likely to be aware of those triples and able to do something with them. And once you're iterating over a set of results that simple, there's actually more work in the building up of a query than there is otherwise!

I do believe SPARQL has some great uses, but I just don't want people to keep thinking that SPARQL makes things easier for implementors. I suppose it's possible that it's just me, but other than some easier syntax, SPARQL queries don't make things much easier. Cleaner, shorter code wise, possibly. Easier, not in my opinion.

I think for developing, once you build a good model, SPARQL isn't going to help you out much. If you can get a unique identifier that you know ahead of time, then you can easily iterate over the statements in the model attached to that key - and you don't have to mess with the speed of SPARQL, nor do you have to worry that some additional data that got snuck in is going to get in your way.

My main concern is just with marketing right now though. Something that for most people is going to *look* significantly slower for no discernable reason (people are used to SQL, where you can't really give it a query that it won't optimize) is going to make pushing SPARQL or anything else much more difficult in the long run.</description>
		<content:encoded><![CDATA[<p>&#8220;Stop. Don&#8217;t do that.&#8221; is only regarding &#8220;Don&#8217;t tell everyone SPARQL is the end-all be-all solution to all your problems with working with RDF&#8221;. Not that RDF shouldn&#8217;t be used - I strongly believe it should, and can be. However, telling people who don&#8217;t know RDF to switch to using SPARQL+RDF for data in an application is going to cause a lot of pain in the end. </p>
<p>The biggest reason I advise against SPARQL (without due consideration) is that so many aspects of data modelling are ignored if you simply use SPARQL. If you have a good model, you really don&#8217;t *need* to use it for the most part. I&#8217;ll explain this a bit more:</p>
<p>If I have a SPARQL query to populate my variables, I&#8217;m probably going to use a specific query, a la:</p>
<p><tt>SELECT ?nick, ?name WHERE { ?p foaf:nick ?nick; foaf:name ?name. }</tt></p>
<p>Now, if someone adds an additional property to ?p, I won&#8217;t know about it. I think if someone uses a non-SPARQL solution &#8212; iterating over triples fetch from a data store, rather than just fetching the specific triples &#8212; they&#8217;ll be more likely to be aware of those triples and able to do something with them. And once you&#8217;re iterating over a set of results that simple, there&#8217;s actually more work in the building up of a query than there is otherwise!</p>
<p>I do believe SPARQL has some great uses, but I just don&#8217;t want people to keep thinking that SPARQL makes things easier for implementors. I suppose it&#8217;s possible that it&#8217;s just me, but other than some easier syntax, SPARQL queries don&#8217;t make things much easier. Cleaner, shorter code wise, possibly. Easier, not in my opinion.</p>
<p>I think for developing, once you build a good model, SPARQL isn&#8217;t going to help you out much. If you can get a unique identifier that you know ahead of time, then you can easily iterate over the statements in the model attached to that key - and you don&#8217;t have to mess with the speed of SPARQL, nor do you have to worry that some additional data that got snuck in is going to get in your way.</p>
<p>My main concern is just with marketing right now though. Something that for most people is going to *look* significantly slower for no discernable reason (people are used to SQL, where you can&#8217;t really give it a query that it won&#8217;t optimize) is going to make pushing SPARQL or anything else much more difficult in the long run.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3397</link>
		<dc:creator>Danny</dc:creator>
		<pubDate>Sat, 20 Aug 2005 21:42:30 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3397</guid>
		<description>I'm really grateful for the info on optimisation, very useful material, and I reckon most of your advice is sound, but "Stop. Don’t do that." seems to me as bad as recommending RDF/SPARQL stores/query for everything. As you say: "The real answer is to evaluate the tools to find which best meets your needs as far as performance and other needs goes.". I'd add that raw performance isn't necessarily all that high on the list when it comes to cost/benefit, and that it's not all that often you can tell in advance where bottlenecks will be. A good model and a correct implementation can save a lot of developer time, and a query language is a lot easier than hand-coding all the data flow. SPARQL implementations may not be as fast as they could be yet - but if everyone opts for hard-coding againt the triplestore or RDF-free SQL they never will be. 

But having said all that, I'll throw in some more caveats next time I've got the cheerleader's poms-poms ;-)</description>
		<content:encoded><![CDATA[<p>I&#8217;m really grateful for the info on optimisation, very useful material, and I reckon most of your advice is sound, but &#8220;Stop. Don’t do that.&#8221; seems to me as bad as recommending RDF/SPARQL stores/query for everything. As you say: &#8220;The real answer is to evaluate the tools to find which best meets your needs as far as performance and other needs goes.&#8221;. I&#8217;d add that raw performance isn&#8217;t necessarily all that high on the list when it comes to cost/benefit, and that it&#8217;s not all that often you can tell in advance where bottlenecks will be. A good model and a correct implementation can save a lot of developer time, and a query language is a lot easier than hand-coding all the data flow. SPARQL implementations may not be as fast as they could be yet - but if everyone opts for hard-coding againt the triplestore or RDF-free SQL they never will be. </p>
<p>But having said all that, I&#8217;ll throw in some more caveats next time I&#8217;ve got the cheerleader&#8217;s poms-poms <img src='http://crschmidt.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christopher Schmidt</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3396</link>
		<dc:creator>Christopher Schmidt</dc:creator>
		<pubDate>Sat, 20 Aug 2005 19:35:06 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3396</guid>
		<description>There are obviously a number of improvements which can be made to improve performance at a number of levels in query languages over RDF triplestores. Mortenf's work in SPARQL-&gt;SQL translations have shown me that: they improve the speed of all queries immensely.

However, in the short term, telling people "Just use SPARQL" as a pancea is misleading, and I think leads more to hinder the efforts of those people trying to encourage using RDF as a database. The real answer is to evaluate the tools to find which best meets your needs as far as performance and other needs goes. (If you need to store it in MySQL, you're limited by certain constraints, if you can't use BDB for some reason, etc.) However, no matter what, it is probably better to have people at least look at how the underlying triplestores are implementing these queries before using it as a solution. Currently, I'm not aware of any public implementations that have advertised high speeds and reliability in the way neccesary for SPARQL to come out as a solution for many of the use cases it's proposed for, imho.

Of course, some people may have contradictory evidence. Leigh mentioned his 200 megatriple store, Swoogle I'm sure has a lot more than the 10 megatriple dump they shared, but I don't know if they're using SPARQL at all in the backend. Thus far, I haven't seen a single case where someone has specifically stated that they are using a SPARQL-based query engine at the core of an application.</description>
		<content:encoded><![CDATA[<p>There are obviously a number of improvements which can be made to improve performance at a number of levels in query languages over RDF triplestores. Mortenf&#8217;s work in SPARQL->SQL translations have shown me that: they improve the speed of all queries immensely.</p>
<p>However, in the short term, telling people &#8220;Just use SPARQL&#8221; as a pancea is misleading, and I think leads more to hinder the efforts of those people trying to encourage using RDF as a database. The real answer is to evaluate the tools to find which best meets your needs as far as performance and other needs goes. (If you need to store it in MySQL, you&#8217;re limited by certain constraints, if you can&#8217;t use BDB for some reason, etc.) However, no matter what, it is probably better to have people at least look at how the underlying triplestores are implementing these queries before using it as a solution. Currently, I&#8217;m not aware of any public implementations that have advertised high speeds and reliability in the way neccesary for SPARQL to come out as a solution for many of the use cases it&#8217;s proposed for, imho.</p>
<p>Of course, some people may have contradictory evidence. Leigh mentioned his 200 megatriple store, Swoogle I&#8217;m sure has a lot more than the 10 megatriple dump they shared, but I don&#8217;t know if they&#8217;re using SPARQL at all in the backend. Thus far, I haven&#8217;t seen a single case where someone has specifically stated that they are using a SPARQL-based query engine at the core of an application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Beckett</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3395</link>
		<dc:creator>Dave Beckett</dc:creator>
		<pubDate>Sat, 20 Aug 2005 18:45:27 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3395</guid>
		<description>Rasqal has no query optimising.  In fact I took some out that would have made your two queries both run the fastest way, especially as I have no background in databases or query planning.  Instead I'm working on correctness first.  There's also the tricky problem that over a raw triple store, there is no extra knowledge about which triple match is quickest, and at the lowest level, that's all you have.   To fix this, you either need some hints from the rdf store or an alternate approach.

One other approach is to turn SPARQL queries into SQL ones over an underlying relational store, and then you can benefit from the years^wdecades of work in that field.  This is already starting to be demonstrated and coming together by various people (Jena, 3store, rdfstore, algae) and I'd expect to see more public demonstrations of this in a few months.

Finally, the SQL schema for storing RDF can be a lot better than the example given above, fixed limit URI lengths considered,er, harmful ;)  There are papers in the literature.
</description>
		<content:encoded><![CDATA[<p>Rasqal has no query optimising.  In fact I took some out that would have made your two queries both run the fastest way, especially as I have no background in databases or query planning.  Instead I&#8217;m working on correctness first.  There&#8217;s also the tricky problem that over a raw triple store, there is no extra knowledge about which triple match is quickest, and at the lowest level, that&#8217;s all you have.   To fix this, you either need some hints from the rdf store or an alternate approach.</p>
<p>One other approach is to turn SPARQL queries into SQL ones over an underlying relational store, and then you can benefit from the years^wdecades of work in that field.  This is already starting to be demonstrated and coming together by various people (Jena, 3store, rdfstore, algae) and I&#8217;d expect to see more public demonstrations of this in a few months.</p>
<p>Finally, the SQL schema for storing RDF can be a lot better than the example given above, fixed limit URI lengths considered,er, harmful <img src='http://crschmidt.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  There are papers in the literature.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chimezie</title>
		<link>http://crschmidt.net/blog/90/rdf-as-backing-storage/#comment-3393</link>
		<dc:creator>chimezie</dc:creator>
		<pubDate>Sat, 20 Aug 2005 15:58:36 +0000</pubDate>
		<guid isPermaLink="false">http://crschmidt.net/blog/archives/90/rdf-as-backing-storage/#comment-3393</guid>
		<description>Excellent points.  I've had similar frustrations/experiences with my RDF implementation of choice (4RDF).  Adhoc, queries (sent w/ minimal thought as to the work required by the query implementation ) will work in a small-scale system.  Beyond that (I've found that for the MySQL implementation of 4RDF the limit of usablity is about 4M triples), they simply are not feasible for 'real-world' problems - especially if RDF querying is the primary (or sole) means by which data is extracted.

I've often had to reimplement standard functions (such as type, which is supposed to return all rdf:Resources of a given rdf:type) to take advantage of datastore specific mechanics.

I think the main problem is that most current RDF datastores map the RDF data model to RDBMS as 3 - 4 column tables (w/ slight variations with each implementation).  See Redland's MySQL &lt;a href='http://www.wasab.dk/morten/2004/04/redland-mysql-schema.sql'&gt;schema&lt;/a&gt; (this may be dated) and 4RDFs (below).

&lt;pre&gt;CREATE TABLE ftrdf_%s_statement (
    subject       varchar(150) not NULL,
    predicate     varchar(150) not NULL,
    object        text,
    statementUri  varchar(45) not NULL,
    domain        text,
    otype         varchar(5) not NULL,
    INDEX %s_stmt_spd_index (subject(100),predicate(100),domain(50)),
    INDEX %s_stmt_pod_index (predicate(100),object(50),domain(50)),
    INDEX %s_stmt_d_index (domain(10))) TYPE=InnoDB
&lt;/pre&gt;

This simply does not scale due to the redundancy or repeating resources URI's for each statement made about them as well as relying *completely* on the underlying indexing capabilities to locate statements by parts.  

I believe &lt;a href="http://www.oracle.com/technology/tech/semantic_technologies/"&gt;Oracles&lt;/a&gt; approach will solve what amounts to an 'engineering' problem in the standard way RDF datastores implement ontop of RDBMS.  Primarily, it stores RDF URI's once only.  This is almost half the scalability issue alone.  RDF datastores will always have a ceiling (much lower than its predecessor database systems), but the current implementations have that ceiling much lower than is feasible for solving 'real world' problems.  It shifts the emphasis to the how sophisticated the queries are and how the query optimizers  execute such queries.  It will be the same with *all* RDF querying languages until the datastore implementations catch up.</description>
		<content:encoded><![CDATA[<p>Excellent points.  I&#8217;ve had similar frustrations/experiences with my RDF implementation of choice (4RDF).  Adhoc, queries (sent w/ minimal thought as to the work required by the query implementation ) will work in a small-scale system.  Beyond that (I&#8217;ve found that for the MySQL implementation of 4RDF the limit of usablity is about 4M triples), they simply are not feasible for &#8216;real-world&#8217; problems - especially if RDF querying is the primary (or sole) means by which data is extracted.</p>
<p>I&#8217;ve often had to reimplement standard functions (such as type, which is supposed to return all rdf:Resources of a given rdf:type) to take advantage of datastore specific mechanics.</p>
<p>I think the main problem is that most current RDF datastores map the RDF data model to RDBMS as 3 - 4 column tables (w/ slight variations with each implementation).  See Redland&#8217;s MySQL <a href='http://www.wasab.dk/morten/2004/04/redland-mysql-schema.sql'>schema</a> (this may be dated) and 4RDFs (below).</p>
<pre>CREATE TABLE ftrdf_%s_statement (
    subject       varchar(150) not NULL,
    predicate     varchar(150) not NULL,
    object        text,
    statementUri  varchar(45) not NULL,
    domain        text,
    otype         varchar(5) not NULL,
    INDEX %s_stmt_spd_index (subject(100),predicate(100),domain(50)),
    INDEX %s_stmt_pod_index (predicate(100),object(50),domain(50)),
    INDEX %s_stmt_d_index (domain(10))) TYPE=InnoDB
</pre>
<p>This simply does not scale due to the redundancy or repeating resources URI&#8217;s for each statement made about them as well as relying *completely* on the underlying indexing capabilities to locate statements by parts.  </p>
<p>I believe <a href="http://www.oracle.com/technology/tech/semantic_technologies/">Oracles</a> approach will solve what amounts to an &#8216;engineering&#8217; problem in the standard way RDF datastores implement ontop of RDBMS.  Primarily, it stores RDF URI&#8217;s once only.  This is almost half the scalability issue alone.  RDF datastores will always have a ceiling (much lower than its predecessor database systems), but the current implementations have that ceiling much lower than is feasible for solving &#8216;real world&#8217; problems.  It shifts the emphasis to the how sophisticated the queries are and how the query optimizers  execute such queries.  It will be the same with *all* RDF querying languages until the datastore implementations catch up.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
