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
是不必要的。
有没有办法让 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
是不必要的。