Я пытаюсь извлечь тройки RDF из файлов XML, используя существующую онтологию. Я использую Java и могу использовать XPath для извлечения данных из XML и Jena для чтения и записи RDF-документов и онтологий. Как я могу извлечь соответствующие триплеты из XML в соответствии с существующей онтологией?
Как извлечь тройки RDF из файла XML, используя существующую онтологию?
Ответы (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
Еще несколько замечаний о том, почему не использовать XPath для работы с RDF или OWL из вопроса, заданного несколько лет спустя.
- person Joshua Taylor; 25.01.2014