我开始学习Java中的OWL,我读过一些内容,包括OWL API,Apache Jena和Protege。我想在owl中获取类,但在OWL API中它返回输入的IRI。
这是一个过程: 让我们来看看我正在寻找“美丽”这个词,它是“督察”的个体,而“督察”则是“卫报”的子类。 目前在我的程序中,输出是美丽本身的IRI。 我想获得Inspector IRI和Guardian IRI。
任何帮助/指南将不胜感激,谢谢:)
答案 0 :(得分:2)
如果您有OWLIndividual,那么您应该可以调用getTypes来获取它拥有的一组类型,其中一个类型就是您要描述的类。 (请注意,某些OWL API类的默认toString方法可能会显示该事物的IRI,因此只需打印个人或类可能与将其IRI打印为字符串相同。)getTypes返回一组OWLClassExpressions,一旦获得其中一个,就可以使用asOWLClass获取相应的类,然后使用getSuperClasses来升级您的类层次结构。请注意,作为Ignazio pointed out in the comments,如果类表达式不是匿名的,则只应调用asOWLClass。要获得保证完整的超类列表,您还需要使用完整的OWL推理器,而OWL内置的推理器不是。