1636
правок
Denis.s (обсуждение | вклад) Нет описания правки |
Denis.s (обсуждение | вклад) Нет описания правки |
||
Строка 23: | Строка 23: | ||
=== Выбор исходной базы данных === | === Выбор исходной базы данных === | ||
[[Файл:СССЧ_1.png|thumb|500px|right|Фрагмент Системной схемы старения человека. Узлы диаграммы и связи между узлами имеют разные типы, это показано различиями в их закраске. При клике мышкой на узле появляется всплывающее окно с более подробной информацией по выбранному узлу]] | |||
В качестве компактного, но актуального источника фактов я выбрал [Системную схему старения человека (СССЧ)](http://sciencevsaging.org/). СССЧ представляет из себя диаграмму, где в графическом виде показано, как в организме человека связаны различные патологические процессы, ведущие к старению и смерти. | В качестве компактного, но актуального источника фактов я выбрал [Системную схему старения человека (СССЧ)](http://sciencevsaging.org/). СССЧ представляет из себя диаграмму, где в графическом виде показано, как в организме человека связаны различные патологические процессы, ведущие к старению и смерти. | ||
В графической диаграмме, как таковой, уже содержится информация о сущностях и их взаимосвязях. Однако визуальное представление дополнительно к своим достоинствам имеет и ряд недостатков. Например, такую диаграмму не так легко редактировать, сохранять историю изменений и версии, а также разбивать работу над схемой на несколько веток. Еще сложнее соединять результаты независимой работы из разных веток, по аналогии с практиками, принятыми в разработке программного обеспечения. Расширение схемы, добавление на нее новых типов данных, таких как ссылки на соответствующие исследования, также требует большого количества работы | В графической диаграмме, как таковой, уже содержится информация о сущностях и их взаимосвязях. Однако визуальное представление дополнительно к своим достоинствам имеет и ряд недостатков. Например, такую диаграмму не так легко редактировать, сохранять историю изменений и версии, а также разбивать работу над схемой на несколько веток. Еще сложнее соединять результаты независимой работы из разных веток, по аналогии с практиками, принятыми в разработке программного обеспечения. Расширение схемы, добавление на нее новых типов данных, таких как ссылки на соответствующие исследования, также требует большого количества работы | ||
Строка 57: | Строка 57: | ||
Работа с форматом Tabtree проводилась в том же редакторе кода Atom, где мною специально под данный формат был создан [плагин для подсветки синтаксиса](https://github.com/prozion/language-tabtree), делающий работу с кодом онтологий и графов знаний еще более удобной. | Работа с форматом Tabtree проводилась в том же редакторе кода Atom, где мною специально под данный формат был создан [плагин для подсветки синтаксиса](https://github.com/prozion/language-tabtree), делающий работу с кодом онтологий и графов знаний еще более удобной. | ||
[[Файл:tabtree_1.png|thumb| | [[Файл:tabtree_1.png|thumb|500px|right|Пример кода Tabtree с подсветкой синтаксиса в редакторе Atom. Файл онтологии Схемы старения]] | ||
Запуск кода чтения и преобразования CSV в Tabtree, а затем в RDF/Turtle производился просто из линукс-консоли c загруженной REPL-сессией Clojure проекта. | Запуск кода чтения и преобразования CSV в Tabtree, а затем в RDF/Turtle производился просто из линукс-консоли c загруженной REPL-сессией Clojure проекта. | ||
Строка 75: | Строка 75: | ||
* классификация по уровню системы, на которой мы можем локализовать патологический процесс. | * классификация по уровню системы, на которой мы можем локализовать патологический процесс. | ||
[[Файл:classification_by_pathology_level.png|thumb| | [[Файл:classification_by_pathology_level.png|thumb|500px|right|Классификация по уровню системы, как она задана в файле онтологии]] | ||
=== Пример работы с графом знаний === | === Пример работы с графом знаний === | ||
Строка 91: | Строка 91: | ||
К сожалению, Webprotege не позволяет делать запросы к графу знаний. Для этого следует воспользоваться другим бесплатным приложением, [https://www.ontotext.com/products/graphdb/graphdb-free/ GraphDB] | К сожалению, Webprotege не позволяет делать запросы к графу знаний. Для этого следует воспользоваться другим бесплатным приложением, [https://www.ontotext.com/products/graphdb/graphdb-free/ GraphDB] | ||
[[Файл:graphdb_3.png|thumb| | [[Файл:graphdb_3.png|thumb|500px|right|Интерфейс GraphDB, доступный через браузер]] | ||
GraphDB устанавливается локально на компьютере и предоставляет доступ к своему пользовательскому интерфейсу через браузер, запуская локальный сервер (localhost). Но при необходимости командной работы, возможно настроить доступ к одному и тому же графу знаний через интернет. Я сделал это на своем арендуемом сервере VDS (Virtual Dedicated Server) на котором имеется операционная система Linux Ubuntu с возможностью установки любых приложений. Доступ к интефейсу работает по адресу https://demo.denis-shirshov.ru/graphdb. Там можно проверить изложенные далее примеры или составить собственные SPARQL запросы к графу знаний СССЧ. | GraphDB устанавливается локально на компьютере и предоставляет доступ к своему пользовательскому интерфейсу через браузер, запуская локальный сервер (localhost). Но при необходимости командной работы, возможно настроить доступ к одному и тому же графу знаний через интернет. Я сделал это на своем арендуемом сервере VDS (Virtual Dedicated Server) на котором имеется операционная система Linux Ubuntu с возможностью установки любых приложений. Доступ к интефейсу работает по адресу https://demo.denis-shirshov.ru/graphdb. Там можно проверить изложенные далее примеры или составить собственные SPARQL запросы к графу знаний СССЧ. | ||
Строка 99: | Строка 99: | ||
Допустим, нужно найти все переходы, где начальный и конечный процессы принадлежат различным системам организма и при этом оба они происходят на тканевом уровне. Вот как это будет выглядеть в интерфейсе GraphDB | Допустим, нужно найти все переходы, где начальный и конечный процессы принадлежат различным системам организма и при этом оба они происходят на тканевом уровне. Вот как это будет выглядеть в интерфейсе GraphDB | ||
[[Файл:graphdb_1.png|thumb| | [[Файл:graphdb_1.png|thumb|500px|right|Интерфейс ввода SPARQL запросов в приложении GraphDB: Слева располагается панель редактора SPARQL с развитым функционалом редактирования и сохранения запросов, что существенно превосходит возможности "классики жанра" – окна редактирования SPARQL в редакторе онтологий Protege (десктопная версия). Справа находится панель с результатом запроса в виде таблицы. Колонки таблицы задаются в самом запросе]] | ||
Как видно, на данный запрос нашлось три перехода. Посмотрим теперь сколько переходов будет если мы потребуем не точного совпадения по тканевому уровню, а лишь ограничим локализацию тканевым уровнем. То есть также попадут процессы, соответствующие клеточному, ядерному и т.д. уровням, то есть уровням более локальным, нежели тканевой. | Как видно, на данный запрос нашлось три перехода. Посмотрим теперь сколько переходов будет если мы потребуем не точного совпадения по тканевому уровню, а лишь ограничим локализацию тканевым уровнем. То есть также попадут процессы, соответствующие клеточному, ядерному и т.д. уровням, то есть уровням более локальным, нежели тканевой. | ||
Строка 107: | Строка 107: | ||
Благодаря логическому выводу, вместо трех мы получаем уже пять результатов: | Благодаря логическому выводу, вместо трех мы получаем уже пять результатов: | ||
[[Файл:graphdb_2.png|thumb| | [[Файл:graphdb_2.png|thumb|500px|right|Запрос с включением логически выведенных данных в результат. Переключение в этот режим происходит при клике на иконке с двойной стрелкой в правой части панели редактора SPARQL запрос]]<br /> | ||
===Приложения для работы с графами знаний=== | ===Приложения для работы с графами знаний=== |