我想知道是否有可能对owl:imports进行一些限制。
例如:我想导入foaf,因为我想使用foaf:Person和foaf:Organization的语义。但我不共享foaf:Image的语义(我希望在我的名称空间中定义"Image“的语义)。
所以,我不希望foaf:Image及其关系被导入到我的本体中。有没有可能设置限制,这样foaf:Image就不会出现在我的模型中了……?
我知道这可能与“开放世界”的假设相矛盾。和/或可能我不完全理解“进口”机制。
谢谢你的预付。
发布于 2016-10-07 03:16:28
你不能用owl:imports做到这一点,但这不是开放世界与封闭世界的问题。它纯粹基于owl:imports的工作方式。基本上,owl:imports所说的是“接受你在这个网址找到的任何本体术语和公理,就像它们是我的本体的一部分一样”。这在封闭世界的语义中也是有效的。
有关于允许部分导入的框架或形式化的理论和实验研究,但在实现时没有真正健壮和维护的东西。这是Web Ontology语言的一个已知问题。
如果您想坚持FOAF本体的一部分,您可以做的就是简单地复制您在本体中同意的术语声明和公理。例如:
ex:myOnto a owl:Ontology .
foaf:Agent a owl:Class;
rdfs:isDefinedBy foaf: .
foaf:Person a owl:Class;
rdfs:subClassOf foaf:Agent;
rdfs:isDefinedBy foaf: .
foaf:Organization a owl:Class;
rdfs:subClassOf foaf:Agent;
rdfs:isDefinedBy foaf: .请注意,rdfs:isDefinedBy在语义方面并不是真的有用,但承认它们是从另一个本体借用的事实。有些人可能认为这是一种糟糕的做法,因为您定义的术语是您没有权限的(因为您不拥有可以检索它们的描述的名称空间),但这是我能想到的最好的做法。
发布于 2016-10-06 20:33:45
import指令恐怕没有这种粒度。
https://stackoverflow.com/questions/39890223
复制相似问题