Jena RdfDataMgr 可以用类型文字写海龟吗

Can Jena RdfDataMgr write turtle with typed literals

有没有办法让 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" .

但我正在寻找保留了 "Name" 类型的 Turtle。类似于:

<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 中的设置,或者我是否遗漏了更基本的概念?

在 RDF 1.1 中,"abc""abc"^^xsd:string 完全相同。它们是编写相同 RDFTerm 的两种方式。没有 -^^ 形式是首选,如 RDF 1.1 规范中所述。在 SPARQL 中也是如此 - ^^XMLSchema:string 是不必要的。