编程语言
首页 > 编程语言> > python-从JSON到JSON-LD而不更改源

python-从JSON到JSON-LD而不更改源

作者:互联网

我的问题有“重复项”,但没有回答我的问题.

考虑下面的JSON-LD示例,如第6.13节-http://www.w3.org/TR/json-ld/中的命名图所述:

{
    "@context": {
    "generatedAt": {
    "@id": "http://www.w3.org/ns/prov#generatedAtTime",
    "@type": "http://www.w3.org/2001/XMLSchema#date"
    },
    "Person": "http://xmlns.com/foaf/0.1/Person",
    "name": "http://xmlns.com/foaf/0.1/name",
    "knows": "http://xmlns.com/foaf/0.1/knows"
    },
    "@id": "http://example.org/graphs/73",
    "generatedAt": "2012-04-09",
    "@graph":
             [
                  {
                   "@id": "http://manu.sporny.org/about#manu",
                   "@type": "Person",
                   "name": "Manu Sporny",
                   "knows": "http://greggkellogg.net/foaf#me"
                   },
                   {
                   "@id": "http://greggkellogg.net/foaf#me",
                   "@type": "Person",
                   "name": "Gregg Kellogg",
                   "knows": "http://manu.sporny.org/about#manu"
                   }
             ]
}

题:

如果仅从没有语义层的JSON部分开始怎么办:

[{
  "name": "Manu Sporny",
  "knows": "http://greggkellogg.net/foaf#me"
},
{
  "name": "Gregg Kellogg",
  "knows": "http://manu.sporny.org/about#manu"
}]

然后使用http链接标头或rdflib解析从单独的文件或位置链接@context,那么在文档的其余部分中仍然没有@id和@type.将那些缺少的键值注入json字符串不是一个干净的选择.想法是从JSON转换为JSON-LD,而无需更改原始JSON部分.

我用它定义三重主题的方式,必须使用@id映射到IRI. JSON数据具有@id键值的可能性很小.那么这是否意味着如果不先添加密钥,就无法将所有JSON文件解析为JSON-LD?我想知道他们是如何做到的.
有人有主意向我指出正确的方向吗?
谢谢.

解决方法:

不,很遗憾,这是不可能的.但是,存在正是由于这个原因而创建的库和工具. JSON-LD Macros就是这样的图书馆.它允许JSON对象的声明性转换,以使其可用作JSON-LD.因此,有效地,您所需要的只是在现成的JSON-LD处理器之上的非常薄的一层.

标签:json-ld,rdf,json,python
来源: https://codeday.me/bug/20191028/1949317.html