作為一個全領域的知識圖譜,首先芋哭,需要考慮每一個領域的實體屬性都是有區(qū)別的沉衣,例如,人物類的實體有身高减牺、體重這些屬性豌习,而公司機構類的實體就沒有這些屬性。其次拔疚,隨著時間的推移肥隆,某些類型的實體還需要擴充新的屬性等等。傳統(tǒng)的關系型數(shù)據(jù)庫在解決這些問題時稚失,明顯比較棘手栋艳。
經(jīng)過一番選型,最后確定使用MongoDB作為存儲知識實體的數(shù)據(jù)庫句各。MongoDB基于文檔存儲吸占,文檔采用JSON格式。實體數(shù)據(jù)入庫前需要轉成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 最終選這個
基于該工具件蚕,實現(xiàn)了一個在線版的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/#/ #根據(jù)一段json文件,生成json-schema
這兩個工具思路不同,應用場景也不同骤坐。
其他:
- array 的 tuple validation 是否有必要?
是否用object代替array的tuple更合適些? - object的dependencies下愈、pattern properties?