<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>

<title>Data 3.0 (a Manifesto for Platform Agnostic Structured Data) Update 5</title><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624</link><description>After a long period of trying to demystify and unravel the wonders of standards compliant structured data access, combined with protocols (e.g., HTTP) that separate: 







Identity,



Access, 



Storage, 



Representation, and 



Presentation.



 



I ended up with what I can best describe as the Data 3.0 Manifesto. A manifesto for standards complaint access to structured data object (or entity) descriptors.



Some Related Work







Alex James (Program Manager Entity Frameworks at Microsoft), put together something quite similar to this via his Base4 blog (around the Web 2.0 bootstrap time), sadly -- quoting Alex -- that post has gone where discontinued blogs and their host platforms go (deep deep irony here). 







It&#39;s also important to note that this manifesto is also a variant of the TimBL&#39;s Linked Data Design Issues meme re. Linked Data, but totally decoupled from RDF (data representation formats aspect) and SPARQL which -- in my world view -- remain implementation details.



Data 3.0 manifesto





  An &amp;quot;Entity&amp;quot; is the &amp;quot;Referent&amp;quot; of an &amp;quot;Identifier.&amp;quot;



  An &amp;quot;Identifier&amp;quot; SHOULD provide a global, unambiguous, and unchanging (though it MAY be opaque!) &amp;quot;Name&amp;quot; for its &amp;quot;Referent&amp;quot;.



  A &amp;quot;Referent&amp;quot; MAY have many &amp;quot;Identifiers&amp;quot; (Names), but each &amp;quot;Identifier&amp;quot; MUST have only one &amp;quot;Referent&amp;quot;.



  Structured Entity Descriptions SHOULD be based on the Entity-Attribute-Value (EAV) Data Model, and SHOULD therefore take the form of one or more 3-tuples (triples), each comprised of:



    



      an &amp;quot;Identifier&amp;quot; that names an &amp;quot;Entity&amp;quot; (i.e., Entity Name),



      an &amp;quot;Identifier&amp;quot; that names an &amp;quot;Attribute&amp;quot; (i.e., Attribute Name), and



      an &amp;quot;Attribute Value&amp;quot;, which may be an &amp;quot;Identifier&amp;quot; or a &amp;quot;Literal&amp;quot;.



    



  



  Structured Descriptions SHOULD be CARRIED by &amp;quot;Descriptor Documents&amp;quot; (i.e., purpose specific documents where Entity Identifiers, Attribute Identifiers, and Attribute Values are clearly discernible by the document&#39;s intended consumers, e.g., humans or machines).



  Structured Descriptor Documents can contain (carry) several Structured Entity Descriptions



  Stuctured Descriptor Documents SHOULD be network accessible via network addresses (e.g., HTTP URLs when dealing with HTTP-based Networks).



  An Identifier SHOULD resolve (de-reference) to a Structured Representation of the Referent&#39;s Structured Description.







Related











  Referent, Identifier, and Descriptor/Sense (The Data Perception Trinity) illustration







  Referent, Identifier, and Descriptor/Sense Trinity (as exploited in FOAF+SSL based Secure WebIDs) illustration







  Demystifying Linked Data via EAV Model based Structured Descriptions









  What do people have against URIs and URLs?









  The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI









  Simple Explanation of RDF and Linked Data Dynamics









  Linked Data and Identity









  FOAF+SSL FAQ







  LOD Community Thread (showing evolution of this manifesto based on feedback from members such as Richard Cyganiak).


  Googlebase Data API Docs



  Google Data Protocol (GData)


  Microsoft&#39;s OData Protocol




  Magic of De-referencable Names and actual Data via Binky Video



  Social Objects Presentation (aka. Social Linked Data Objects) - by Jyri Engeström



  What&#39;s a Reference?


</description><pubDate>Fri, 16 Apr 2010 21:09:05 GMT</pubDate><generator>Virtuoso Universal Server 08.03.3335</generator><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kingsley Uyi Idehen</dc:creator><image><title>Data 3.0 (a Manifesto for Platform Agnostic Structured Data) Update 5</title><url>http://www.openlinksw.com/weblog/public/images/vbloglogo.gif</url><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624</link><description>I have seen the future and it&#39;s full of Linked Data! :-)</description><width>88</width><height>31</height></image>
<item><title>Terry Jones</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4687</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4687</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">terry@jon.es</dc:creator><pubDate>Tue, 25 May 2010 20:39:59 GMT</pubDate><description>Hi Kingsley&lt;br&gt;&lt;br&gt;@ntoll pointed me to this page &amp;amp; I&#39;m looking forward to reading and thinking about it (way too busy today, unfortunately). Thanks for your time/energy to understand FluidDB.&lt;br&gt;&lt;br&gt;Terry&lt;br&gt;&lt;br&gt;&lt;br /&gt;

</description></item><item><title>Re: Data 3.0 (a Manifesto for Platform Agnostic Structured Data) Update 2</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4685</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4685</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kingsley Uyi Idehen (kidehen@openlinksw.com)</dc:creator><pubDate>Sun, 18 Apr 2010 16:08:05 GMT</pubDate><description>James,

Thanks for resurrecting your meme, really really important as you can see!

</description></item><item><title>Michael Schneider</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4684</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4684</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">schneid@fzi.de</dc:creator><pubDate>Sun, 18 Apr 2010 13:53:47 GMT</pubDate><description>[[&lt;br&gt;(A &quot;Referent&quot; MAY be a collective &quot;Entity&quot;, i.e., a &quot;Group&quot; or &quot;Class&quot;.)&lt;br&gt;]]&lt;br&gt;&lt;br&gt;I would not make this an addendum to the &quot;single-referent vs. multiple-identifiers&quot; item, let alone put it in parentheses. It is a completely separate aspect that an entity may be in some or the other form a collective entity. So you should either drop this aspect or make it a separate item.&lt;br&gt;&lt;br&gt;&lt;br /&gt;

</description></item><item><title>Michael Schneider</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4683</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4683</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">schneid@fzi.de</dc:creator><pubDate>Sun, 18 Apr 2010 13:42:32 GMT</pubDate><description>[[&lt;br&gt;an &quot;Attribute Value&quot;, which may be an &quot;Identifier&quot; or a &quot;Literal&quot; &lt;br /&gt;
      (typed or untyped).&lt;br&gt;]]&lt;br&gt;&lt;br&gt;Maybe you should think again about the &quot;typed or untyped&quot; part. There are people who consider this distinction a pure technical detail of the RDF standard. Perhaps similar to Java&#39;s distinction between the types &quot;boolean&quot; and java.lang.Boolean. I know that some peole would even like to see this distinction being removed completely from the next version of RDF.&lt;br&gt;&lt;br&gt;Michael&lt;br&gt;&lt;br&gt;&lt;br /&gt;

</description></item><item><title>Alex James</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4682</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4682</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex@base4.net</dc:creator><pubDate>Sun, 18 Apr 2010 03:29:07 GMT</pubDate><description>&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;For anyone wondering what Kingsley is talking about here is what I wrote about about Data 2.0 almost 4 years ago:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&quot;Okay so by now, unless you have been in a cave, you&#39;ve heard all about Web 2.0 and you&#39;ve probably used at least one Web 2.0 app. Cool... the world is changing.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Still it is important to note that Web 2.0 is nothing without data. So far most of the successful Web 2.0 applications get their data from their users, that is the way things like &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A style=&quot;COLOR: rgb(51,51,255)&quot; href=&quot;http://www.flickr.com/&quot;&gt;&lt;FONT size=2 face=Tahoma&gt;Flickr&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;FONT size=2 face=Tahoma&gt; and &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A style=&quot;COLOR: rgb(51,51,255)&quot; href=&quot;file:///C:/Users/Alex/Documents/del.icio.us&quot;&gt;&lt;FONT size=2 face=Tahoma&gt;Del.icio.us&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt; work.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Going forward more and more Web 2.0 apps will need a lot of existing data BEFORE they can get any users. So they will need to mashup existing sources of data etc.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Unfortunately currently there is no purpose built foundation to support this growing trend of pulling internet data together. So most Web 2.0 apps will be forced to build their own foundation manually integrating web-services and other sources of data. &lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;I think the future of data lies in creating a virtual database over web-services and other sources of data. Data 2.0 if you will. If we had this virtual database spanning web-services then life would be so much easier for Web 2.0 application developers. &lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Imagine being able to tell the virtual database what you want (a little like SQL) rather than having to manually figure out how to get what you want by writing plumbing code to link one webservice with another yourself. &lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;It would be declarative integration or Nirvana.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Right now Base4 provides services for &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A style=&quot;COLOR: rgb(51,51,255)&quot; href=&quot;file:///quickstarts/cool/WrapLegacyDatabase.aspx&quot;&gt;&lt;FONT size=2 face=Tahoma&gt;integrating existing databases&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;. But that isn&#39;t enough, to truly provide Data 2.0 we need to be able to create a virtual database over web-services and other sources of data, why? Well you &#39;the Web 2.0 developer&#39; probably don&#39;t own all the data you want to use, and the real owner of that data probably isn&#39;t going to give us access to their database!&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;What we need is something to pull other peoples data together and make it look like it is ours!&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;So for the last month or so I&#39;ve been doing a lot of thinking about pulling data together from all over the web, creating a virtual internet database.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;What I see as the real key to creating a virtual internet database or Data 2.0 is upgrading the idea of the foreign key.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;FONT style=&quot;COLOR: rgb(51,51,255)&quot; color=#000080&gt;A foreign Key in row in a database table is kind of the same thing as a hyperlink in a webpage. &lt;/FONT&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Wow that is a big conceptual jump I know, but see if you can give me the benefit of the doubt on this.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;So a foreign key is a hyperlink (or url), but it has one MASSIVE limitation: the foreign key must point to a row in the SAME database. Not much good for the web I think you will agree!&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Continuing with the webpage analogy: this is a hyperlink to another page on the same site. Or somewhat more formally, but less accurately, you can think of it as a RELATIVE hyperlink, i.e. something like this: &lt;/SPAN&gt;&lt;FONT style=&quot;COLOR: rgb(51,51,255)&quot; color=#000080&gt;&#39;/Table/Key&#39;&lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt; rather than something like this:&lt;/SPAN&gt;&lt;FONT style=&quot;COLOR: rgb(51,51,255)&quot; color=#000080&gt; &#39;http://Server/Database/Table/Key&#39;.&lt;/FONT&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Running blindly with this analogy some more: What we need to create &#39;a virtual internet database&#39; is the ability to use ABSOLUTE hyperlinks too: i.e. allowing the foreign key to get &lt;/SPAN&gt;&lt;FONT style=&quot;COLOR: rgb(51,51,255)&quot; color=#000080&gt;*really*&lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt; foreign and point anywhere that data might exist on the internet.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Of course all this is a little academic, because surely there is nothing big enough to run a virtual database server over the top of all the internets data. Nothing could manage all that data right?&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Well actually if you look at the way OR Mappers work you can see the embyro of a solution I think.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;OR Mappers typically provide a mechanism for pulling objects out of databases as required, and then walking relationships like foreign keys as required to hydrate other related objects. &lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;To do this most OR Mappers share concepts like EntityProxies, or EntityListProxies, that will hydrate related objects by using information stored in the foreign key. &lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;Interestingly the application using the OR Mapper is acting in some sense as an in memory cache for these objects. You can be sure that as the amount of data or objects grow it becomes very unlikely that all of the objects are in memory at the same time. Only what you want is in memory. The OR Mapper is essentially just providing a virtual memory for objects (as previously discussed by &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A style=&quot;COLOR: rgb(51,51,255)&quot; href=&quot;http://www.matshelander.com/Weblog/DisplayLogEntry.aspx?LogEntryID=80&quot;&gt;&lt;FONT size=2 face=Tahoma&gt;Mats Helander&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;), the database is the disk the objects are the memory.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;The question is could we do the same with internet&#39;s data? What if rather than hydrating objects using RELATIVE foreign keys you could hydrate ROWS or TUPLES from a hyperlink or URL? Hydrating only what you want when you want it. You would be able to access a ROW or TUPLE from any URL, but you would only ever need fraction of all the ROWS or TUPLES in memory at once.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;I get the feeling that using OR Mapping principles you could create a unified data plaform for Web 2.0 -&amp;gt; Data 2.0. Now that would really powerful, unlocking scenarios we can only dream of today.&lt;/SPAN&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;BR style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;So perhaps the &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A style=&quot;COLOR: rgb(51,51,255)&quot; href=&quot;file:///C:/Users/Alex/Documents/Blog.aspx?ID=34&quot;&gt;&lt;FONT size=2 face=Tahoma&gt;legacy of OR Mappers&lt;/FONT&gt;&lt;/A&gt;&lt;SPAN style=&quot;COLOR: rgb(51,51,255)&quot;&gt;&lt;FONT size=2&gt;&lt;FONT face=Tahoma&gt; will be that they laid the ground work for Data 2.0?&quot;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,0)&quot;&gt;Maybe a little dated but I stand by the principles...&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;</description></item><item><title>Nathan</title><guid>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4681</guid><link>http://www.openlinksw.com/blog/kidehen@openlinksw.com/blog/?id=1624#4681</link><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">nathan@webr3.org</dc:creator><pubDate>Sat, 17 Apr 2010 20:43:01 GMT</pubDate><description>Perfect :)</description></item>
</channel>
</rss>
