Comments 30
Спасибо вашим дипломным руководителям доценту Д.В. Попову и А.Ф. Галямову, что поддерживают выбор интересных и перспективных тем… в отличие от 99% остальных ):
+8
Крутой диплом, если бы все были такими интересными :-)
+1
Для обработки RDF ниболее натуральный язык — Prolog :)
Еще один шаг к скайнету.
Еще один шаг к скайнету.
-3
Не пожалели, что выбрали Ruby? После полученного опыта, остались бы вы на этом языке для решения практических задач в этой области?
0
Для решения практических задач – да, безусловно. Для решения научных задач, ИИ и вообще для работы с онтологическими БЗ – основным языком пока должен быть java, т.к. там есть все инструменты, которых тут очень не хватало.
0
Уточните, пожалуйста, каких именно инструментов не хватало?
0
Ну например Sesame API изначально на Java. Jena/Jade для работы с семантиквебом и интеллектуальными агентами – очень мощные инструменты. Ризонеры, майнеры, всё на яве. В данной работе всего хватало, но ИИ/ЭС, системы которые основаны на инженерии знаний я бы стал разрабатывать исключительно на Java.
0
Можно использовать и руби и любой другой язык вместе с этими библиотеками, хотя руби не пробовал, но вот Scala отлично работает с Jena, и во многих местах скала удобней чем руби.
0
Ну может потому что Skala это все-таки JVM ориентированный язык и заточен для работы с Java-системами. У каждого – своя сфера применения. Ruby выбран как эффективный язык для быстрой разработки веб-сервисов.
0
… в более удобном для чтения/записи/хренения…
+1
Интересная тема, безусловно. Может не нашел, но где у вас реализуется логический вывод в реализованной архитектуре? sasame сам по себе не умеет извлекать новые знания из owl аксиом, разве нет?
0
Все верно, сам Sesame не умеет, но можно использовать различные бэкэнды, например bigdata.
В приложении тоже нет логического вывода (inference), просто работа с репозиторием/онтологиями и один кастомный SPARQL запрос, который можно с натяжкой считать частным случаем логического вывода.
В приложении тоже нет логического вывода (inference), просто работа с репозиторием/онтологиями и один кастомный SPARQL запрос, который можно с натяжкой считать частным случаем логического вывода.
0
Я знаю что можно, потому и спрашиваю что у вас, обычно ведь на этом акцентируют внимание.
Спасибо за ссылку на bigdata — когда делал анализ это решение не попадалось — почитаю спецификацию на досуге. Я для Sesame использую OWLIM. Он для научных и разработческих целей бесплатный, но при этом на нем можно работать с большими данными (поддерживает кластер), sparql1.1 и конечно вывод почти на всех аксиомах OWL, а так же неплохую оптимизацию хранения RDF.
Спасибо за ссылку на bigdata — когда делал анализ это решение не попадалось — почитаю спецификацию на досуге. Я для Sesame использую OWLIM. Он для научных и разработческих целей бесплатный, но при этом на нем можно работать с большими данными (поддерживает кластер), sparql1.1 и конечно вывод почти на всех аксиомах OWL, а так же неплохую оптимизацию хранения RDF.
0
Попов видимо старший, проект интересный вышел.
0
Много лет назад экспериментировал с созданием нечто подобного на Jena. Сущности в RDF/OWL были: города, вузы, записи гостевой книги. Забил в онтологию все города и вузы РФ, включил логический вывод уровня OWL DL в Jena… Java грузилась несколько минут и кушала под два гига памяти. Любое изменение онтологии подвешивало Jena на несколько минут (например, добавление записи в гостевую книгу), иногда вылетало с OutOfMemoryError. На этом мои эксперименты с «живым» логическим выводом закончились)
0
По сабжу встаёт всё тот же вопрос: а в чём сложность было сделать по «старинке» как обычное веб-приложения без SW? Неужели этот sparql-запрос сложно закодить на php/java/ruby + sql?
ЗЫ: Описание сабжа карявое, например, написано «Написаны модели, вьюхи и контроллеры» — а что именно они делают непонятно. Можно только догадываться, что это для веб-интерфейса ввода/редактирования проектов, компетенций и проч. А может и нет…
ЗЫ: Описание сабжа карявое, например, написано «Написаны модели, вьюхи и контроллеры» — а что именно они делают непонятно. Можно только догадываться, что это для веб-интерфейса ввода/редактирования проектов, компетенций и проч. А может и нет…
0
Нет никаких проблем реализовать это с помощью классического подхода, но смысл данной работы — разработать прототип и исследовать возможности SW в данной задаче. Все то же самое можно было бы сделать проще и в разы быстрее именно так как вы написали, однако в этом нет никаких инноваций.
Я описал структуру, кроме CRUD интерфейса и вывода результатов здесь ничего не подразумевается, но спасибо за критику.
Я описал структуру, кроме CRUD интерфейса и вывода результатов здесь ничего не подразумевается, но спасибо за критику.
0
Судя по комментарию выше, разница в работе не до конца раскрыта, но в ведении в предметную область хорошо показана — меньше работы. Точка хранения с поддержкой логического вывода, формализованная информация о предметной области(онтология) и многие данные «появляются» автоматически БЕЗ дополнительного программирования и лишний сложности работы. Чем сложнее задача тем существенней экономия + существенно облегчается обмен данными между системами. Практический эффект сравним в переходом от бинарного обмена к XML. Ну и в добавок большое количество данных и онтологий доступных в сети и которые надо только скачать и загрузить.
0
Как я понимаю наполнение системы предполагалось делать ручками, но все же интересно, рассматривался ли вариант работы с внешними источниками данных, например mapping RDB to RDF? Все таки на то и Semantic Web, что он обертка над разрозненными источнками данных.
0
В Sesame есть встроенный инструмент импорта в разных форматах, а также, например, при наличии нескольких таких систем возможно написание скрипта в три строчки для загрузки данных с различных источников, использующих эти онтологии.
Для RDB to RDF достаточно просто производить render моделей, использующих RDB, в ntriples (или любом другом rdf формате).
Для RDB to RDF достаточно просто производить render моделей, использующих RDB, в ntriples (или любом другом rdf формате).
0
В Sesame есть встроенный инструмент импорта в разных форматах, а также, например, при наличии нескольких таких систем возможно написание скрипта в три строчки для загрузки данных с различных источников, использующих эти онтологии.
Для RDB to RDF достаточно просто производить render моделей, использующих RDB, в ntriples (или любом другом rdf формате).
Для RDB to RDF достаточно просто производить render моделей, использующих RDB, в ntriples (или любом другом rdf формате).
0
Спасибо, очень интересно и красиво написано:) Пойду пройдусь по исходникам на github :) Пишу диссер в этой области, у меня там больше java, меньше рельсов, но, что характерно, — рельсов становится все больше.
0
А вам интересно коммерческое сотрудничество по части back-end разработки и реализации data mining алгоритмов?
0
Sign up to leave a comment.
Создание семантического веб-приложения