我有一个猫头鹰文件,我需要编写一个java程序,在其中传递个人名称(例如Lion)并从owl获取与此个人相关的所有对象/数据属性值(例如:{{1}来自Golden
对象属性等。)。
我写了一个基于最简单的java类
api has_color
,但此API没有列出个人信息的方法。
那么还有其他简单的方法可以满足我的需求吗?
在以下示例中,我正在检索主类uk.ac.ebi.brain.core.Brain
的子类
我不知道如何检索每个子类的个体,或者甚至通过传递个人的名称来获取该个体的对象/数据属性:
Animal
答案 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();
}