Riotexception:RDF/XML/pretty 没有数据集作者

Riotexception: No dataset writer for RDF/XML/pretty

我正在尝试将 jena 数据集写入 OutputStream。我希望它被序列化为 RDF/XML.

使用 jena 的 RDFDataMgr.write 方法但抛出异常:

Dataset ds=RDFDataMgr.loadDataset("newFile.jsonld") ;
RDFDataMgr.write(System.out, ds, RDFFormat.RDFXML) ;
org.apache.jena.riot.RiotException: No dataset writer for RDF/XML/pretty
    at org.apache.jena.riot.RDFDataMgr.createDatasetWriter$(RDFDataMgr.java:1312)
    at org.apache.jena.riot.RDFDataMgr.write$(RDFDataMgr.java:1330)
    at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1205)
    at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1151)
    at com.ontologycentral.ldspider.http.LookupThread.run(LookupThread.java:166)

任何人都可以解释一下吗?

一般情况下,您不能使用 RDF/XML 编写数据集:RDF/XML 可以编写图形,而不是包含许多图形的数据集。

两者都

  • 限制自己写一个单独的图表,例如 RDFDataMgr.write(System.out, ds.getDefaultModel(), RDFFormat.RDFXML) ;ds.getNamedModel(...model name...)

  • 使用可以编写数据集的格式,例如RDFFormat.TRIGRDFFormat.NQUADS

前者会给你 RDF/XML,但代价是丢失信息。后者会保留原始数据。