<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="/templates/rss.xsl"?><!--
	how to skin an rss feed by nathan@webr3.org
-->
<!--
<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/">
	<rdf:Description rdf:about="http://webr3.org/blog/"
    	dc:identifier="http://webr3.org/blog/"
    	dc:title="WebR3"
    	trackback:ping="http://webr3.org/blog/" />
</rdf:RDF>
-->
<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>webr3.org</title>
	<atom:link href="http://webr3.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://webr3.org/blog</link>
	<description>the personal blog of nathan :)</description>
	<lastBuildDate>Wed, 10 Mar 2010 02:03:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reading List : Web, Linked Data, REST, Semantic Web</title>
		<link>http://webr3.org/blog/internet/reading-list-web-linked-data-rest-semantic-web/</link>
		<comments>http://webr3.org/blog/internet/reading-list-web-linked-data-rest-semantic-web/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 02:03:17 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[1.1 Uniform HTTP Protocol]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Atom Publishing Protocol]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Knowledge representation]]></category>
		<category><![CDATA[linked data]]></category>
		<category><![CDATA[Paging]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Query languages]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Reification]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[Roy T. Fielding]]></category>
		<category><![CDATA[Roy T. Fielding Dissertation]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[Simple Knowledge Organization System]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[URIs Resources]]></category>
		<category><![CDATA[Web Access Control]]></category>
		<category><![CDATA[Web Architecture]]></category>
		<category><![CDATA[Web Resources     Named Graphs]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[Web Tutorial   Mindswap]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[write-enabled Web]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=264</guid>
		<description><![CDATA[Personally, I have two types of reading, the posts etc that I "tweet" and then the heavier reading I do over time; this is a list of the latter for the past month - hopefully it'll help somebody who's looking for the same kind of info I have been.
I've grouped all the links in to [...]]]></description>
			<content:encoded><![CDATA[<p>Personally, I have two types of reading, the posts etc that I "tweet" and then the heavier reading I do over time; this is a list of the latter for the past month - hopefully it'll help somebody who's looking for the same kind of info I have been.</p>
<p>I've grouped all the links in to two main sections, and then sub-grouped by how they make sense in my head! :)</p>
<h3>Web, HTTP and REST</h3>
<p>Roy T. Fielding Dissertation - <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" target="_blank">Architectural Styles and the Design of Network-based Software Architectures</a> Of particular relevance and note are chapters 4-6 (many only ever read chapter 5 and miss the context + summary *needed* in chapters 4 and 6!)</p>
<ul>
<li><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/web_arch_domain.htm" target="_blank"> Chapter 4 - Designing the Web Architecture: Problems and Insights</a></li>
<li><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm" target="_blank"> Chapter 5 - Representational State Transfer (REST)</a></li>
<li><a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/evaluation.htm" target="_blank"> Chapter 6 - Experience and Evaluation</a></li>
</ul>
<p><a href="http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven" target="_blank"> Roy T. Fielding - REST APIs must be hypertext-driven</a><br />
<a href="http://www.mail-archive.com/whatwg@lists.whatwg.org/msg12443.html" target="_blank"> Discussion on HTML5 and RESTful HTTP in browsers</a><br />
<a href="http://tech.groups.yahoo.com/group/rest-discuss/message/5168" target="_blank"> Discussion on URIs Resources and Switching content types w/ REST angle (v good)</a></p>
<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html" target="_blank">RFC 2616 HTTP/1.1</a> and the HTTPbis Working Group HTTP/1.1 update in parts:</p>
<ol>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging" target="_blank">Messaging</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics" target="_blank">Semantics</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload" target="_blank">Payload</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional" target="_blank">Conditional</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p5-range" target="_blank">Range</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p6-cache" target="_blank">Cache</a></li>
<li><a href="http://tools.ietf.org/html/draft-ietf-httpbis-p7-auth" target="_blank">Authentication</a></li>
</ol>
<h3>Linked Data and the Semantic Web</h3>
<p><a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData" target="_blank"> Linking Open Data Community Project</a><br />
<a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData/Applications" target="_blank"> Linked Data Applications</a><br />
<a href="http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/EquivalenceMining" target="_blank"> Equivalence Mining and Matching Frameworks</a><br />
<a href="http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/SemWebClients" target="_blank"> Linked Data Browsers, Mashups and other Client Applications</a></p>
<p><a href="http://esw.w3.org/topic/DatasetDynamics" target="_blank"> Dataset Dynamics - On the Dynamics of Linked Datasets</a><br />
<a href="http://esw.w3.org/topic/WriteWebOfData" target="_blank"> Realizing a write-enabled Web of Data</a><br />
<a href="http://esw.w3.org/topic/WebAccessControl" target="_blank"> Web Access Control (WAC)</a>  - a decentralized system for allowing different users and groups various forms of access to resources where users and groups are identified by HTTP URIs.<br />
<a href="http://esw.w3.org/topic/WebAccessControl/Vocabulary" target="_blank"> Discussion of the WAC vocabulary</a><br />
<a href="http://www.w3.org/DesignIssues/CloudStorage.html" target="_blank"> Socially Aware Cloud Storage Design Note</a><br />
<a href="http://www.w3.org/2010/Talks/0303-socialcloud-tbl/" target="_blank"> Distributed Social Networking through Socially Aware Cloud Storage from TimBL</a><br />
<a href="http://esw.w3.org/topic/AwwswHome" target="_blank"> AWWSW - "Architecture of the World Wide Semantic Web" Task Force</a></p>
<p><a href="http://www.w3.org/TR/sparql11-http-rdf-update/" target="_blank"> SPARQL 1.1 Uniform HTTP Protocol for Managing RDF Graphs</a><br />
<a href="http://www4.wiwiss.fu-berlin.de/pubby/" target="_blank"> A Linked Data Frontend for SPARQL Endpoints</a><br />
<a href="http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html" target="_blank"> RAP - RDF API for PHP V0.9.6</a><br />
<a href="http://buzzword.org.uk/2009/posted-data/" target="_blank"> Inav the Terrible - An idea for posting RDF through HTTP.</a></p>
<p><a href="http://n2.talis.com/wiki/Changesets" target="_blank"> Talis Changesets</a><br />
<a href="http://triplify.org/vocabulary/update" target="_blank"> Triplify Update Vocabulary</a></p>
<p><a href="http://inkdroid.org/journal/2009/11/04/skos-as-atom/" target="_blank"> skos as atom</a></p>
<p><a href="http://tools.ietf.org/html/rfc4287" target="_blank"> RFC 4287 - The Atom Syndication Format</a><br />
<a href="http://tools.ietf.org/html/rfc5023" target="_blank"> RFC 5023 - The Atom Publishing Protocol</a><br />
<a href="http://ietfreport.isoc.org/all-ids/draft-snell-atompub-tombstones-06.txt" target="_blank"> AtomPub Tombstones - The Atom "deleted-entry" Element</a><br />
<a href="http://tools.ietf.org/html/rfc5005" target="_blank"> RFC 5005 - Feed Paging and Archiving</a><br />
<a href="http://tools.ietf.org/html/draft-brown-versioning-link-relations-07" target="_blank"> Versioning Link Relations - Link Relation Types for Simple Version Navigation between Web Resources</a></p>
<p><a href="http://www2005.org/cdrom/docs/p613.pdf" target="_blank"> Named Graphs, Provenance and Trust</a><br />
<a href="http://sunsite.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-521/paper1.pdf" target="_blank"> Accessing Site-Specific APIs Through Write-Wrappers From The Web of Data</a><br />
<a href="http://events.linkeddata.org/ldow2009/papers/ldow2009_paper18.pdf" target="_blank"> Provenance Information in the Web of Data - LDOW 2009 paper</a><br />
<a href="http://www.w3.org/2002/Talks/0910-rdf-reification/Overview.html" target="_blank"> Using Reification To Extend RDF</a> (historical reification approach)<br />
<a href="http://dig.csail.mit.edu/2009/presbrey/UAP.pdf" target="_blank"> RDF Policy-based URI Access Control for Content Authoring</a><br />
<a href="http://eprints.ecs.soton.ac.uk/18332/1/opm.pdf" target="_blank"> The Open Provenance Model Core Specification (v1.1)</a><br />
<a href="http://www.w3.org/2005/Incubator/prov/wiki/Main_Page" target="_blank"> W3C Provenance Incubator Group</a></p>
<p><a href="http://www.w3.org/History/" target="_blank"> History of the Web 1945, 1980 through 1997 on W3</a><br />
<a href="http://www.w3.org/TR/leiri/" target="_blank"> LEIRI - Legacy extended IRIs for XML resource identification</a> The type of "URI" used in xml:base<br />
<a href="http://www.slideshare.net/LeeFeigenbaum/cshals-2010-w3c-semanic-web-tutorial" target="_blank"> CSHALS 2010 W3C Semanic Web Tutorial</a><br />
<a href="http://www.mindswap.org/2002/rdfconvert/" target="_blank">Mindswap online RDF Converter</a><br />
<a href="http://www.w3.org/RDF/Validator/" target="_blank">W3 online RDF Validator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/internet/reading-list-web-linked-data-rest-semantic-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Human Flesh Search a catalyst for Linked Data generation?</title>
		<link>http://webr3.org/blog/general/human-flesh-search-a-catalyst-for-linked-data-generation/</link>
		<comments>http://webr3.org/blog/general/human-flesh-search-a-catalyst-for-linked-data-generation/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:48:11 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[semantic web]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=259</guid>
		<description><![CDATA[Earlier today I saw an interesting slideshow from James A Hendler which had some focus on Human Flesh Search.
Personally I find this somewhat inspiring, out of all of it's features the thing that I find most interesting is using human power to rapidly "link" data together.
Here's a very quick look at the human process involved:

Assign [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I saw an <a href="http://www.slideshare.net/jahendler/social-machines-oxford-hendler">interesting slideshow</a> from <a href="http://twitter.com/jahendler">James A Hendler</a> which had some focus on <a href="http://en.wikipedia.org/wiki/Human_flesh_search_engine">Human Flesh Search</a>.</p>
<p>Personally I find this somewhat inspiring, out of all of it's features the thing that I find most interesting is using human power to <em>rapidly</em> "link" data together.</p>
<p>Here's a very quick look at the human process involved:</p>
<ol>
<li>Assign the subject of the Human Flesh Search.</li>
<li>Send out humans to find data about that subject, on both the web and in the physical world
<ul>
<li>When the information is on the web link to it and perhaps highlight some key points in an abstract</li>
<li>When the information is in the physical world identify it, and describe it.</li>
</ul>
</li>
<li>Correlate all data together and reference it to the subject.</li>
<li>Manually cleanse the data to weed out incorrect / wrongly placed data</li>
</ol>
<p>If this isn't a huge human powered linked data generating and cleansing machine then what is?</p>
<p>IMHO an implementation to cater for this (in early stages) would be extremely simple, for example consider the following:</p>
<ul>
<li>The subject of the flesh search is assigned an Identifier (perhaps under the guise of a tag - eg flesh:the_subject)</li>
<li>A simple interface is made, perhaps a tiny browser extension or toolbar button, which when clicked associates the current web page with the flesh:subject (no doublt by quickly sending the URI of the page as a get parameter to a server, at which point a single triple flesh:the_subject predicate uri is stored)</li>
<li>For offline resources a simple UI is made to enter in some data (back end obviously stores data cleansed and associated w/ flesh:the_subject)</li>
<li>Another simple UI to expand or remove information and "links".</li>
</ul>
<p>Certainly running this as social style web app would be in order, but would require minimal work from what I can see, and serve as a model for a human powered mass linked data generating machine.</p>
<p>nb: you could go wild with this, sponging data and uri's submitted through various web services, now is a good time to stop I think.</p>
<p>This may be overly obvious, but just in-case I thought it needed said :)</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/human-flesh-search-a-catalyst-for-linked-data-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are GET and PUT symmetrical? (Linked Data, CONNEG)</title>
		<link>http://webr3.org/blog/semantic-web/are-get-and-put-symmetrical-linked-data-conneg/</link>
		<comments>http://webr3.org/blog/semantic-web/are-get-and-put-symmetrical-linked-data-conneg/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 01:06:29 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[semantic web]]></category>
		<category><![CDATA[Computer networking]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[Hypermedia]]></category>
		<category><![CDATA[Hypertext]]></category>
		<category><![CDATA[linked data]]></category>
		<category><![CDATA[MIME]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[URI scheme]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=235</guid>
		<description><![CDATA[John S. Erickson, Ph.D. left a rather interesting question on my earlier post HTTP RFC paraphrased for the Web of Data, quoted here in full:

Here's a question: are GET and PUT symmetrical? Perhaps my question is a bit out-of-band, because the context of my question is really about the symmetry of content negotiation. Implicit in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bitwacker.wordpress.com/">John S. Erickson, Ph.D.</a> left a rather interesting <a href="http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/comment-page-1/#comment-237">question</a> on my earlier post <a href="http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/">HTTP RFC paraphrased for the Web of Data</a>, quoted here in full:</p>
<blockquote><p>
Here's a question: are GET and PUT <i>symmetrical</i>? Perhaps my question is a bit out-of-band, because the context of my question is really about the symmetry of <a href="http://www.ietf.org/rfc/rfc2295.txt" rel="nofollow">content negotiation</a>. Implicit in <a>RFC 2616 section 14</a> is the existence of a (potentially) wide variety of alternate representations that may be accessed via the HTTP/1.1 request header fields; in the world of <a href="http://linkeddata.org" rel="nofollow">linked data</a> these are useful for differentiating between <code>text/html</code>, <code>application/rdf+xml</code>,  <code>text/rdf+n3</code>, etc.</p>
<p>So maybe the heart of my question is this: in a linked data world where <a href="http://www.ietf.org/rfc/rfc2295.txt" rel="nofollow">conneg</a> is alive and well (and assumed), what should be the correct interpretation of RFC 2616's <i>(if) the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server</i>? If I can GET a resource to the resolution of a MIME type, should I not expect to PUT to that same resolution as well? Or, if during a GET the server responds with a list of <code>Alternates</code>, shouldn't I expect to PUT using any of those choices?</p>
<p>Readers familiar with MIME-typed disseminators in the digital repository world (think: Fedora) might think of this as a question about MIME-typed "ingestors"; it is a similar issue: instead of requesting a particular manifestation of the object, this is about updating a specific manifestation (possibly updating the whole).
</p></blockquote>
<p>It's a very good question, and I'm perhaps a bit out of my rank in answering, but to me it seems easy <em>(perhaps too easy)</em> to answer... here go's:</p>
<p>You can request a GET on anything with an HTTP URI.</p>
<p>HTTP URIs can identify <em>anything</em>, however for the context of this let's limit URIs to identifying three distinct things:</p>
<ol>
<li><strong>Stored Hypermedia</strong> <em>(digital documents, audio, video, text files ... any "file" physically stored on the server and web accessible.)</em></li>
<li><strong>Web Services</strong> <em>(a data-accepting process, a gateway to some other protocol, a separate entity that accepts annotations ... Nota bene if you are still reading then you know what I'm referring to so no need to be pedantic on my choice of terminology)</em></li>
<li><strong>Things</strong> <em>(the sky, dave's car, me ... and in this context <strong>not</strong> hypermedia or web application endpoints)</em></li>
</ol>
<p>Let's look at what we can <em>successfully</em> PUT. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6">RFC 2616 section 9.6</a> tells us:</p>
<blockquote><p> The PUT method requests that the enclosed entity be stored under the supplied Request-URI ... the URI in a PUT request identifies the entity enclosed with the request ...</p></blockquote>
<p>We can derive from the above that only "Stored Hypermedia" can <em>successfully</em> be PUT; and thus we cannot <em>successfully</em> PUT a "Web Service" or a "Thing".</p>
<p><em><strong>Nota bene</strong> I'm assuming here that you (the reader) already knows all about CONNEG, Linked Data and the multiple questions which have arisen on how to handle content negotiation, especially with regards RDF and alternative representations.</em></p>
<p>In the Linked Data world we use the RDF data model extensively. We describe things with statements, each statement is a subject-object-predicate expression which we refer to as a <em>triple</em>; strap enough of these triples together and you have a description of a thing. This is our RDF.</p>
<p>To pass these descriptions around we can serialize our RDF statements in a variety of machine readable formats <code>application/rdf+xml</code> and <code>text/rdf+n3</code> amongst others.</p>
<p>An RDF Document is where we persist one of these serializations in document, <em>id est</em> Stored Hypermedia.</p>
<p>So to store an RDF document we would logically use PUT, and then GET it later, or perhaps DELETE it. We certainly wouldn't POST to an RDF Document, anymore than we would POST to a GIF image! When thinking about an RDF Document think of it as Hypermedia, <em>exempli gratia</em> an AVI, JPEG or WAV, and treat it as such; a single document, in a single format.</p>
<p><strong>RDF is not one of it's serializations, and it most certainly isn't an "RDF Document".</strong></p>
<p>A major factor which compounds confusion in regards to content negotiation is the Web community's fixation of thinking about the response to a GET as if it were Stored Hypermedia, especially when the mime type associated with the returned entity is something like <code>text/html</code> or <code>application/rdf+xml</code>.</p>
<p>In common language what you are reading is a "web page", infering that it is a Document and Stored Hypermedia.</p>
<p>In reality what you are <em>viewing</em> is an entity returned by a GET request to a Web Service, and that entity has a mime type of <code>text/html</code>. What you are reading is actually just some data I input in to a database via a POST to a CMS (<em>wordpress</em>); there are other things here too, presentation data, navigation on the right and so forth. Leave a comment and the data I entered will stay the same but the entity returned when you next GET this URI will be different. This certainly is not Stored Hypermedia (as we defined it above).</p>
<p>Considering the conneg questions, ask yourself "are these <code>Alternatives</code> Stored Hypermedia or simply entities returned by a web service?". I'm willing to take a punt here and say that your answer will be the latter. Which means that you'd be getting the data in to your system via a POST to a web service. and not a PUT.</p>
<p>Further, if you think about the "RDF" you would no doublt be posting to create these alternatives, it may well make sense to think of it as POSTing RDF in a serialized form which the Web Service accepts. The Web Service will then (<em>all going well</em>) persist this RDF, or the triples, in something like a QuadStore. This serialized RDF is not an RDF Document, it's just serialized RDF in a request entity, just like any other data. Thus think of serialized RDF like json, base64 encoded strings, the egg in <code>?name=egg&#038;val=shell</code>; it's "just" data.</p>
<p>All of the above is driven home when you consider HTTP URIs that identify "Things". You can't send the Thing in an entity, thus if you get any response from a server when you HTTP GET the URI for a thing, then that URI <em>must</em> be serviced by a Web Service (as defined above).</p>
<p>And now that you know it's a Web Service logic would dictate that you should POST back to it...</p>
<blockquote><p>The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions: - Annotation of existing resources; ... </p></blockquote>
<p><strong>Answering the questions!</strong><br />
After all of that, on to the questions.</p>
<ul>
<li><strong>are GET and PUT symmetrical?</strong><br />
Only in the context where the URI requested identifies Stored Hypermedia.
</li>
<li><strong>If I can GET a resource to the resolution of a MIME type, should I not expect to PUT to that same resolution as well?</strong><br />
No as by this point you know that the URI/MIME combo you requested definately does not represent Stored Hypermedia (<em>a Document</em>).
</li>
<li><strong>Or, if during a GET the server responds with a list of Alternates, shouldn't I expect to PUT using any of those choices?</strong><br />
Not expect, as you have no way of knowing whether each URI returned identifies Stored Hypermedia, a Web Service or another Thing. With every new URI the cycle starts again.
</li>
</ul>
<p><strong>Please don't take any of this as gospel, it's all IMO.</strong> I do at least hope it makes sense though, and if it doesn't please do correct me asap :)</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/semantic-web/are-get-and-put-symmetrical-linked-data-conneg/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>HTTP RFC paraphrased for the Web of Data</title>
		<link>http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/</link>
		<comments>http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 05:16:44 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[linked data]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[application-level protocol]]></category>
		<category><![CDATA[Computer networking]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Dereferenceable Uniform Resource Identifier]]></category>
		<category><![CDATA[diverse applications]]></category>
		<category><![CDATA[generic protocol]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTP Protocol]]></category>
		<category><![CDATA[hypermedia information systems]]></category>
		<category><![CDATA[Hypertext Transfer Protocol]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[Internet protocols]]></category>
		<category><![CDATA[Internet systems]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Representational State Transfer]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[Uniform Resource Locator]]></category>
		<category><![CDATA[URI scheme]]></category>
		<category><![CDATA[web of data]]></category>
		<category><![CDATA[World Wide Web]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=213</guid>
		<description><![CDATA[This post is all about gleaning as much useful information as possible from the HTTP Protocol RFC 2616 in order to answer simple and complex Web of Data related questions.
I've chosen the rather old RFC 2616 (1999!) at this time rather than the upcoming HTTPbis because I feel it's important to know where you are [...]]]></description>
			<content:encoded><![CDATA[<p>This post is all about gleaning as much useful information as possible from the <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">HTTP Protocol RFC 2616</a> in order to answer simple and complex Web of Data related questions.</p>
<p>I've chosen the rather old <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">RFC 2616</a> (1999!) at this time rather than the upcoming <a href="http://tools.ietf.org/wg/httpbis/">HTTPbis</a> because I feel it's important to know where you are coming from, and whilst many things about the Web of Data feel new, they are really age old principals and technologies which have never been used to their full potential. Further you won't be able to appreciate the refinements in HTTPbis if you don't know what it's refining.</p>
<p>Virtually everything from here on is just a snippet/quote or paraphrase of the RFC. Let's start with a simple one:</p>
<p><strong>Why use HTTP?</strong></p>
<blockquote><p>HTTP is an application-level protocol for distributed, collaborative, hypermedia information systems. ... HTTP allows an open-ended set of methods and headers that indicate the purpose of a request. ... HTTP is also used as a generic protocol for communication between user agents and proxies/gateways to other Internet systems ... HTTP allows basic hypermedia access to resources available from diverse applications. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html#sec1.1">source</a></p></blockquote>
<p>I do fully recommend reading the entire RFC and the new <a href="http://tools.ietf.org/wg/httpbis/">HTTPbis</a>, most questions can be answered by returning to these documents and reading what they say (it's all in the detail); here's some more info gleaned from the RFC:</p>
<p><strong>The difference between POST and PUT, URIs as Identifiers, and URIs to identify more than just documents.</strong></p>
<blockquote><p>The fundamental difference between the POST and PUT requests is reflected in the different meaning of the Request-URI. The URI in a POST request identifies the resource that will handle the enclosed entity. That resource might be a data-accepting process, a gateway to some other protocol, or a separate entity that accepts annotations. In contrast, the URI in a PUT request identifies the entity enclosed with the request -- the user agent knows what URI is intended .. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6">source</a></p></blockquote>
<p><strong>Using POST RESTfully for more than just form data</strong>.</p>
<blockquote><p>The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions: Annotation of existing resources; ... Extending a database through an append operation. The actual function performed by the POST method is determined by the server and is usually dependent on the Request-URI. The posted entity is subordinate to that URI in the same way that ... a record is subordinate to a database. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>What to do if something is created as a result of a POST request</strong>.</p>
<blockquote><p>If a resource has been created on the origin server, the response SHOULD be 201 (Created) and contain an entity which describes the status of the request and refers to the new resource, and a Location header. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>When to use a PUT request?</strong></p>
<blockquote><p>The PUT method requests that the enclosed entity be stored under the supplied Request-URI. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>How to handle a PUT</strong></p>
<blockquote><p>If the Request-URI refers to <strong>an already existing resource</strong>, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server.</p>
<p>If the Request-<strong>URI does not point to an existing resource</strong>, and that URI is capable of being defined as a new resource by the requesting user agent, the origin server can create the resource with that URI. If a new resource is created, the origin server MUST inform the user agent via the 201 (Created) response. If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>if extra headers were sent?</strong></p>
<blockquote><p>Unless otherwise specified for a particular entity-header, the entity-headers in the PUT request SHOULD be applied to the resource created or modified by the PUT. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>and what if I want to save it somewhere other than the URI specified by the client?</strong></p>
<blockquote><p> If the server desires that the request be applied to a different URI, it MUST send a 301 (Moved Permanently) response. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>and if the PUT can't be done..</strong></p>
<blockquote><p>If the resource could not be created or modified with the Request-URI, an appropriate error response SHOULD be given that reflects the nature of the problem. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>can I use PUT with server side versioning?</strong></p>
<blockquote><p>A single resource MAY be identified by many different URIs. For example, an article might have a URI for identifying "the current version" which is separate from the URI identifying each particular version ... a PUT request on a general URI might result in several other URIs being defined by the origin server. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p><strong>how would I let a client know I implement server side versioning when they PUT?</strong></p>
<blockquote><p>If an existing resource is modified, either the 200 (OK) or 204 (No Content) response codes SHOULD be sent.. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5">source</a></p></blockquote>
<p>200 indicates a message body in the response ;)</p>
<p><strong>and DELETE?</strong><br />
well it's short so you may as well read it all..</p>
<blockquote><p> The DELETE method requests that the origin server delete the resource identified by the Request-URI. This method MAY be overridden by human intervention (or other means) on the origin server. The client cannot be guaranteed that the operation has been carried out, even if the status code returned from the origin server indicates that the action has been completed successfully. However, the server SHOULD NOT indicate success unless, at the time the response is given, it intends to delete the resource or move it to an inaccessible location.</p>
<p>A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, 202 (Accepted) if the action has not yet been enacted, or 204 (No Content) if the action has been enacted but the response does not include an entity. <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7">source</a></p></blockquote>
<p>note that a response can be 200, meaning you can return a response message (like i have X other versions here [list] or delete them all by clicking here [form input which POSTs to a service] ), or an RDF response that can be interpreted by a client to do the aforementioned :)</p>
<p><strong>but can't I tunnel all actions through GET?</strong></p>
<blockquote><p>Safe Method .. GET .. SHOULD NOT have the significance of taking an action other than retrieval! <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1">source</a></p></blockquote>
<p><em><strong>edit</strong>: removed small section about URI vs URL! Do however see the <a href="http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/comment-page-1/#comment-231">comment</a> from <a href="http://sw-app.org/about.html">Michael</a> which links to more information on the subject.</em></p>
<p><strong>Thanks for reading :)</strong><br />
There is much more information in the RFC, but those were some nicer points I found useful and relevant to current Web of Data topics &#038; discussions.</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/semantic-web/http-rfc-paraphrased-for-the-web-of-data/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why ActionScripts poor performance is a good thing</title>
		<link>http://webr3.org/blog/general/why-actionscripts-poor-performance-is-a-good-thing/</link>
		<comments>http://webr3.org/blog/general/why-actionscripts-poor-performance-is-a-good-thing/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 17:49:22 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Alchemy]]></category>
		<category><![CDATA[AMF Pensionsforsakring AB]]></category>
		<category><![CDATA[Apparat]]></category>
		<category><![CDATA[Computer programming]]></category>
		<category><![CDATA[Computer science]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[haXe]]></category>
		<category><![CDATA[Literal]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[Software architecture]]></category>
		<category><![CDATA[Software engineering]]></category>
		<category><![CDATA[Software framework]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Virtual machine]]></category>
		<category><![CDATA[Web Developers]]></category>
		<category><![CDATA[web developers itinerary]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=208</guid>
		<description><![CDATA[ActionScript gives web developers an almost unique chance to grow their skills; out of the common languages in a web developers itinerary ActionScript is almost the only one where a developers code is going to be run 30-100 times per second, with common methods being run literally thousands of times per second.
Further the code isn't [...]]]></description>
			<content:encoded><![CDATA[<p>ActionScript gives web developers an almost unique chance to grow their skills; out of the common languages in a web developers itinerary ActionScript is almost the only one where a developers code is going to be run 30-100 times per second, with common methods being run literally thousands of times per second.</p>
<p>Further the code isn't running on a solid server where the environment is controlled, and where you can simply throw more processors and memory at a problem to make it go away, the code is being run on differently specified machines almost every run, in a different client and in different versions of player.</p>
<p>To compound this unique situation the virtual machines (relatively) poor performance comes in to play.</p>
<h3>Why is this good?</h3>
<p>It has spurred a good percentage of ActionScript developers on to look at more advanced levels of code optimisation, to consider factors which are simply ignored and overlooked in other languages, to work with (and create) other technologies in order to push performance to the max; indeed even to hack the virtual machine to bits then create custom compilers and optimisers.</p>
<p>Libs and frameworks from PV3D through to Flex, projects such as haXe, Apparat and Alchemy; not to mention the wide array of technologies from AMF to RTMFP - this list goes on (and on).</p>
<p>There are 3 types of coders: bad coders, normal coders and ultra coders who's skillsets and level of understanding are far and beyond that of the normal coder; what I'm trying to get at here, is that the ActionScript challenges outlined above create an environment where a higher percentage of coders can grow in to ultra coders, than in any other language I know.</p>
<p>The Flash / ActionScript pair gives both designers and developers the notion that anything is possible - and this spurs them on to the push boundaries of what can be done; that kind of thinking sticks with people, they carry it on to other languages, platforms and communities; bringing inspiration and forward thinking to the web of humans.</p>
<p><em>Context: Really enjoyed reading this post: <a href="http://blog.joa-ebert.com/2010/02/11/the-advantage-of-actionscript/">The Advantage Of ActionScript</a> from Joa, in particular I'm glad that he mentioned "Poor Performance" as an advantage. The above post leads on from Joa's to give some of my own thoughts on why we all owe ActionScript and Flash a little something.</em></p>
<p><img src="http://webr3.org/blog/wp-content/uploads/2010/02/as3poor.jpg" alt="as3poor" title="as3poor" width="600" height="250" class="alignnone size-full wp-image-228" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/why-actionscripts-poor-performance-is-a-good-thing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtuoso 6, SPARQL + GEO, Sample Queries</title>
		<link>http://webr3.org/blog/linked-data/virtuoso-6-sparqlgeo-and-linked-data/</link>
		<comments>http://webr3.org/blog/linked-data/virtuoso-6-sparqlgeo-and-linked-data/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 23:24:40 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[linked data]]></category>
		<category><![CDATA[virtuoso]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Edinburgh]]></category>
		<category><![CDATA[Filter]]></category>
		<category><![CDATA[FOAF]]></category>
		<category><![CDATA[Group action]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[Mathematics]]></category>
		<category><![CDATA[New York City]]></category>
		<category><![CDATA[Oxford]]></category>
		<category><![CDATA[RDBMS]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[RDF Schema]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[text search]]></category>
		<category><![CDATA[United Kingdom]]></category>
		<category><![CDATA[World Wide Web]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[York]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=183</guid>
		<description><![CDATA[Along side a whole host of improvements, the latest version of Virtuoso (Virtuoso 6) has added support for Geo data! One small sentence, one huge leap for mankind; it's vastly importany IMHO because it brings a new kind of link to Linked Data; a location based one.
Very brief intro: SPARQL is a fantastic query language [...]]]></description>
			<content:encoded><![CDATA[<p>Along side a whole host of improvements, the latest version of Virtuoso (<a href="http://bit.ly/dgbAXS">Virtuoso 6</a>) has added support for Geo data! One small sentence, one huge leap for mankind; it's vastly importany IMHO because it brings a new kind of link to Linked Data; a location based one.</p>
<p>Very brief intro: SPARQL is a fantastic query language which works over RDF and thus Linked Data, Virtuoso amongst other things has a powerful QuadStore which can be queried via SPARQL, and Virtuoso's implementation of SPARQL + the extensive suite of extensions they have implemented makes it the most usable and powerful query langauge available (again, in my honest opinion). In short this combination was enough to make me drop normal RDBMS systems and never look back.</p>
<p>Rather than rambling on about how fantastic it is though; here are some Virtuoso specific sample SPARQL (+GEO) queries, which should hopefully wet your appetite and give you some inclination of what can be done.</p>
<h2>Basic Geo Lookups</h2>
<p><strong>Things within 20km of New York City : <a href="http://bit.ly/9IBiVW" target="_blank">RESULTS</a></strong><br />
<code>  SELECT DISTINCT ?resource ?label ?location<br />
  WHERE<br />
  {<br />
    &lt;http://dbpedia.org/resource/New_York_City> geo:geometry ?sourceGEO .<br />
    ?resource geo:geometry ?location ; rdfs:label ?label .<br />
    FILTER( bif:st_intersects( ?location, ?sourceGEO, 20 ) ) .<br />
    FILTER( lang(?label) = "en" )<br />
  }</code></p>
<p><strong>Distance between New York City and London, England : <a href="http://bit.ly/bYNfWO" target="_blank">RESULTS</a></strong><br />
<code>  SELECT (bif:st_distance(?nyl,?ll)) as ?distanceBetweenNewYorkCityAndLondon<br />
  WHERE<br />
  {<br />
    &lt;http://dbpedia.org/resource/New_York_City> geo:geometry ?nyl .<br />
    &lt;http://dbpedia.org/resource/London> geo:geometry ?ll .<br />
  }<br />
 </code></p>
<h2>Querying Time and Space</h2>
<p><strong>All Educational Institutions within 10km of Oxford, UK; ordered by date of establishment : <a href="http://bit.ly/biZEHA" target="_blank">RESULTS</a></strong><br />
<code>SELECT DISTINCT ?thing as ?uri ?thingLabel as ?name ?date as ?established ?matchGEO as ?location<br />
WHERE<br />
{<br />
&lt;http://dbpedia.org/resource/Oxford&gt; geo:geometry ?sourceGEO .<br />
?resource geo:geometry ?matchGEO .<br />
FILTER( bif:st_intersects( ?matchGEO, ?sourceGEO, 5 ) ) .<br />
?thing ?somelink ?resource ; &lt;http://dbpedia.org/ontology/established&gt; ?date ; rdfs:label ?thingLabel . FILTER( lang(?thingLabel) = "en" )<br />
} ORDER BY asc( ?date )<br />
</code><br />
<strong>Historical cross section of events related to Edinburgh and the surrounding area (within 30km) during the 19th century : <a href="http://bit.ly/dfZU43" target="_blank">RESULTS</a></strong><br />
<code>SELECT DISTINCT ?thing ?thingLabel ?dateMeaningLabel ?date ?matchGEO WHERE {<br />
{<br />
SELECT DISTINCT ?thing ?matchGEO<br />
WHERE<br />
{<br />
&lt;http://dbpedia.org/resource/Edinburgh&gt; geo:geometry ?sourceGEO .<br />
?resource geo:geometry ?matchGEO .<br />
FILTER( bif:st_intersects( ?matchGEO, ?sourceGEO, 30 ) ) .<br />
?thing ?somelink ?resource<br />
}<br />
}<br />
{?property rdf:type owl:DatatypeProperty ; rdfs:range xsd:date } .<br />
?thing ?dateMeaning ?date . FILTER( ?dateMeaning in( ?property ) ) . FILTER( ?date &gt;= xsd:gYear("1800") &amp;&amp; ?date &lt;= xsd:gYear("1900") )<br />
?dateMeaning rdfs:label ?dateMeaningLabel . FILTER( lang(?dateMeaningLabel) = "en" ) .<br />
?thing rdfs:label ?thingLabel . FILTER( lang(?thingLabel) = "en" )<br />
} ORDER BY asc( ?date )</code></p>
<h2>Transitivity and Inference (v5 compatible)</h2>
<p><strong>Finding the shortest route between two "things" (HTML and XML in the example) : <a href="http://bit.ly/cJjsBL" target="_blank">RESULTS</a></strong><br />
<code>SELECT ?route ?jump WHERE<br />
{<br />
 { SELECT ?x ?y WHERE { ?x foaf:page ?xpage ; ?predicate ?y . filter( isURI(?y) ) } }<br />
 OPTION ( TRANSITIVE, T_DISTINCT, T_SHORTEST_ONLY, t_in(?x), t_out(?y), t_max(10), t_step('path_id') as ?path, t_step(?x) as ?route, t_step('step_no') AS ?jump )<br />
 . FILTER ( ?y = &lt;http://dbpedia.org/resource/HTML> &#038;& ?x = &lt;http://dbpedia.org/resource/XML> )<br />
}<br />
</code></p>
<p><strong>..and all routes between the two "things" : <a href="http://bit.ly/cQV4AW" target="_blank">RESULTS</a></strong><br />
<code>SELECT ?route ?path ?jump WHERE<br />
{<br />
 { SELECT ?x ?y WHERE { ?x foaf:page ?xpage ; ?predicate ?y . filter( isURI(?y) ) } }<br />
 OPTION ( TRANSITIVE, T_NO_CYCLES, t_in(?x), t_out(?y), t_max(5), t_step('path_id') as ?path, t_step(?x) as ?route, t_step('step_no') AS ?jump )<br />
 . FILTER ( ?y = &lt;http://dbpedia.org/resource/HTML> &#038;& ?x = &lt;http://dbpedia.org/resource/XML> )<br />
}</code></p>
<p><strong>Traversing Ontologies and (Sub)Classes; all subclasses of Person down the hierarchy  : <a href="http://bit.ly/aZ0oOM">RESULTS</a></strong><br />
<code>SELECT DISTINCT ?x WHERE<br />
{<br />
 { SELECT ?x ?y WHERE { ?x rdfs:subClassOf ?y } }<br />
 OPTION ( TRANSITIVE, T_DISTINCT, t_in(?x), t_out(?y), t_step('path_id') as ?path, t_step(?x) as ?route, t_step('step_no') AS ?jump, T_DIRECTION 2 )<br />
 FILTER ( ?y = &lt;http://dbpedia.org/ontology/Person> )<br />
}</code></p>
<h2>Free text search, scores and IRI Ranks (v5 compatible)</h2>
<p><strong>Searching over labels, with text match scores and additional ranks for each iri / resource  : <a href="http://bit.ly/bMNweO">RESULTS</a></strong><br />
<code>SELECT ?s ?page ?label ?textScore (<LONG::IRI_RANK>(?s)) as ?iriRank WHERE {<br />
  ?s foaf:page ?page ; rdfs:label ?label . FILTER( lang(?label) = "en" ) .<br />
  ?label bif:contains 'adobe and flash' option (score ?textScore ) .<br />
}</code></p>
<p><strong>Virtuoso 6.1 (Open Source Edition) released. For features &#038; bug fix details see: <a href="http://bit.ly/dgbAXS">link</a></strong></p>
<p><img src="http://webr3.org/blog/wp-content/uploads/2010/02/spo.jpg" alt="spo" title="spo" width="600" height="250" class="alignnone size-full wp-image-226" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/linked-data/virtuoso-6-sparqlgeo-and-linked-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to fix a noisy computer or graphics card fan</title>
		<link>http://webr3.org/blog/general/how-to-fix-a-noisy-computer-or-graphics-card-fan/</link>
		<comments>http://webr3.org/blog/general/how-to-fix-a-noisy-computer-or-graphics-card-fan/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 12:29:50 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[gotcha]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Electronic engineering]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[GeForce]]></category>
		<category><![CDATA[Nvidia]]></category>
		<category><![CDATA[olive oil]]></category>
		<category><![CDATA[Video cards]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=177</guid>
		<description><![CDATA[Background:
A few months ago I upgraded my pc, part of which included adding an Asus GeForce 9600 GT; shortly after installing, the Fan on the graphics card started to make a most irritating grinding noise. I found that if I knocked and tilted my case a few times I could get it to stop grinding [...]]]></description>
			<content:encoded><![CDATA[<h2>Background:</h2>
<p>A few months ago I upgraded my pc, part of which included adding an Asus GeForce 9600 GT; shortly after installing, the Fan on the graphics card started to make a most irritating grinding noise. I found that if I knocked and tilted my case a few times I could get it to stop grinding &amp; quieten down (the hit-it fix). Over time this grinding has become more frequent, to the point that it's almost non-stop; and so that it vibrates the case and thus you can hear it all through the house. It's been driving me insane because everytime I get it to stop, the *slightest* of movements starts it going again, which includes me moving, somebody walking past, infact anything. This weekend it's been especially bad, in-fact I've felt like throwing the f'ing thing out the window; finally this morning I had enough and thought I have to get a new fan for this thing.</p>
<p>Searching the internet found me no replacement fans, which meant I was looking at sending the card back to get it fixed (and thus missing out on work), buying a full new cooling set, or buying a new card - the last two options would have led to pc-murder as seriously this noise goes right through you. Thus after running out of options  I tried to fix it.</p>
<h2>How to fix a noisy computer fan:</h2>
<ol>
<li>Remove the fan from the computer (in my case this meant removing the graphics card and unscrewing the plastic cover and fan).</li>
<li>Once you have the fan removed, remove the stickers from it.</li>
<li>On one side you'll notice a small recess with the end of a small metal pin on it (the bit that holds the fan together, and which the fan spins on)</li>
<li>Take a small, toy plastic soldier and chew off the arm (or rifle butt it if has one).</li>
<li>Take the cap off a bottle of Filippo Berio Extra Virgin Olive Oil and fill said cap approx half full with said olive oil.</li>
<li>Dip one end of the plastic arm / rifle in to the olive oil, then dab the smallest of drops on to the small metal pin in the recess of the fan (from step 3)</li>
<li>As you do step 6, gently pull the two parts of the fan about 0.5mm apart and turn the fan clockwise and ant-clockwise.</li>
<li>Repeat steps 6 &amp; 7 until you feel the oil has worked its way in and loosened it, "oiled the fan".</li>
<li>Be very careful not to swamp the thing with oil, it's an electronic part and you'll break it.</li>
<li>Reassemble what you took apart in step 1.</li>
</ol>
<p>I do believe the specific brand of olive oil, or even the fact it's olive oil isn't of significant importance, likewise the soldier arm / rifle could be anything small that's good for poking.</p>
<p>As an extra bonus, my graphics card is now running 20 degrees cooler when idle :)</p>
<h3>Short version:</h3>
<ol>
<li>Oil it</li>
</ol>
<h3>Disclaimer:</h3>
<p>This worked for me, I'm most pleased, if it doesn't work for you or you break something, don't blame me - but it might be worth a try.</p>
<p>Regards!</p>
<p><img class="alignnone size-full wp-image-178" title="fanfix" src="http://webr3.org/blog/wp-content/uploads/2010/02/fanfix.jpg" alt="fanfix" width="600" height="250" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/how-to-fix-a-noisy-computer-or-graphics-card-fan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Preparing Yourself for Web 3.0, LOD and 2010+</title>
		<link>http://webr3.org/blog/featured/preparing-yourself-for-web-3-0-lod-and-2010/</link>
		<comments>http://webr3.org/blog/featured/preparing-yourself-for-web-3-0-lod-and-2010/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 00:08:51 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[RDFa]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linked data]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[everyday Web Developer]]></category>
		<category><![CDATA[FOAF]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[mentioned search engine traffic]]></category>
		<category><![CDATA[Open Data]]></category>
		<category><![CDATA[public facing web pages]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[same author]]></category>
		<category><![CDATA[search engine]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[United Kingdom]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Designer and SEO Specialist]]></category>
		<category><![CDATA[Web Developers]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=172</guid>
		<description><![CDATA[If you work on the net then you'll have probably heard of the "semantic web", it's nice, you can ignore it and get along just fine though; however "Linked Open Data" (LOD) is now upon us and it's one of these things that can't be ignored, no matter which sector of the internet you work [...]]]></description>
			<content:encoded><![CDATA[<p>If you work on the net then you'll have probably heard of the "semantic web", it's nice, you can ignore it and get along just fine though; however "Linked Open Data" (LOD) is now upon us and it's one of these things that can't be ignored, no matter which sector of the internet you work in, if you do ignore it you'll probably become extinct (career-wise) pretty soon.</p>
<p>Sounds melodramatic but the whole point of this text is to explain in real terms the effect it'll have on the every day web worker; the web developer, web designer, seo expert, internet marketer etc. So that you, my current or future friends and associates still have a job in a couple  of years; and I researched it so that I would still have a job in a few years (+ because I love this stuff!)</p>
<h2><strong>A bit about Linked Open Data (LOD).</strong></h2>
<p>LOD can easily be a huge, scary and new thing, overwhelming in so many ways with all this talk of a cloud, billions of bits of information in some part of the web that is separate to "us"; take one look at the diagrams of the linked open data cloud and you'll see those academic acronyms of scientific organisations, future thinking global entities publishing their specialised data - nothing about you and me with our little blogs, and moreover nothing about our clients websites.</p>
<p>Sure it's about getting massive amounts of data on the web, linked and open for use, but it's different to how you expect :)</p>
<p>Linked Open Data is simply about making the info we already put on the net (like this post) machine readable as well as human readable.</p>
<p>It *IS NOT* about creating some system to dump everything from our database in some weird format for a machine to read somewhere.</p>
<p>It *IS* about wrapping the data on a normal page in a bit of markup so that a computer knows what it is.</p>
<p>If you're writing about london you simply add a tiny bit of markup that says 'about="http://en.wikipedia.org/wiki/London"' - honestly that's it in real terms, the user reading your page knows its about London, England - and now a system like google knows that it's definitely about London, England too. In most cases though it's simpler; it's a case of saying this article is titled "x" and made by person "y" - that alone makes a huge difference to the net.</p>
<h2><strong>How LOD will change the web.</strong></h2>
<p>More Links! We're currently in the age of search, if you want something you search for it, to get more info you search again, and again and so on.</p>
<p>Link trust was at an all time low a few years ago, sure you'd click a navigation link on a site but not a link in a document, because it was probably to a popup, an advert, something you didn't want. Not now though, mainly thanks to bloggers with their in text links to other pages, the world has grown to trust the link again.</p>
<p>Linked Open Data will spawn a massive increase in related data on page, related resources, articles, images, videos and more. And thus many, many more links.</p>
<p>This means that people will search less, and explore more; ever increasingly.</p>
<p>It's unavoidable, and even if a website isn't enhanced with all this extra linked data, odds are the user will have a browser extension or app running that will show all the related information anyway - these technologies are already here and used - adoption *will* grow, no way out of it, change happens.</p>
<h2><strong>Info for specific sectors</strong></h2>
<p>This isn't the meant to be a full introduction or all encompassing, in fact nowhere near it - if you want the ins and outs of LOD then look elsewhere. This info is for the everyday Web Developer, Web Designer and SEO Specialist.</p>
<p><strong>Web Designers (+ those who work with html)</strong></p>
<p>To be honest I think this change might hit you guy's hardest; you see XHTML+RDFa is already here, it'll be massive soon (and don't go thinking HTML5 will get you out of it, RDFa will be in there too). In short XHTML+RDFa is xhtml as you know it, but with support for embedded RDF information, really it means a few new properties on elements that let you say what they are; in place FOAF, Dublin Core (DC) and the like. Any further description is outside the scope of this document ;)</p>
<p>What this means for you is that as well as having potentially a lot more to display on page (linked data) and lot's of UI challenges, you also now have to cater for this RDFa data in your templates. It's not like other W3C stuff which you can ignore, different to cross browser compatibility, if you leave it out or skip the RDFa stuff then the site will potentially be outside of the LOD network, traffic will drop and ultimately the site may as well not be "in" the web (might be a few years before that though) - so in many ways the end of ignorance and excuses.</p>
<p>You can currently slap out some HTML4, change the doctype, stick on jquery and make it "look" web 2.0 - and people will think it's web 2.0; with web 3.0 (the linked open data based net) you can't do that, it either is web 3.0 or isn't; there isn't a "web 3.0" look, just web 3.0 source.</p>
<p>Drupal 7 has RDFa support out of the box; within the year I bet every CMS &amp; Blog will too; and if you make a new template with the RDFa cut out because you "don't know it", then I'm pretty sure it won't be long before your clients or employers cut you out; and we don't want that.</p>
<p>Further, if you don't - developers will be on your back big time &amp; changing your source; or worse the SEO guys will be ;)</p>
<p><strong>Web Developers</strong><br />
All of you need to know what triples are (subject-predicate-object), and URIs and CURIEs (not your normal URIs, URIs as Identifiers).</p>
<p>If you're going to be exposing data in your systems then you need to get used to mapping database properties through to RDF triples; that a user is a foaf:person with a foaf:name; that tags are ctags and dc:subjects, and that articles have a dc:title (keeping it simple for this).</p>
<p>If you're going to be consuming LOD data then you need to learn a bit more, RDF, SPARQL, Owl, ontologies and a bit more.</p>
<p>And if you want to get "in to" LOD in a big way, then go do it.</p>
<p><strong>SEO Specialists</strong><br />
You need to know what the designers know, and you'll be changing from SEO specialists to data exploration optimizers or suchlike, focus will be on how you can make the data machine readable and get it linked in by the right services.. should be fun!</p>
<p>Further, you'll need to watch for how to get traffic to the sites, as mentioned search engine traffic will drop slowly over the next few months and years; with more focus going on "links" from related pages. As for the diggs &amp; reddits, who knows how it'll effect traffic from them.</p>
<h2><strong>Summary</strong></h2>
<p>IMHO it's in all of our best interests to just get on with this, it will happen and the sooner YOU do it and convince your employers you have to make this move the better, companies can easily loose clients too if your competition is offering "web 3" and you aren't.</p>
<p>At no point have I seen a tech hit the web which could literally leave people behind if they don't jump on board; it's happened in other industries and now ours (remember VHS?).</p>
<h2><strong>The two questions most people / companies / clients will immediately raise..</strong></h2>
<p><strong>1] We don't want to expose all our data for reasons X,Y&amp;Z!</strong></p>
<p>LOD isn't about exposing all the your data on the internet; it's about making the data you've already exposed on the internet in a more granular fashion, it's about making that data machine readable.</p>
<p>Presently you may have an article on a page with a title and author credit in HTML, in the future you would still have the same author and title, however they would be wrapped in markup that allows a machine to understand that "Joe Blogs" is a person who is the author of the article, and that the articles title is "I'm scared of exposing my data".</p>
<p>If you consider you're public facing web pages, everything on that page is already exposed, all we're doing here is describing what each bit of data is in a way we can all use.</p>
<p><strong>2] Trust &amp; Junk</strong></p>
<p>One common misconception is that you have no control over the source of the data you pull from the "cloud", and that it could essentially be junk. However this couldn't be further from the truth, what we do is to find a source of data we trust that has their data exposed in a machine readable format, then query it for the exact information we want, and finally include or display it in our own system.</p>
<p>To illustrate, consider you wanted to reference the countries of the world with population in your system. Currently you would have to build  a database table, populate that data with country name and country population, then write some code to display that data. In this scenario you'd probably get the population data from a credible source such as wikipedia (copy and paste it in to your own database).</p>
<p>By using linked open data, you could treat the machine readable version of wikipedia (dbpedia) as your database table, query it instead and again write some code to display the data on you're own site.</p>
<p>You're displaying the same data, from the same trusted source; and you've selected which source you trust; it's not a case of just querying some cloud of data; it's a case of choosing which source(s) you want / trust and querying them.</p>
<p>As an additional bonus you don't need to worry about your information going out of date, as you're getting the data straight from source, the population of each country is updated on your site whenever it's updated on wikipedia.</p>
<p>Further, you don't need to worry about maintaining that list of countries, as in a single query you can pull out a list of all countries with each ones population, as the world grows and changes, so does your data.</p>
<p>Further still! once you've made the move to using some linked open data, all the data you could want is at your finger tips, let's say a decision is made to include 30 different bits of information about each country in your system. Consider that task for a minute - full system change, finding, collating and entering all that data; let alone maintaining it! Well, I'm sure you can guess the next bit, using LOD we can simply expand our original query to include the other bits of information we want, then display it - job done.</p>
<p><strong>That's it.</strong></p>
<p>Good Luck!</p>
<p>nathan</p>
<p><img class="alignnone size-full wp-image-173" title="future" src="http://webr3.org/blog/wp-content/uploads/2009/10/future.jpg" alt="future" width="600" height="250" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/featured/preparing-yourself-for-web-3-0-lod-and-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The end of Search? Linked Data, Semantic Web &amp; thoughts.</title>
		<link>http://webr3.org/blog/semantic-web/the-end-of-search-linked-data-semantic-web-and-my-vision/</link>
		<comments>http://webr3.org/blog/semantic-web/the-end-of-search-linked-data-semantic-web-and-my-vision/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 23:03:09 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[linked data]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[DBpedia]]></category>
		<category><![CDATA[FOAF]]></category>
		<category><![CDATA[Georgi Kobilarov]]></category>
		<category><![CDATA[Globally Unique Identifier]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[RDFa]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[search engines]]></category>
		<category><![CDATA[software side]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[Uniform Resource Identifier]]></category>
		<category><![CDATA[Virtuoso Universal Server]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=164</guid>
		<description><![CDATA[Earlier today I was reading an interesting post by Georgi Kobilarov entitled "What’s wrong with the Linked Data world, part 1 - Keyword Search"; this particularly sparked my interest because in all honesty "search" had never came in to my vision of the semantic web / linked data world.
To me, the draw of linked data [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier today I was reading an interesting post by <a href="http://www.georgikobilarov.com/">Georgi Kobilarov</a> entitled "<a href="http://blog.georgikobilarov.com/2009/10/whats-wrong-with-the-linked-data-world-part-1-keyword-search/">What’s wrong with the Linked Data world, part 1 - Keyword Search</a>"; this particularly sparked my interest because in all honesty "search" had never came in to my vision of the semantic web / linked data world.</p>
<p>To me, the draw of linked data and the semantic web has always been exploration; the notion that even the most unskilled of publishers should be able to enrich their content via semi-automated software to the standards of a near perfect wikipedia article has always been the driving force. Additionally, content classification, relation, linkage, data centralization and the like are all major benefits which will make a vast difference to the usability of the web.</p>
<p>Search will always be a major part of the internet, at the moment we use search to find content on a specific subject, then search again to find more, and search again to find related or expanded info, help, facts, answers, whatever; however, in the future I hope to see search move to a less prominent role, one where we use search to find the most suitable "entry point" in to the web of linked data - and from there every other piece of related / expanded information is either on page, or a click (link) away.</p>
<p>Some major hurdles need to be jumped before we can get to that stage though, both through lack of organization and lack of appropriate software. Personally I have a mental blueprint / overview of what's needed (imho), and some very specific ideas on the software side, with any luck I'll get a chance to contribute + build some of this, we'll see.</p>
<p>Some thoughts of what's needed from my little brain.</p>
<p><strong>Linked Data Ping</strong><br />
A central service API which is pinged by all software as it publishes information with machine accessible content. (Needed way before (x)HTML+RDFa takes off). Provides a stream of all recent pings to be consumed (xmpp pub-sub?).</p>
<p><strong>Clustered Servers holding a centralized data GUID lookup and proxy.</strong><br />
In essence all resources on the net should be a linked pair of GUID to endpoint, each endpoint should contain a reference to the GUID, and each GUID should be a URI which redirects to the endpoint, endpoints change GUID/URI stays unique. In an ideal scenario when somebody creates a link to X resource or Y document, the publishing/controlling software should replace the endpoint with the GUID instead. This would also enable multiple other services such as centralized pingback, references, statistics etc.</p>
<p><strong>Machine Readable Data Cache.</strong><br />
Together with the aforementioned services a high availability database of cache'd information should exist; in principal this would work by reading the stream of "Linked Data Pings", getting the GUID for the content and then retrieving all machine readable data and caching it. Much like the RDF data exposed through dbpedia, however for everything. Even if only a predefined subset of the common rdf vocabularies was stored and exposed it'd be enough to start, from there all other domain specific ontology could be retrieved by reading the endpoint itself.</p>
<p><strong>Semantic CMS</strong><br />
Ideally we need a new breed of CMS, one that not only has simple FOAF and Dublin Core (~Drupal 7), but also support for full content enrichment using the aforementioned machine services; and provides a simple UI for manually exposing entities, events, facts etc. (Think highlight name in text, mark as Person with Name, system finds guid and builds relevant RDFa and we have another triple of linked data.)</p>
<p>The possibilities from this point are endless; if you're reading this document after all this has been made, then you'd see a whole host of in text links through to more information on each keyphrase, person, entity etc; you'd be aided by auto injection of sources, related reading, comments, further documents discussing the content here, in short you'd be exploring the net one click at a time, linked data all the way; not searching.</p>
<p>In summary (and very much imho), Linked Data is not for searching, it's for linking data - search was invented to address the issue that everything isn't linked, when it is then the link takes precedence again.</p>
<p>My only worry in all of this, is the idea that all rdf triples are fact, and true - already the major search engines are exposing rdfa data in summaries, 5* ratings on products and suchlike, the room for abuse will only get worse.</p>
<p>Thanks Georgi for placing the spark that clarified my current thoughts.</p>
<p>Finally, this isn't a biased opinion in anyway, or an endorsement, but to me openlink virtuoso, dbpedia, zemanta and open calais are leading the way and enabling all of this; together with the hard working folks contributing to the various linked W3C projects and specs. If only dbpedia/zemanta/calais would unify there uri's/guids/endpoints we'd be a lot further along.. (well I would ;).</p>
<p>Regards!</p>
<p><img class="alignnone size-full wp-image-167" title="linkeddata" src="http://webr3.org/blog/wp-content/uploads/2009/10/linkeddata.jpg" alt="linkeddata" width="600" height="250" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/semantic-web/the-end-of-search-linked-data-semantic-web-and-my-vision/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer Cry</title>
		<link>http://webr3.org/blog/general/developer-cry/</link>
		<comments>http://webr3.org/blog/general/developer-cry/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:32:29 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[streaming technologies]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=161</guid>
		<description><![CDATA[
Whilst in my spare time I'm literally cramming to take in all the new technologies on the web and learn how to use them all, in working hours even the meatiest of projects involves old skills learned years ago; and worse, the common projects listed everywhere are little more than install X CMS, with Y [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-162" title="devcry" src="http://webr3.org/blog/wp-content/uploads/2009/10/devcry.jpg" alt="devcry" width="600" height="250" /><br />
Whilst in my spare time I'm literally cramming to take in all the new technologies on the web and learn how to use them all, in working hours even the meatiest of projects involves old skills learned years ago; and worse, the common projects listed everywhere are little more than install X CMS, with Y Plugins and Z Template + a couple of tweaks.</p>
<p>Much of the work has been dumbed down to repetitive, narrow scoped projects that really take little to no "developer knowledge".</p>
<p>I'm sitting here racking my brain, how to find a way to spend 2010 learning further and putting all these good things in to practise? I'd love to spend a good chunk of the year piecing together all these new tech's to create something great; and preferably with some of the ultra skilled developers I know - the scope is incredible, the boundaries are virtually limitless, and moreover, the technologies are there for the picking!</p>
<p>Surely, somewhere, there is a business man sitting racking his brain, fed up with the same old sites every one has, aware of all these new techs, great API's, and with the notion that something great can be created; posting job offers and hunting down the right developers for the task?</p>
<p>I just can't grasp that with all the forward thinking companies and people out there pushing boundaries, that nobody is wanting to take advantage of that and tie them all together.</p>
<p>So here's the problem; how to pair the two? how do we match up to the right companies &amp; businesses. In fact.. how do I find the right people who want to exploit all of this?</p>
<p>Link up the goodies available from the semantic web, with the tech advances in streaming technologies, via a whole host of API's, using the latest languages to target multiple platforms; polish it all off with the latest in graphical interfaces and develop a realtime monster application to be proud of.</p>
<p>I'd love to list the tech's involved, but the list would be 100+; and more to the point - without a set project description to mesh this all together, we just don't know. But.. anything is possible.</p>
<p>Developers can you think of a way to break the masses in to the next generation of the internet?</p>
<p>Companies &amp; business men, can you think of some projects to get us there?</p>
<p>The next stage of the net is sooo close, yet so far, all we need to do is grab it and go - I know there's a lot of forward thinkers that read this blog.. rack you're brains for the good of us all!</p>
<p>Regards :)</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/developer-cry/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Semantic Web &amp; XHTML+RDFa Resources</title>
		<link>http://webr3.org/blog/semantic-web/semantic-web-xhtmlrdfa-resources/</link>
		<comments>http://webr3.org/blog/semantic-web/semantic-web-xhtmlrdfa-resources/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 11:53:28 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[RDFa]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Knowledge representation]]></category>
		<category><![CDATA[Markup languages]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Semantic HTML]]></category>
		<category><![CDATA[Semantic Web Resources]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=158</guid>
		<description><![CDATA[This week I've been having a refresher / catch-up on all things semantic and rdf on the net; from a developer standpoint.
To save everything going to waste, here's a quick list of multiple handy resources which I've found (save you a bit of googling and time).
XHTML + RDFa and related techs.


Wikipedia RDFa
RDFa info
W3C RDFa Primer, [...]]]></description>
			<content:encoded><![CDATA[<p>This week I've been having a refresher / catch-up on all things semantic and rdf on the net; from a developer standpoint.</p>
<p>To save everything going to waste, here's a quick list of multiple handy resources which I've found (save you a bit of googling and time).</p>
<p><strong>XHTML + RDFa and related techs.<br />
</strong></p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/RDFa" target="_blank">Wikipedia RDFa</a></li>
<li><a href="http://rdfa.info/" target="_blank">RDFa info</a></li>
<li>W3C <a href="http://www.w3.org/TR/xhtml-rdfa-primer/" target="_blank">RDFa Primer</a>, <a href="http://www.w3.org/MarkUp/2009/rdfa-for-html-authors" target="_blank">RDFa for HTML Authors</a>, <a href="http://www.w3.org/TR/rdfa-syntax/" target="_blank">RDFa Syntax</a>, <a href="http://www.w3.org/TR/xhtml-rdfa-scenarios/" target="_blank">RDFa Usage Scenarios</a></li>
<li><a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=146898" target="_blank">Google RDFa</a> Support help for webmasters.</li>
<li>Drupal 7 <a href="http://groups.drupal.org/node/22231" target="_blank">RDFa Intro</a>, <a href="http://drupal.org/node/574624" target="_blank">RDF / RDFa Details</a></li>
<li><a href="http://arc.semsol.org/" target="_blank">ARC RDF/RDFa Classes for PHP</a></li>
<li><a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/" target="_blank">OpenLink Virtuoso Open Source Database</a> (RDBMS, ORDBMS, virtual database, RDF, XML, free-text, web application server, file server, sparql, ws-* etc)</li>
<li>Notation3 on <a href="http://www.w3.org/DesignIssues/Notation3" target="_blank">W3C</a>, <a href="http://en.wikipedia.org/wiki/Notation3" target="_blank">Wikipedia</a></li>
<li>Turtle on <a href="http://en.wikipedia.org/wiki/Turtle_%28syntax%29" target="_blank">Wikipedia</a>, <a href="http://www.w3.org/TeamSubmission/turtle/" target="_blank">W3C</a>, <a href="http://www.dajobe.org/2004/01/turtle/" target="_blank">Authors Site</a></li>
<li>N-Triples on <a href="http://en.wikipedia.org/wiki/N-Triples" target="_blank">Wikipedia</a>, <a href="http://www.w3.org/2001/sw/RDFCore/ntriples/" target="_blank">W3C</a></li>
<li>GRDDL on <a href="http://en.wikipedia.org/wiki/GRDDL" target="_blank">Wikipedia</a>, <a href="http://www.w3.org/TR/grddl/" target="_blank">W3C Spec</a>, <a href="http://www.w3.org/TR/grddl-primer/" target="_blank">W3C Primer</a>, <a href="http://www.w3.org/TR/grddl-scenarios/" target="_blank">W3C Usage Scenarios</a></li>
</ul>
<p><strong>Semantic Web Resources</strong></p>
<ul>
<li><a href="http://esw.w3.org/topic/TaskForces/CommunityProjects/LinkingOpenData/DataSets" target="_blank">Semantic Linked Data W3C ESW Wiki</a></li>
<li><a href="http://sioc-project.org/" target="_blank">SOIC</a>, <a href="http://www.foaf-project.org/" target="_blank">FOAF</a>, <a href="http://en.wikipedia.org/wiki/SKOS" target="_blank">SKOS</a></li>
<li><a href="http://www.w3.org/TR/rdf-sparql-query/" target="_blank">SPARQL Query Language</a>, <a href="http://www.w3.org/TR/rdf-sparql-protocol/" target="_blank">SPARQL Protocol</a>, <a href="http://www.w3.org/TR/rdf-sparql-XMLres/" target="_blank">SPARQL Result Format</a>, <a href="http://jena.sourceforge.net/ARQ/Tutorial/" target="_blank">SPARQL Tutorial</a></li>
<li><a href="http://en.wikipedia.org/wiki/RDF_Schema" target="_blank">RDF Schema (RDFS) on Wikipedia</a>, <a href="http://www.w3.org/TR/rdf-schema/" target="_blank">W3C RDFS Spec</a>, <a href="http://opencalais.com/documentation/calais-web-service-api/rdfs" target="_blank">Calais RDFS</a></li>
<li><a href="http://wiki.dbpedia.org/Applications" target="_blank">DBPedia Applications</a>, and <a href="http://wiki.dbpedia.org/OnlineAccess" target="_blank">DBPedia Open Access</a></li>
<li><a href="http://www.freebase.com/docs/" target="_blank">Freebase Developer Docs</a>, <a href="http://rdf.freebase.com/" target="_blank">Freebase RDF</a></li>
<li><a href="http://developer.yahoo.com/search/content/V1/termExtraction.html" target="_blank">Yahoo Term Extraction Service</a></li>
<li><a href="http://developer.zemanta.com/docs/Home" target="_blank">Zemanta Contextual Information Service Developer Documentation</a></li>
<li><a href="http://opencalais.com/documentation/opencalais-documentation" target="_blank">Open Calais Documentation</a></li>
<li><a href="http://blog.alchemyapi.com/" target="_blank">AlchemyAPI</a></li>
<li><a href="http://www.commontag.org/Home" target="_blank">Common Tag</a></li>
</ul>
<p>Hopefully that'll be enough to get most people going!</p>
<p><img class="alignnone size-full wp-image-159" title="rdfa_what" src="http://webr3.org/blog/wp-content/uploads/2009/10/rdfa_what.jpg" alt="rdfa_what" width="600" height="250" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/semantic-web/semantic-web-xhtmlrdfa-resources/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Forced Coding</title>
		<link>http://webr3.org/blog/general/forced-coding/</link>
		<comments>http://webr3.org/blog/general/forced-coding/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 20:30:40 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[experiments]]></category>
		<category><![CDATA[general]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=150</guid>
		<description><![CDATA[
update:
I've been off for a week after finishing a project and moving house, in that time this domain dropped and just prior to that appeared to get 20k+ reads which is a bit omg. Anyways many comments all over the net, and certainly on reddit (comments here) - and thus just to clarify, the entire [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://webr3.org/blog/wp-content/uploads/2009/09/forced-coding.jpg" alt="forced-coding" title="forced-coding" width="600" height="250" class="alignnone size-full wp-image-151" /></p>
<p>update:<br />
I've been off for a week after finishing a project and moving house, in that time this domain dropped and just prior to that appeared to get 20k+ reads which is a bit omg. Anyways many comments all over the net, and certainly on reddit (<a href="http://www.reddit.com/r/programming/comments/9s1n8/forced_coding/">comments here</a>) - and thus just to clarify, the entire content of this post is purely a note to myself, and to help me in those times when you can't get going in the morning or such like.. in no way am I suggesting you don't plan or do things properly whenever you can - this is literally just some ways of getting through the day. Thought I'd made that clear and most people got it ;)<br />
end update:</p>
<p>This one is more for my own reference, but sharing anyways as it may help others. In numerous scenarios it is really hard to "get going" when you're trying to code, particularly under the following circumstances:</p>
<p> * You haven't started coding till late(r) in the day<br />
 * Emails, Blogs, Social networking have taken up more time than expected and/or distracted more than anticipated<br />
 * You've just completed a deliverable, milestone or task.<br />
 * You're tired!</p>
<p>All of these are virtually daily occurances in the coding world, and here are the methods I've used to get going again.. no particular order, just a list.</p>
<p><strong>Under all circumstance, avoid planning!</strong><br />
Planning is one of those things you can't do unless you are all ready in the flow, whether this is because you've just had a client meeting, a long discussion, or read a full spec - it's not the thing to do to get your flow going, all you'll do is plan nothing, plan badly, or stare blankly at the screen / paper.</p>
<p><strong>Don't read related material to get you in the flow.</strong><br />
This will purely serve to distract you, make you think about doing things differently, doublt what you've done or worse throw you in to planning mode - fact is you won't be planning "your" app though, you'll be planning "some" ideal app or scenario.</p>
<p><strong>Pick the smallest task, whether complex or not, and just do it!</strong><br />
Doesn't matter what it is, so long as it's coding a little part of the app, or modifying part of it, then it'll do. It could be adding an extra field to an object or table, popping in some validation, anything small and simple. It really doesn't matter if you do it right or wrong; you're not doing it to sign off a task, you're doing it to re-aquaint yourself with your system, by the time you've been through X lines of code you'll be back in work mode and firing on all cylinders, well on your way to getting zoned.</p>
<p><strong>Music, Headphones, Repeat.</strong><br />
You'll know the genre that suits you, personally I find repeating an album or even song fades me in to the zone and keeps me there. The repetitiveness of the tune keeps you there, because just as a phone call can distract you, so can a change in tune to something at a different tempo or worse a completely different genre.</p>
<p><strong>Don't cram!</strong><br />
If you've only got 15 minutes before the next sizable interuption, forget it, don't do anything just chill - make a coffee, smoke, whatever. You're not wasting time you're saving your zone, you can only get zoned a couple of times a day, so don't get zoned for only 15 minutes - save it and get zoned for longer later on.</p>
<p><strong>Speedcode</strong><br />
Why not? as nike say "just do it", if the code has 10 bugs but is finished in half the time then you've done good, that gives you loads of time to fix the bugs, and more importantly you get to those moments where you realise x,y&#038;z need to be changed much quicker. Not only that, but would you rather have a week to go and have a list of 80 bugs, or a week to go and 2 major deliverables a week overdue..</p>
<p><strong>Communicate for no reason.</strong><br />
Often a major focus is simply talking to somebody else on the same project as you, whether its the client or a workmate, and the more stressed they are the better, they'll not only blast you with things but their urgency / stress will often convey straight over to you and focus / zone you instantly.</p>
<p><strong>Do the thing you know, not the thing you don't.</strong><br />
Inline with "don't plan" and "pick the smallest task", always pick something you can already do (if possible), as with everything else, the things you don't know are much easier when you're already zoned, not only that but you'll be more focussed when doing the thing you don't know so less likely to over spec / over code it.</p>
<p><strong>Don't code other things!</strong><br />
nothing on earth will kill your project like working on something else, every minute you spend on another script or app is like an hour lost on what you should be doing, and with every minute that passes you're getting closer and closer to utter project failure - and hence why most open source projects are dead.</p>
<p>Remember, the key to forced coding is just to get you in the zone, and ultimately boils down to just getting stuck in there with some lines of code on your project.</p>
<p>Works for me anyways [most of the time] - if anybody has anything to add (constructive) then please do!</p>
<p>Regards - nathan</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/forced-coding/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Flat Packing, the ultimate code optimization?</title>
		<link>http://webr3.org/blog/optimization/flat-packing-the-ultimate-code-optimization/</link>
		<comments>http://webr3.org/blog/optimization/flat-packing-the-ultimate-code-optimization/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 00:44:50 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[optimization]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Class]]></category>
		<category><![CDATA[Compiler optimizations]]></category>
		<category><![CDATA[Curly bracket programming languages]]></category>
		<category><![CDATA[haXe]]></category>
		<category><![CDATA[Inline expansion]]></category>
		<category><![CDATA[Java programming language]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=147</guid>
		<description><![CDATA[I've been thinking about something recently, I guess this one's a big thing and hopefully somebody will go and implement this very soon.
A lot of work is always done on the code optimization side of things, and recently this has hit the ActionScript world; most notably (imho) with haxe and TAAS - both of these [...]]]></description>
			<content:encoded><![CDATA[<p>I've been thinking about something recently, I guess this one's a big thing and hopefully somebody will go and implement this very soon.</p>
<p>A lot of work is always done on the code optimization side of things, and recently this has hit the ActionScript world; most notably (imho) with haxe and TAAS - both of these things have a lot of optimizations improving the compile process, which means our code ultimately runs faster :) inlining, code reduction, dead code elimination, flow optimization etc.</p>
<p>Ultimately, the fastest compiled script will always be a flat set of vm operations with none of that expensive method calling and instantiation, and lets remember that OO is pretty much a syntax we use to develop, haxe makes it clear with its common syntax which compiles to multiple vm targets.</p>
<p>So, here's the background question - why do our actionscript classes compile to compiled classes?, all the code from those nested called methods could be factored right the way back in to one big method, and a single class, then heavily optimized - imagine the speed gains.</p>
<p>Thinking further, implementing doesn't appear too hard - i mean all your going to need to do is essentially copy the code from one method and place it in the calling method at the correct position(s); any duplicate code introduced would be offset easily by the amount of code cut out by removing all those un-needed classes and methods - further the unused classes and methods would be lost; and the final chunks of code could be optimized to hell and back.</p>
<p>The only problem i can see is that we need compiled classes to distribute or pull in remotely sometimes, which is why I'd propose a simple "Service" interface (or suchlike) the point of which is that any class marked as a service class (or gateway?) would keep its class structure and public methods.. after all everything behind the public methods is of no concern to any other part of the system.</p>
<p>If you consider a flex application for example, or that class which uses circa 5% of all the large libs included in the final compiled script.. not to mention the additional optimizations that could be made on the big blocks of code in each method!</p>
<p>So that's it, Flat Packing - the ultimate optimization?</p>
<p>ps: quite sure this applies to most OO languages not just actionscript ( haxe guys will agree I'm sure (I hope) ).</p>
<p>Regards!</p>
<p><img src="http://webr3.org/blog/wp-content/uploads/2009/09/flatpack.jpg" alt="flatpack" title="flatpack" width="600" height="250" class="alignnone size-full wp-image-148" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/optimization/flat-packing-the-ultimate-code-optimization/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Wall</title>
		<link>http://webr3.org/blog/general/the-wall/</link>
		<comments>http://webr3.org/blog/general/the-wall/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 00:10:50 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[big applications]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[FAQ]]></category>
		<category><![CDATA[good programmer]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Multitier architecture]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software architecture]]></category>
		<category><![CDATA[Software design patterns]]></category>
		<category><![CDATA[Source lines of code]]></category>
		<category><![CDATA[Technology/Internet]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=144</guid>
		<description><![CDATA[
Something all of us developers realise but it doesn't always smack home until certain scenarios arise - The Wall (as I'll call it for now) is the virtual line behind the UI which is where the developer / client separation of concerns occurs. The client wants to see one thing on a UI, click a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://webr3.org/blog/wp-content/uploads/2009/09/thewall.jpg" alt="thewall" title="thewall" width="600" height="250" class="alignnone size-full wp-image-145" /></p>
<p>Something all of us developers realise but it doesn't always smack home until certain scenarios arise - The Wall (as I'll call it for now) is the virtual line behind the UI which is where the developer / client separation of concerns occurs. The client wants to see one thing on a UI, click a few buttons, hit a few keys and see the UI change to another thing, this change indicates that we as programmers have done our job, behind that line is generally our concern.</p>
<p>Here's the scenario.. a few weeks back "we" started a full 3 tier app, the Applcation tier consisted of the three big layers, service layer -> domain model layer -> data source layer; everything implemented by the book with transfer objects, DAOs, business objects, a full language extension lib, utils, everything coded to interfaces and using factories.. you get the picture.. a lot of code. On the presentation tier we had single UI consisting of a full MVC framework with all the magic and goodness, the models of which talked to the service layer of the application tier (as it should).</p>
<p>A couple of hundred hours later we get our first full end to end done, a simple FAQ system.. possibly the most overkilled FAQ system ever, but still a great end to end test. This is where the wall becomes clear, because for all of that the client only saw a simple FAQ system.</p>
<p>At this point, as a developer you have to ask yourself why.. the FAQ system could have been developed in circa 1 hour using a few lines of PHP and simple mysql database + some echo's.</p>
<p>I don't have an answer to this, and don't think there is one... because if you think about all the immediate arguments for doing it the "proper" way.. maybe even the java way - you still have to think, what is more maintainable a few hundred files and a complex architecture full of design patterns, or three lines of PHP a "n00b" could maintain.</p>
<p>More over.. ultimately those few lines of code you could make the application with are pretty much the same few lines of code which aren't reusable when using the full application approach.</p>
<p>Finally you ask yourself.. if a good programmer introduces about 2.5 bugs per 100 lines.. then what requires more long term maintenance; 100 lines for a full FAQ system or 100 classes with 100 lines each.</p>
<p>Just a thought, that won't go anywhere - because i get paid to make these big applications, but when the pressures on and I've got a 3 hour deadline I do the 100 line thing.</p>
<p>no response needed, simply questioning oneself (again)</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/general/the-wall/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Optimized Flash Player 10 Z-Sorting Class</title>
		<link>http://webr3.org/blog/flash-10/optimized-flash-player-10-z-sorting-class/</link>
		<comments>http://webr3.org/blog/flash-10/optimized-flash-player-10-z-sorting-class/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 21:54:57 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[Flash 10]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[Ralph Hauwert]]></category>
		<category><![CDATA[Vector]]></category>
		<category><![CDATA[z-sort]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=138</guid>
		<description><![CDATA[Following my earlier post on using vectors to Z-sort instead of arrays, I've updated Ralph Hauwerts SimpleZSorter util class released back in late 2008 on Lee Brimelows flash blog.
The change isn't a massive one, but does speed things up - simply it replaces the old:
important: turns it this runs slower if the z-val is outside [...]]]></description>
			<content:encoded><![CDATA[<p>Following my <a href="http://webr3.org/blog/flash-10/fast-z-sorting-in-flash-10/">earlier post on using vectors to Z-sort</a> instead of arrays, I've updated <a href="http://www.unitzeroone.com/blog/" target="_blank">Ralph Hauwert</a>s <a href="http://code.google.com/p/leebrimelow/source/browse/#svn/trunk/as3/com/theflashblog/util3d">SimpleZSorter util class</a> released back in late 2008 on <a href="http://theflashblog.com/?p=470" target="_blank">Lee Brimelows flash blog</a>.</p>
<p>The change isn't a massive one, <del datetime="2009-09-14T09:15:20+00:00">but does speed things up</del> - simply it replaces the old:</p>
<p><strong>important: turns it this runs slower if the z-val is outside of the range 0-1; a LOT slower, so don't use!</strong></p>
<pre class="brush: as3;">
sortArray.sortOn(&quot;screenZ&quot;, Array.NUMERIC | Array.DESCENDING);
</pre>
<p>with the new:</p>
<pre class="brush: as3;">
sortVector.sort( function compare( x : SimpleZSortVO , y : SimpleZSortVO ) : int {    return x.screenZ - y.screenZ; } );
</pre>
<p>and here's <a href="http://webr3.org/experiments/flash-10/fast-z-sort/SimpleZSorter.zip">the source all nicely zipped up</a>, you should be able to simply drop this in your fp10 swfs as a replacement for the older version,</p>
<p>Thanks to Ralph for one opensourcing it and two giving me a heads up that its okay to "upgrade", sure it can still be made faster still with a bit of thought.</p>
<p><img class="alignnone size-full wp-image-140" title="z-sort2" src="http://webr3.org/blog/wp-content/uploads/2009/09/z-sort2.jpg" alt="z-sort2" width="600" height="250" /></p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/flash-10/optimized-flash-player-10-z-sorting-class/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
