我需要将 SNOMED CT 本体导入图形数据库,在本例中为 Neo4J,但最终可能是另一种选择。
但是,我找不到 SNOMED CT 底层关系数据模型的清晰描述,以实现这一点。或者至少是简化的 SQL 视图,以可以映射到图形数据库的方式公开实体关系。
我非常感谢任何有关此事的指导或以前的经验。
直接尝试序列化关系数据模型可能会非常困难,并且会让您远离目标。
值得注意的是,SNOMED 数据实际上已经以 RDF 格式提供。这样你就可以“免费”获得一个图形结构。
例如this项目提供RDF格式的数据,无论您选择Titan还是Neo4j,将RDF数据放入图表中都非常简单。
旁注:
我的一位同事实际上致力于将 SNOMED 数据导入到 Grakn Graph,这是我们共同开发的语义图系统。如果您有兴趣,可以查看他的作品这里。 Grakn 是一个运行在 Titan 之上的语义图解决方案。
如果您正在寻找有关如何将概念、描述和关系建模到图形数据库中的示例。我在 Github 上有一个示例项目,可以将 Snomed 数据上传到 Neo4j 数据库中。
https://github.com/pradeepvemulakonda/Snomed
在了解实施细节之前,我建议您尝试以下 Snomed 数据浏览器:
http://ontoserver.csiro.au/shrimp/
一旦您了解了概念和关系,您就可以完成实施。您可以使用以下要点来了解如何在 Neo4j 中查询上传的概念和关系。
实际上有三个表,概念、描述和关系
您会在这里找到它们的描述: https://confluence.ihtsdotools.org/display/DOCTIG/3.1.+Components
最重要的是关系和概念以及描述和概念之间的关系。
SNOMED International 有一个项目,用于将 SNOMED CT 加载到各种类型的数据库中,包括 Neo4J,此处:https://github.com/IHTSDO/snomed-database-loader