RDF4j v3.0.0 Экспорт графа без выведенных троек

в версии 3.0.0, поскольку предполагаемые тройки добавляются в фактический граф (а не в значения по умолчанию, как раньше), можно ли каким-то образом экспортировать/извлекать фактический граф без предполагаемых троек? Большое спасибо.


person Marko.V.    schedule 25.09.2019    source источник


Ответы (1)


Да, это возможно.

1. Через Java API

Вы можете получить операторы из именованного графа http://example.org/graph1 несколькими способами. Показаны две альтернативы здесь:

 IRI graph1 = valueFactory.createIRI("http://example.org/graph1");

 try(RepositoryConnection conn = repository.getConnection()) {

     // option 1: getStatements of everything in a named graph, setting
     // includeInferred to false
     RepositoryResult<Statement> result = conn.getStatement(null, null, null, false, graph1);

    // option 2: using export with an RDFHandler (export never includes inferred triples)
    RDFHandler collector = new StatementCollector(); 
    conn.export(graph1, collector);
 }

2. Через RDF4J Workbench

Самый простой способ сделать это в рабочей среде — использовать запрос SPARQL CONSTRUCT:

construct from <http://example.org/graph1> where { ?s ?p ?o }

Перед нажатием «Выполнить» убедитесь, что опция «включить предполагаемые операторы» не отмечена. Затем на экране результатов запроса выберите предпочтительный формат загрузки и нажмите «Загрузить».

person Jeen Broekstra    schedule 26.09.2019
comment
Большое спасибо. Я использую query=construct из ‹example.org/graph1›, где { ?s ?p ?o } с выводом =false для RDF4j Rest API. - person Marko.V.; 26.09.2019