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

0 views
Skip to first unread message

Nathan

unread,
Dec 1, 2009, 12:38:18 PM12/1/09
to Kingsley Idehen, Linked Data community, pedant...@googlegroups.com, SIOC-Dev
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>


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.

<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?

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

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

Q2: which ontology does one use for <??????> in the above triple?

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

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

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

I think that's enough for now; all feedback welcome!

regards

nathan

Kingsley Idehen

unread,
Dec 1, 2009, 5:16:58 PM12/1/09
to nat...@webr3.org, Linked Data community, pedant...@googlegroups.com, SIOC-Dev
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




Nathan

unread,
Dec 1, 2009, 5:37:57 PM12/1/09
to Kingsley Idehen, Linked Data community, pedant...@googlegroups.com, SIOC-Dev
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

unread,
Dec 1, 2009, 5:43:24 PM12/1/09
to Kingsley Idehen, Linked Data community, pedant...@googlegroups.com, SIOC-Dev
perhaps foaf:page ? like dbpedia uses?

Kingsley Idehen

unread,
Dec 1, 2009, 6:30:12 PM12/1/09
to nat...@webr3.org, Linked Data community, pedant...@googlegroups.com, SIOC-Dev
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).

Kingsley Idehen

unread,
Dec 1, 2009, 6:32:04 PM12/1/09
to pedant...@googlegroups.com, Linked Data community, SIOC-Dev
Nathan wrote:
> [SNIP]
>> 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)
>>
>
> perhaps foaf:page ? like dbpedia uses?
>
>
No problem, but note my comment re. use of icons as visual cue if you
are making an HTML based browser page. Either way, foaf:page is fine.

Kingsley Idehen

unread,
Dec 2, 2009, 7:07:49 AM12/2/09
to natlu2809, pedant...@googlegroups.com, nat...@webr3.org, Linked Data community, SIOC-Dev
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:
>>>> http://www.cs..cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/node4.html
>>> <?????> <http://example.lod/documents/html-document-123..html> .

Nathan

unread,
Dec 2, 2009, 10:22:59 AM12/2/09
to natl...@gmail.com, Kingsley Idehen, pedant...@googlegroups.com, Linked Data community, SIOC-Dev
nat lu wrote:
> [snip]
>
>> 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 :-)
>
>
>
> I should have said what I was thinking in my head and not what my
> fingers were thinking : "The identity however is defined by the
> fingerprint of the object graphs, varying perhaps in time". If I have
> today a graph [a->b->c] identified by [http://example.lod/myThing] and
> tomorrow I change it to [a->-b->c->d] or maybe [a->b->d], the address is
> the same, the access path is the same, it identifies the same thing, but
> the qualities of that thing have varied : ie, it is the same, but
> different. That difference may or may not be important or have
> consequences for the consumer of that thing.
>
> And unless I provide a versioning URI its not going to be possible to
> provide for recognising, or "replaying" an identity (or isolating the
> change in identity) of a thing, at some previous time - the address for
> instance start as [http://example.lod/v1/myThing] and then become
> [http://example.lod/v2/myThing] and so on ? But in this case the address
> has changed, and the internal access path might have, but they're still
> the same thing (I note it may perhaps also proxied by an agnostic
> [http://example.lod/myThing]. I suppose a canonical LoD-GUID and the
> version chain would need to be qualities of each version ?
>

<http://example.com/thing>
<http://example.com/thing#v1>
<http://example.com/thing#v2>
<http://example.com/thing#v3>
<http://example.com/thing#latest>

then when you dereference the uri to get info you always hit the same
graph since you remove the fragment to dereference.

and to handle the versions you can use triples like..

<http://example.com/thing#v3>
<sioc:earlier_version>
<http://example.com/thing#v1> ,
<http://example.com/thing#v2> ;
<sioc:previous_version>
<http://example.com/thing#v2> ;
<sioc:latest_version>
<http://example.com/thing#latest> .


<http://example.com/thing>
<owl:sameAs>
<http://example.com/thing#latest> .

thus you can always describe a single version of a resource, the latest
version, and so on.

<completely ducking out of the time-travel convo, even if it is related>

regards!

Kingsley Idehen

unread,
Dec 2, 2009, 10:28:38 AM12/2/09
to natl...@gmail.com, pedant...@googlegroups.com, nat...@webr3.org, Linked Data community, SIOC-Dev
nat lu wrote:
>
> [snip]
>
>> 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 :-)
>
>
>
> I should have said what I was thinking in my head and not what my
> fingers were thinking : "The identity however is defined by the
> fingerprint of the object graphs, varying perhaps in time". If I have
> today a graph [a->b->c] identified by [http://example.lod/myThing]
> and tomorrow I change it to [a->-b->c->d] or maybe [a->b->d], the
> address is the same, the access path is the same, it identifies the
> same thing, but the qualities of that thing have varied : ie, it is
> the same, but different. That difference may or may not be important
> or have consequences for the consumer of that thing.
Naturally :-)
>
> And unless I provide a versioning URI its not going to be possible to
> provide for recognising, or "replaying" an identity (or isolating the
> change in identity) of a thing, at some previous time - the address
> for instance start as [http://example.lod/v1/myThing] and then become
> [http://example.lod/v2/myThing] and so on ? But in this case the
> address has changed, and the internal access path might have, but
> they're still the same thing (I note it may perhaps also proxied by an
> agnostic [http://example.lod/myThing]. I suppose a canonical LoD-GUID
> and the version chain would need to be qualities of each version ?
Thorny issue here, and it is application specific. By this I mean your
in the application domain re. the above, where application purpose is
something like a "Time Machine" for deltas associated data bound to a
give URI.
>
> If the Semantic Web is the second coming of the Internet, then there
> is going to be a lot of explaining to do :-) Think I'm going to need a
> fundamental allegory or two....
>
> Apologies for beating this to death.
Those who seek to archive the Web (or the broader Internet )are the ones
that would typically deliver such functionality, as part of their
archival services (imho).

Kingsley

Kingsley Idehen

unread,
Dec 2, 2009, 10:34:06 AM12/2/09
to pedant...@googlegroups.com, natl...@gmail.com, Linked Data community, SIOC-Dev
Yes, this is all fine, but it falls bucket: how you or your application
have decided to version data etc. :-)

> thus you can always describe a single version of a resource, the latest
> version, and so on.
>
Delta-V vocabulary for RDF would enable this sort of thing to be done in
a uniform manner re. interoperability etc.. But its still application
(Versioning) specific orchestration that also loosely connected to the
Provenance space etc..
> <completely ducking out of the time-travel convo, even if it is related>
>
Time-travel via Dataset Deltas is a service that someone (or entity) may
decide to offer; basically, a Linked Data driven Time Machine :-)

Kingsley
> regards!
Reply all
Reply to author
Forward
0 new messages