Забудьте о XPath для извлечения троек, с Дженой это намного проще и менее проблематично.
Вы можете использовать интерфейс 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());
}
Вы найдете больше информации здесь .
Если вы немного опишете используемую онтологию и тип поиска, который вам нужен, мы сможем помочь вам больше.