有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在推断具有整数基数约束的实例时遇到的问题

我使用Protege 4.1 alpha创建了一个RDF/OWL文件。 我还在Protege中创建了一个名为CheapPhone的定义类。此类限制如下所示:

(hasPrice some integer[< 350])

当一部手机的价格低于350美元时,它就被推断为CheapPhone。 在Protege 4.1 alpha中推断这一点没有问题。然而,我不能用耶拿来推断这一点

我还创建了一个定义类,名为SmartPhone。该类还有一个限制,如下所示:

(has3G value true) and (hasInternet value true)

无论何时,只要一部手机有3G和互联网,它就被推断为智能手机。 在这种情况下,在Protege和Jena身上都可以推断出这一点

我开始认为Jena的默认推理机有问题。 我在Java中使用的代码如下:

Reasoner reasoner = ReasonerRegistry.getOWLReasoner();

reasoner = reasoner.bindSchema(ontModel);
    OntModelSpec ontModelSpec = OntModelSpec.OWL_MEM_MINI_RULE_INF;
    ontModelSpec.setReasoner(reasoner);
    // Create ontology model with reasoner support
            // ontModel was created and read before, so I don't share the code in order
            // not to create garbage here
    OntModel model = ModelFactory.createOntologyModel(ontModelSpec, ontModel);

    OntClass sPhone = model.getOntClass(ns + "SmartPhone");
    ExtendedIterator s = sPhone.listInstances();
    while(s.hasNext()) {
        OntResource mp = (OntResource)s.next();
        System.out.println(mp.getURI());
    }

这段代码运行完美,并返回实例,但当我更改下面的代码并使其适用于CheapPhone时,它不会返回任何内容

OntClass sPhone = model.getOntClass(ns + "CheapPhone");

我做错什么了吗


共 (1) 个答案

  1. # 1 楼答案

    数据范围(位)是OWL2的一个特性。杰娜不支持猫头鹰2。请参阅W3C的OWL 2 Implementations页面,获取支持OWL 2的工具列表,您必须使用其中一个。(这里列出了Jena正在进行的一些实验性工作,但这肯定还没有成为Jena的发行版。)