0

我是三胞胎世界的新手 :-) 我正在尝试使用 DotNetRDF 将 SOLR 搜索结果加载到使用 DotNetRDF 的图形中。

我从中获取数据的 URL 是:

https://nvv.entryscape.net/store/search?type=solr&query=rdfType:https%5C%3A%2F%2Fnvv.entryscape.net%2Fns%2FDocument+AND+context:https%5C%3A%2F% 2Fnvv.entryscape.net%2Fstore%2F1

格式应该是“RDF/JSON”。无论我尝试什么解析器或尝试什么 - 我只会得到“无效的 URI”。已尝试从 URL 加载,还尝试将结果下载到文件并从文件加载,同样的错误。

我正在使用 VS2017 并且已经“nugetted”了最新版本的 DotNetRdf。

请帮助我,我错过了什么?

问候,

拉斯·西登

4

1 回答 1

2

看起来该端点返回的 JSON 不是有效的 RDF/JSON。它似乎确实包含一些 RDF/JSON 片段,但它们被包裹在另一个 JSON 结构中。dotNetRDF 中的 RDFJSONParser 要求您的整个 JSON 文档是一个单一的、有效的 RDF/JSON 块。

at 的值resource.children[*].metadata是一个 RDF/JSON 对象。的值也是如此resource.children[*].info。其余的是使用无效 IRI 的属性名称的包装器(因此出现解析器错误消息)。

不幸的是,没有简单的方法可以跳过 JSON 文档的其余部分,只解析有效位。为此,您需要使用 Newtonsoft.JSON 加载 JSON 文档,然后将您感兴趣的每个有效 RDF/JSON 对象序列化为字符串,并使用 RDFJSONParser 的 Load(IGraph, TextReader) 或 Parse(IRdfHandler, TextReader) 加载它方法。

于 2017-10-26T20:45:02.183 回答