Проблема в выводе экземпляров с целочисленным ограничением кардинальности

Я создал файл RDF/OWL, используя Protege 4.1 alpha. Я также создал определенный класс в Protege под названием CheapPhone. Этот класс имеет ограничение, которое показано ниже:

(hasPrice some integer[< 350])

Всякий раз, когда цена телефона ниже 350, он рассматривается как дешевый телефон. В 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");

Я делаю что-то неправильно ?


person yihlamur    schedule 13.06.2010    source источник


Ответы (1)


Диапазоны данных (бит [< 350]) — это функция OWL 2. Jena не поддерживает OWL 2. См. OWL 2 Implements для списка инструментов с поддержкой OWL 2 — вам придется использовать один из них. (Там перечислены некоторые экспериментальные текущие работы для Jena, но они определенно еще не вошли в релиз Jena.)

person cygri    schedule 13.06.2010