【问题标题】:How do you determine predicate "direction"?您如何确定谓词“方向”?
【发布时间】:2020-01-11 20:39:11
【问题描述】:

也许这是直觉和经验,但这是在我设计 OWL 本体时出现的;如何确定两个实体之间什么是客体,什么是主体?

通过一个具体的例子来澄清一下:假设您有两个用户,您想通过一种“跟随”彼此的机制将它们链接在一起(假设 Bob 跟随 Alice)。

您是否应该(通常)为您的系统建模,以便:

(x:Bob) - x:follows → (x:Alice)

(x:Alice) - x:is_followed_by → (x:Bob)

(x 是一个随机的本体名称)

我尝试搜索约定或类似内容,但找不到。

【问题讨论】:

  • 在同一个本体中看到两种模式是很常见的,通常将两个属性声明为逆。
  • 从语法的角度来看,宾语是动词作用的对象,所以我更喜欢第一种情况,Bob 跟随 Alice。第二个版本,爱丽丝跟着鲍勃,是被动语态。爱丽丝现在是主题,鲍勃被简化为介词短语“鲍勃”的一部分——但是,嘿,谁真的在乎呢? (实际上,Reto 似乎正在为下面的主动语态提供案例。)

标签: rdf graph-databases owl graphdb


【解决方案1】:

从语义的角度来看,这没有区别,因此您可以选择其中一个,或者正如@Ignazio 指出的那样,两者都可以。然而,选择一个方向而不是另一个方向可能有务实的理由。例如:典型的个人资料文件会列出关注者还是关注者?在许多序列化中,相同类型的多个前向属性可以以更易读和更紧凑的方式表示。此外,许多 SPARQL 端点仅使用前向属性回答 DESCRIBE 查询,因此请问问自己,关系的哪一端更重要。在解释你是什么或解释什么是人性时,提到你是一个人更重要吗?根据答案,您可以选择 x:type of x:typeOf。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多