Преобразование Системной схемы старения человека в граф знаний: различия между версиями

 
(не показаны 4 промежуточные версии этого же участника)
Строка 50: Строка 50:
Итак, задача сводится к тому, чтобы преобразовать данные в формате CSV в формат RDF/Turtle, и дополнительное описав на OWL минимальную онтологию, соответствующую семантике узлов и связей на диаграмме.
Итак, задача сводится к тому, чтобы преобразовать данные в формате CSV в формат RDF/Turtle, и дополнительное описав на OWL минимальную онтологию, соответствующую семантике узлов и связей на диаграмме.


Как язык программирования я использовал язык [Clojure](https://clojure.org/), кодирование производил в редакторе кода [Atom](https://atom.io/). Clojure удобен тем, что тесно интегрирован с экосистемой языка Java, на котором имеется богатая коллекция библиотек и приложений, работающих с RDF графами. Помимо этого, Clojure сам по себе является элегантным и эффективным языком, поддерживающим функциональную парадигму программирования, которая ускоряет время разработки и идеально подходит для задач преобразования данных.
Как язык программирования я использовал язык [https://clojure.org/ Clojure], кодирование производил в редакторе кода [https://atom.io/ Atom]. Clojure удобен тем, что тесно интегрирован с экосистемой языка Java, на котором имеется богатая коллекция библиотек и приложений, работающих с RDF графами. Помимо этого, Clojure сам по себе является элегантным и эффективным языком, поддерживающим функциональную парадигму программирования, которая ускоряет время разработки и идеально подходит для задач преобразования данных.


Помимо непосредственно программирования, выяснилось, что хоть формат Turtle и легко читаем, кодировать на нем онтологию и редактировать части графа знаний не очень удобно. Поэтому я дополнительно использовал промежуточный формат Tabtree. Это мой собственный изобретенный формат для записи графов знаний. Он позволяет еще более компактно сериализовывать графы знаний и подобно программному коду разбивать их на части.
Помимо непосредственно программирования, выяснилось, что хоть формат Turtle и легко читаем, кодировать на нем онтологию и редактировать части графа знаний не очень удобно. Поэтому я дополнительно использовал промежуточный формат Tabtree. Это мой собственный изобретенный формат для записи графов знаний. Он позволяет еще более компактно сериализовывать графы знаний и подобно программному коду разбивать их на части.
Строка 58: Строка 58:
[[Файл:repl_1.png|thumb|300px|right|REPL (Read-Eval-Print Loop) - интерактивная среда программирования с полным доступом к разрабатываемому коду, его переменным и функциям]]
[[Файл:repl_1.png|thumb|300px|right|REPL (Read-Eval-Print Loop) - интерактивная среда программирования с полным доступом к разрабатываемому коду, его переменным и функциям]]


Работа с форматом Tabtree проводилась в том же редакторе кода Atom, где мною специально под данный формат был создан [плагин для подсветки синтаксиса](https://github.com/prozion/language-tabtree), делающий работу с кодом онтологий и графов знаний еще более удобной.
Работа с форматом Tabtree проводилась в том же редакторе кода Atom, где мною специально под данный формат был создан [https://github.com/prozion/language-tabtree плагин для подсветки синтаксиса], делающий работу с кодом онтологий и графов знаний еще более удобной.


Запуск кода чтения и преобразования CSV в Tabtree, а затем в RDF/Turtle производился просто из линукс-консоли c загруженной REPL-сессией Clojure проекта.
Запуск кода чтения и преобразования CSV в Tabtree, а затем в RDF/Turtle производился просто из линукс-консоли c загруженной REPL-сессией Clojure проекта.


`(build-hasd)` *– головная функция, которая производит все действия по созданию RDF/Turtle файла через вызов других функций. Создана специально для удобства вызова из REPL сессии.*
'''(build-hasd)''' – головная функция, которая производит все действия по созданию RDF/Turtle файла через вызов других функций. Создана специально для удобства вызова из REPL сессии.


=== Расширение СССЧ ===
=== Расширение СССЧ ===
Строка 71: Строка 71:


* классификация по системам организма
* классификация по системам организма
* классификация по отношению к девяти ключевым процессам старения согласно [статье Дарьи Халтуриной и соавторов](https://doi.org/10.1016/j.mad.2020.111230)
* классификация по отношению к девяти ключевым процессам старения согласно [https://doi.org/10.1016/j.mad.2020.111230 статье Дарьи Халтуриной и соавторов]
* классификация по уровню системы, на которой мы можем локализовать патологический процесс.
* классификация по уровню системы, на которой мы можем локализовать патологический процесс.


Строка 80: Строка 80:
==== WebProtege ====
==== WebProtege ====


Получившийся файл Turtle, в котором хранится граф знаний Схемы старения можно загрузить в онлайн-редактор онтологий [WebProtege](https://webprotege.stanford.edu/#projects/513cd457-cf09-42e3-a3b6-3b4c1cdd1ad3/edit/Classes).
Получившийся файл Turtle, в котором хранится граф знаний Схемы старения можно загрузить в онлайн-редактор онтологий [[WebProtege]] ([https://webprotege.stanford.edu/#projects/513cd457-cf09-42e3-a3b6-3b4c1cdd1ad3/edit/Classes Граф знаний в WebProtege])


Данный редактор способен отображать списки элементов графа и классы онтологии, и даже показывать графически части графа знаний, как видно ниже на скриншоте.
Данный редактор способен отображать списки элементов графа и классы онтологии, и даже показывать графически части графа знаний, как видно ниже на скриншоте.