W3C home > Mailing lists > Public > public-lod@w3.org > December 2009

Re: Contd: [pedantic-web] question about sioc / foaf usage

From: Kingsley Idehen <kidehen@openlinksw.com>
Date: Tue, 01 Dec 2009 18:30:12 -0500
Message-ID: <4B15A704.8020209@openlinksw.com>
To: nathan@webr3.org
CC: Linked Data community <public-lod@w3.org>, pedantic-web@googlegroups.com, SIOC-Dev <sioc-dev@googlegroups.com>
Nathan wrote:
> 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) .
>>
>>
>>     
>
> perfect, thanks kingsley :)
>
> only q (which i still don't follow) is that afaik I *need* to specify in
>  rdf where one can find the HTML document, no point describing something
> people can't find... noted that in you're own rdf you use:
> <resource>
> <http://www.openlinksw.com/schema/attribution#isDescribedUsing> <url>
>
> i essentially need the equiv for anything;
>
>   <http://example.lod/uri/html-document-123>
> 	<canBeFound> <here/URL> .
> or
> 	<has_link> <here/URL> .
>
> the thing I'm describing can be found at web address, ie show the human
> this version etc etc (if you follow)
>
> regards,
>
> nathan
>
>
>   
Nathan,

<http://www.openlinksw.com/schema/attribution#isDescribedUsing> takes URIs of ontologies/schemas/vocabs as values (i.e. object slot in triple statements we make).

For a simple outbound link, <sioc:links_to> would be fine. 

Note though, my examples above are implying that URLs shouldn't be in triples, use #this to make them URIs and then for visual cues you can use an icon to capture the URL (for link out purposes which is where #this is cheap solution) while the URI enables Linked Data traversal. If you look at our pages we use "owl:sameAs" to similar effect (note link-out icons that typically matches the content type, thereby enabling users to exploit effect or URLs since apps know what to do with the data retrieved from URLs).




-- 


Regards,

Kingsley Idehen	      Weblog: http://www.openlinksw.com/blog/~kidehen
President & CEO 
OpenLink Software     Web: http://www.openlinksw.com
Received on Tuesday, 1 December 2009 23:30:53 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 31 March 2013 14:24:24 UTC