我使用Ontology来识别用户活动....我有一个本体(OWL),包括我将使用的各种类以及对象属性......
我是本体论的新手,即使在阅读了很多关于它的内容之后我也很困惑.... 我所理解的是,一个类被定义为使用各种类型的另一个类...所以无论如何我可以检查一个特定类的对象是否与另一个类无关。我想问的是我该怎么做检查ABox是否与本体的术语部分一致(我理解的是TBox)......
我使用了protege来制作我的本体,并尝试使用jena和pellet推理器以及它的GUI版本SWOOP来检查一致性.....
我完全糊涂了,不知道该用什么......
答案 0 :(得分:2)
SWOOP已经过时,如果您打算使用GUI,我建议您坚持使用Protoge 4.有关使用Pellet的信息,有一个非常好的tutorial online。
如果您打算以编程方式使用OWL,我建议在Jena上使用OWLAPI。 Jena是一个更加以RDF为中心的API,而OWLAPI是为OWL设计的,因此当您从事与OWL相关的工作时,您会发现它更容易使用。也就是说,耶拿更有特色。
答案 1 :(得分:0)
我之前使用过Jena API来处理Protege创建的Ontology。诚然,耶拿令人困惑。但是,这些是我用来帮助解决问题的资源:
为了弄清楚它是如何工作的,我们做了一些尖峰,我们创建了一个非常简单的OWL文件,并使用Jena编写了一些Java,看看我们如何能够得到我们需要的东西。代码丢失了,但它让我们在理想化的环境中学习了一些关于OWL文件和Jena API的知识。
答案 2 :(得分:0)
这是您使用Java OWL API执行一致性检查的方法:
/*Load your ontology from a local file and do the initialisations*/
File inputfile = new File("ontologyPath");
OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); ;
OWLDataFactory dataFactory = manager.getOWLDataFactory();
OWLOntology yourOntology = manager.loadOntologyFromOntologyDocument(inputfile);
IRI ontologyIRI = yourOntology.getOntologyID().getOntologyIRI();
/* Load a reasoner, the default one that comes with the OWL API is HermiT.
However, You can use other reasoners, such as Fact++ or Pellet, by
downloading their libraries and adding them to your project build path */
OWLReasonerFactory reasonerFactory = new Reasoner.ReasonerFactory();
OWLReasonerreasoner = reasonerFactory.createReasoner(yourOntology);
/* Perform consistency check */
boolean consistency = reasoner.isConsistent();
另请查看OWL API网站上的示例。
Berkan