我不确定如何解释以下RDF三元组的语义。我能正确地解释它们吗?
示例A
Subject - Predicate - Object
Tom - age - 24
我可以读到这个,因为谓词年龄的值为24.这似乎不直观。但是,我也可以读到这一点,因为24与谓词时代的汤姆有关,这对我来说具有更好的语义意义。
示例B
Subject - Predicate - Object
Tom - HasProperty - age
age - HasValue - 24
这表明年龄是汤姆的财产。此属性的值为24.这明确了年龄与Tom的关系。
在一个例子中,age是谓词,在另一个例子中,它是一个对象。在这两种情况下,通过在示例B中添加显式属性,编码的信息或多或少相同。
答案 0 :(得分:0)
是的,你正确地解释它们。
两个例子都编码相同的信息(即汤姆的年龄是24岁)。在第一个例子中,这是通过直接二元关系完成的。在一阶谓词逻辑中重写它:
age(tom, 24)
在第二个例子中,关系已经被引入一个对象,它有效地读取
HasProperty(Tom, age)
HasValue(age, 24)
第一种方法的一个优点是它(显然)更短,更直接可解释。第二种方法的一个可能的优点是,由于关系age
是一个对象,你可以说更多关于它的东西。例如,除了声明其值(数字)之外,您还可以通过添加一个简单的附加声明轻松添加其表示的度量单位:
HasUnit(age, DogYears)
或三重形式:
age - HasUnit - DogYears
当然,在第二个示例中,您假设只有Tom
有age
。毕竟,如果我们添加有关名为Dick
26
的人的知识,并且我们要重复使用关系标识age
,我们就会得到:
HasProperty(Tom, age)
HasProperty(Dick, age)
HasValue(age, 24)
HasValue(age, 26)
现在,我们如何判断谁是24岁,谁是26岁?你不能,因为他们都链接到同一个关系对象。因此在实践中,当以这种方式重新建立关系时,可以使关系对象成为关系的特定出现。例如:
HasProperty(Tom, ageOfTom)
IsA(ageOfTom, age)
HasValue(ageOfTom, 24)
HasProperty(Dick, ageOfDick)
IsA(ageOfDick, age)
HasValue(ageOfDick, 26)