我已经用protégé5构建了一个小本体,它包含4个类:类Person及其子类(学生、讲师)和类模块及其子类(MathModule和CSModule),我有两个对象属性:教学和研究。我仍然是OWL API的初学者,我想要做的是加载这个本体并迭代不同的类(包括子类),以便创建和插入与对象属性相关的个体。我开始只为一个班级这样做,但我不确定如何才能为其他班级这么做。 public class adding_individuals {
public static void main(String[] args) throws OWLOntologyCreationException, OW
我正在使用owlapi来返回给定类的个体。在使用匹萨本体测试代码时,它工作得非常完美,但是当我在本体上测试它时,会出现以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: dk/brics/automaton/BasicAutomata
at org.semanticweb.HermiT.datatypes.rdfplainliteral.RDFPlainLiteralPatternValueSpaceSubset.<clinit>(RDFPlainLiteralPatternVal
我想知道OWLAPI的API是否是线程安全的。我在我的项目中使用OWLAPI版本5.1.10来与OWL本体交互。我计划使用OWLAPI功能,例如: addAxiom(OWLOntology, OWLAxiom) method of OWLOntologyManager
getOWLObjectProperty() method of OWLDataFactory
applyChange() method of OWLOntologyManager 然而,从多个线程来看,我不确定在这种情况下对本体的更改是否一致。任何帮助都将不胜感激。
我需要将类从预先存在的本体映射到我的本体中的个体。我正在寻找一种优雅的方式来做到这一点。例如,假设预先存在的本体具有:
Class Drug1 with subclasses Brand1, Brand2, Brand3
在我的本体中,我希望拥有Brand1, Brand2, and Brand3 as individuals of Class Drug1。
我不能使用owl:sameAs,因为它用于个体-个体映射。类似地,我可能不能使用equivalentClass,因为它用于类-类映射。
在这种情况下采取的好方法是什么?