假设我有这个三重奏:
m:song1 m:hasFeature m:harmony
这意味着一首带有uri m:song1
的歌曲具有和谐,到目前为止还不错,但有时候我想说它只有40%的和谐。
更好的例子可能是:
m:user1 m:fromPeriod m:adult
m:user2 m:fromPeriod m:childhood
我们不能说在25岁之前你是童年,在你成年之后,它是模糊的,而不是硬切。我想说你是50%的成年人和50%的童年
有没有办法在RDF中做到这一点,以及如果是(我希望)如何在Protege中
我想到的是:
m:user1 m:fromPeriod m:adult
m:fromPeriod :hasFuzzy 0.5
可能吗? (特别是在Protege中,因为我无法在整个本体中书写)
答案 0 :(得分:1)
您正在查看reification,这是语义网和其他地方的常见做法。使用评论中建议的n-ary relations是一种方式,也许是正确的方法。
另一种技术是为您的语句(三元组)分配URI或bnode,以便您可以对其进行声明。例如,
鉴于三倍:
:song_1 :hasFeature :harmony.
你可以创建:
:statement_1 a rdf:Statement.
:statement_1 rdf:subject :song_1.
:statement_1 rdf:predicate :hasFeature.
:statement_1 rdf:object :harmony.
然后你可以这样说:
:statement_1 :hasSomeValue "40%".
答案 1 :(得分:0)
我也可以使用像this one这样的Protégé检查模糊逻辑上的一些资源。