问题描述
在这里完成RDF新手的学习,我正在努力了解如何创建明智且可重复使用的谓词。我问了公司的几位专家,但是通过复制对象(例如woman,has_a_bag,purse
和woman,has_a,purse
),他们的谓词是(唯一的)。
这是我的问题的具体但简单的示例:
man,has a,watch
car,tire
bird,feather
在Protege中,由于公共/共享谓词的存在,汽车不仅具有轮胎,还has a
羽毛和手表。如果必须为每个主题配对创建唯一的谓词,这似乎会使RDF的值无效。因此,我确定自己做错了什么。
谢谢!
解决方法
好吧,这里您拥有的东西在技术上肯定可以作为RDF模型。对于要表达的所有不同类型的关系,使用相同的“具有一个”谓词进行建模,与创建如下的SQL表没有什么不同:
thing | has_a
---------|-----------
man | watch
bird | feather
car | tire
问题是,以这种方式表示数据是否对您有用。如果您的目标是仅回答诸如“将所有事物及其所拥有的事物给我”之类的查询,那么可以。但是大概您会想了解更多,并查询更具体的问题。
要记住的另一件事是,您对关系之间的关系并不十分精确。您说“男人有手表”。这是否意味着一个人拥有一只手表,或者现在口袋里有一只手表?那鸟和羽毛呢?鸟在拥有,由羽毛组成或其他某种意义上“拥有”羽毛吗?
您苦苦挣扎的很大一部分原因是您的示例不够精确,无法真正表达出您的意思-不仅通过关系的名称,而且还通过主题和宾语:您是说所有男人都有手表,还是一个特定的男人拥有手表,或者一个特定的男人拥有一个特定的手表,或者其他?我指出这一点的原因是,当您开始深入研究此问题并尝试对要在RDF模型中表达的什么进行精确化时,通常会更清楚地知道精确度是多少。关系的唯一,有意义,唯一的名称。