- From: Mirko <idonthaveenoughinformation@googlemail.com>
- Date: Thu, 14 Oct 2010 15:08:34 +0200
- To: Leigh Dodds <leigh.dodds@talis.com>
- Cc: public-lod@w3.org, Virtuoso Users <virtuoso-users@lists.sourceforge.net>
- Message-ID: <AANLkTi=Y575FLW6gCfivjYZ5s4jNXmzD5ifouEORE5gF@mail.gmail.com>
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]. Regards, Mirko [1] http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/ [2] http://www.w3.org/TR/swbp-n-aryRelations/ [3] http://wiki.larkc.eu/e-foaf:interest [4] http://smiy.sourceforge.net/cco/spec/cognitivecharacteristics.html
Received on Thursday, 14 October 2010 13:09:08 UTC