【问题标题】:load rdf/json from URL using DotNetRDF使用 DotNetRDF 从 URL 加载 rdf/json
【发布时间】:2017-10-26 19:25:44
【问题描述】:

我是三胞胎世界的新手 :-) 我正在尝试使用 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。

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

问候,

拉尔斯·西登

【问题讨论】:

    标签: json solr rdf dotnetrdf


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!我得出了同样的结论 :-( 唉,当我昨天尝试的时候 - 我仍然无法将片段加载到图形对象中。我认为我的下一步将是从“JsonRdfJunk”中剪切和粘贴部分和看看我能不能得到一些要解析的部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多