我是OWL API的初学者,所以如果这是基本内容,请原谅我。
我有一个名为“易燃性”的类,该类具有5个从0到4的“易燃性级别”实例(例如“易燃性级别:0”)。我想得到具有“ hasFlammabilityLevel”,“易燃性等级:0”的个人(化学品),并将其放入HashMap,“ emergencyChemicalsMap”中。我一直在搜索并尝试过许多方法,例如this SO question和this as well中的方法,但是它们都不起作用并且什么也不返回。
这是我目前拥有的代码,应该可以在尝试时获得每个人的可燃性等级,但是它并没有真正返回任何东西,也不知道该怎么做:
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”中的“易燃性等级:0”的“ hasFlammabilityLevel”?答案将不胜感激!