我是三胞胎世界的新手 :-) 我正在尝试使用 DotNetRDF 将 SOLR 搜索结果加载到使用 DotNetRDF 的图形中。
我从中获取数据的 URL 是:
格式应该是“RDF/JSON”。无论我尝试什么解析器或尝试什么 - 我只会得到“无效的 URI”。已尝试从 URL 加载,还尝试将结果下载到文件并从文件加载,同样的错误。
我正在使用 VS2017 并且已经“nugetted”了最新版本的 DotNetRdf。
请帮助我,我错过了什么?
问候,
拉斯·西登
我是三胞胎世界的新手 :-) 我正在尝试使用 DotNetRDF 将 SOLR 搜索结果加载到使用 DotNetRDF 的图形中。
我从中获取数据的 URL 是:
格式应该是“RDF/JSON”。无论我尝试什么解析器或尝试什么 - 我只会得到“无效的 URI”。已尝试从 URL 加载,还尝试将结果下载到文件并从文件加载,同样的错误。
我正在使用 VS2017 并且已经“nugetted”了最新版本的 DotNetRdf。
请帮助我,我错过了什么?
问候,
拉斯·西登
看起来该端点返回的 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) 加载它方法。