<?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: Describing SPARQL Extension Functions</title>
	<atom:link href="http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/</link>
	<description>A journal of no fixed aims or direction, by Leigh Dodds</description>
	<lastBuildDate>Wed, 25 Aug 2010 22:49:06 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Holger Knublauch</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-363</link>
		<dc:creator>Holger Knublauch</dc:creator>
		<pubDate>Fri, 06 Nov 2009 16:51:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-363</guid>
		<description>Thanks, Leigh. Yes I can see that your vocabulary covers aspects that are not in the SPIN vocabulary, and these aspects perfectly make sense. All I wanted to clarify is that for the overlapping bits (i.e. function interface declarations), we (as a community) should attempt to reuse existing and established vocabularies. SPIN has been &quot;out there&quot; for almost a year now, and I know of many groups that use it. Furthermore it is supported by a free editing tool (TopBraid Composer) and an open source API. I hope it will be in the spirit of the Semantic Web to link to the same URIs for properties and classes that really mean the same. The more we do this, the more likely it will be to get widely deployed. And yes, for the parts not in SPIN it is perfectly fine to use another namespace. I really hope that either the W3C will one day add such a generic SPARQL extension point declaration mechanism, or at least some de-facto standard emerges.

BTW, I am also not thrilled about the term MagicProperty, and I had thought long about how to name them in SPIN. I went for spin:MagicProperty because they are really declared as rdf:Properties as well. The term &quot;property function&quot; is IMHO confusing because it overlaps with the term &quot;function&quot;, which means something similar but for FILTER and project statements. It is not a good idea to have two identifiers for distinct things, and one identifier is a sub string of the other...</description>
		<content:encoded><![CDATA[<p>Thanks, Leigh. Yes I can see that your vocabulary covers aspects that are not in the SPIN vocabulary, and these aspects perfectly make sense. All I wanted to clarify is that for the overlapping bits (i.e. function interface declarations), we (as a community) should attempt to reuse existing and established vocabularies. SPIN has been &#8220;out there&#8221; for almost a year now, and I know of many groups that use it. Furthermore it is supported by a free editing tool (TopBraid Composer) and an open source API. I hope it will be in the spirit of the Semantic Web to link to the same URIs for properties and classes that really mean the same. The more we do this, the more likely it will be to get widely deployed. And yes, for the parts not in SPIN it is perfectly fine to use another namespace. I really hope that either the W3C will one day add such a generic SPARQL extension point declaration mechanism, or at least some de-facto standard emerges.</p>
<p>BTW, I am also not thrilled about the term MagicProperty, and I had thought long about how to name them in SPIN. I went for spin:MagicProperty because they are really declared as rdf:Properties as well. The term &#8220;property function&#8221; is IMHO confusing because it overlaps with the term &#8220;function&#8221;, which means something similar but for FILTER and project statements. It is not a good idea to have two identifiers for distinct things, and one identifier is a sub string of the other&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-359</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 06 Nov 2009 10:28:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-359</guid>
		<description>Hi Yves,

Thanks for the clarification! There seems to be no phrase to describe this feature that everyone is happy with. So far we have:

* Magic Predicates
* Magic Properties
* Property Functions
* Functional Predicates

I don&#039;t really like the &quot;Magic&quot; ones, and have tended to prefer property functions. I&#039;ve been using &quot;Functional Predicates&quot; lately as I picked up the term from Lee Feigenbaum, but clearly its got some additional connotations that are confusing. Perhaps &quot;property functions&quot; is a less confusing term.</description>
		<content:encoded><![CDATA[<p>Hi Yves,</p>
<p>Thanks for the clarification! There seems to be no phrase to describe this feature that everyone is happy with. So far we have:</p>
<p>* Magic Predicates<br />
* Magic Properties<br />
* Property Functions<br />
* Functional Predicates</p>
<p>I don&#8217;t really like the &#8220;Magic&#8221; ones, and have tended to prefer property functions. I&#8217;ve been using &#8220;Functional Predicates&#8221; lately as I picked up the term from Lee Feigenbaum, but clearly its got some additional connotations that are confusing. Perhaps &#8220;property functions&#8221; is a less confusing term.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yves</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-357</link>
		<dc:creator>Yves</dc:creator>
		<pubDate>Fri, 06 Nov 2009 10:08:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-357</guid>
		<description>Hello!

Nice post! Just one small terminology comment: I wouldn&#039;t qualify list:member as a functional predicate (which implies that for one subject, there is just one object).

I would qualify list:member as a non-deterministic (one subject, N possible objects) builtin (the engine knows how to derive truth values for it) predicate.

Cheers!
y</description>
		<content:encoded><![CDATA[<p>Hello!</p>
<p>Nice post! Just one small terminology comment: I wouldn&#8217;t qualify list:member as a functional predicate (which implies that for one subject, there is just one object).</p>
<p>I would qualify list:member as a non-deterministic (one subject, N possible objects) builtin (the engine knows how to derive truth values for it) predicate.</p>
<p>Cheers!<br />
y</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-355</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Fri, 06 Nov 2009 09:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-355</guid>
		<description>Hi Holger,

You&#039;re correct I should have looked more closely at SPIN after you had pointed it out to me, as it does have vocabulary that addresses similar use cases.

Looking at the documentation I can see that it defines classes for both extension functions (ScalarFunctions in the SPARQL 1.1. parlance) and magic properties (what I&#039;ve called FunctionalPredicates). 

And your examples do encourage people to attach labels and comments to function descriptions, which is one of the key things I want to achieve.

It was totally obvious to me that SPIN could be used in this way based on my earlier, and less in depth looks at the specifications.

So yes, SPIN could very much be used to achieve what I&#039;m suggesting here, so apologies for lack of reference.

Having said that there&#039;s a couple of areas where my draft vocabulary includes some extra constructs.

Firstly, I&#039;ve defined the notion of a FunctionLibrary. Is this something that SPIN supports?

Secondly, I&#039;ve added some terms to describe a SPARQL processor, and relate it to the functions it implements. As far as I can see SPIN doesn&#039;t do that, as a SPIN function definition is basically a description of how an engine could/should implement a function, not whether it supports it. I think there&#039;s a subtle difference there? Would be interested in your thoughts.

Finally, I&#039;ve also tried to define my terms and extra properties so that it aligns with the SPARQL 1.1 terminology. Clearly you couldn&#039;t have done this as SPIN was developed first! One reason for doing that is to ensure things relate sensibly, and I&#039;m sure SPIN could be tweaked to do the same. 

But, to be honest, I&#039;d be more than happy if the SPARQL Working Group decided, or could be convinced, to slightly extend the scope of the Service Description specification to include a little more information. Illustrating the small amount of extra vocabulary required is one useful way to do that I think. And this is another reason for my attempting this. 

I&#039;d be more than happy for another, more standard or well-supported vocabulary to get widely used. The key thing is to get people documenting that extensions!

Thanks again for your comments.</description>
		<content:encoded><![CDATA[<p>Hi Holger,</p>
<p>You&#8217;re correct I should have looked more closely at SPIN after you had pointed it out to me, as it does have vocabulary that addresses similar use cases.</p>
<p>Looking at the documentation I can see that it defines classes for both extension functions (ScalarFunctions in the SPARQL 1.1. parlance) and magic properties (what I&#8217;ve called FunctionalPredicates). </p>
<p>And your examples do encourage people to attach labels and comments to function descriptions, which is one of the key things I want to achieve.</p>
<p>It was totally obvious to me that SPIN could be used in this way based on my earlier, and less in depth looks at the specifications.</p>
<p>So yes, SPIN could very much be used to achieve what I&#8217;m suggesting here, so apologies for lack of reference.</p>
<p>Having said that there&#8217;s a couple of areas where my draft vocabulary includes some extra constructs.</p>
<p>Firstly, I&#8217;ve defined the notion of a FunctionLibrary. Is this something that SPIN supports?</p>
<p>Secondly, I&#8217;ve added some terms to describe a SPARQL processor, and relate it to the functions it implements. As far as I can see SPIN doesn&#8217;t do that, as a SPIN function definition is basically a description of how an engine could/should implement a function, not whether it supports it. I think there&#8217;s a subtle difference there? Would be interested in your thoughts.</p>
<p>Finally, I&#8217;ve also tried to define my terms and extra properties so that it aligns with the SPARQL 1.1 terminology. Clearly you couldn&#8217;t have done this as SPIN was developed first! One reason for doing that is to ensure things relate sensibly, and I&#8217;m sure SPIN could be tweaked to do the same. </p>
<p>But, to be honest, I&#8217;d be more than happy if the SPARQL Working Group decided, or could be convinced, to slightly extend the scope of the Service Description specification to include a little more information. Illustrating the small amount of extra vocabulary required is one useful way to do that I think. And this is another reason for my attempting this. </p>
<p>I&#8217;d be more than happy for another, more standard or well-supported vocabulary to get widely used. The key thing is to get people documenting that extensions!</p>
<p>Thanks again for your comments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: uberVU - social comments</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-352</link>
		<dc:creator>uberVU - social comments</dc:creator>
		<pubDate>Thu, 05 Nov 2009 23:12:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-352</guid>
		<description>&lt;strong&gt;Social comments and analytics for this post...&lt;/strong&gt;

This post was mentioned on Twitter by ldodds: New blog post: Describing SPARQL Extension Functions http://is.gd/4O5pz #rdf #sparql #vocampdc...</description>
		<content:encoded><![CDATA[<p><strong>Social comments and analytics for this post&#8230;</strong></p>
<p>This post was mentioned on Twitter by ldodds: New blog post: Describing SPARQL Extension Functions <a href="http://is.gd/4O5pz" rel="nofollow">http://is.gd/4O5pz</a> #rdf #sparql #vocampdc&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Holger Knublauch</title>
		<link>http://www.ldodds.com/blog/2009/11/describing-sparql-extension-functions/comment-page-1/#comment-351</link>
		<dc:creator>Holger Knublauch</dc:creator>
		<pubDate>Thu, 05 Nov 2009 22:29:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.ldodds.com/blog/?p=379#comment-351</guid>
		<description>Leigh, the SPIN vocabulary has been designed for exactly this purpose: to define new SPARQL functions and magic properties so that they can be resolved by their URI. Look for example at

http://www.spinrdf.org/spin.html#spin-functions

and

http://composing-the-semantic-web.blogspot.com/2009/01/understanding-spin-functions.html

This vocabulary not only covers things like rdfs:comment about the function, but also details about the function&#039;s arguments. Furthermore, SPIN function declarations can include a body declaration that points to executable code, including another SPARQL query and JavaScript code.

I am not quite sure why you do not even reference this related work, even though I have pointed you at this in my previous comments on the blog? What is wrong with the spinrdf vocabulary for your use case?</description>
		<content:encoded><![CDATA[<p>Leigh, the SPIN vocabulary has been designed for exactly this purpose: to define new SPARQL functions and magic properties so that they can be resolved by their URI. Look for example at</p>
<p><a href="http://www.spinrdf.org/spin.html#spin-functions" rel="nofollow">http://www.spinrdf.org/spin.html#spin-functions</a></p>
<p>and</p>
<p><a href="http://composing-the-semantic-web.blogspot.com/2009/01/understanding-spin-functions.html" rel="nofollow">http://composing-the-semantic-web.blogspot.com/2009/01/understanding-spin-functions.html</a></p>
<p>This vocabulary not only covers things like rdfs:comment about the function, but also details about the function&#8217;s arguments. Furthermore, SPIN function declarations can include a body declaration that points to executable code, including another SPARQL query and JavaScript code.</p>
<p>I am not quite sure why you do not even reference this related work, even though I have pointed you at this in my previous comments on the blog? What is wrong with the spinrdf vocabulary for your use case?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
