- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Wed, 02 Dec 2009 07:07:49 -0500
- To: natlu2809 <natlu2809@gmail.com>
- CC: pedantic-web@googlegroups.com, nathan@webr3.org, Linked Data community <public-lod@w3.org>, SIOC-Dev <sioc-dev@googlegroups.com>
natlu2809 wrote: > Maybe I'm not understanding the dichotomy here: > > * A URI represents a thing, or is an address for a thing > URI Identifies a Thing. URIs basically have Referents (the things they Identify). A URL is a Resource Location/Address. > > * Different things have different URIs > Yes, as is the case in real life. Everything of importance to you has an Identifier, otherwise you would be able describe or recognize it distinct from other things. > > * Different URIs represent different things - the POST, to html > doc/serialisation, the rdf doc/serialisation > * URIs are a front for code that generates things > I would say a powerful abstraction, especially when looking at Generic HTTP scheme URIs. For instance, each component of said URIs affects the Data Representation that manifests when you issue an HTTP GET. This is kind of like a composite (compound / concatenated) key in an RDBMS, change a component as all associated data changes, and said changes imply different data representations to the construction or breakage of data relations. You basically get two things in one: Identity (Reference)/Access (Address) duality, with Generic HTTP URIs. Now here is the problem (as I've seen and experienced it), there is a tendency to conflate a Generic URI with a Generic HTTP URI, the former includes schemes like URN while the latter doesn't. Even worse, there is a tendency to simply never mention URLs, and thereby conflate this Location / Address oriented Identifier with a Generic HTTP URI which simply makes everything confusing and inconsistent. > > * > > > but > > * A URI can represent the same thing in different serialisations > depending on which agent/device/lense you look at it with > A Generic HTTP URI is a conduit to a myriad of associated data representations (remember its duality). > > but > > * a different URI can represent the same thing as another URI - > http://example.lod/doc.html can be the same thing as > http://example.lod/resource/doc when requested by a html agent ? > > You can have different Identifiers for the same thing irrespective of URI scheme. The Generic HTTP URI simply adds resolvability (data access) to the mix courtesy of the HTTP scheme. > The identity however is maintained by the "fingerprint" of the object > graphs, and the URI is just an image of that fingerprint at some point > in time/location ? I think Identity is managed by the beholder of things, the one that deems them important enough to be described, mentioned, talked about, or referenced :-) Kingsley > > > > http: > Kingsley Idehen wrote: >> Nathan wrote: >>> Hi All, >>> >>> To follow on a conversation I'm having with Kingsley at the minute, and >>> to make it public, I'm also cc'ing in public-lod, pedantic-web and the >>> sioc user list, as it is to do with all 3. Please do give feedback and >>> correct me where I'm wrong. Especially if you can inline comment where >>> something is wrong in my understanding. >>> >>> Kingsley Idehen wrote: >>> >>>> Nathan wrote: >>>> >>>>> so do / should the Post, HTML Document and RDF Document all have >>>>> different Identifiers? >>>>> >>>> If you want to make a statement (create a record) describing anything >>>> you need an Identifier for the subject of your description. If you >>>> want >>>> said description (a graph pictorial) to be fully explorable using HTTP >>>> (what Linked Data is about) then you shouldn't use the URL (Address >>>> of a >>>> Resource) as its Identifier. An HTTP GET against a URL has specific >>>> consequences distinct from an HTTP GET against a Generic HTTP >>>> scheme URI >>>> (a genuine Identifier/Name that Identifies an Object/Resource/Data >>>> Item/Entity). >>>> >>>> Rather than do the whole 303 and hash URI dance (counter productive >>>> since it dances around the issue of Data Identity), see if this >>>> document >>>> of Data Object Identity clarifies things for you re. Identifiers. >>>> >>>> Links: >>>> >>>> 1. >>>> http://www.cs..cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/node4.html >>>> >>>> >>>> >>> >>> okay.. here's the set-up; I have: >>> >>> * a "Post" which is a <sioc:Post> >>> * a HTML Document which contains (among other things) a human readable >>> representation of the <sioc:Post> at an URL >>> * a RDF Document which contains a graph pictorial of the <sioc:Post> >>> which is published at an URL >>> >>> to describe or reference the <sioc:Post> I have to give it a URI: >>> <http://example.lod/uri/post-123> >>> >>> to describe or reference the HTML Document I have to give it a URI: >>> <http://example.lod/uri/html-document-123> >>> in addition the HTML document has an URL >>> <http://example.lod/documents/html-document-123.html> >>> >>> to describe or reference the RDF Document I have to give it a URI: >>> <http://example.lod/uri/rdf-graph-123> >>> in addition the RDF document has an URL >>> <http://example.lod/documents/rdf-document-123.rdf> >> Assumption: your Identifiers are slash terminated (i.e. Slash style >> of Generic HTTP URI). >>> >>> now, I'm assuming the RDF Document will need to be self describing >>> (also >>> contain a graph pictorial about itself, as well as the <sioc:Post> - >>> here's a very simplified version of the triples it'd contain. >>> >> So the RDF data container (resource) is: >> >> <http://example.lod/documents/rdf-document-123.rdf>, right? >> >>> <http://example.lod/uri/rdf-graph-123> <rdf:type> <foaf:Document> ; >>> <dc:title> "SIOC Post profile for post-123"@en >>> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >>> >>> <http://example.lod/uri/post-123> <rdf:type> <sioc:Post> . >>> >>> Q1: is <foaf:primaryTopic> correct here? >>> >> Yep. >>> to say that the <sioc:Post> is contained by this graph we'd add the >>> triple: >>> <http://example.lod/uri/post-123> >>> <sioc:link> <http://example.lod/uri/rdf-graph-123> . >>> >> Redundant, but not necessarily incorrect. You can make redundant >> statements :-) >>> then we need to say where the rdf graph can be found (provide it's >>> URL): >>> <http://example.lod/uri/rdf-graph-123> >>> <??????> <http://example.lod/documents/rdf-document-123.rdf> . >>> >> >> <http://example.lod/documents/rdf-document-123.rdf> is a data set >> container so you identify it properly as in: >> <http://example.lod/documents/rdf-document-123.rdf#this>, via a >> simple URL to Generic HTTP URI hack, with Linked Data de-referencing >> in mind re. exploration of the description of this >> Thing/Object/Entity/Data Item. Note: a little change-up as I've added >> a new Identifier but taken the cheap # route via fragment identifier. >> >> This also means your could have stated the following at the top: >> >> <http://example.lod/documents/rdf-document-123.rdf#this> <rdf:type> >> <foaf:Document> ; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >> >> <http://example.lod/uri/post-123> <rdf:type> <sioc:Post>; >> <dc:title> "SIOC Post profile for post-123"@en. >> >> OR even the following, assuming you'd already assigned these URIs and >> discovered that <http://example.lod/uri/rdf-graph-123> is basically >> the same as <http://example.lod/documents/rdf-document-123.rdf#this> >> i.e., RDF data set containers (documents or information resources): >> >> <http://example.lod/documents/rdf-document-123.rdf#this> <rdf:type> >> <foaf:Document> ; >> <owl:sameAs> <http://example.lod/uri/rdf-graph-123>; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >> >> <http://example.lod/uri/post-123> <rdf:type> <sioc:Post>; >> <dc:title> "SIOC Post profile for post-123"@en. >> >> >> >> >>> Q2: which ontology does one use for <??????> in the above triple? >>> >> None. >>> then we need to say that the HTML document is a document, that contains >>> a human readable version of the <sioc:Post> (amongst other things) >>> >>> <http://example.lod/uri/html-document-123> >>> <rdf:type> <foaf:Document> ; >>> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >>> >>> Q3: is the HTML Document a <sioc:Container>, which is a container of >>> the >>> <sioc:Post>? >>> <http://example.lod/uri/html-document-123> >>> <rdf:type> <foaf:Document> , <sioc:Container> ; >>> <foaf:primaryTopic> <http://example.lod/uri/post-123> ; >>> <sioc:container_of> <http://example.lod/uri/post-123> . >>> >> Yes, esp. as <sioc:Post> <rdfs:subClassOf> <sioc:Item> . >> >> Note same applies to the RDF data container as in: >> >> <http://example.lod/uri/rdf-graph-123> <rdf:type> <foaf:Document> , >> <sioc:Container> ; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> ; >> <sioc:container_of> <http://example.lod/uri/post-123> . >> >> OR >> <http://example.lod/uri/rdf-graph-123> <rdf:type> <foaf:Document> , >> <sioc:Container> ; >> <owl:sameAs> >> <http://example.lod/documents/rdf-document-123.rdf#this>; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> ; >> <sioc:container_of> <http://example.lod/uri/post-123> . >> >> >> >>> Q4: should we also say the description of the HTML Document is also >>> contained by this graph? >>> <http://example.lod/uri/post-123> >>> <sioc:link> <http://example.lod/uri/rdf-graph-123> . >>> >> >> <http://example.lod/uri/rdf-graph-123> <sioc:link> >> <http://example.lod/uri/html-document-123>. >> or even: <http://example.lod/uri/rdf-graph-123> <foaf:Topic> >> <http://example.lod/uri/html-document-123>. >> >> >>> Q5: how do we specify the URL of the HTML Document? >>> <http://example.lod/uri/html-document-123> >>> <?????> <http://example.lod/documents/html-document-123..html> . >>> >> Remember the earlier statement re. the RDF document (resource): >> >> >> <http://example.lod/documents/rdf-document-123.rdf#this> <rdf:type> >> <foaf:Document> ; >> <owl:sameAs> <http://example.lod/uri/rdf-graph-123>; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >> >> >> Re. HTML resource description same thing applies re. association with >> the sioc:Post: >> >> <http://example.lod/documents/html-document-123.html#this> >> <rdf:type> <foaf:Document>; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >> >> <http://example.lod/uri/post-123> <rdf:type> <sioc:Post>; >> <dc:title> "SIOC Post profile for post-123"@en. >> >> OR >> >> <http://example.lod/documents/html-document-123.html#this> <rdf:type> >> <foaf:Document> ; >> <owl:sameAs> <http://example.lod/uri/html-document-123>; >> <foaf:primaryTopic> <http://example.lod/uri/post-123> . >> >> >> <http://example.lod/uri/post-123> <rdf:type> <sioc:Post>; >> <dc:title> "SIOC Post profile for post-123"@en. >> >> >>> I think that's enough for now; all feedback welcome! >>> >>> regards >>> >>> nathan >>> >>> >> Bar any typos or cut&paste snafus, I've hopefully answered your >> questions. >> Ultimately, the file (information resource, document, data container) >> has its own set of attributes e.g. format (dcterms:format), actual >> file name (not title of the content), creation date etc.. Distinct >> from the description of its content (hence the use of >> foaf:primaryTopic as conduit to content description graph). >> >> Link: >> >> 1. >> http://linkeddata.uriburner.com/about/html/http://news.cnet.com/8301-13577_3-10407056-36.html?tag=newsEditorsPicksArea.0 >> - example of Linked Data graph that describes an document >> (information resource) in a manner distinct from its content (see the >> data exposed by foaf:primaryTopic) . >> >> > -- Regards, Kingsley Idehen Weblog: http://www.openlinksw.com/blog/~kidehen President & CEO OpenLink Software Web: http://www.openlinksw.com
Received on Wednesday, 2 December 2009 12:08:40 UTC