Импорт SNOMED CT в Neo4J
Мне нужно импортировать онтологию SNOMED CT в графическую базу данных, в данном случае Neo4J, но в конечном итоге это может быть другой выбор.
Однако я не смог найти четкого описания SNOMED CT, лежащего в основе реляционной модели данных, для достижения этой цели. Или, по крайней мере, упрощенные представления SQL, которые раскрывают взаимосвязь сущностей таким образом, который может быть сопоставлен с базой данных графа.
Я был бы очень признателен за любые рекомендации или предыдущий опыт в этом вопросе.
4 ответа
Непосредственная попытка сериализации реляционной модели данных, вероятно, будет довольно сложной и отведет вас еще дальше от вашей цели.
Стоит отметить, что данные SNOMED уже доступны в формате RDF. Таким образом, вы получите структуру графа для "бесплатно".
Например, этот проект предоставляет данные в формате RDF, и поместить данные RDF в график довольно просто, независимо от того, какой вы выбрали Titan или Neo4j.
Примечание:
Мой коллега фактически работал над импортом данных SNOMED в Grakn Graph, семантическую систему графов, над которой мы оба работаем. Если вы заинтересованы, вы можете проверить его работу здесь. Grakn - это семантическое графическое решение, которое работает поверх Titan.
SNOMED может быть загружен в MySQL с помощью UMLS (унифицированной системы медицинского языка), выпущенной NIH. После загрузки таблица MRREL содержит все отношения между узлами SNOMED. Если вы хотите загрузить его сразу в Neo4j, вы можете полностью пропустить шаг MySQL и работать непосредственно с файлами UMLS RRF. Формат документации RRF не велик, но файлы легко разбираются в табличном виде.
На самом деле есть три таблицы, концепции, описания и отношения
Вы найдете их описание здесь: https://confluence.ihtsdotools.org/display/DOCTIG/3.1.+Components
Наиболее важными являются отношения между отношениями и понятиями, а также описаниями и понятиями.
Если вы ищете образец того, как смоделировать Концепции, Описания и Отношения в базе данных Graph. У меня есть пример проекта в Github, который может загрузить данные Snomed в базу данных Neo4j.
https://github.com/pradeepvemulakonda/Snomed
Прежде чем углубляться в детали реализации, я бы предложил попробовать следующий браузер данных Snomed по адресу
http://ontoserver.csiro.au/shrimp/
Как только вы почувствуете концепции и отношения, вы сможете приступить к реализации. Вы можете использовать следующую суть, чтобы понять, как вы можете запрашивать загруженные концепции и отношения в Neo4j.
https://neo4j.com/graphgist/95f4f165-0172-4b3d-981b-edcbab2e0a4b