Как стать автором
Обновить

Комментарии 9

С онтологиями также удобно работать на Python, велика вероятность, что пользователь этот язык знает. Неплохой обзор инструментария есть тут: https://github.com/pysemtec/semantic-python-overview

Вопрос, который ставит в тупик лингвистов: описание языка на языке. А может онтология описать свою собственую модель, схему или принцип своими же средствами?

Это немного другая тема... Есть такая теория: https://thebrain.mcgill.ca/flash/capsules/outil_rouge06.html - универсальная грамматика Ноама Хомски. Как раз на предмет некоего общего базиса любого языка, а значит и способа (в теории) описать абсолютно любую предметную область.

Но эта тема отдельной публикации заслуживает - там много всего интересного.

Плохо я ... воспринимаю Хомского. Если "универсальная грамматика" существует, то чертеж и нарратив равнофункциональны, они могут заменить друг друга. Пока что-то сложно ожидать такой перспективы.

Но помимо общих возражений на вашу оценку возможны и частные. То есть мы имеем некую предлагаемую здесь онтологию и помимо нее - "универсальную грамматику Хомского", и где и то, и другое есть средства. И тогда "универсальная грамматика" - явно лучшее средство, чем данная онтология, грамматика может описать эту онтологию, а сама онтология описать себя не может. Следовательно для данной онтологии ее "неспособность описать саму себя" - такая ее характеристика. Если у данной онтологии появляется такая характеристика, то - что нам позволяет ее назначить, из чего она вытекает? В моем понимании, напротив, "в своей системе координат" эта онтология вполне достаточна для описания самой себя.

Несколько лет назад мне довелось плотно поработать с онтологиями в фрэймфорке W3 Consortium (key words: W3Consortium, RDF, OWL, etc.).

Protege в этом домене наиболее известный и популярный, поскольку опенсорстный и стоит на плечах реальных гигантов и законодателей мод в сфере инженерии знаний. Но и далеко не единственный IDE. Есть весьма крутые коммерческие, но они, как правило, идут в компекте с недешевыми консультационными услугами.

В плане языка описания всего здесь есть "OWL" -- XML-family язык, в котором можно описать все, что угодно. Поскольку это все XML (surprise! У всего этого фрэймворка те же "родители", что и у http и XML), любой документв OWL может быть транслирован без потерь во что-нить более удобочитаемое, на чем и писать, соответственно легче, если вам читать/писать код естественнее, чем кликать мышкой в GUI.

Причем, все взаимозаменяемые форматы -- текстовые, поддерживающие известные парадигмы или являющиеся расщирениями популярных некоторых специфических формтов описания данных. Например jason-ld, SPARQL, turtle и т.д.
Protege между этими форматам все легко конвертирует.

К сожалению, проект, в котором я повстречался с онтологиями (RDF, OWL, W3, Protege и иже с ними) безвеменно скончался на втором году (из планировавшихся 5), в моем воспаленном мозгу этот опыт оставил глубокий след и я очень надеюсь еще к нему вернуться.

В моем проекте 800+ классов и 6000+ свойств.
Все это чудо в Turtle и управляется через Protege.
TTL файл на 15мб.
На простых операциях после клика жду минуту и более на отработку Protege.
Отслеживание изменений через Diff невозможно - Protege каждый раз генерит новую последовательность триплетов.
Из-за этого редактировать TTL может только один разработчик в один момент времени ...

Сплю и вижу, как это недоразумение перевести в реляционную базу с сделать manageable и надежный web-UI с многопользовательским доступом.

Ребята, с т.з. scalability - отнологии в триплетах и работа через Protege - отстой, а TTL для хранение - недоразумение архитектора схемы данных.

Какие-то СУБД специализированные пробовал? Хорошее сравнение: https://arxiv.org/pdf/1910.09017.pdf

Благодраю за линк. Серьезный труд.

Да, делали анализ решений на рынке, пробовали специализированную СУБД.
Работает шустро, и это замечательно.
Проблема - нет специализированных инструментов для работы со схемой графовой бд.
А базка без редактора схемы, заточенного на задачу - полумера.

По сути, в нашем случае схему графовой базы можно описать как:
1. классы - classes
2. свойства - properties
3. свойства классов - class properties (subset №2 в №1)
4. связи между классами - relations

Все!
А раз так, почему не описать в шустрой и надежной RDBMS?

Схема инструмента получилась простой и понятной.
Работа на несколько порядков шустре.
Масштабирумость неограниченная.
Например, с переходом на RDBMS решаются давно "висящие" задачи:
- datasets онтологии (наборы №№1, 3 из списка выше) для разных API сервисов
- маппинг на эти самые datasets (интеграция через API)

Turtle задуман как человеко-читаемый формат, редактирование возможно в любом современном текстовом редакторе. Protégé давно устарел, как морально, так и фактически. Есть попытка воскресить его онлайн (Web-Protégé), но она пока не пользуется популярностью. Реляционка и онтология — это, как говорится, две большие разницы, у них разные задачи, разный тулчейн (см. http://www.cs.ox.ac.uk/ian.horrocks/Seminars/download/onto-db.ppt).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации