Получить "Индивидуальное использование" в OWL API - PullRequest
1 голос
/ 11 марта 2019

Я новичок в OWL API, поэтому, пожалуйста, прости меня, если это базовая вещь.

У меня есть класс с именем воспламеняемости, который имеет 5 экземпляров уровней воспламеняемости от 0 до 4 (например, «уровень воспламеняемости: 0»). Я хочу получить людей (химикаты), которые имеют "hasFlammabilityLevel", скажем, "Уровень воспламеняемости: 0", и поместить их в HashMap "emergencyChemicalsMap". Я искал и пробовал много методов, таких как этот вопрос и это также , но ни один из них не работает и ничего не возвращает.

У меня есть код, который должен получить уровень воспламеняемости каждого человека в качестве моего испытания, но на самом деле он ничего не возвращает и понятия не имеет, что делать дальше:

OWLClass emergencyChemicals = null;
        for (OWLClass owlClass : classes) {
            String x = owlClass.getIRI().toString();
            x = x.substring(x.lastIndexOf("#") + 1);
            if (x.equals("ProductName")) {
                emergencyChemicals = owlClass;
                break;
            }
        }
        if (emergencyChemicals != null)
            for (OWLNamedIndividual instances : reasoner.getInstances(emergencyChemicals,false).getFlattened()) {
                OWLObjectProperty hasFlammabilityLevel = df.getOWLObjectProperty(IRI.create("#hasFlammabilityLevel"));
                OWLClassExpression flammabilityOfI = df.getOWLObjectHasValue(hasFlammabilityLevel, instances);
                for (OWLNamedIndividual flammability : reasoner.getInstances(flammabilityOfI, false).getFlattened()) {
                    String label = flammability.getIRI().getFragment();
                    emergencyChemicalMap.put(label, instances);
                }
            }

Есть ли способ сделать это так, чтобы он возвращал людей из класса «ProductName», у которого «hasFlammabilityLevel» равен «Уровень воспламеняемости: 0»? Ответы будут с благодарностью!

...