W3C home > Mailing lists > Public > semantic-web@w3.org > July 2014

Re: Best practices for naming and referring to void:Datasets

From: Sarven Capadisli <info@csarven.ca>
Date: Mon, 21 Jul 2014 00:37:00 +0200
Message-ID: <53CC448C.2090304@csarven.ca>
To: semantic-web@w3.org, "Svensson, Lars" <L.Svensson@dnb.de>
On 2014-07-16 15:14, Svensson, Lars wrote:
> Sarven,
>
> Thank you for your comments. This is just to check that I've understood your suggestion correctly.
>
>> I would go at it like this:
>>
>> #Probably a good idea to use void.ttl or .well-known/void here
>> <http://data.example.org/void.ttl>
>>       a void:DatasetDescription ;
>>       foaf:primaryTopic <http://data.example.org/dataset/example> .
>>
>> <http://data.example.org/dataset/example>
>>       a void:Dataset ;
>>       void:subset <http://data.example.org/foo> .
>>
>> <http://data.example.org/foo> a void.Dataset .
>
> Ok, so in a document published at <http://data.example.org/void.ttl> (possibly referred to from <http://data.example.org/.well-known/void>), I have the following:
>
> #start of document
> <> a void:DatasetDescription ;
> 	foaf:primaryTopic <http://data.example.org/dataset/example> .
>
> <http://data.example.org/dataset/example> a void:Dataset ;
> 	void:subset <http://data.example.org/foo> , <http://data.example.org/bar> , <http://data.example.org/baz> .
> #end of document
>
>> The rationale for <http://data.example.org/dataset/example> is that, it
>> can point to all of your datasets. It also comes in handy when you deal
>> with linksets, and just want to point at the complete set:
>>
>> :linkset-example-ecb
>>       a void:Linkset ;
>>       void:linkPredicate skos:exactMatch ;
>>       void:subjectsTarget <http://data.example.org/dataset/example> ;
>>       void:objectsTarget <http://ecb.270a.info/dataset/ecb> .
>
> Hmm, yes. But that would work if I used <http://data.example.org> as the URI for the complete dataset, too. OTOH I just realise that I'm running into httpRange-14 issues here by using the same URI for the dataset and its description... Essentially I need to do the following:

While using the base URL is possible, I would personally leave it out of 
the picture. http://data.example.org/ can essentially be everything 
about the service that you are providing. It is not necessarily 
particular to a group of datasets. So, it is not just about 
void:Dataset. It is a place where one would go e.g., homepage, to 
discover everything else that's offered e.g., SPARQL Endpoint, contact 
information of the maintainers, general documentation about the service 
and datasets.

As for dealing with content negotiation and representations, I would 
also leave that out of designing these patterns. In short, you have to 
commit to some way of serving your data. Whether it ends with #foo or 
/foo makes no difference, since at the end you have to relate one of 
those resources with something else.

> <http://data.example.org/> -> redirect to <http://data.example.org/about> containing the following (using conneg):
>
> #start of document
> <> a void:DatasetDescription ;
> 	foaf:primaryTopic <http://data.example.org/> .
>
> <http://data.example.org/> a void:Dataset ;
> 	void:subset <http://data.example.org/foo> , <http://data.example.org/bar> , <http://data.example.org/baz> .
> 	#more metadata here...
> #end of document
>
> <http://data.example.org/foo> redirects to <http://data.example.org/foo/about> containing the following (using conneg again):
>
> #start of document
> <> a void:DatasetDescription ;
> 	foaf:primaryTopic <http://data.example.org/foo> .
>
> <http://data.example.org/foo> a void:Dataset .
> 	#more metadata here
>
> # linksets etc.
> #end of document
>
> That way an agent following its nose could find out more interesting things when encountering e. g.
>
> <http://data.example.org/foo/123456> void:inDataset <http://data.example.org/foo> .
>
> since <http://data.example.org/foo> actually dereferences to useful information. If I put all the dataset information in <http://data.example.org/void.ttl>, the above triple isn't really useful if I haven't crawled the void-file beforehand.
>
> Does that make sense?
>
> Best,
>
> Lars
>

Yes, I understand what you are saying. But, it this doesn't have to be 
an either or case. You can still provide descriptions for the resources 
when they are requested e.g.:

<http://data.example.org/foo> a void:Dataset .

at http://data.example.org/foo. I think you should cover this in any case.

And, go ahead and be redundant (it really doesn't hurt!) and provide 
that same minimal information at the VoID URL as well. Think of the VoID 
file as one easy way others can *discover* what you have. Call it a 
sitemap/index of good stuff, if you will.

-Sarven
http://csarven.ca/#i



Received on Sunday, 20 July 2014 22:37:34 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:52 UTC