<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>All Posts</title>
  <link rel="alternate" type="text/html" href="http://bnode.org/blog/all" />
  <link rel="self" type="application/atom+xml" href="http://bnode.org/blog/atom1/all.atom.atom" />
  <id>http://bnode.org/res/channel/all</id>
  <updated>2008-07-03T08:15Z</updated>
  <author>
    <name>Benjamin Nowack</name>
  </author>
  <generator uri="http://semsol.com/" version="0.2.0">SemSol</generator>

  <entry>
    <title>SPO(G) in ARC</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/07/03/spog-in-arc"/>
    <id>http://bnode.org/blog/2008/07/03/spog-in-arc</id>
    <published>2008-07-03T08:15Z</published>
    <updated>2008-07-03T08:26:07Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Streaming backups via the SPOG SPARQL result format in ARC</summary>
    <category term="arc"/>
    <category term="backup"/>
    <category term="semanticweb"/>
    <category term="sparql"/>
    <category term="spog"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
The Urban Dictionary <a href="http://www.urbandictionary.com/define.php?term=Spog">describes SPOG</a> as &quot;super pimped out gangsta&quot; or as &quot;a weapon that (...) had a fusion reactor as a power source&quot;. Sorry to disappoint you, neither has become part of <a href="http://arc.semsol.org/">ARC</a>. Nevertheless, the SPOG I mean is quite powerful, too. It is a constrained <a href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL XML result format</a> from SELECT queries that was <a href="http://www.wasab.dk/morten/blog/archives/2008/04/04/introducing-spog">proposed by Morten Frederiksen</a> a few months ago. SPOG enables streaming store backups/dumps, and being another RDF serialization, it can be used for streamed loading as well. Support for SPOG was added in the <a href="http://arc.semsol.org/download">latest revision</a> (2008-07-02) and extends the store and the endpoint components:
<ul><li>The store got a <code>dump()</code> method that stream-outputs SPOG from all quads, and a <code>createBackup($path, $alternative_query)</code> method to write a SPOG dump (or custom SPO(G) query result) to a local file</li>
<li>The SPARQL endpoint feature list accepts &quot;dump&quot; as a new read operation</li>
<li>The SPARQL endpoint accepts &quot;DUMP&quot; as a query type now (&quot;DUMP&quot; also works via the internal <code>query()</code> method)</li>
<li>The format detector accepts SPOG XML as an RDF format now, <a href="http://arc.semsol.org/docs/v2/sparql+">SPARQL+</a> queries will work fine with <code>LOAD &lt;some-spog-file.srx&gt;</code>. (There is now a dedicated SPOG parser for streaming LOADs.)
</li></ul>
<br />
These additions should simplify graph exchange and store replication quite a bit.<br />
<br />
Morten++ for the idea and an initial implementation.<br />
<br />
<a href="http://arc.semsol.org/docs/v2/store">Documentation</a> - <a href="http://arc.semsol.org/download/notes">Release Notes</a>


      </div>
    </content>
  </entry>

  <entry>
    <title>Semantic Web Community Shop now Open</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/06/23/semantic-web-community-shop-now-open"/>
    <id>http://bnode.org/blog/2008/06/23/semantic-web-community-shop-now-open</id>
    <published>2008-06-23T14:10Z</published>
    <updated>2008-06-23T14:22:46Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Today we opened a spreadshirt shop for Semantic Web Merchandise</summary>
    <category term="merchandise"/>
    <category term="semanticweb"/>
    <category term="shop"/>
    <category term="t-shirts"/>
    <category term="w3c"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
Putting <s>my</s> <a href="http://talis.com">Talis</a>' <a href="http://bnode.org/blog/2008/06/03/sparqlbot-wins-scripting-for-the-semantic-web-challenge">money where my mouth is</a>, I've set up a <a href="http://semweb.spreadshirt.com/">SemWeb T-Shirt shop</a> in coordination with the <a href="http://www.w3.org/People/domain?domain=Communications">W3C Communications team</a> (which, btw, is working on an official W3C shop :).<br />
<br />
The Community shop features a couple of <a href="http://www.w3.org/2007/10/sw-logos.html">cube</a>-based designs, but it's also meant to support the broader <a href="http://www.w3.org/2001/sw/interest/">SemWeb Interest Group</a> and their members' open-source projects. I'm happy to help with designs and product creation (as time permits). Profits will go straight to the respective project maintainers.<br />
<br />
<img src="http://bnode.org/media/2008/06/23/semweb_shop.png" title="semantic web community shop" alt="semantic web community shop" />
<br />

      </div>
    </content>
  </entry>

  <entry>
    <title>SPARQLScript Teaser</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/06/10/sparqlscript-teaser"/>
    <id>http://bnode.org/blog/2008/06/10/sparqlscript-teaser</id>
    <published>2008-06-10T19:00Z</published>
    <updated>2008-06-10T19:07:12Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Basic support for variable assignments, placeholders, IF branches</summary>
    <category term="arc"/>
    <category term="semanticweb"/>
    <category term="sparql"/>
    <category term="sparqlscript"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
I just managed to trick my experimental <a href="http://esw.w3.org/topic/SPARQL/Extensions/SPARQLScript">SPARQLScript</a> parser into accepting simple IF-branches and placeholders. Here is an example of what is going to be possible with <a href="http://arc.semsol.org/">ARC</a> soon (and yes, I know this snippet most probably won't excite anyone but me ;)

<pre class="code">BASE &lt;http://sparqlbot.semsol.org/data/&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;

# set the endpoint
ENDPOINT &lt;endpoint.php&gt;

# feed still fresh?
$current = ASK FROM &lt;graph-updates&gt; WHERE {
  &lt;http://planetrdf.com/index.rdf&gt; dc:date ?date .
  FILTER (?date &gt; ${now-1h})
}

# refresh feed and update graph log
IF (!$current) {
  DELETE FROM &lt;http://planetrdf.com/index.rdf&gt;
  LOAD &lt;http://planetrdf.com/index.rdf&gt;
  INSERT INTO &lt;graph-updates&gt; { &lt;http://planetrdf.com/index.rdf&gt; dc:date &quot;${now}&quot; }
} <br />
</pre>
(<a href="http://pastebin.com/f7af8f960">Parsed Structure</a>)<br />
<br />
The fun thing about the whole SPARQLScript experiment is that the parser (so far) is still below 200 LOC. A lot can be re-used from the official SPARQL Grammar, e.g. IF-blocks are really just:
<pre class="code">Script ::= ( Query | PrefixDecl | EndpointDecl | Assignment | IFBlock )*
IFBlock ::= 'IF' BrackettedExpression '{' Script '}'<br />
</pre>
<br />
Implementing the actual SPARQLScript processing engine is of course more work than the parser, but I'm making progress there, too.

      </div>
    </content>
  </entry>

  <entry>
    <title>SPARQLBot wins &quot;Scripting for the Semantic Web&quot; Challenge</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/06/03/sparqlbot-wins-scripting-for-the-semantic-web-challenge"/>
    <id>http://bnode.org/blog/2008/06/03/sparqlbot-wins-scripting-for-the-semantic-web-challenge</id>
    <published>2008-06-03T13:50Z</published>
    <updated>2008-06-03T13:56:27Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>SPARQLBot won 1st prize at the ESWC2008 Scripting for the Semantic Web Challenge</summary>
    <category term="arc"/>
    <category term="eswc"/>
    <category term="semanticweb"/>
    <category term="sfsw"/>
    <category term="smob"/>
    <category term="sparqlbot"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
I couldn't afford attending this year's <a href="http://www.eswc2008.org/">ESWC</a> in person. This is a pity as the annual &quot;<a href="http://www.semanticscripting.org/SFSW2008/">Scripting for the Semantic Web</a>&quot; (SFSW) Workshop is part of the main conference, and I would have loved to meet the SemWeb Scripting community. I did send in a <a href="http://www.semanticscripting.org/SFSW2008/papers/7.pdf">submission</a> to the SFSW <a href="http://www.semanticscripting.org/SFSW2008/challenge.htm">scripting challenge</a>, though, and if the <a href="http://twitter.com/mhausenblas/statuses/825325605">tweets that came through the Tenerife net bottleneck</a> are right, it was worth the effort :-)<br />
<br />
And the 2nd prize went to <a href="http://smob.sioc-project.org/">SMOB</a>, the SemWebby Twitter. Congratulations to <a href="http://apassant.net/blog/">Alexandre</a>, <a href="http://tuukka.iki.fi/">Tuukka</a>, <a href="http://captsolo.net/info/">Uldis</a>, and <a href="http://www.johnbreslin.com/blog/">John</a>! (Cool to see <a href="http://arc.semsol.org/">ARC</a> used in their project, too.)<br />
<br />
I promised T-Shirts to ARC's core contributors some time ago, and I think I'll use the prize (kindly sponsored by the SemWeb masters at <a href="http://www.talis.com/">Talis</a>) to finally create and send out some <strong>Thank-You</strong>s to the community.<br />
<br />
<img src="http://bnode.org/media/2008/06/03/sparqlbot_wins_sfsw_challenge.png" class="plain" title="SPARQLBot wins SFSW Challenge 2008" alt="SPARQLBot wins SFSW Challenge 2008" />
      </div>
    </content>
  </entry>

  <entry>
    <title>Major ARC revision: Talis platform-alignment, Remote Store, SPARQLScript</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/06/01/major-arc-revision-talis-platform-alignment-remote-store-sparqlscript"/>
    <id>http://bnode.org/blog/2008/06/01/major-arc-revision-talis-platform-alignment-remote-store-sparqlscript</id>
    <published>2008-06-01T17:50Z</published>
    <updated>2008-06-01T18:12:43Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>The latest ARC revision is aligned with Talis' platform structures, got a Remote Store component, and the start of a SPARQLScript implementation</summary>
    <category term="arc"/>
    <category term="semanticweb"/>
    <category term="sparql"/>
    <category term="sparqlscript"/>
    <category term="talis"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
The <a href="http://arc.semsol.org/download">latest ARC release</a> comes with a couple of non-trivial (but also not necessarily obvious) changes. The most significant (as it involves ARC's resource indexes) is the alignment with the <a href="http://arc.semsol.org/community/arc-dev/archives/2008/01/PM-GA.20080131094910.4C65A.2.1D@semsol.com">structures</a> used by the <a href="http://www.talis.com/platform/">Talis platform</a>. ARC's parser output and PHP or JSON formats are now directly processable by Talis' platform tools. The <a href="http://arc.semsol.org/docs/v2/structures">documentation</a> has been updated already, you may have to adjust your code (basically just &quot;s/val/value/&quot; and &quot;s/dt/datatype/&quot;) in a few places.<br />
<br />
The second major addition is a Remote Store component (documentation still to come) that is inspired and based on <a href="http://www.wasab.dk/morten/blog/">Morten Frederiksen</a>'s great <a href="http://bzr.mfd-consult.dk/remote-endpoint/">RemoteEndpointPlugin</a>. The Remote Store works like Morten's Plugin, but supports <a href="http://arc.semsol.org/docs/v2/sparql+">SPARQL+</a>' LOAD, INSERT, and DELETE (i.e. write/POST) operations.<br />
<br />
The third addition is also the reason why the Remote Store (which can be used as a SPARQL Endpoint Proxy) became a core component. I've worked on a <a href="http://esw.w3.org/topic/SPARQL/Extensions/SPARQLScript">draft for a SPARQL-based scripting language</a> during the last months, and the latest ARC revision includes an early SPARQLScript parser and a SPARQLScript processor that can run a set of routines against remote SPARQL endpoints. What's still missing before this stuff becomes more usable (apart from documentation ;)  is output templating and some other essential features such as loops. I do have an early prototype running in a local <a href="http://sparqlbot.semsol.org/">SPARQLBot</a> version, but I probably won't have it online in time for tomorrow's <a href="http://www.semanticscripting.org/SFSW2008/">Semantic Scripting Workshop</a> (that I'll try to attend remotely at least). This is really powerful (and fun) stuff that will be available soon-ish. Can't wait to replace my hard-coded inferencer with a set of easily pluggable SPARQLScript procedures.<br />
<br />
Other tweaks and changes include a very early hCalendar extractor and a couple of bug fixes that were reported by (among others) the <a href="http://smob.googlecode.com/">SMOB</a> project maintainers.<br />
<br />
As usual, thanks to all who sent in patches, bug reports, feature requests, and stress-tested ARC. I think we're pretty close to a release candidate now :-)
      </div>
    </content>
  </entry>

  <entry>
    <title>&quot;Online Social Graph Consolidation&quot; webinale Slides</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/05/29/online-social-graph-consolidation-webinale-slides"/>
    <id>http://bnode.org/blog/2008/05/29/online-social-graph-consolidation-webinale-slides</id>
    <published>2008-05-29T10:20Z</published>
    <updated>2008-05-29T10:30:27Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Slides from my 2nd webinale 08 talk are online</summary>
    <category term="foaf"/>
    <category term="inference"/>
    <category term="semanticweb"/>
    <category term="social graph"/>
    <category term="sparql"/>
    <category term="webinale"/>
    <category term="xfn"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
I gave another talk at <a href="http://createordie.de/webinale/index.php">webinale2008</a>, this one was about how SemWeb technology (XFN, RDF, FOAF, SPARQL, Inference) can help with the aggregation, integration, and consolidation of online social graph fragments spread across Web 2.0 services. Again, I tried to keep things demo-ish (using grawiki for Linked Data editing, and knowee for the integration and consolidation), so the slides themselves (<a href="http://www.slideshare.net/bengee/online-social-graph-consolidation">available on slideshare</a>) aren't too spectacular (and in german).<br />
<br />
<div style="width:425px;text-align:left" id="__ss_433505"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=onlinesocialgraphconsolidierung-1212004097735158-9"http://bnode.org/><param name="allowFullScreen" value="true"http://bnode.org/><param name="allowScriptAccess" value="always"http://bnode.org/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=onlinesocialgraphconsolidierung-1212004097735158-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"http://bnode.org/></a> | <a href="http://www.slideshare.net/bengee/online-social-graph-consolidation?src=embed" title="View Online Social Graph Consolidation on SlideShare">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div></div>

      </div>
    </content>
  </entry>

  <entry>
    <title>&quot;SemWeb Tech 'n' Use&quot; webinale Slides</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/05/27/semweb-tech-n-use-webinale-slides"/>
    <id>http://bnode.org/blog/2008/05/27/semweb-tech-n-use-webinale-slides</id>
    <published>2008-05-27T10:50Z</published>
    <updated>2008-05-29T12:35:05Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Slides from my 1st webinale 08 talk are online</summary>
    <category term="semanticweb"/>
    <category term="semweb menu"/>
    <category term="slides"/>
    <category term="talk"/>
    <category term="webinale"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<em>Update (2008-05-29): I've uploaded the <a href="http://bnode.org/media/2008/05/27/semweb_menu.svg">SVG source file</a> and a <a href="http://bnode.org/media/2008/05/27/semweb_menu_4000x3000.png">hi-res PNG</a> of the SemWeb Menu Slide</em>
<div class="hr"><hr /></div>
Not <em>that</em> many attendees really, but talk went fine. Kept things simpler and more practical this year with a live mashup/hack of data from webinale, IPC, and DLW websites via *cough* regexp-injected microformats and RDFa, pulled out and integrated with ARC and SPARQL. Fun stuff, but most of the slides are a bit boring w/o the actual demos.<br />
<br />
<a href="http://www.slideshare.net/bengee/semantic-web-technik-und-einsatz/"><img src="http://bnode.org/media/2008/05/27/semweb_menu_small.png" class="plain" title="semweb menu" alt="semweb menu" /></a>
      </div>
    </content>
  </entry>

  <entry>
    <title>webinale 2008 starts today</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/05/26/webinale-2008-starts-today"/>
    <id>http://bnode.org/blog/2008/05/26/webinale-2008-starts-today</id>
    <published>2008-05-26T09:30Z</published>
    <updated>2008-05-26T22:33:15Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>I'm giving 2 talks at webinale 2008 in Karlsruhe</summary>
    <category term="arc"/>
    <category term="dlw"/>
    <category term="ipc"/>
    <category term="iswc"/>
    <category term="karlsruhe"/>
    <category term="knowee"/>
    <category term="php"/>
    <category term="rdf"/>
    <category term="semanticweb"/>
    <category term="talks"/>
    <category term="webinale"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<img src="http://bnode.org/media/2008/05/26/speaker_button.gif" class="fr" title="see me speak at webinale 2008" alt="see me speak at webinale 2008" />
Still a few hours left to finish my presentations, then I'll join Germany's WebDev crowd at the <a href="http://webinale.de/">webinale 2008</a> in Karlsruhe (It's taking place at the same location as <a href="http://iswc2008.semanticweb.org/">this year's ISWC</a>). My talks are about &quot;<a href="http://entwickler.com/konferenzen/planer/show_details.php?konferenzid=61&amp;sessionid=7448">Semantic Web Tech 'n' Use</a>&quot; (mostly microformats, RDFa, SPARQL), and RDF-based &quot;<a href="http://entwickler.com/konferenzen/planer/show_details.php?konferenzid=61&amp;sessionid=7449">Online Social Graph Consolidation</a>&quot; (FOAF, XFN, SPARQLy inference, <a href="http://knowee.org/">knowee</a> etc.), and there will be more SemWeb-related talks:
<ul><li><a href="http://entwickler.com/konferenzen/planer/show_details.php?konferenzid=61&amp;sessionid=7454">Semantic Rich Internet Applications</a> (Raju Bitter)</li>
<li><a href="http://entwickler.com/konferenzen/planer/show_details.php?konferenzid=61&amp;sessionid=7587">The Semantic Web: What the Heck are we Doing?</a> (Duane Nickull)
</li></ul>
<br />
A (personally) interesting thing about the webinale is its co-location with the <a href="http://it-republik.de/php/phpconference/">International PHP Conference</a>, and the (new) <a href="http://it-republik.de/conferences/dlw-europe/">Dynamic Languages World Europe</a>, and that registering for one conference includes free access to any of the others. It's the perfect audience to talk about practical SemWeb Scripting with ARC and PHP.
      </div>
    </content>
  </entry>

  <entry>
    <title>Geequipment</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/05/20/geequipment"/>
    <id>http://bnode.org/blog/2008/05/20/geequipment</id>
    <published>2008-05-20T10:53:21Z</published>
    <updated>2008-05-20T11:41:50Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Semweb shirt, mouse pad, and beer mats</summary>
    <category term="cube"/>
    <category term="get your data out"/>
    <category term="merchandise"/>
    <category term="semanticweb"/>
    <category term="shirt"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
Needed new biz cards for the <a href="http://createordie.de/webinale/">webinale</a> next week, experimented a bit with the service's other offerings while at it, and ended up with a <a href="http://bnode.org/media/2008/05/15/shirt_gydo.jpg">shirt</a>, a new mouse pad, and geeky beer mats. Hmm, should we ask the Comm team for a <abbr title="Semantic Web Interest Group">SWIG</abbr> CafePress shop...?<br />
<br />
<img src="http://bnode.org/media/2008/05/20/geequipment.jpg" title="geequipment" alt="geequipment" /> <br />
<br />
Credits to <a href="http://dannyayers.com/">Danny Ayers</a> for the awesome &quot;Get Your Data Out&quot; tagline (and <a href="http://www.youtube.com/watch?v=6eGcsGPgUTw">song</a>!), and to <a href="http://blog.triplescape.com/">Brian Manley</a> for the CafePress suggestion.
      </div>
    </content>
  </entry>

  <entry>
    <title>RDFa button (inofficial)</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/05/13/rdfa-button"/>
    <id>http://bnode.org/blog/2008/05/13/rdfa-button</id>
    <published>2008-05-13T07:50Z</published>
    <updated>2008-05-13T17:31:43Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>An inofficial light-blue RDFa button</summary>
    <category term="button"/>
    <category term="icon"/>
    <category term="rdfa"/>
    <category term="semanticweb"/>
    <category term="w3c"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<em>Update/Note: This is not an official RDFa button, those (in the known colours) will be provided by W3C's Communications Team once RDFa is a Rec or CRec.</em>
<div class="hr"><hr /></div>
A couple of days ago I created an RDFa technology button, and I was asked to share it, so here it is:<br />
<br />
<img src="http://bnode.org/media/2008/05/13/sw-rdfa-lightblue.png" class="plain" title="RDFa" alt="RDFa" /><br />
 (<a href="http://bnode.org/media/2008/05/13/sw-rdfa-lightblue.png">PNG</a>, <a href="http://bnode.org/media/2008/05/13/sw-rdfa-lightblue.gif">GIF</a>, <a href="http://bnode.org/media/2008/05/13/sw-rdfa-lightblue-v.svg">SVG source file</a>)<br />
<br />
Please see the <a href="http://www.w3.org/2007/10/sw-logos.html">W3C Semantic Web Logos and Policies page</a> for license details. This button is derived from the original W3C ones.
      </div>
    </content>
  </entry>

  <entry>
    <title>Adding (partial) RDFa support to the Firefox HTML Validator extension</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/04/23/adding-partial-rdfa-support-to-the-firefox-html-validator-extension"/>
    <id>http://bnode.org/blog/2008/04/23/adding-partial-rdfa-support-to-the-firefox-html-validator-extension</id>
    <published>2008-04-23T19:45Z</published>
    <updated>2008-04-24T14:53:57Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Improving QA issues caused by RDFa</summary>
    <category term="dtd"/>
    <category term="firefox"/>
    <category term="html validator"/>
    <category term="intellidimension"/>
    <category term="namespaces"/>
    <category term="rdfa"/>
    <category term="semanticweb"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<strong>Update</strong> (2008-04-24): I managed to get rid of the xmlns-related errors (.replace() to the rescue ;), so the extension now accepts markup that follows the latest RDFa DTD (including @typeof). And while at it, I created versions for <a href="http://bnode.org/media/2008/04/24/html_validator-0.8.4.0-rdfa-win.xpi">win</a> and <a href="http://bnode.org/media/2008/04/24/html_validator-0.8.4.0-rdfa-mac.xpi">mac</a>.<br />
<div class="hr"><hr /></div>
One of the reasons I haven't been using RDFa in production is the problem of quality assurance (a.k.a. plain old html validation). Not because RDFa isn't valid markup as such, but the main tool I'm using during development is Marc Gueury's excellent <a href="http://users.skynet.be/mgueury/mozilla/index.html">HTML Validator Extension for Firefox</a>. RDFa is valid XHTML+RDFa, but XHTML+RDFa is not HTML, so the extension reports dozens of errors starting with the unrecognized Doctype declaration. The <a href="http://validator.w3.org">W3C Markup Validator</a> supports RDFa, but I often develop while I'm offline, or on a non-public Web server, and the little &quot;0 errors / 0 warnings&quot; message in the status bar is more convenient than having to send markup to an online service.<br />
<br />
Yesterday, however, I started working on an RDFa generator for one of <a href="http://intellidimension.com/">Intellidimension</a>'s projects (Very interesting to see them use RDF big time, while many of us are still experimenting and thinking about potential markets, BTW). So, now that the RDFa-caused messages made it almost impossible to spot real HTML errors, I wondered if the add-on could perhaps be hacked to accept RDFa as well. Long story short: It can, to a certain extent. I don't know if arbitrary XML namespace prefixes (<code>xmlns:foo=&quot;...&quot;</code>) can be supported by a pure DTD/SGML-based validator (the FF extension uses <a href="http://openjade.sourceforge.net/">openSP</a>). FWIW, I couldn't get it to work.<br />
<br />
Apart from that, RDFa-enabling the extension was mainly copying the RDFa DTD and a set of modules to the plug-in's SGML library. It now happily accepts RDFa attributes (about, resource, property, datatype, content, etc) and makes my life a little bit easier. If anyone has an idea how I could make it accept (non-predefined) namespace prefixes as well, I'd appreciate hints.<br />
<br />
The tweaked extension is so far just a hack. I didn't even ping Marc yet or change the internal ID, so any extension update will remove the RDFa functionality. You can <a href="http://bnode.org/media/2008/04/24/html_validator-0.8.4.0-rdfa-win.xpi">try/download it if you like (windows version)</a>, but I may have to take it offline should Marc not be happy about the re-distribution.


      </div>
    </content>
  </entry>

  <entry>
    <title>New ARC2 plugins</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/03/31/new-arc2-plugins"/>
    <id>http://bnode.org/blog/2008/03/31/new-arc2-plugins</id>
    <published>2008-03-31T17:00Z</published>
    <updated>2008-03-31T17:24:52Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Keith Alexander is an ARC2 plugin factory</summary>
    <category term="arc"/>
    <category term="plugins"/>
    <category term="rdf"/>
    <category term="semanticweb"/>
    <category term="talis"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
If there was a &quot;most productive SemWeb coder&quot; category in Danny's &quot;<a href="http://blogs.talis.com/nodalities/this_weeks_semantic_web/">This Week's Semantic Web</a>&quot;, this week's turn would probably be <a href="http://semwebdev.keithalexander.co.uk/blog/">Keith Alexander</a>'s. Last week, he provided no fewer than three <a href="http://arc.semsol.org/download/plugins">ARC2 Plugins</a>:
<ul><li><a href="http://n2.talis.com/svn/playground/kwijibo/PHP/arc/plugins/trunk/ARC2_RDFaSerializer/ARC2_RDFaSerializerPlugin.php">An RDFa Serializer</a></li>
<li><a href="http://n2.talis.com/svn/playground/kwijibo/PHP/arc/plugins/trunk/ARC2_IndexUtils/">Utilities for working with ARC structures</a> (e.g. filter, merge, or diff)</li>
<li><a href="http://n2.talis.com/svn/playground/kwijibo/PHP/arc/plugins/trunk/ARC2_SPARQLSerializerPlugin/">A SPARQL (Re-)Serializer</a> (very handy for checking/adjusting SPARQL queries before they are passed to the store)
</li></ul>
<br />
While at it, he also implemented a <a href="http://n2.talis.com/svn/playground/kwijibo/PHP/arc/plugins/trunk/talis/">SPARQL+ wrapper</a> for <a href="http://www.talis.com/platform/">Talis Platform</a> stores.<br />
<br />
I think I blogged about <a href="http://www.wasab.dk/morten/blog/">Morten</a>'s <a href="http://bzr.mfd-consult.dk/remote-endpoint/">RemoteEndpoint plugin</a> a while back (this one should really become part of the core codebase), but did I mention <a href="http://www.peterkrantz.com/">Peter Krantz</a>' <a href="http://www.peterkrantz.com/2008/arc-filesync-plugin1/">File System Synchronizer</a>? It keeps an RDF Store in sync with a file system directory which enables a really nice option to implement larger RDF editing systems on top of ARC: By using editing tools that work with small RDF files (quick response times and everything) and his plugin, it becomes possible to provide rich query functionality over the whole dataset without the store getting in the way of the publishing tools. RDF index rebuilding can be slow, de-coupling read from write operations and introducing an asynchronous update process is a nice solution.<br />
<br />
Awesome stuff.
      </div>
    </content>
  </entry>

  <entry>
    <title>RDFAuth, with less Story-telling</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/03/30/rdfauth-with-less-story-telling"/>
    <id>http://bnode.org/blog/2008/03/30/rdfauth-with-less-story-telling</id>
    <published>2008-03-30T13:00Z</published>
    <updated>2008-06-11T11:34:05Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>A bit of background about RDFAuth</summary>
    <category term="knowee"/>
    <category term="openid"/>
    <category term="pgp"/>
    <category term="rdf"/>
    <category term="rdfauth"/>
    <category term="semanticweb"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<strong>Update:</strong> Dan Brickley suggested (in a private mail to Henry and me) that &quot;RDFAuth&quot; is most probably not a very smart name anyway, as something that contains official/generic technologies (RDF and oAuth in this case) may send wrong signals and cause misunderstanding. And that we shouldn't waste time fighting. He suggests more specific names (BeatnikAuth/knoweeAuth) for the time being, as this is all still premature stuff, and because no one should claim to have created an &quot;RDFAuth&quot;, especially not if it isn't backed by the whole community. Well, what can I say, he's of course right. I apologize and will s/RDFAuth/knoweeAuth/ from now on.<br />
<br />
You may have read <a href="http://blogs.sun.com/bblfish">Henry Story</a>'s recent post about RDFAuth, an RDF-oriented mechanism to access (partly) protected web resources. He's not describing the RDFAuth protocol, though. I've tried to <a href="http://lists.w3.org/Archives/Public/semantic-web/2008Mar/0214.html">clarify</a> things a <a href="http://lists.w3.org/Archives/Public/semantic-web/2008Mar/0224.html">couple</a> of <a href="http://lists.w3.org/Archives/Public/semantic-web/2008Mar/0231.html">times</a> on the semantic-web list, but somehow he seems to prefer to hijack the name instead, together with parts of the idea and claim it as his invention (it's not mine either, to make things clear). Now, innovation is always based on a combination of prior work and improvements, but his &quot;<em>following my strict architectural guidelines, I came across what I am just calling RDFAuth</em>&quot; preening goes a tiny bit too far to not trigger a comment.<br />
<br />
What he describes (a PGP-based authentication protocol) is clearly interesting, but it's simply not what RDFAuth, an idea that was developed in the knowee project, is about. For knowee (which just <a href="http://knowee.org/blog/2008/03/29/knowee-alpha">released the alpha version</a>, btw), we needed something that can be implemented on basic, shared web servers. PGP is simply not an option (if considered mandatory). People won't upload their private keys to 3rd party servers, and PGP libs are not necessarily available in those environments either.<br />
<br />
Final clarifications:<br />
<ul><li>RDFAuth <em>may</em> support PGP, it's just not a requirement.</li>
<li>I'm pretty sure that Henry's PGP-only approach will attract more SemWeb geeks than RDFAuth, it just wouldn't necessarily work for knowee's target audience.</li>
<li>The RDFAuth idea is in no way special or new. It more or less predates oAuth, but long-term-ish I'll most probably have to replace it with oAuth, once there is a way to generate tokens without the browser redirect dance (fully server-side token generation is another knowee requirement).</li>
<li>I read about a token-based, decentralized identification mechanism on a very early OpenID FAQ page that described a non-browser-dependent way to log into web sites. I can't find the link anymore, but this is basically what RDFAuth is based on. So, this is not <em>my</em> idea either.</li>
<li>The possibility of combining 200 OK response headers with WWW-Authenticate was <a href="http://lists.foaf-project.org/pipermail/foaf-dev/2008-January/008826.html">suggested by Etan Wexler</a> on the FOAF mailing list</li>
<li><a href="http://danbri.org/">Dan Brickley</a> explored SPARQL-based group membership discovery a while back. I like this idea of de-coupling data exchange decisions from the identification/authorisation process very much (RDFers don't need things like <a href="http://openid.net/specs/openid-simple-registration-extension-1_0.html">sReg</a> or <a href="http://openid.net/specs/openid-attribute-exchange-1_0.html">Attribute Exchange</a>).</li>
<li>The only thing that RDFAuth adds is light-weight, personal token services (as a replacement of OpenID's browser-based identification), and the re-use of straight HTTP BasicAuth, so that partly protected resources can more easily be discovered by both server-side and client-side tools (e.g. Tabulator), and also to allow widely deployed modules like mod_php to access the login token and client identifier using built-in functionality. And I doubt that layering a protocol on top of HTTP BasicAuth hasn't been done before, so, again, nothing special to brag about here. </li></ul>

OK, enough geek whining ;), don't want to waste more time of my precious weekend.<br />
 
      </div>
    </content>
  </entry>

  <entry>
    <title>Semantic Web Aliases</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/03/04/semantic-web-aliases"/>
    <id>http://bnode.org/blog/2008/03/04/semantic-web-aliases</id>
    <published>2008-03-04T20:00Z</published>
    <updated>2008-03-05T08:28:03Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>A list of names for the Semantic Web</summary>
    <category term="aliases"/>
    <category term="semanticweb"/>
    <category term="webinale"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
<strong>Update:</strong> <em>Kingsley provides a number of Web <a href="http://www.openlinksw.com/blog/~kidehen/?id=1319">references</a> for most of the buzzwords below.</em><br />
<br />
I just had an interesting twitter dispute with <a href="http://internetalchemy.org/">Ian</a>, triggered by his invention of another alias for the <a href="http://www.w3.org/2001/sw/">Semantic Web</a>. For last year's webinale I created a <a href="http://bnode.org/2007/05/22/webinale_slides/img3.html">slide</a> with which I tried to &quot;de-confuse&quot; people a little bit, I guess I'll need several slides this year. This is mostly just for future reference, not many of those are going to stick anyway:<br />
<br />
<strong>A list of terms people use to name (a subset/aspect/whatever of) the &quot;Semantic Web&quot;</strong>:
<br />
<ul><li>Semantic Web (by timbl)</li>
<li>SemWeb (by the developer community)</li>
<li>Web of Data (by timbl)</li>
<li>Data Web (by timbl)</li>
<li>The Web as a Database (by timbl)</li>
<li>Web of Knowledge (by stefandecker)</li>
<li>lowercase semantic [wW]eb (by tantek)</li>
<li>Knowledge Web (by ?)</li>
<li>Semantic Web 2.0 (by stefandecker)</li>
<li>Web 3.0 (by nova)</li>
<li>Semantic Graph (by nova)</li>
<li>Hyperdata (by danja)</li>
<li>Linked Data (by timbl)</li>
<li>Linked Data Web (by kidehen)</li>
<li>Structured Web (by the structured blogging community and mkbergman)</li>
<li>Semantic Data Web (by kidehen)</li>
<li>GGG - The Giant Global Graph (by timbl)</li>
<li>Web 3G (by iand)</li></ul>
<br />
See also: <a href="http://xkcd.com/181/">Interblag</a><br />
<br />
And I fear there are more (even w/o considering &quot;Pipe Dream&quot;, &quot;Ivory Towers Inc.&quot; and similar ones). I like &quot;Structured Web&quot; and &quot;Hyperdata&quot; very much. But at the end of the day (yes, I know silly jargon as well), I think we'll just call it the [sS]emantic [wW]eb ;-)

      </div>
    </content>
  </entry>

  <entry>
    <title>SPARQLBot 101</title>
    <link rel="alternate" type="text/html" hreflang="en" href="http://bnode.org/blog/2008/02/21/sparqlbot-101"/>
    <id>http://bnode.org/blog/2008/02/21/sparqlbot-101</id>
    <published>2008-02-21T20:10Z</published>
    <updated>2008-02-21T20:13:22Z</updated>
    <author>
      <name>Benjamin Nowack</name>
    </author>
    <summary>Michael Hausenblas has written an intro to SPARQLBot</summary>
    <category term="irc"/>
    <category term="semanticcamp"/>
    <category term="semanticweb"/>
    <category term="sparql"/>
    <category term="sparqlbot"/>
    <content type="xhtml" xml:lang="en">
      <div xmlns="http://www.w3.org/1999/xhtml">
While <a href="http://semsol.org/semcamp/sparqlbot">SPARQLBot</a> was mostly a fun hack for last week's <a href="http://semanticccamp.tommorris.org">SemanticCamp</a>, there is still a lot of activity on the #sparqlbot channel (it actually seems to increase). More than 30 SPARQL commands have been created. <a href="http://mhausenblas.blogr.com/">Michael Hausenblas</a> now kindly created an introduction that gives a nice overview of the stuff that has been added to the command collection so far: <a href="http://semsol.org/semcamp/wiki/sparqlbot">SPARQLBot 101</a>. Have fun, and thanks, Michael!


      </div>
    </content>
  </entry>

</feed>
