[英]Class propagation via inference using OWL ontology
我正在尝试编写一个本体,它将在连接的节点之间传播某些类。 这种连接可以由任何属性完成。 传播应该在这些属性的域的方向上。
例如:
Node A -(any property)-> Node B
Node B -(rdfs:type)-> Sensitive Element
在这里我们可以看到两个节点Node A
和Node B
通过一些属性any property
连接。 Node B
是Sensitive Element
。 通过连接到敏感元素Node B
,我想推断Node A
也是敏感元素:
Node A -(rdfs:type)-> Sensitive Element
这个三元组是我试图推断的那个三元组。 你可以看到我已经在any property
的域的方向上传播了Sensitive Element
类。
是否有可能编写一个可以实现这种推理三重的 OWL 本体?
额外信息:
如果您的知识库中有一对个体:NodeA
和:NodeB
,那么您可以推断:
:NodeA owl:topObjectProperty :NodeB .
假设你的规则成立,并且存在敏感元素,那么每件事都是敏感元素。 这可能不是您想要的。
OWL 本体告诉您有关它所描述的宇宙的一些信息,但它没有定义宇宙。 这意味着,如果您不描述 A 和 B 之间的关系,并不意味着它们之间没有关系。 事实上,根据 OWL 语义的定义方式,任何 2 个实体之间总是存在关系。 即使owl:topObjectProperty
在 OWL 中不存在(在 OWL 1 中就是这种情况),A 和 B 之间也可能存在未命名的关系。
您最可能想要的是表达仅使用命名属性的规则。 例如,为此,您可以使用 SPARQL 构造或基于 RDFS 的规则语言。
另一种选择是为每个命名属性定义一个公理。 这些公理可以很容易地以编程方式添加。 准确地说,对于每个命名属性ppp
,添加:
[] a owl:Restriction;
owl:onProperty ppp
owl:someValuesFrom :SensitiveElement;
rdfs:subClassOf :SensitiveElement .
这样做的好处是您可以调整哪个属性使事物敏感或不敏感。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.