Hi Mirko,

Am 14.10.2010 15:08, schrieb Mirko:
Thank you all for your helpful comments. First, let me clarify my
intention. My question aimed not so much at the (internal) storage of
the data, but really on how to publish them as Linked Data, so that they
are useful for third parties (= easy to query and consume).

I use Virtuoso and want to publish data that are currently stored in SQL
tables as RDF Views over a SPARQL endpoint.

As I read here [1, 2], the problem with publishing reificated data is
two-fold: 1) they are cumbersome to query. 2) semantics are imprecise
for this use case, because what is described with reification is the rdf
triple. In my case, I want to describe the information, i.e. the
"interest" of a user for an item.

So, four solutions for my problem came up here. As I understand three
solutions - Quads, Named graphs, and publishing the data as several
files - do not really solve the problems. They are more for internal
storage then for publishing.

The suggestions of Bob and Leigh seem to be a better solution, because
the semantics are clear. I think the querying issue remains.

The trick is to express n-ary relations by defining a class for what was
a property before. In my example, instead of using the property
"foaf:interest" , I use a class like "e-foaf:interest" [3] or
"cco:CognitiveCharacteristic" [4]:

@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix cco: <http://purl.org/ontology/cco/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

ex:AStmt
       a cco:CognitiveCharacteristic ;
       cco:agent ex:AUser ;
       cco:topic ex:AItem ;
       cco:characteristic cco:interest ;
       dcterms:modified "2010-10-13^^xsd:date ;
       dcterms:publisher ex:AService .

ex:AUser a foaf:user.
ex:AItem a foaf:topic.

This is definitely a viable solution. However, the drawback of this
solution is that I need new vocabulary. I define classes for things that
are actually already defined by properties, which seems a bit odd to me.
The reason why I tried reification was that I wanted to re-use existing
vocabulary, FOAF in my case, as it is a recommended best-practice for LD
publishing [1].

Well, the Cognitive Characteristics Ontology is now also an existing vocabulary, which is, of course, intented for reutilization. It's simply the case that the interest relation in FOAF is a "shortcut relation", where one need further concept (especially a reification class) and property definitions to describe that "shortcut relation" more in detail. So in my mind this is not really a drawback, is it more an elegant addition to existing vocabularies, which can be applied in line with them. However, I would say the information you like to add is more or less provenance information and hence 'external context' (after Tolle's definition, see [1]) as it can be attached to more or less every information resource. So one might like to apply Quads or Named Graphs for this context type. Although, the drawback regarding applying Named Graphs there, are the singleton graphs, which are not very effective.
This issue is discussed for instance here[2] or here[3].

Cheers,


Bob


PS: BTW, the intended modelling of the e-foaf:interest Vocabulary is also included in the Cognitive Characteristics Ontology (as a successor of the Weighted Interests Vocabulary 0.5[4]), because their modelling is not really applicable due to invalidation (see [5]).

[1] http://www.dbis.informatik.uni-frankfurt.de/~tolle/Publications/2004/AISTA04.pdf [2] http://www.semanticoverflow.com/questions/1643/named-graphs-and-multi-graph-documents-standardisation-and-directions
[3] http://lists.w3.org/Archives/Public/semantic-web/2010Sep/0175.html
[4] http://purl.org/ontology/wi/weightedinterests.html
[5] http://www.semanticoverflow.com/questions/1472/datatypeproperty-modeled-in-an-objectproperty-way

Reply via email to