Hi all, I'm a newbie in using ontology, and I got some difficluties in building ontologies with weighted predicates. For example, I want to say that a concept a is similar to a concept b with an float:x certainty. I have found some solutions using reification such in this post: http://stackoverflow.com/questions/3660087/weighted-rdf-predicate-owlobjectproperty
However I was wondering if it is possible and how to add this kind of objectptoperty: ObjectProperty: likeScale Domain: LikeLevel Range: xsd:int
As far as I konw, object proprety is to link individuals and can not have as range a data type. I'm using OWLAPI, and I didn't find any solution to do the above object property.
Can anyone help me with this.
Thank you very much.
I'm going to tackle the question on a broader, conceptual level. There are a few options for "weighted predicates" (~aka. "n-ary predicates" or perhaps even "quads"):
Select a static set of predicates with different weights:
or more coarse buckets of values:
Standard RDF reification:
Standard n-ary predicates:
EDIT: Predicate-based reification. (A bit of a curve-ball.)
"Emulated" n-ary predicate modelling (as per @Fabian's answer):
Reification beyond triples (e.g., named graphs}
In addition to the given answers you may have a look at the following ontologies and vocabularies:
answered 20 Dec '11, 14:24
You might consider using a representation other than RDF if you need to deal with a large number of weighted predicates. Hypergraph databases, for instance, are especially designed to support weighted predicates.
I recently did a project that involved a calculation roughly like PageRank over nearly a quadrillion weighted links inferred from a billion Linked Data triples. It took many optimizations to accomplish this quickly with modest hardware, and one of them was representing weighted links with the SPARQL 1.1 CSV result format which looks like
answered 21 Dec '11, 09:00
If I am not mistaken, this is a typical example where you could design a Class instead of a Property:
aSimilaritiy rdf:type Similarity
There you have created the information for "similarTo"
and thus you can add any other information:
answered 20 Dec '11, 02:14
Thank you for your answers.
to Michael: I want to automaticlly build an ontology from scratch using likeliness relationships.
To Fabien: this may be usefull but I don't know if it works for the following example:
Let's say that we have a database with annotation (tags for each document). We want to model the co-appearance frequency of these tags. Thus we will be able to say that 'tag1' appears with 'tag2' with the following frequency. I'm not sure that using your solution it would be poosible to model such information, because the weighting is on the Class and not on an instance of the Class aSimilarity.
If I'm wrong, thank you to show me the right way.