- From: Nuno Luz <nuno.maluz@gmail.com>
- Date: Mon, 10 May 2010 23:42:30 +0100
- To: semantic-web@w3.org
- Message-ID: <AANLkTimeB6m7Llh6CKJekvfsPOlGsvsEi0qo39YVk8se@mail.gmail.com>
Hi, Thank you all for your help. I am beginning to think that, at least technically, reification isn't really a bad practice. From your replies i can list three possible solutions: using a class (e.g. Friendship), reification or named graphs. Reification is not suitable for quoting but I see no reason not to use it to > specify qualities of an asserted friendship relationship. Having a class > :Friendship would be the more explicit approach, your trust property would > have domain :Friendship rather than rdf:Statement making the ontology easier > to understand. However having a friendship relationship expressed with a > single statement, not only makes some sparql queries simpler but also > potentially (if the individuals have lots of friend) much more performant, > if the triple store has optimization for reification also accessing the > additional properties of the friendship is faster than with the > Friendship-class approach. > I am using Jena which comes with a reification API, so it seems reification might be faster than the Friendship class approach. On the other hand, i don't know if named graphs (e.g. using the NG4J API) will provide better performance than reification. I believe there would have to be a named graph for each friendship relation between two persons. Also, i think one of the advantages of both reification and named graphs is that i would be able to use foaf:knows.
Received on Monday, 10 May 2010 22:43:03 UTC