如何检查一个 OWLClassExpression 是否包含另一个 OWLClassExpression?
How to check if an OWLClassExpression contains another OWLClassExpression?
是否可以使用 OWL API 检查 OWLClass 表达式是否包含另一个 OWLClass 表达式?
分类示例:
Taxonomy Image
(没有不相交的 classes)
第一个 Class 表达式:"E and C"
第二个 Class 表达式:"A"
第三个 Class 表达式:"D"
我想知道第二个包含第一个,但第三个不包含第一个。
我对 "contains" 的意思是:如果我实例化一个属于第一个(E 和 C classes)的个体,那么那个个体也来自第二个(A class).
您需要使用 OWLReasoner
来执行此操作。通过创建您希望验证的公理来执行测试 - 例如,A subClassOf E and C
- 并测试 ontology 是否包含它 (OWLReasoner::isEntailed(OWLAxiom)
).
OWLReasoner
实现在 OWL API 之外可用 - 请参阅 Pellet、Openllet、HermiT、FaCT++、JFact(所有这些都可在其各自的网站上找到,并且除了 FaCT++,全部在 Maven Central
上可用
是否可以使用 OWL API 检查 OWLClass 表达式是否包含另一个 OWLClass 表达式?
分类示例: Taxonomy Image (没有不相交的 classes)
第一个 Class 表达式:"E and C"
第二个 Class 表达式:"A"
第三个 Class 表达式:"D"
我想知道第二个包含第一个,但第三个不包含第一个。
我对 "contains" 的意思是:如果我实例化一个属于第一个(E 和 C classes)的个体,那么那个个体也来自第二个(A class).
您需要使用 OWLReasoner
来执行此操作。通过创建您希望验证的公理来执行测试 - 例如,A subClassOf E and C
- 并测试 ontology 是否包含它 (OWLReasoner::isEntailed(OWLAxiom)
).
OWLReasoner
实现在 OWL API 之外可用 - 请参阅 Pellet、Openllet、HermiT、FaCT++、JFact(所有这些都可在其各自的网站上找到,并且除了 FaCT++,全部在 Maven Central