<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>webr3.org &#187; Query languages</title>
	<atom:link href="http://webr3.org/blog/tag/query-languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://webr3.org/blog</link>
	<description>brain&#039;s on fire!</description>
	<lastBuildDate>Tue, 19 Jul 2011 15:38:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Restarting Linked Data from scratch, part 1</title>
		<link>http://webr3.org/blog/linked-data/restarting-linked-data-from-scratch-part-1/</link>
		<comments>http://webr3.org/blog/linked-data/restarting-linked-data-from-scratch-part-1/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 07:41:51 +0000</pubDate>
		<dc:creator>nathan</dc:creator>
				<category><![CDATA[linked data]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[average web page]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[client / server]]></category>
		<category><![CDATA[Computing]]></category>
		<category><![CDATA[Control Data Systems Inc]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[important web caching]]></category>
		<category><![CDATA[Metadata]]></category>
		<category><![CDATA[Query languages]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[real web]]></category>
		<category><![CDATA[Representational State Transfer]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[RESTful protocol]]></category>
		<category><![CDATA[search engines]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[SPARQL]]></category>
		<category><![CDATA[SPARUL]]></category>
		<category><![CDATA[Technology/Internet]]></category>
		<category><![CDATA[traffic site]]></category>
		<category><![CDATA[web application super fast]]></category>
		<category><![CDATA[web applications using desktop clients]]></category>
		<category><![CDATA[Web browser]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[web servers]]></category>
		<category><![CDATA[Web services]]></category>
		<category><![CDATA[World Wide Web]]></category>

		<guid isPermaLink="false">http://webr3.org/blog/?p=269</guid>
		<description><![CDATA[I'm going out on a limb and starting my whole journey through Linked Data and "Web 3.0" again - in order to address the challenges many in the community are facing, and which are "blocking" me. I'm going to take everything I've learned so far and go right back to grass roots with linked data.
I'm [...]]]></description>
			<content:encoded><![CDATA[<p>I'm going out on a limb and starting my whole journey through Linked Data and "Web 3.0" again - in order to address the challenges many in the community are facing, and which are "blocking" me. I'm going to take everything I've learned so far and go right back to grass roots with linked data.</p>
<p>I'm primarily documenting this journey for my own benefit, for reference and to unload it from my brain; but hopefully it'll be of use to the wider community and any feedback will be massively appreciated.</p>
<p>Here goes, I'll start by analysing the web thus far:</p>
<h2>The Web till now</h2>
<p>The power and the success of the web so far, <em>in my opinion</em>, has come from four main things:</p>
<ul>
<li>The URI</li>
<li>Hyperlink</li>
<li>The Resource</li>
<li>HTTP and it's RESTful design.</li>
</ul>
<p>More importantly it's the combination of the four working together that makes the web so great, because, they let you cut out everything else and go straight to the resource you want. This is a point that we need to concentrate on for a minute.</p>
<h3>Going straight to the resource</h3>
<p>Back at the start of the web, this allowed people to (for the first time) jump from a resource in the bowels of one companies hierarchy straight to another resource in a different companies hierarchy - very much like reading a book, looking at the references and suddenly having the book or paper it references right there in your lap - amazing to say the least.</p>
<p>Skip forwards a few years and we have the search engines, suddenly simply by typing a few keywords you can jump right to a resource (page/image/...) anywhere on the web. Fast forward some more and we get to web 2.0 where again people are amazed every time direct access to a resource is exposed. Yup.. all your web 2.0 is just this simple principal..</p>
<p>An RSS feed, well it lets you read a resource (a post) outside the context of the website and inside lets say google reader. You can rip a resource (video) out of youtube and embed it anywhere you like. You can interact with a web application super fast thanks to targeting a resource directly with say ajax and only updating that resource rather than updating the entire view (page). You can interact with web applications using desktop clients because they let you access one resource at a time; and so on and so forth, virtually every improvement you see on the web comes down to that one thing, directly accessing a resource (<em>and creating resources at a more granular level</em>).</p>
<h3>How we made the web <em>faster</em></h3>
<p>Negating the rather obvious upgrades in technology over the years, there is one primary thing that speeds up the web and virtually everything computer oriented, the cache.</p>
<p>Before all the web 2.0 stuff, resource caching was at an all time high and was making the web faster for all of us; caching at the resource level is enabled by HTTP and its RESTful design. Control Data allows us to limit how much information needs transferred over the web, request an image once and it gets transferred, request it a second time and thanks to caching and HTTP odds are very high that it won't get transferred again. When you consider that the average web page can easily have 30, 50, 300 images and static files embedded in it this is a huge speed increase, and frankly one we could not live without.</p>
<p>Skipping forwards to web 2.0 and the present day again, we've gone wild with caching; anybody who's been involved with a high traffic site will tell you that the only way to do it is to cache everything you can; from data in memory, through to code and op code caches. But this is only half the story.. a strange this has happened..</p>
<h3>How we made the web <em>slower</em></h3>
<p>Simply, we forgot HTTP and a RESTful web somehow - that all important web caching whether it be at intermediate servers or in a web browser, it's forgotten.</p>
<p>To illustrate, if you view an image and then view it again, it'll be there instantly - why? because last-modified, etag and other control data is sent by great web servers like apache for static files, until you force a refresh or the file changes on the server you'll simply get a 304 response telling whatever cache down the line to use it's own copy instead. Now, try jumping on to a web page, even this one and you'll find the whole thing is reloaded, every time. I'd estimate that circa 80% of all pages you visit are fully reloaded every single time you see them, if not more.</p>
<p>Here's the reason - most pages are generated by scripts now, and something that goes unnoticed by most developers is that the web server (like apache) hand over *full* control to the language runtimes, and in turn to the developer. In other words, unless developers are calculating, receiving and sending control data for each response, and validating every http message in to their scripts, then most of the benefits of HTTP and RESTful design are completely lost; <em>especially caching</em>.</p>
<p>Here's a fact, whether you agree with it or not, to me it is a fact: <em>the web has to be RESTful for it to work properly</em>, whether it's a web of documents, or a web of data, or both.</p>
<h2>Looking at the current state of Linked Data</h2>
<p>Linked Data is amazing because it takes the big four I mentioned earlier (URI, Hyperlink, Resource, HTTP) to a new level; we create resources at the most granular level possible, assign them URIs, link them together with <em>typed</em> hyperlinks then expose them via HTTP.</p>
<p>Notice I didn't mention REST in there? that's because I (and I'm not the only one) don't feel that Linked Data is currently RESTful. And as we can learn from web 2.0, unless this is addressed we'll face major problems down the line. In addition, because of this lack of RESTful-ness I feel like the data isn't linked; simply using URIs from different datasets on both sides of a triple does not link those datasets, well not from a client perspective anyway.</p>
<p>To expand and refining the issues:</p>
<h3>SPARQL Silos</h3>
<p>Issue one, is that SPARQL and the servers with RDF stores which power it are positioned at the wrong side of the client / server relationship imho. Because each major dataset effectively has it's own server and access point (<em>SPARQL interface</em>) it means that when you query it, it can only return the Linked Data which it stores. This leaves us three options at the minute:</p>
<ul>
<li>let that server pull in remote Linked Data and store it too (which makes the server fill up and slow down, and turns it in to a silo).</li>
<li>use one great big server that tries to store <em>all</em> the linked data (which feels like a silo all over again to me, not distributed at all).</li>
<li>Run our own server and only store limited data in it (limited.. and again a silo I guess)</li>
</ul>
<p>If we moved SPARQL to the client side however, then all it would need is a starting point from which it could traverse the web of data, only pulling in what it needed for a query. This may sound slow but if all data was exposed as resources like it should be, and with control data so it could be cached, this slow down would soon disappear; lesson from web 1 and 2!</p>
<p>With regards the caching, this could happen at traditional intermediate caches within the internet and at ISPs, locally in client side triples stores (like a browsers cache) or the existing big servers that attempt to store all the linked data could be repositioned as linked data caches.</p>
<p>For example a small RDF document could simply delegate seeAlso http://datacac.he/http://subject.uri and that linked data cache could return back all the information it knows about the subject by returning the RDF results of a SPARQL describe. This alone would be a HUGE speed up, prevent silos and create a real web of data.</p>
<p>In addition, this would keep all linked data transferred through the web in RDF format, and thus machine readable and typed. At the minute we have lots and lots of SPARQL queries, which essentially are just untyped junk data that a machine couldn't possibly understand - SPARQL results remove all the goodness from RDF and give us something that is domain and developer specific, not re-usable. Think about that for a moment..</p>
<p>Clarification: I'm not saying SPARQL + RDF stores shouldn't be on the server side, they should as they are needed in most cases, I'm simply saying that the primary interface to linked data shouldn't be SPARQL over HTTP to a remote SPARQL endpoint. Rather we should be accessing RDF documents, or entities if you like via HTTP.</p>
<h3>RESTful RDF</h3>
<p>Issue two, the focus has been on getting data on the web, finding ways to link it, access it, store and query these vast datasets; and the work done thus far is amazing! But now that's handled it's time to go back to basics and find ways of both getting and publishing Linked Data RESTfully, at a granular per resource level.</p>
<p>This means handling RDF like ATOM, and essentially making atompub all over for RDF (as many are thinking and working on). I feel that regardless of what's implemented behind the interface, and whether triples stores and SPARUL are used, we still need to manage RDF / Linked Data in terms of documents and entities for it to be RESTful.</p>
<p>An additional issue raised by this is loosing the notion of a quad, g s p o, Named Graphs are vastly important to linked data, but we need to get named graphs in to triples and out of quads so we are always working with RDF through HTTP.</p>
<p>Also worth noting that temporal, provenance, multi-language, multiple representations etc will all need handled too; without using any HTTP extensions; no point half baking it or making the solution dependant on drafts - needs to work with the Universal Interface!</p>
<h2>First Step</h2>
<p>The above means one of the first challenges and things I'll try to tackle, is to find a way to fit a RESTful RDF publishing and exposing protocol in to the shared http space on a web server; taking in to account things like content negotiation, multiple representations, versions / time varying representations, and backwards compatibility with the current web.</p>
<p>note: I'm not going to define the protocols, plenty of more intelligent people than me are working on these things, just leverage a space where a full RESTful protocol can work in unison with the way we currently do things so that it's transparent to browsers and visible to linked data clients. This should then allow a stable test environment to try out different ways of doing things and test that the current web doesn't break.</p>
<p>To be continued.. often and frequently. <em>I'm blocked on my current, v important project, and need to address these things</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://webr3.org/blog/linked-data/restarting-linked-data-from-scratch-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
	</channel>
</rss>

