JSON-Schema在知识图谱中的作用

作为一个全领域的知识图谱,首先,需要考虑每一个领域的实体属性都是有区别的,例如,人物类的实体有身高、体重这些属性,而公司机构类的实体就没有这些属性。其次,随着时间的推移,某些类型的实体还需要扩充新的属性等等。传统的关系型数据库在解决这些问题时,明显比较棘手。

经过一番选型,最后确定使用MongoDB作为存储知识实体的数据库。MongoDB基于文档存储,文档采用JSON格式。实体数据入库前需要转成JSON文档,并对文档格式进行校验。而针对JSON进行校验的方案就是JSON-Schema。

JSON-Schema入门:
http://spacetelescope.github.io/understanding-json-schema/

JSON-Schema js版本的校验工具:
https://github.com/ebdrup/json-schema-benchmark, #基准测试报告
https://github.com/epoberezkin/ajv 最终选这个
基于该工具,实现了一个在线版的json schema校验工具:
http://www.kgopen.com/json-validate

JSON-Schema python版本的校验工具:
https://github.com/Julian/jsonschema

JSON-Schema PHP版本校验:
https://github.com/geraintluff/jsv4-php

JSON-Schema编辑工具:
http://www.kgopen.com/json-schema-editor #表格型的编辑工具
http://jsonschema.net/#/ #根据一段json文件,生成json-schema
这两个工具思路不同,应用场景也不同。

其他:

  1. array 的 tuple validation 是否有必要?
    是否用object代替array的tuple更合适些?
  2. object的dependencies、pattern properties?

你可能感兴趣的:(JSON-Schema在知识图谱中的作用)