Получить строковое значение семантического свойства - PullRequest
1 голос
/ 10 июня 2010

В моей онтологии у меня есть класс с именем "festival", и у него есть значение свойства с именем "CRISTMAS". Это значение строкового типа. Как я могу получить это значение, используя Jena OWL API?

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Я полагаю, у вас есть экземпляр в классе, и значением свойства для этого экземпляра является строка.

Если это так, выполните следующие действия:

  1. создать OntModel и прочитать файл.

    OntModel ontModel = ModelFactory.createOntologyModel( OntModelSpec.XXX);
    ontModel.read(file:xxx);
    
  2. получить класс и свойство:

    OntClass iClass =ontModel.getOntClass(className);
    OntProperty iProperty= ontModel.getOntProperty(propertyName);
    
  3. получить экземпляр и вывести строку:

    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());
    }   
    
0 голосов
/ 10 июня 2010
  1. Загрузите вашу онтологию в OntModel.Я предполагаю, что вы уже это сделали.

  2. Используйте getProperty(String uri) метод OntModel для извлечения свойства.

  3. Используйте getOntClass(String uri) метод OntModel для извлечения класса.Возвращает OntClass.

  4. . Используйте getPropertyValue(Property property) метод OntClass, чтобы получить значение.Возвращает RDFNode.

  5. Чтобы превратить RDFNode в строку, либо просто используйте toString(), либо выполните myRDFNode.asLiteral().getString().

...