<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Internet Alchemy &#187; erdf</title>
	<atom:link href="http://blog.iandavis.com/tags/erdf/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.iandavis.com</link>
	<description>blog.iandavis.com</description>
	<lastBuildDate>Sun, 06 Jun 2010 12:24:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Microdata Experiment</title>
		<link>http://blog.iandavis.com/2009/05/microdata-experiment</link>
		<comments>http://blog.iandavis.com/2009/05/microdata-experiment#comments</comments>
		<pubDate>Tue, 12 May 2009 01:10:03 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[Random Stuff]]></category>
		<category><![CDATA[erdf]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[microdata]]></category>
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog/2009/05/microdata-experiment</guid>
		<description><![CDATA[I read the new HTML5 microdata proposal tonight and thought I&#8217;d see what it would take to convert my existing homepage which is currently marked up using eRDF. The result is here and it was surprisingly painless to do the conversion. You can try it out using this demo service. The spec is still changing [...]]]></description>
			<content:encoded><![CDATA[<p>I read the new <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html">HTML5 microdata proposal</a> tonight and thought I&#8217;d see what it would take to convert my <a href="http://iandavis.com/blog/about">existing homepage</a> which is currently marked up using eRDF. The result is <a href="http://iandavis.com/2009/microdata/">here</a> and it was surprisingly painless to do the conversion. You can try it out using <a href="http://philip.html5.org/demos/microdata/demo.html">this demo service</a>. The spec is still changing so I don&#8217;t know how long my experiment will remain valid (it changed from using property to itemprop attributes while I was converting my html!)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2009/05/microdata-experiment/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Towards Copy and Paste eRDF</title>
		<link>http://blog.iandavis.com/2006/06/towards-copy-and-paste-erdf</link>
		<comments>http://blog.iandavis.com/2006/06/towards-copy-and-paste-erdf#comments</comments>
		<pubDate>Tue, 13 Jun 2006 17:37:48 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[creativecommons]]></category>
		<category><![CDATA[erdf]]></category>
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog2/?p=929</guid>
		<description><![CDATA[Some recent discussion on the W3C&#8217;s RDF-in-XHTML list has got me thinking about how to enhance Embedded RDF to enable copy-and-paste metadata. Being able to copy some markup from one document to another is a key requirement of the RDF-in-XHTML taskforce. One strong use case is for embedded Creative Commons licences. Here the Creative Commons [...]]]></description>
			<content:encoded><![CDATA[<p>Some <a href="http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2006May/0044.html">recent discussion on the W3C&#8217;s RDF-in-XHTML list</a> has got me thinking about how to enhance <a href="http://research.talis.com/2005/erdf/wiki">Embedded RDF</a> to enable copy-and-paste metadata. Being able to copy some markup from one document to another is a key requirement of the RDF-in-XHTML taskforce. One strong use case is for embedded Creative Commons licences. Here the Creative Commons people would like to be able to generate a snippet of XHTML to be copied into the user&#8217;s document without them having to change markup in multiple places. Currently eRDF requires at least three changes to the XHTML document to enable the embedding:</p>
<ol>
<li>Addition of profile attribute on head</li>
<li>Schema prefix declarations in head</li>
<li>Embedded markup in body</li>
</ol>
<p>I think there&#8217;s a small change that could be made to the eRDF parsing rules to eliminate number two on that list. Currently schema prefixes are declared in link tags in the head of the document:</p>
<pre><code>&lt;link rel="schema.foaf" href="http://xmlns.com/foaf/0.1/" /></code></pre>
<p>My idea is to relax the constraint that the schema declaration must be in a link tag and allow it to appear anywhere in the document for any element that has a <var>rel</var> attribute. So this would allow:</p>
<pre><code>&lt;a rel="schema.foaf" href="http://xmlns.com/foaf/0.1/" />foaf&lt;/a></code></pre>
<p>The <a href="http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml">current specification</a> already allows duplicate schema prefixes to be declared:</p>
<blockquote><p>The order in which the schemas are declared is not significant. Where two identical schema prefixes are declared the first takes precedence. Any subsequent declarations are ignored.</p>
</blockquote>
<p>It would require the prefix name &#8220;<var>schema</var>&#8221; to be reserved throughout the document but I don&#8217;t think that would cause any serious problems.</p>
<p>With this change it would be possible to write licence links like this:</p>
<pre><code>&lt;div>
  This work is licensed under a
  &lt;a href="http://web.resource.org/cc/"
     rel="schema.cc">Creative Commons&lt;/a>
  &lt;a rel="license cc-license"
     href="http://creativecommons.org/licenses/by/2.0/uk/">
     Attribution 2.0 England &amp; Wales License
  &lt;/a>
&lt;/div></code></pre>
<p>Thoughts and comments welcome as always.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2006/06/towards-copy-and-paste-erdf/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Classes In Embedded RDF</title>
		<link>http://blog.iandavis.com/2005/11/classes-in-embedded-rdf</link>
		<comments>http://blog.iandavis.com/2005/11/classes-in-embedded-rdf#comments</comments>
		<pubDate>Mon, 14 Nov 2005 02:06:30 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[erdf]]></category>
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog2/?p=906</guid>
		<description><![CDATA[I updated the embedded RDF extractor stylesheet to support the two constructs I wrote about a couple of days ago, namely using cite to generate subject URIs and hyphen prefixed class names to denote RDF classes.
I&#8217;ll update the main documentation shortly but in the meantime here&#8217;s some info on the embedded Class support.
For tags with [...]]]></description>
			<content:encoded><![CDATA[<p>I updated the <a href="http://research.talis.com/2005/erdf/extract-rdf.xsl">embedded RDF extractor stylesheet</a> to support the two constructs <a href="http://internetalchemy.org/2005/11/enhancing-embedded-rdf">I wrote about</a> a couple of days ago, namely using <code>cite</code> to generate subject URIs and hyphen prefixed class names to denote RDF classes.</p>
<p>I&#8217;ll update the main documentation shortly but in the meantime here&#8217;s some info on the embedded Class support.</p>
<p>For tags with an <code>id</code> attribute and for anchors any token beginning with a hypen in the class attribute are considered to be RDF class names. So the following XHTML:</p>
<pre><code>&lt;p id="ian" class="-foaf-Person"&gt;I am a person&lt;/p&gt;</code></pre>
<p>generates the following triple:</p>
<pre><code>&lt;#ian&gt; rdf:type foaf:Person .</code></pre>
<p>A more complex example:</p>
<pre><code>
  &lt;p id="ian" class="-foaf-Person"&gt;
    &lt;span class="foaf-name"&gt;Ian Davis&lt;/span&gt; has a homepage
    &lt;a href="http://purl.org/NET/iand" rel="foaf-homepage" class="-foaf-Document"&gt;here&lt;/a&gt;
  &lt;/p&gt;
</code></pre>
<p>Generates these triples:</p>
<pre><code>
&lt;#ian&gt; rdf:type foaf:Person .
&lt;#ian&gt; foaf:name "Ian Davis" .
&lt;#ian&gt; foaf:homepage &lt;http://purl.org/NET/iand&gt; .
&lt;http://purl.org/NET/iand&gt; rdf:type foaf:Document .
</code></pre>
<p>Or one with mixed properties and classes in the class attribute:</p>
<pre><code>
  &lt;p id="ian" class="-foaf-Person"&gt;
   Ian is owed $1 by &lt;span class="foaf-knows -foaf-Person" id="eric"&gt;Eric Miller&lt;/span&gt;
  &lt;/p&gt;
</code></pre>
<p>Which embeds the following triples:</p>
<pre><code>
&lt;#ian&gt; rdf:type foaf:Person .
&lt;#ian&gt; foaf:knows &lt;#eric&gt; .
&lt;#eric&gt; rdf:type foaf:Person .
</code></pre>
<p>As a final test, I&#8217;ve augmented <a href="http://purl.org/NET/iand">my homepage</a> with classes, added a meta link to the embedded RDF extraction service and confirmed that <a href="http://simile.mit.edu/piggy-bank/">Piggy Bank</a> picks up the types. Works a treat. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2005/11/classes-in-embedded-rdf/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Embedded Trackbacks</title>
		<link>http://blog.iandavis.com/2005/11/embedded-trackbacks</link>
		<comments>http://blog.iandavis.com/2005/11/embedded-trackbacks#comments</comments>
		<pubDate>Wed, 09 Nov 2005 17:49:56 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[erdf]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[trackback]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog2/?p=901</guid>
		<description><![CDATA[Given the cite extension I mentioned earlier today it becomes possible
to embed another well-known schema: trackbacks. The trackback RDF is notorious for being embedded in an HTML comment which hides it from everything except screen scrapers. Here&#8217;s the trackback rdf from this posting:


&#60;!--
&#60;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	    xmlns:dc="http://purl.org/dc/elements/1.1/"
	    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&#62;

  &#60;rdf:Description rdf:about="http://internetalchemy.org/2005/11/embedded-trackbacks"
 [...]]]></description>
			<content:encoded><![CDATA[<p>Given the <code>cite</code> extension I mentioned <a href="http://internetalchemy.org/2005/11/enhancing-embedded-rdf">earlier today</a> it becomes possible<br />
to embed another well-known schema: trackbacks. The trackback RDF is notorious for being embedded in an HTML comment which hides it from everything except screen scrapers. Here&#8217;s the trackback rdf from this posting:
</p>
<pre><code>
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	    xmlns:dc="http://purl.org/dc/elements/1.1/"
	    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;

  &lt;rdf:Description rdf:about="http://internetalchemy.org/2005/11/embedded-trackbacks"
    dc:identifier="http://internetalchemy.org/2005/11/embedded-trackbacks"
    dc:title="Embedded Trackbacks"
    trackback:ping="http://internetalchemy.org/2005/11/embedded-trackbacks.tb" /&gt;

&lt;/rdf:RDF&gt;
--&gt;
</code></pre>
<p>Here&#8217;s one way of embedding that information in an XHTML document.</p>
<pre><code>
&lt;html  xmlns="http://www.w3.org/1999/xhtml"&gt;
  &lt;head profile="http://purl.org/NET/erdf/profile"&gt;
    &lt;title&gt;Embedded Trackbacks&lt;/title&gt;
    &lt;link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /&gt;
    &lt;link rel="schema.trackback" href="http://madskills.com/public/xml/rss/module/trackback/" /&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;blockquote cite="http://internetalchemy.org/2005/11/embedded-trackbacks"&gt;
      &lt;h1 class="dc-title"&gt;Embedded Trackbacks&lt;/h1&gt;
      &lt;p&gt;
         Link to this post at this permanent URL:
        &lt;a href="http://internetalchemy.org/2005/11/embedded-trackbacks"
           class="dc-identifier"&gt;http://internetalchemy.org/2005/11/embedded-trackbacks&lt;/a&gt;
        or ping it with a track back using this URL:
        &lt;a href="http://internetalchemy.org/2005/11/embedded-trackbacks.tb"
           class="trackback-ping"&gt;http://internetalchemy.org/2005/11/embedded-trackbacks.tb&lt;/a&gt;
      &lt;/p&gt;
    &lt;/blockquote&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>I&#8217;ve worked on an enhanced embedded RDF extractor that understands the <code>cite</code> usage and here&#8217;s its output. Hopefully I should be able to release the cite-enabled version later tonight.</p>
<pre><code>
&lt;rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:ns211="http://madskills.com/public/xml/rss/module/trackback/"&gt;
  &lt;rdf:Description rdf:about=""&gt;
    &lt;admin:generatorAgent rdf:resource="http://purl.org/NET/erdf/extract"/&gt;
  &lt;/rdf:Description&gt;
  &lt;rdf:Description rdf:about="http://internetalchemy.org/2005/11/embedded-trackbacks"&gt;
    &lt;dc:title&gt;Embedded Trackbacks&lt;/dc:title&gt;
    &lt;dc:identifier&gt;http://internetalchemy.org/2005/11/embedded-trackbacks&lt;/dc:identifier&gt;

    &lt;ns211:ping&gt;http://internetalchemy.org/2005/11/embedded-trackbacks.tb&lt;/ns211:ping&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2005/11/embedded-trackbacks/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enhancing Embedded RDF</title>
		<link>http://blog.iandavis.com/2005/11/enhancing-embedded-rdf</link>
		<comments>http://blog.iandavis.com/2005/11/enhancing-embedded-rdf#comments</comments>
		<pubDate>Wed, 09 Nov 2005 14:24:56 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[erdf]]></category>
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog2/?p=900</guid>
		<description><![CDATA[I&#8217;ve been thinking more about embedded RDF, prompted by the many people at the conference who have been grilling me about it. There&#8217;s a real desire to get more of RDF embeddable and there are two key areas I&#8217;m going to focus on: (1) assertions about external URIs and (2) classes (at Eric Miller&#8217;s very [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking more about embedded RDF, prompted by the many people at the conference who have been grilling me about it. There&#8217;s a real desire to get more of RDF embeddable and there are two key areas I&#8217;m going to focus on: (1) assertions about external URIs and (2) classes (at Eric Miller&#8217;s very vocal insistance!). </p>
<p>Issue one is easiest I think. The embedded RDF rules state that class attributes on tags inside anchor elements represent properties of the target of that anchor. Because you can&#8217;t nest anchor elements in HTML, this limits the embedded triples to having literal values.</p>
<p>As an illustration, the following HTML shows an embedded assertion that the Dublin Core title of <code>http://example.com/physics</code> is the literal &#8220;My physics page&#8221;:</p>
<pre><code>&lt;a href="http://example.com/physics"&gt;&lt;span class="dc-title"&gt;My physics page&lt;/span&gt;&lt;/a&gt;
</code></pre>
<p>It would be useful to be able to embed assertions with URI values, e.g. the FOAF topic of the page. For example:</p>
<pre><code>&lt;http://example.com/physics&gt; foaf:topic &lt;http://en.wikipedia.org/wiki/Physics&gt; .</code></pre>
<p>At the moment you&#8217;d have to nest anchors to achieve this in embedded RDF. A way around this would be to utilise the <code>cite</code> attribute. The HTML 4.01 specification says this about <code>cite</code>: <q cite="http://www.w3.org/TR/REC-html40/struct/text.html#adef-cite-Q">The value of this attribute is a URI that designates a source document or message. This attribute is intended to give information about the source from which the quotation was borrowed.</q></p>
<p>So, possibly, it would be reasonable to use <code>cite</code> attributes to specify the subject of a series of triples almost as though we were quoting some metadata from that URI. So, my example could be rewritten as:</p>
<pre><code>&lt;blockquote cite="http://example.com/physics"&gt;
  &lt;p&gt;
    &lt;span class="dc-title"&gt;My physics page&lt;/span&gt; which is about
    &lt;a href="http://en.wikipedia.org/wiki/Physics" rel="foaf-topic"&gt;physics&lt;/a&gt;
  &lt;/p&gt;
&lt;/blockquote&gt;</code></pre>
<p>which would represent the following two triples:</p>
<pre><code>&lt;http://example.com/physics&gt; dic:title "My physics page" .
&lt;http://example.com/physics&gt; foaf:topic &lt;http://en.wikipedia.org/wiki/Physics&gt; .</code></pre>
<p>The <code>cite</code> attribute can be used on <code>q</code>, <code>blockquote</code>, <code>ins</code> and <code>del</code> tags which collectively allow all kinds of markup to be contained within them, certainly enough for our needs.</p>
<p>The second problem, that of embedded classes, is harder. Eric wants this for better <a href="http://simile.mit.edu/piggy-bank/">Piggy Bank</a> integration and has promised me mucho lucre as an incentive (well mucho more than zero, mucho less than $2).</p>
<p>There are a number of approaches. The first is actually already supported. You can just embed an <code>rdf:type</code>link in the HTML:</p>
<pre><code>&lt;p id="ian"&gt;I am a &lt;a rel="rdf-type" href="http://xmlns.com/foaf/0.1/Person"&gt;person&lt;/a&gt;&lt;/p&gt;</code></pre>
<p>I don&#8217;t think this is what Eric needs because the usage is likely to be low &#8211; it&#8217;s extraneous information for humans. Besides, who&#8217;s going to be linking to RDF property definitions in their prose? (RDF geeks excluded of course).</p>
<p>An alternative is to do something funky in the XSLT that extracts the RDF from the HTML. It could dereference each schema referenced in the head of the document and extract all the domains and ranges. This is possible but how would it deal with domains or ranges that have blank nodes as their value? Probably simply by ignoring them. A more serious problem is that often the author knows more than the schema. I might be using the <code>foaf:depiction</code> property to relate me to my picture. The FOAF schema declares the domain of <code>foaf:depiction</code> to be <code>owl:Thing</code> but obviously I know that I&#8217;m describing the property of a <code>foaf:Person</code> and it would be nice to be able to explicitly state this.</p>
<p>Another approach is to continue using the class attribute but lexically separate types, perhaps by prefixing with a special character. The <a href="http://www.w3.org/TR/CSS1#appendix-b">CSS grammar</a> doesn&#8217;t allow much wiggle room: basically it&#8217;s a hypen or nothing! Perhaps a class name prefixed with a hyphen should be interpreted as the name of a type like this: </p>
<pre><code>&lt;p id="ian" class="-foaf-Person"&gt;I am a person&lt;/p&gt;</code></pre>
<p>which would infer an additional triple:</p>
<pre><code>&lt;#ian&gt; rdf:type foaf:Person .</code></pre>
<p>I could live with this since I believe the number of type declarations in a document will be a small compared to the use of properties. What do you think? I&#8217;m casting around for other suggestions here too. If you have a good idea let me know and help me win Eric&#8217;s dollar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2005/11/enhancing-embedded-rdf/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Naked Metadata Using Embedded RDF</title>
		<link>http://blog.iandavis.com/2005/11/naked-metadata-using-embedded-rdf</link>
		<comments>http://blog.iandavis.com/2005/11/naked-metadata-using-embedded-rdf#comments</comments>
		<pubDate>Wed, 09 Nov 2005 11:14:01 +0000</pubDate>
		<dc:creator>Ian Davis</dc:creator>
				<category><![CDATA[erdf]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://iandavis.com/blog2/?p=899</guid>
		<description><![CDATA[Jonathan O&#8217;Donnell has implemented embedded RDF in his page on Naked Metadata. His reasoning echos exactly the microformats principles of visible metadata and don&#8217;t repeat yourself:
When I first learned to put Dublin Core into Web pages, I often found myself replicating data. I would place a DC.creator tag in the head, even though the name [...]]]></description>
			<content:encoded><![CDATA[<p>Jonathan O&#8217;Donnell has implemented <a href="http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml">embedded RDF</a> in his page on <a href="http://jod.id.au/tutorial/naked-metadata.html">Naked Metadata</a>. His reasoning echos exactly the microformats principles of <a href="http://research.talis.com/2005/erdf/wiki/Main/VisibleMetadata">visible metadata</a> and <a href="http://research.talis.com/2005/erdf/wiki/Main/DontRepeatYourself">don&#8217;t repeat yourself</a>:</p>
<blockquote cite="http://jod.id.au/tutorial/naked-metadata.html"><p>When I first learned to put Dublin Core into Web pages, I often found myself replicating data. I would place a DC.creator tag in the head, even though the name of the author was on the Web page. This annoyed me, because I knew that it is bad practice to replicate data like that. When I mentioned this to a workmate at the time, he said that I could probably make a link from the metadata field to the data in XML. At that stage, I didn&#8217;t understand enough XML to even understand the concept, much less make it work.</p>
<p>Fast forward eight years to DC-ANZ 2005, where Eve Young and Baden Hughes made the point that people updating Web pages often don&#8217;t update the metadata. One of the problems that they talked about was that metadata in the header is essentially invisible to people editing the page (when, for example, using some wysiwyg editors).</p>
<p>In general, data (including metadata) should be stored in one place only. This prevents drift: if it is only stored in one place, it can only be updated in that place.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.iandavis.com/2005/11/naked-metadata-using-embedded-rdf/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
