如何通过将其名称传递给java程序从owl获取个人信息

时间:2013-03-03 07:28:10

标签: java ontology owl

我有一个猫头鹰文件,我需要编写一个java程序,在其中传递个人名称(例如Lion)并从owl获取与此个人相关的所有对象/数据属性值(例如:{{1}来自Golden对象属性等。)。

我写了一个基于最简单的java类 api has_color,但此API没有列出个人信息的方法。 那么还有其他简单的方法可以满足我的需求吗?

在以下示例中,我正在检索主类uk.ac.ebi.brain.core.Brain的子类 我不知道如何检索每个子类的个体,或者甚至通过传递个人的名称来获取该个体的对象/数据属性:

Animal

1 个答案:

答案 0 :(得分:1)

目前(2013年3月)无法使用Brain检索附加到对象属性的个体,因为ELK尚未实现,这是负责此操作的基础推理器。

然而,在我看来,你可以玩你的建模。您可以将Lion断言为类  而不是个人。您可以进一步将概念Lion定义为has_color some Golden的子类。在OWL中,所有的狮子都是金色的,但事情可能是金色的而不一定是狮子。

使用Brain实施:

public static void main(String[] args) throws BrainException {
    Brain brain = new Brain();

    //Declaration of the concepts and properties
    brain.addClass("Animal");
    brain.addClass("Lion");
    brain.addClass("Golden");
    brain.addObjectProperty("has_color");

    //Axioms assertion
    brain.subClassOf("Lion", "Animal");
    brain.subClassOf("Lion", "has_color some Golden");

    //Query
    List<String> results = brain.getSubClasses("has_color some Golden", false);
    System.out.println(results);

    brain.sleep();
}