在Jena中加载json-ld时如何覆盖@context

时间:2017-01-05 21:04:52

标签: jena json-ld hl7-fhir

我正在使用Jena加载JSON-LD文档:

  Model mj = RDFDataMgr.loadModel([filename]);

正在加载的实际内容位于:http://build.fhir.org/account-example.jsonld

Jena下线并解析上下文,并返回一个错误(LOADING_REMOTE_CONTEXT_FAILED - 对Jena代码中实际原因的可爱抑制:-()。但我还是需要覆盖上下文,并使用不同的源,因为我我正在构建将在build.fhir.org上发布的内容,我需要使用我的本地版本。我无法看到如何覆盖上下文解析

或者,我可以使用此处记录的加载方法:https://github.com/jsonld-java/jsonld-java#code-example - 但我不知道如何从那里获取Jena图(我还没弄清楚如何使自定义解析工作在我的Eclipse上下文中))

如何使用代码中定义的上下文来获取Jena图?

1 个答案:

答案 0 :(得分:0)

  1. 我认为Jena devs订阅了相关的标签RSS流。他们可能会对LOADING_REMOTE_CONTEXT_FAILED错误的清晰度进行权衡。但对我来说似乎很清楚。

  2. 为了覆盖上下文,您可以使用read(Model model, String uri, Context context)方法。 ModelFactory.createDefaultModel()将创建一个Model的intance,您可以将其作为第一个参数传递。请在此处查看更多示例:https://github.com/apache/jena/tree/master/jena-arq/src-examples/arq/examples/riot

  3. 替代库不兼容Jena(也不是RDF4J,这让我觉得相当愚蠢),所以没有简单的方法可以将它与Jena相关的代码一起使用。

  4. 最后,您提供了获取模型的代码示例,但现在提到了一个图表 - 还有一种方法:read(Graph graph, String uri, Context context)