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) .