Expressing the links between class partitions in different datasets

Skip to first unread message

Keith Alexander

Jul 27, 2011, 10:57:36 AM7/27/11
to void-discussion

Possibly I'm forgetting something, but I was wondering if we had an
obvious way in VoID of modelling that there are 100 Venues in
dataincubator-climb linked to 200 Supermarkets in linkedgeodata (for
instance), with, say, 250 ov:near triples.

I was thinking it could be something like:

a void:Linkset ;
void:triples 250 ;
void:subjectsTarget <subset-of-climb-venues-near-linkedgeodata-supermarkets> ;
void:objectsTarget <subset-of-linkedgeodata-supermarkets-near-climb-venues> ;
void:linkPredicate ov:near ;

<climb> a void:Dataset ;
void:classPartition <venues> .

<venues> void:subset
<subset-of-climb-venues-near-linkedgeodata-supermarkets> ; void:class
climb:Venue ; void:triples 500 .

<subset-of-climb-venues-near-linkedgeodata-supermarkets> void:triples 100 .

I think that expresses what I want it to, but the reader has to
traverse a lot of graph to find out the actual 'containing' dataset.



Michael Hausenblas

Jul 27, 2011, 12:07:15 PM7/27/11

Hmmm... I think this sounds about right, unsure what exactly your
question is? You want a more compact representation or ...?

Dr. Michael Hausenblas, Research Fellow
LiDRC - Linked Data Research Centre
DERI - Digital Enterprise Research Institute
NUIG - National University of Ireland, Galway
Ireland, Europe
Tel. +353 91 495730

Keith Alexander

Jul 28, 2011, 4:08:34 AM7/28/11
On Wed, Jul 27, 2011 at 5:07 PM, Michael Hausenblas
<> wrote:
> Hmmm... I think this sounds about right, unsure what exactly your question
> is? You want a more compact representation or ...?

Not quite. The problem is that I choose between expressing the class
restriction, and the linkset data being easy to consume. In most
cases, the consumer will want/expect void:target to point to the
containing dataset; if it points to a subset, the consumer does not
know how many steps they need to make to get to the 'containing'
dataset (ie, the ckan package level dataset).

My use case is from the LATC linksets, which typically link from one
class of things in the source dataset, to another class of things in
another dataset. There may be many linksets between the same two
datasets, with the same link predicate, and what (generally)
distinguishes them are the class restrictions on either side.

A solution could be to always use void:target, void:subjectsTarget,
void:objectsTarget to point to the 'containing' dataset, and make up
some new properties to point to the restricted subsets of the datasets
that the linkset joins - eg: ex:subjectsTargetSubset,
ex:objectsTargetSubset .

Does that make sense?


Richard Cyganiak

Jul 28, 2011, 2:27:29 PM7/28/11
The issue is that VoID is designed to describe links between datasets, not entity sets or URI sets or classes or whatever. I don't think there's an easy way of really describing the target classes of a linkset.

The proper way of doing this would be to document a way of describing entity sets or URI sets or whatever you want to call them. "Here's a set of 1500 entities with the following URI pattern. They are all of class ex:venue." This would definitely be something useful, but it's more specific than void:Dataset, and not quite the same thing as void:classPartition.


Reply all
Reply to author
0 new messages