2010-06-10 2 views
1

В моей онтологии у меня есть класс под названием «festival» и он имеет значение свойства «CRISTMAS». Это значение типа строки. Как я могу получить это значение с помощью API Jena OWL?Получить строковое значение семантического свойства

+0

Было бы гораздо легче ответить на этот вопрос, если вы показать образец ваших данных (просто образец, пожалуйста, не весь файл). Например, в RDF не было бы обычным для класса иметь значение свойства: чаще всего экземпляр класса имел бы конкретное значение. В зависимости от того, из какого из них вы имеете в виду, мы можем предложить точные ответы. –

ответ

0
  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().

1

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

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

  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()); 
    }