<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Movable Type/3.34" -->
<rss version="0.91">
  <channel>
    <title>Semantic Wave</title>
    <link>http://www.semanticwave.com/blog/</link>
    <description>News feeds and commentary maintained by semantic web developer Jamie Pitts.</description>
    <language>en-us</language>
    <webMaster>jamie@semanticwave.com</webMaster>
    <pubDate>Sun, 03 Jan 2010 12:37:19 -0500</pubDate>
    <item>
      <title>Build Your Own Document Viewer</title>
      <link>http://www.semanticwave.com/blog/archives/2010/01/build_your_own.jsp</link>
      <description><![CDATA[<p>Eric Blue posted a <a href="http://eric-blue.com/2010/01/03/how-to-create-your-own-personal-document-viewer-like-scribd-or-google-books/">write-up</a> about a document viewer that he built in order to provide convenient access to the various formats in his <a href="http://eric-blue.com/my-projects/personal-memex/">knowledge manager project</a>. Document Browser is based on <a href="http://www.devaldi.com/?page_id=260">FlexPaper</a> and, on the server-side, employs various open source conversion utils.</p>]]></description>
    </item>
    <item>
      <title>local-openid: OpenID Authentication Only When I Need It</title>
      <link>http://www.semanticwave.com/blog/archives/2009/04/localopenid_ope.jsp</link>
      <description><![CDATA[<p>Eric Wong has whipped up a <a href="http://git.bogomips.org/cgit/local-openid.git">ruby demo</a> of <a href="http://bogomips.org/local-openid/">a very interesting idea</a>: when you need to authenticate, fire up your own "99.9% downtime" OpenID server for the duration of the transaction, and then shut it down.</p>]]></description>
    </item>
    <item>
      <title>Rapping About Proper HTML</title>
      <link>http://www.semanticwave.com/blog/archives/2008/04/rapping_about_p.jsp</link>
      <description><![CDATA[<p><a href="http://moserious.wordpress.com/">The Poetic Prophet</a> may also be known as The SEO Rapper, but his <a href="http://www.youtube.com/watch?v=a0qMe7Z3EYg">Design Coding</a> rap contains a lot of good advice for an HTML/CSS designer. </p>

<p>All we have to do now is convince him to rap about RDFa!</p>

<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/a0qMe7Z3EYg&hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/a0qMe7Z3EYg&hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>

<blockquote>
...title everything including links and images<br/>
don't use italics, use emphasis<br/>
don't use bold, please use strong<br/>
if you use bold that's old and wrong<br/>
when you use CSS, you page will load quicker<br/>
client satisfied like they eating on a snicker<br/>
they stuck on your page like you made it with a sticker<br/>
and then they convert now that's the real kicker<br/>
make you a lil richer, your site a lil slicker<br/>
design and code right man I hope you get the picture...<br/>

<p>Source: <a href="http://www.youtube.com/watch?v=a0qMe7Z3EYg">Design Coding</a></blockquote></p>

<p>Spotter: <a href="http://roflcon.org/2008/04/28/sleeper-hits-session-the-playlist/">ROFLCon Sleeper Hits Session</a>.</p>]]></description>
    </item>
    <item>
      <title>Looking for the Mouse</title>
      <link>http://www.semanticwave.com/blog/archives/2008/04/looking_for_the.jsp</link>
      <description><![CDATA[<p><a href="http://www.herecomeseverybody.org/2008/04/looking-for-the-mouse.html">Gin, Television, and Social Surplus</a> by Clay Shirky has me riveted. I've been reading essays about post-television culture since Alvin Toffler keeled me over half-way through my senior year in high school, but Shirky's write-up of his 2008 Web 2.0 Conference speech is among the best.</p>

<blockquote>The Internet-connected population watches roughly a trillion hours of TV a year. That's about five times the size of the annual U.S. consumption. One per cent of that  is 10,000 Wikipedia projects per year worth of participation. 

<p>I think that's going to be a big deal. Don't you?</p>

<p>Source: <a href="http://www.herecomeseverybody.org/2008/04/looking-for-the-mouse.html">Gin, Television, and Social Surplus</a></blockquote></p>

<p>While this hopeful logic echoes the "1% of a billion people" fallacy, the immense amount of work directed at projects such as wikipedia attests to huge reserves of untapped intellectual energy. </p>

<p>We're going to need it.</p>]]></description>
    </item>
    <item>
      <title>I Just Installed God On My Mac</title>
      <link>http://www.semanticwave.com/blog/archives/2008/03/i_just_installe.jsp</link>
      <description><![CDATA[<blockquote>sudo gem install god</blockquote>

<p>I feel as if a line has been crossed and I am not even religious. Isn't it sheer gumption to name <a href="http://god.rubyforge.org/">process monitoring software</a> after Him? Whatever the answer is, I look forward to giving it a trial run.</p>

<p>The documentation is hilarious and is sure to bring this project a lot of attention.</p>

<blockquote>Need to watch a script that doesn't have built in daemonization? No problem! God will daemonize and keep track of your process for you.

<p>Source: <a href="http://god.rubyforge.org/">god.rubyforge.org</a></blockquote></p>

<p>Spotter: <a href="http://simonwillison.net/2008/Mar/29/god/">Simon Willison</a>.</p>]]></description>
    </item>
    <item>
      <title>Some Very Good Advice for Jerry Yang</title>
      <link>http://www.semanticwave.com/blog/archives/2008/02/some_very_good.jsp</link>
      <description><![CDATA[<p><a href="http://www.5min.com/Video/How-to-negotiate---Tips-for-Yahoo-5794173">"98 Billion Dollars. Not including flickr."</a></p>

<p><object width='425' height='345' id='FiveminPlayer'><param name='allowfullscreen' value='true'/><param name='allowScriptAccess' value='always'/><param name='movie' value='http://www.5min.com/Embeded/5794173/'/><embed src='http://www.5min.com/Embeded/5794173/' type='application/x-shockwave-flash' width='425' height='345' allowfullscreen='true' allowScriptAccess='always'></embed></object></p>

<p>Although this video may have been made in jest, Jerry Yang could learn a lot from this Israeli entrepreneur. It all boils down to maximizing value. Yahoo has failed to communicate that Microsoft's bid is too low, and this makes them look (and feel) weaker.</p>

<p>So do the cuddly emails to employees. </p>

<p>When Steve Ballmer gets into the ring, it is time to fight - especially if you're going to be working for him in a few months.</p>]]></description>
    </item>
    <item>
      <title>The Meaning Of A Tag</title>
      <link>http://www.semanticwave.com/blog/archives/2008/01/the_meaning_of.jsp</link>
      <description><![CDATA[<p>I am very excited about the <a href="http://moat-project.org">MOAT Project</a>, an effort to map user-generated tags to the semantic web. This is a super-important effort as web site operators often might want to utilize and contribute to the semantic web but cannot invest too much valuable brain power into doing so. It also helps with the marketing of meaningful tagging, that there is more to be had from tags than simply tallying them up like votes for bad candidates.</p>

<p>Here is an example of how to assert two different meanings for a tag:</p>

<blockquote><pre>
&lt;moat:Tag rdf:about=&quot;http://tags.moat-project.org/tag/paris&quot;&gt;
&lt;moat:name&gt;&lt;![CDATA[paris]]&gt;&lt;/moat:name&gt;
  &lt;moat:hasMeaning&gt;
    &lt;moat:Meaning&gt;
      &lt;moat:meaningURI rdf:resource=&quot;http://sws.geonames.org/2988507/&quot;/&gt;
      &lt;foaf:maker rdf:resource=&quot;http://example.org/user/foaf/1&quot;/&gt;
    &lt;/moat:Meaning&gt;
  &lt;/moat:has_meaning&gt;
  &lt;moat:hasMeaning&gt;
    &lt;moat:Meaning&gt;
      &lt;moat:meaningURI rdf:resource=&quot;http://sws.geonames.org/4402452/&quot;/&gt;
      &lt;foaf:maker rdf:resource=&quot;http://example.org/user/bob/foaf&quot;/&gt;
      &lt;foaf:maker rdf:resource=&quot;http://somwhere.net/myblog/foaf.rdf#me&quot;/&gt;
    &lt;/moat:Meaning&gt;
  &lt;/moat:has_meaning&gt;
&lt;/moat:Tag&gt;</pre>

<p>Source: <a href="http://moat-project.org/ontology">MOAT ontology</a></blockquote></p>

<p>I have always believed that site operators and end-users should interact with the semantic web in a seamless, familiar manner. What MOAT must be answered with is UI that encourages meaningful tagging. In its current state, though, tagging appears to have hit an innovation plateau because it is difficult for users to add more than shallow, impressionistic meaning to a subject. There is enough in tagging to generate interesting visualizations such as tag clouds and (of course) to improve the findability of site resources. But there needs to be a way to add one more dimension to the subject-tag relationship.</p>

<p>Two recent experiments that I have developed in meaningful tagging are to be found in the <a href="http://www.memecat.com">Memecat</a> and <a href="http://listgasm.com">Listgasm</a> projects.</p>

<p>In order to add the third "predicate" dimension to the tagging of a subject, I provide cues as to what the tagging context is when a user enters tags. To allow for creativity, we chose to allow the users to freely enter whatever tag they wished, but still provide "object" suggestions. On the storage side, each user assertion is stored as a triple: the item, the predicate, and the tag entered by a user. </p>

<p>When entering a tag to "keep" a <a href="http://listgasm.com/lists/the_most_eligible_world_leaders">list item</a> in <a href="http://listgasm.com">Listgasm</a>, the user is presented with a dropdown of suggested tags. The same approach is used to "lose" a list item, which represents a different predicate for the same subject. In <a href="http://www.memecat.com">Memecat</a>, a video <a href="http://www.memecat.com/memes/lego_jumpstyle">meme</a> is similarly tagged for pattern, culture, and what it contains. A major benefit to the tagging and storage approach used in these projects is to allow a user to not only tag different aspects of an item, but to also enter more than one tag in doing so.</p>

<p>What I haven't yet done is connect the data that we've collected in these projects to the semantic web. <a href="http://moat-project.org">MOAT</a> could be the best way to quickly do this. </p>]]></description>
    </item>
    <item>
      <title>Hashtags</title>
      <link>http://www.semanticwave.com/blog/archives/2008/01/hashtags.jsp</link>
      <description><![CDATA[<p><a href="http://hashtags.org/">Hashtags</a> is an effort to add loose metadata to twitterings. Currently, users are referred-to with a preceding "@" in <a href="http://twitter.com">Twitter</a> messages. In the case of hashtags, a twitterer "follows" the <a href="http://twitter.com/hashtags/">Hashtags user</a> and then tags words by prefixing them with a "#". This keyword is then tracked by hashtags.org.</p>

<p>This could get messy as hashtags participants are already placing the "#" in front of too many words that they deem relevant. Perhaps hashtaggers should only place their metadata at the end of the twittering so as not to interfere with the human-readable part of the message. </p>

<p>More ideas for metadata in short messages:<br />
- hashtags could encourage participants to use a set of common prefixes and then connect their community into the greater semweb.<br />
- comma-delimited tags after the "#"<br />
- generate threads of related twitterings using a "re:" and a keyword</p>

<p>Spotter: <a href="http://www.everythingismiscellaneous.com/2007/12/24/hashtags-making-sense-of-twitter/">Everything Is Miscellaneous</a> </p>]]></description>
    </item>
    <item>
      <title>Harold&apos;s OpenSocial Exploit</title>
      <link>http://www.semanticwave.com/blog/archives/2007/11/harolds_opensoc.jsp</link>
      <description><![CDATA[<p>Harold the Rebel has <a href="http://www.haroldtherebel.com/2007/11/03/peer-prescience/">demonstrated</a> how an OpenSocial gadget can <a href="http://berlinetta1492.ning.com/profile/WittgensteinRe">run rampant</a> in its container. Because Ning is executing his gadget's code in an iframe that they served up, his widget is able to access window.top.document. As Ning is serving his gadget via proxy, Harold could have initially submitted an innocent version of the widget and then changed it later on.</p>

<p>Ning obviously will start to parse incoming gadgets for malicious code as will every social software service using <a href="http://code.google.com/apis/opensocial/">OpenSocial</a>.</p>

<p>Unfortunately, the <a href="http://code.google.com/apis/gadgets/docs/reference.html#XML_Ref">gadgets XML format</a> does not use namespaces identified by URIs, much less a widely recognized way to refer to the document author and other essential metadata. As a gadget is essentially a working html document, it should follow all of the conventions of one. These oversights essentially leave OpenSocial gadgets "disconnected" from the emerging data web, increasing the difficulty of forming of a reliable and open web of trust around them.</p>]]></description>
    </item>
    <item>
      <title>Getting a Handle on OpenSocial Gadgets</title>
      <link>http://www.semanticwave.com/blog/archives/2007/11/getting_a_handl.jsp</link>
      <description><![CDATA[<p>Kudos to Danny for <a href="http://dannyayers.com/2007/11/02/open-social">exposing</a> and then <a href="http://dannyayers.com/2007/11/03/when-in-rome">mitigating</a> the ugliness of OpenSocial's <a href="http://code.google.com/apis/opensocial/docs/gdata/people/reference.html#Elements">PersonKind</a>! </p>

<p>In spite of all the positive feelings I have about the intentions of <a href="http://code.google.com/apis/opensocial/">OpenSocial</a>, I think that I'll take aim at its shortcomings as well.</p>

<p>My goal is to start building a way to be able to embed an app into some of these early-adopter communities. Looking over the Javascript API's <a href="http://code.google.com/apis/opensocial/docs/javascript/index.html">Developer's Guide</a> it appears as if I am required to use the <a href="http://code.google.com/apis/gadgets/">Google Gadget API</a> to be able to embed. </p>

<p>I hope that this is not the only way to do it, because the gadgets are not very pretty. This <a href="http://code.google.com/apis/gadgets/docs/reference.html#XML_Ref">gadgets XML format</a> that is about to be very, very widely used to embed web apps is seriously begging for an organized standardization effort. It looks like something that I half-put together in 1999. For starters, no XSD or XML namespaces are to be found. The xml description and the examples listed throughout the <a href="http://code.google.com/apis/gadgets/docs/reference.html">gadgets documentation</a> do not even encourage developers to indicate what sort of XML a passerby is looking at, much less what version of the gadget format it represents. Should a developer (much less an automated process) come across a gadget in the wild, he would have work a while to figure out what the document is and what its elements are used for.</p>

<p>I can momentarily find it in my heart to sympathize with a developer who would choose to skip the XSD creation for something used in a very isolated capacity.  But it is absolutely a requirement for a format that is going to be used... just about everywhere! The lack of clarity in the gadget XML format is not worth the bits conserved or the apparent simplicity for less-experienced developers.</p>

<blockquote><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
&lt;Module&gt;
 &lt;ModulePrefs title=&quot;List Friends Example&quot;&gt;
   &lt;Require feature=&quot;opensocial-0.5&quot;/&gt;
 &lt;/ModulePrefs&gt;
 &lt;Content type=&quot;html&quot;&gt;

<p> &lt;![CDATA[</p>

<p> &lt;script type=&quot;text/javascript&quot;&gt;</p>

<p> /*Request for friend information when the page loads.*/<br />
  function getData() {<br />
    document.getElementById('message').innerHTML = 'Requesting friends...';<br />
    var req = opensocial.newDataRequest();<br />
    req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');<br />
    req.add(req.newFetchPeopleRequest ('VIEWER_FRIENDS'), 'viewerFriends');<br />
    req.send(onLoadFriends);<br />
  };</p>

<p> /* Parses the response and generates html to list the friends */<br />
  function onLoadFriends(dataResponse) {<br />
    var viewer = dataResponse.get('viewer').getData();<br />
    var html = 'Friends of ' + viewer.getDisplayName(); <br />
    html += ':&lt;br&gt;&lt;ul&gt;';<br />
    var viewerFriends = dataResponse.get('viewerFriends').getData();<br />
    viewerFriends.each(function(person) {<br />
      html += '&lt;li&gt;' + person.getDisplayName() + '&lt;/li&gt;';<br />
    });<br />
    html += '&lt;/ul&gt;';<br />
    document.getElementById('message').innerHTML = html;<br />
  };<br />
  _IG_RegisterOnloadHandler(getData);</p>

<p>  &lt;/script&gt;<br />
  &lt;div id=&quot;message&quot;&gt; &lt;/div&gt;<br />
  ]]&gt;<br />
  &lt;/Content&gt;<br />
&lt;/Module&gt;</pre></p>

<p>Source: <a href="http://code.google.com/apis/opensocial/docs/javascript/index.html#ListFriends_Intro">OpenSocial: List Friends Example</a></blockquote></p>

<p>The ModulePrefs, aside from preferences and "Require" dependencies, is used to store metadata for a gadget, including title, author, author_email, and so on (see the XML below). This is beyond silly and gives OpenSocial implementers many reasons to say: we can do better.</p>

<p>One big picture question that is begging to be asked is whether it is realistic or not to expect MySpace, SixApart, and the dozens of other competing communities to fully implement all of the functionality that appears in this <a href="http://code.google.com/apis/gadgets/">API</a>? This is quite a lot of cooperation to expect from everyone involved and I suspect that the various gadget container implementations will begin to remind us of the brower wars of the late 1990s. </p>

<p>Except that this time there isn't an objective party like the W3C in the center of the field. Not yet, anyhow. </p>

<p>Back to creating my OpenSocial UI, the simplest way to display something using one of these gadgets is to supply a url which the javacript of the container app will use to load the external content. This is how the  <a href="http://www.dogstarradio.com/now_playing_opensocial.xml">DogstarRadio embed</a> works:</p>

<blockquote><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt; 
&lt;Module&gt;
  &lt;ModulePrefs 
    title=&quot;Now Playing on SIRIUS&quot;
    height=&quot;60&quot;
    width=&quot;250&quot;
    description=&quot;Displays what is currently playing on Sirius Satellite Radio using data from DogstarRadio.com&quot;
    author=&quot;DogstarRadio.com&quot;
    author_email=&quot;schedule@dogstarradio.com&quot;
    title_url=&quot;http://www.DogstarRadio.com&quot;
    screenshot=&quot;http://www.DogstarRadio.com/images/now_playing_gadget_screenshot.png&quot;
    thumbnail=&quot;http://www.DogstarRadio.com/images/now_playing_gadget_thumbnail.png&quot;
    &gt;
    &lt;Require feature=&quot;opensocial-0.5&quot;/&gt;
  &lt;/ModulePrefs&gt;
  <b>&lt;Content type=&quot;url&quot; href=&quot;http://www.dogstarradio.com/sirius_display.php?size=gadget&quot;&gt;
  &lt;/Content&gt;</b>
&lt;/Module&gt;</pre> 

<p>Source: <a href="http://opensocial.ning.com/">Ning's OpenSocial Gadgets Directory</a></blockquote></p>

<p>Appropriately, there is a <a href="http://www.dogstarradio.com/sirius_display.php?size=iphone">size=iphone</a> for this URL. Seeing this, I wonder what the HTTP_USER_AGENT for the XHR client would look like to my embeddable app. I suppose that I could just create a separate controller for all embeddable functionality and then send an initial call to my hosted app containing metadata about the OpenSocial container and embedding member.</p>

<p>To accomplish this I can use the <a href="http://code.google.com/apis/gadgets/docs/remote-content.html">Remote Content APIs</a>, a means to supply the embedding app and its OpenSocial hooks with data returned from the external app. This is one of the most interesting parts of the system. Of course it might also be the most dangerous. </p>

<p>While these methods will encourage more javascript code and UI to be placed into the horrid Module XML, I expect them to be a boon to developers stumped by browser cross-domain security restictions. </p>]]></description>
    </item>
    <item>
      <title>The Future of Software Development</title>
      <link>http://www.semanticwave.com/blog/archives/2007/10/the_future_of_s.jsp</link>
      <description><![CDATA[<p>While <a href="http://www.readwriteweb.com/archives/the_future_of_software_development.php">this article</a> is insightful and very well-presented, the title and the premise are begging for a cheesy echo effect. </p>

<p>I cannot wave this agile software development flag with much enthusiasm. All I see in agile development is a clutter of terminology describing well-worn improvements to the waterfall approach. These would include: decreasing the amount of functionality in the end product, increasing communications among the players, and reducing drag through better tools and processes. The only thing missing from agile is an admission that it is simply a faster waterfall.</p>

<p>Why affix a new name to something as elementary as "faster"? Is it meant to clear out mental cruft? Is it the fact that the software development community suffers from a constant case of newism?</p>

<p>Whatever the reason, I think that it is "inter-perception" that is doing most of the changing in our community. During the grand ball of trend-calling and over-investing, the real pace of invention may have only advanced incrementally, perhaps only getting us half-way to the next true leap: a microprocessor, a home computer, a desktop, a web... a cloud. </p>

<p>The true leaps are what this game is all about. In the charged atmosphere of a perceived revolution, people take more risks, do more work, and, importantly, enthusiastically drink each other's yummy, grape-flavored drinks. How else can you get all of this cooperative and creative effort that literally builds out the stage to support a really heavy technological shift? </p>

<p>So while I may make fun of the the artificial colors and flavors of things like "social", "agile", "2.0", "push", they are essential to the real game at play. And tasty, too.</p>]]></description>
    </item>
    <item>
      <title>SixApart: Opening the Social Graph</title>
      <link>http://www.semanticwave.com/blog/archives/2007/09/sixapart_openin.jsp</link>
      <description><![CDATA[<p>I've been crossing my fingers, hoping that SixApart would take <a href="http://www.openid.net">OpenID</a> to the next level and open up their systems elegantly - or at least assemble the parts and promote the concept - leading the way for the huge number of social software sites out there to open their data up. This <a href="http://www.sixapart.com/about/news/2007/09/were_opening_th.html">intriguing post</a> indicates that the wait may be over: </p>

<blockquote>We think that the best way for you to manage your network is to stop thinking about all of the little pieces and to start focusing on the big picture: you and the people who matter to you. We think relationships mean more than email addresses or which service you're signed on to at the moment. So we've created an experimental demo based upon open technologies OpenID, the Microformats hCard and XFN, and FOAF that allow you to see your entire network of relationships in one place - across services, across platforms, across the entire Web.

<p>Source: <a href="http://www.sixapart.com/about/news/2007/09/were_opening_th.html">We Are Opening the Social Graph</a></blockquote></p>

<p>I wired OpenID into my <a href="http://www.memecat.com">Memecat experiment</a> but delayed the development of "social networking" with the hope that the next iteration of what BlogLog does would emerge. I would have done "friends" myself, but I don't have too many members. There must be a lot of sites out there in this position. </p>

<p>Check out the <a href="http://www.sixapart.com/static_news/opening_social_graph/graph_demo/graph_demo.html">video demo</a>.</p>]]></description>
    </item>
    <item>
      <title>ActiveHibernate in JRuby</title>
      <link>http://www.semanticwave.com/blog/archives/2007/08/activehibernate.jsp</link>
      <description><![CDATA[<p><a href="http://www.blogger.com/profile/07948066441740885991">Johan Andries</a> is <a href="http://rubymatic.blogspot.com/2007/07/jruby-hibernate-activehibernate.html">working</a> on bridging ROR (running in JRuby) and Hibernate. His work is hosted on <a href="http://code.google.com/p/activehibernate/">Google Code</a>. </p>

<p>The controller and view aspects of ruby / ROR and the wide range of modelling options available in Java are going to make a powerful combination!</p>

<p>Spotter (and also the one who first <a href="http://ola-bini.blogspot.com/2007/04/activehibernate-any-takers.html">verbalized</a> what many JRuby watchers were thinking): <a href="http://ola-bini.blogspot.com/2007/08/activehibernate-is-happening.html">Ola Bini</a>.</p>]]></description>
    </item>
    <item>
      <title>Semantic-Relational Mapping with D2RQ</title>
      <link>http://www.semanticwave.com/blog/archives/2007/08/semanticrelatio.jsp</link>
      <description><![CDATA[<p>While looking for new approaches for quickly affixing a SPARQL endpoint to a relational database, I re-discovered <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/">D2R Server</a> and <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/">D2RQ API</a>. </p>

<p>The oft-cited <a href="http://dbpedia.org/">DBpedia.org</a> project and <a href="http://bblfish.net/">Henry Story</a>'s Roller Blog Demo both make use of the D2RQ API and the server. I'd recommend that if you want to find out more, start with Henry's <a href="https://sommer.dev.java.net/atom/2006-06-06/applications/SPARQLingRoller.pdf">SPARQLing Roller</a> document.</p>

<p>To quickly summarize, though: the D2R library enables Jena, Joseki, and Sesame to access MySQL data as if 't were RDF. Much as it is done in ORM, a map file is used to connect the relational schemas and the corresponding ontologies. Appropriately, the map file itself is an RDF document:</p>

<p><a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/spec/">D2RQ V0.5 Specification</a><br />
<a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1/">RDF Schema for D2RQ</a><br />
<a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/example/mapping-iswc.n3">N3 Example of a D2RQ Map</a>.</p>

<p>Delving further, I found an offshoot with a project name that was inevitable (in retrospect) - <a href="http://aksw.informatik.uni-leipzig.de/Projects/R2D2">R2D2</a>, a PHP implementation that uses a D2RQ map to access MySQL through RAP. </p>

<p>Are there any posts out there describing the performance of the D2R Server?</p>]]></description>
    </item>
    <item>
      <title>MT 4 Beta</title>
      <link>http://www.semanticwave.com/blog/archives/2007/06/mt_4_beta.jsp</link>
      <description><![CDATA[<p>I downloaded and installed the <a href="http://www.sixapart.com/movabletype/news/2007/06/movable-type-4-beta.html">MT 4 beta</a> - which now has a <a href="http://www.movabletype.org/opensource/">version licensed under GPL</a>. </p>

<p>The UI on the system is much more "application-like" - functionality that I used to navigate to are now appearing in dropdowns and many options are saved via XHR. Unfortunately there is nothing new in terms of providing more built-in metadata, but I expect this to change as RDFa and microformats evolve and proliferate. </p>

<p>The new widgets manager looks very interesting - I can't find docs on it yet but it looks like a better way to organize the sorts of public-facing content and functionality that usually appear in the right nav. So MT is now DRYer.</p>

<p>Congrats to the folks at <a href="http://www.sixapart.com/">SixApart</a>!</p>]]></description>
    </item>

  </channel>
</rss>