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

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

1 Ответ

9 голосов
/ 15 апреля 2011

Забудьте о 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());
}

Вы найдете больше информации здесь .

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

...