如何配置 RDFWriter 以在文字中显式写入数据类型?
How to configure RDFWriter to explicit write data type in literals?
我正在使用 RDFWriter
保存 TTL 文件。
如何显式保存文字及其数据类型?
例如,我想要 "5.36289"^^xsd:float
但我得到的却是 5.36289E0
。
我对字符串有同样的问题,但我发现 BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL
属性 解决了。我找不到其他数据类型的任何类似配置。
我正在使用方法 Values.literal
创建文字。
这是源代码:
FileOutputStream out = new FileOutputStream(ttlOutputFile);
RDFWriter writer = Rio.createWriter(RDFFormat.TURTLE, out);
final WriterConfig config = writer.getWriterConfig();
config.set(BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL, false);
writer.startRDF();
for (Statement st : model) {
writer.handleStatement(st);
}
writer.endRDF();
有一个名为 ABBREVIATE_NUMBERS
的配置设置非常有用(只有当 PRETTY_PRINT
为真时才需要使用它,这是默认值)。
final WriterConfig config = writer.getWriterConfig();
config.set(BasicWriterSettings.PRETTY_PRINT, true);
config.set(BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL, false);
config.set(TurtleWriterSettings.ABBREVIATE_NUMBERS, false);
我正在使用 RDFWriter
保存 TTL 文件。
如何显式保存文字及其数据类型?
例如,我想要 "5.36289"^^xsd:float
但我得到的却是 5.36289E0
。
我对字符串有同样的问题,但我发现 BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL
属性 解决了。我找不到其他数据类型的任何类似配置。
我正在使用方法 Values.literal
创建文字。
这是源代码:
FileOutputStream out = new FileOutputStream(ttlOutputFile);
RDFWriter writer = Rio.createWriter(RDFFormat.TURTLE, out);
final WriterConfig config = writer.getWriterConfig();
config.set(BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL, false);
writer.startRDF();
for (Statement st : model) {
writer.handleStatement(st);
}
writer.endRDF();
有一个名为 ABBREVIATE_NUMBERS
的配置设置非常有用(只有当 PRETTY_PRINT
为真时才需要使用它,这是默认值)。
final WriterConfig config = writer.getWriterConfig();
config.set(BasicWriterSettings.PRETTY_PRINT, true);
config.set(BasicWriterSettings.XSD_STRING_TO_PLAIN_LITERAL, false);
config.set(TurtleWriterSettings.ABBREVIATE_NUMBERS, false);