В моей онтологии у меня есть класс под названием «festival
» и он имеет значение свойства «CRISTMAS
». Это значение типа строки. Как я могу получить это значение с помощью API Jena OWL?Получить строковое значение семантического свойства
1
A
ответ
0
Загрузить свою онтологию в
OntModel
. Я предполагаю, что ты это сделал.Используйте метод
getProperty(String uri)
объектаOntModel
для изъятия имущества.Используйте метод
getOntClass(String uri)
дляOntModel
для извлечения класса. Он возвращаетOntClass
.Используйте метод
getPropertyValue(Property property)
дляOntClass
, чтобы получить значение. Он возвращаетRDFNode
.Чтобы превратить
RDFNode
в строку, просто используйтеtoString()
или сделайтеmyRDFNode.asLiteral().getString()
.
1
Я думаю, у вас есть экземпляр в классе, а значение свойства для этого экземпляра - это String.
Если это так, выполните следующие действия:
создать OntModel и прочитать файл.
OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.XXX); ontModel.read(file:xxx);
класс прибудет и свойство:
OntClass iClass =ontModel.getOntClass(className); OntProperty iProperty= ontModel.getOntProperty(propertyName);
получить экземпляр и выводят строку:
for (ExtendedIterator<? extends OntResource> it= iClass.listInstances(true);it.hasNext();) { Individual ins = (Individual) it.next(); RDFNode iValue = ins.getPropertyValue(iProperty); System.out.println(iValue.toString()); }
Было бы гораздо легче ответить на этот вопрос, если вы показать образец ваших данных (просто образец, пожалуйста, не весь файл). Например, в RDF не было бы обычным для класса иметь значение свойства: чаще всего экземпляр класса имел бы конкретное значение. В зависимости от того, из какого из них вы имеете в виду, мы можем предложить точные ответы. –