我知道这听起来像是一个非常愚蠢的问题,但我一直在试图解决这个问题,但我找不到任何关于此的内容,尽管这似乎很明显应该是可行的。
我正在开发使用曼彻斯特 OWL 语法和 HermiT 推理器通过其 API 查询 OWL 文件的东西。我也可以在 Protege 4 的 DL Query 选项卡上运行查询,以检查我对该文件的查询结果。该文件基本上是添加了数据实例的朋友之友 (FOAF) 本体。
问题:我找不到通过唯一标识符查询实例的方法。
它应该是 URI,例如对于带有 URI 的 Person 对象 http://xmlns.com/foaf/0.1/Andrew_Kuchling
,我尝试运行以下查询:
Person and URI value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"
Person value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"
Person and URI value "Andrew_Kuchling"
Person that "Andrew_Kuchling"
这些都不起作用。(URI 是通过为您输入的任何字符串添加前缀http://xmlns.com/foaf/0.1/
来构造的,并且 URI 实际上并未在本体中标识为属性)。
在 FOAF 中,mbox_sha1sum
是邮箱的 sha1sum。邮箱与个人有着独特的联系。所以我尝试了以下查询:
Person and mbox_sha1sum value "mbox_sha1sum-property-value-here"
但是,它甚至不执行此查询,因为它认为查询不正确。该mbox_sha1sum
值与我为这个人添加的值相同。它存在于个人中。
它确实执行了这个查询:
Person and firstName value "Andrew"
所有数据属性都不是专门的数据类型。默认情况下被视为文字。
我真的不知道我做错了什么。有人可以请帮忙吗?