ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-28 02:59:38  阅读:278  来源: 互联网

标签:json-ld rdf json python


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

考虑下面的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有