Может ли Джена RdfDataMgr написать черепаху с набранными литералами - PullRequest
0 голосов
/ 13 апреля 2020

Есть ли способ получить Jena RdfDataMgr write () для поддержки типов литералов.

Вот мой код, который вставляет тройку с напечатанным литералом, и они сбрасывают TURTLE:

String insertQuery = "prefix XMLSchema:<http://www.w3.org/2001/XMLSchema#> " +
            "INSERT DATA " + 
            "  { GRAPH <http://name>   { " + 
            "        <#book1> <#name> \"Name\"^^XMLSchema:string  " + 
            "      }  } ";


    org.apache.jena.query.Dataset ds = DatasetFactory.createTxnMem();
    ds.begin(ReadWrite.WRITE);
    try {
        UpdateAction.parseExecute(insertQuery, ds);
    } finally { ds.commit(); ds.end() ; }

    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    RDFDataMgr.write(stream, ds.getNamedModel("http://name"), RDFFormat.TURTLE_PRETTY);
    String str = stream.toString();
    System.out.println(str);

Это печатает:

 <file:///C:/Users/200001934/workspace-current/sparqlgraph/semTK/sparqlGraphLibrary/#book1>
    <file:///C:/Users/200001934/workspace-current/sparqlgraph/semTK/sparqlGraphLibrary/#name>
            "Name" .

Но я ищу Черепаху с типом "Имя" . Что-то вроде:

<file:///C:/Users/200001934/workspace-current/sparqlgraph/semTK/sparqlGraphLibrary/#book1>
    <file:///C:/Users/200001934/workspace-current/sparqlgraph/semTK/sparqlGraphLibrary/#name>
            "Name"^^<http://www.w3.org/2001/XMLSchema#string> .

Существует ли другой формат RDFFormat или параметр в RDFDataMgr, или я упускаю более фундаментальную концепцию?

1 Ответ

2 голосов
/ 13 апреля 2020

В RDF 1.1 "abc" - это точно такой же литерал RDF, что и "abc"^^xsd:string. Это два способа написания одного и того же RDFTerm. Форма без - ^^ является предпочтительной, как указано в RDF 1.1 spe c. Это верно и для SPARQL - ^^XMLSchema:string не требуется.

...