Как извлечь тройки RDF из файла XML, используя существующую онтологию?

Я пытаюсь извлечь тройки RDF из файлов XML, используя существующую онтологию. Я использую Java и могу использовать XPath для извлечения данных из XML и Jena для чтения и записи RDF-документов и онтологий. Как я могу извлечь соответствующие триплеты из XML в соответствии с существующей онтологией?


person Sathish Kumar    schedule 14.04.2011    source источник


Ответы (1)


Забудьте о XPath для извлечения троек, с Jena это намного проще и менее проблематично.

Вы можете использовать интерфейс SimpleSelector вместе с model.listStatements из Йены.

В этом примере я использую SimpleSelector для поиска всех троек с одним свойством, но вы можете реализовать любой поиск, который вам нужен, настроив метод selects.

FileManager fManager = FileManager.get();
Model model = fManager.loadModel("some_file.rdf");

Property someRelevantProperty = 
    model. createProperty("http://your.data.org/ontology/",
                          "someRelevantProperty");

SimpleSelector selector = new SimpleSelector(null, null, (RDFNode)null) {
    public boolean selects(Statement s)
        { return s.getPredicate().equals(someRelevantProperty);}
}

StmtIterator iter = model.listStatements(selector);
while(it.hasNext()) {
   Statement stmt = iter.nextStatement();
   System.out.print(stmt.getSubject().toString());
   System.out.print(stmt.getPredicate().toString());
   System.out.println(stmt.getObject().toString());
}

Дополнительную информацию можно найти здесь.

Если вы немного подробнее опишете используемую вами онтологию и тип поиска, который вам нужен, мы сможем помочь больше.

person Manuel Salvadores    schedule 14.04.2011
comment
Еще несколько замечаний о том, почему не использовать XPath для работы с RDF или OWL из вопроса, заданного несколько лет спустя. - person Joshua Taylor; 25.01.2014