我想知道是否可以对owl:imports进行一些限制。
例如:我想导入foaf,因为我想使用foaf的语义:Person和foaf:Organization。但我不同意foaf的语义:Image(我希望在我的命名空间中定义“Image”的语义)。
所以,我不想要foaf:Image和它的关系可以在我的本体中导入。是否可以设置限制,以便foaf:Image不会出现在我的模型中......?
我理解这可能与“开放世界”假设相矛盾......和/或者我可能并不完全理解“进口”机制。
先谢谢你。
答案 0 :(得分:2)
你不能用owl:imports
做到这一点,但这不是开放世界与封闭世界的问题。它纯粹基于owl:imports
应该如何工作。基本上,owl:imports
所说的是“采用你在这个URL上找到的任何本体术语和公理,就好像它们是我的本体论的一部分”。这也适用于封闭的世界语义。
有关允许部分导入的框架或形式的理论和实验研究,但实际上并没有真正强大和维护。这是Web Ontology Language的一个已知问题。
如果您想要遵守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
在语义方面并不真正有用,但承认这些是从另一个本体中借用的。有些人可能会认为这是一种不好的做法,因为你定义了你没有权限的术语(在某种意义上你不拥有可以检索它们描述的命名空间),但这是最好的我能想到。
答案 1 :(得分:0)
我害怕导入指令没有这种粒度。