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

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

> Но предположим, что у нас есть концепт «Телефон». Теперь нам необходимо создать страницу айФона. Но что такое «айФон»: концепт или индивид?

Многих таких проблем можно будет избежать если выбрать конкретную тематику. Например, стать социальной сетью для ученых и интересующихся наукой.
Зависит от контекста, но правильно создать концепт и индивид. Возможно, концепт должен должен определять свойство уникальности индивида (например, для Солнца в общечеловеческой системе понятий).
Была такая идея изначально. Такой подход приводит к тому, что надо вводить много дополнительных терминов и переменных в описание концепта. Не универсально в общем)
Как раз универсально.
Избыточно и enterpriseно.
Но без этого будет путаница, т.к. при создании индивида без класса придётся указывать все свойства прямо в нём, это усложняет использование системы, например, с ризонером.
Это к вопросу о «проблемах» в статье.
В онтологии МилкиВеба не могут существовать индивиды без анцесторов.
Мы должны либо чотко разделять индивиды и концепты, либо убрать эту грань вовсе и предположить что все вершины графа равноправны.
Если по-уму, то концепты — это индивиды в мета-онтологиях. Оные создаются для каждой предметной области, в идеале с неким словариком и/или пространством имен, для исключения путаницы.
Про телефоны кстати тут недавно пиарился какой-то сервис, через который можно «хвастаться» имеющимися гаджетами )
Сервис прекрасно лег бы на платформу SemanticWeb, в том числе через сервис описанный в этой статье )
Не понял один момент — индивид прямо относится только к одному концепту, или к нескольким? Альберт Эйнштейн это индивид только концепта Ученый, или он может относиться и к другим концептам, таким как Вегетерианец, Гей, Автолюбитель, Садовод, Пацифист?
к нескольким =)
вы можете указать, что вы футболист, программист и так далее
при этом вы будете неявно наследовать все концепты, которые являются супер-концептами «программиста», «футболиста» и т.д
Всегда интересовало, можно ли, имея такую структурированную базу знаний, создать алгоритм, который генерирует смешные шутки? Ведь у многих шуток есть определенная схема.
Помните, игра была такая «чепуха», когда несколько человек садится в круг, каждый пишет на бумажке начало предложения, загибает бумажку, чтобы не было видно что он написал и передает ее соседу, потом все пишут продолжение, снова загибают и передают. Получается, что тут рандомно сопоставляются индивиды, предикаты и концепты, что иногда дает смешной результат.
различие в том, что здесь узлы и предикаты сопоставляются не рандомно =)
Вот именно! То есть, если даже с рандомом иногда получается смешно, то тут можно задать параметры так, чтобы всегда было смешно.
Вопрос в другом, Есть теги Человек, программист, футболист, гражданин.
1. Кто будет определять что приоритетнее (человек или гражданин) робот или человек ?? Ведь как я понимаю Тег это параметр реальный а не абстрактный.

2. Почему не используется NO SQL база, если для таких целей она и создавалась ??
3.Я понимаю что человек это организм, но в человек живет миллионы если не миллиарды организмов, не значит ли это что для того чтобы найти Escherichia coli нужно будет спустится на 7-15 уровней по графу Знаний ?? А если сразу найти Escherichia coli то она не будет связана с сущностью человеческий желудок, а сразу будет связана с сущностью Организм человека. Тогда пользователь заметит что чего то не хватает. Ведь все таки должна же быть какая то иерархия?

Мне кажется сущности нужно будет еще разделить на под сущности.

Идея Хороша для составления Полного списка организаций для какого-то конкретного города. Чего я хотел бы видеть в реальном проекте.

Спасибо за статью, мне кажется что Тумманную облачность когда нибудь разтуманят.
1) «Человек» и «гражданин» — это один и тот же концепт. Всё что нам необходимо сделать — это «объяснить» компьютеру, что это лингвистические названия конкретного узла. Теги не имеют семантики; семантику имеет узел, который именован тегом.
Например сейчас в сети концепт «Human», именован также «Person» (это не видно пользователю, но вы можете попробовать ввести в поиске «person»), но это всё тот же узел.
Не совсем понял, что вы подразумеваете под «приоритетом». Сущности не имеют приоритета над другими сущностями, но все они образуют иерархию.

3) Иерархия строиться несколько по другому принципу. «Человек» — это «Организм». Но «Escherichia coli» — это не «Человек». Эти иерархические ветки не связаны, хотя и имеют общего предка «Организм». «Escherichia coli» связанна с «Человек» предикатом «Среда обитания», но триплеты не является частью иерархии.

Мне кажется сущности нужно будет еще разделить на под сущности.


По сути так и есть =)
Мы можем «налету» изменять в иерархию, добавляя новые узлы.
Правильно я понимаю MilkyWeb это что вроде — Социальный Cyc + Семантический Web? По-хорошему завидую таким амбициям. Вы спросили про цикл статей… Если будут время и силы, напишите, пожалуйста — очень интересно будет почитать.
вот в жж очень продвинулся по онтологиям
ailev.livejournal.com
я тоже этим занимаюсь
Ценная ссылка- спасибо
нуу, у Левенчука онтологии промышленные и иже с ними, я сколько пользуюсь — до них в итоге так и не дошел (хотя любитель, но за 5 лет-то добрел бы, наверное). Хотя бложик его действительно приятен.
MilkyWeb это что вроде — Социальный Cyc + Семантический Web

Верно. + Социальная составляющая.
Отличная статья. Хотелось бы еще на данную тему.
Сам задумываюсь об использовании онтологий, пока скорее в качестве академического интереса, так что было бы полезно почитать о существующих граблях, камнях и так далее.

Ну и следом пара вопросов, в каком виде хранится онтология? Так понимаю используется только RDF, планируется ли использование машины вывода? И почему в качестве хранилища используется MySQL, а не например графовые БД (neo4j)?
Спасибо!

Всё хранится реляционно.
NoSQL используется если данные удобно ХРАНИТЬ в виде графа.
Но не факт, что так удобно хранить сами графы =)
Я пробовал, никакого профита не получил.

Ризонеры в планах, да! Но они будут нужны скорее как API.
Дело в том, что когда онтология целостна они перестают быть необходимым.
Под «целостностью» я понимаю запрет на создание парадоксальных сущностей.
Например сущности которая является «человеком» и «домом» одновременно.
> Но не факт, что так удобно хранить сами графы =)
> Я пробовал, никакого профита не получил.

Может не так пробовали? ;)

Базы данных, предназначенные для хранения графов, подходят для ваших задач намного лучше, чем реляционные базы, в которых надо нехило извращаться, чтобы задавать простейшие (с точки зрения графа) запросы.

skillsmatter.com/podcast/nosql/an-introduction-to-cypher-for-sql-folks (к сожалению, качество видео очень плохое, но, например, на 19:57 и т.п.) ну и вообще www.neo4j.org/learn
Соглашусь с Дмитрием.
Я использовал MongoDB для экспериментов с WordNet, в итоге создал своё хранилище с быстрым доступом, достаточно быстрым поиском и интуитивным форматом.
Кроме того, появилась возможность импортировать нестандартные отношения (например, при интеграции разных частей EuroWordNet).
Попробуйте, возможно, будет удобнее.
Базы данных, предназначенные для хранения графов, подходят для ваших задач намного лучше, чем реляционные
Соглашусь с Дмитрием.
Вполне вероятно вы правы. Сейчас это не является проблемой вовсе, возможно когда станет критично обращусь в сторону НРБД.
Перепросмотрел топик и посмотрел на Milkiweb, граф-базы данных — как раз для вас. А так же, возможно, стек технологий от TinkerPop
Спасибо, я почти убеждён, что стоит подумать в этом направлении =)
Мне кажется, что функционал повторяет гугловский Freebase.
freebase — это скорее википедия с преднастроенным форматом страниц для разных категорий. это скорее не граф, а массив объектов с различными преднастроенными наборами полей и отношений.

и да, в нём нет социальной составляющей.
ну, не совсем преднастроенным. Плюс, это именно граф, из которого данные можно запрашивать с помощью языка MQL
вы имеете в виду, что это ближе к структурированной энциклопедии, чем к структурированному словарю?
Я имею в виду, что там не онтология в основе.
Так, например, Society включает в себя Law, а Law в свою очередь Invention.
То есть, там группы страниц объединены по тематике просто и следовательно компьютер не может делать логические заключения.
В МилкиВеб компьютер может понять что «город» — это «географическая область», например. А «программист» — это «человек».
Мне кажется, это какая-то каша — объединение базы знаний и социальной сети.
Мне к примеру, базы знаний интересны, а в коллективном эксгибиционизме я не участвую.
И зачем мешать меж собой Фейнмана, Нью-Йорк и Петю Иванова?
Цель проекта как раз упорядочить и отсортировать, а не мешать.
Все нормально, вполне неплохая реализация идей SemanticWeb )
Кстати, вроде был какой-то проект для автоматизированного построения сети на основе Wikipedia…
Может быть можно было бы что-то из него взять.
wikidata наверное? следим за ними)
Так есть же DBPedia и кошерный OWL.
Но в контексте «понять, как нужно», попытка удачная, мне кажется.
а теперь и Wikidata
А концепты в иерархию добавлять нельзя что ли, или я не разобрался как? )
Да, концепты создаются модераторами сейчас.
А что вы хотите создать, если не секрет? =)
en.wikipedia.org/wiki/MBTI ну вот эту классификацию к примеру в виде концептов )
Невозможность создавать концепты — IMHO, серьезный тормоз для развития системы тогда…
Хотя, с другой стороны, при открытой возможности — бардак будет )
Сложный вопрос )
Совершенно верно!
Возможно стоит сделать форму для предложений =)
По теме кстати есть еще вот такой софт semanticweb.org/wiki/Semantic_MediaWiki
(правда, когда смотрел его давно — был страшный в использовании… возможно что-то допилили).
Вот к примеру хотел добавить классификацию психотипов в виде концептов, и отношение для экземпляров Human для задания психотипа… Получается, такое сделать невозможно?
С правами доступа «пользователь» — невозможно.
Эту вынужденная мера, вы выше объяснили почему =)
Может систему аналогичную в Wikipedia продумать?
С аппрувом предложенных концептов… при этом до аппрува их все равно можно использовать… а в процессе аппрува редактировать, удалять или производить слияние с уже существующими…
Все-таки цель у Вас выше заявлена не соцсеть создать на базе SemanticWeb, а универсальную онтологию…
Вообще-то сейчас такая система уже есть. Но я пока не решаюсь её открыть для масс.
Спасибо за ваши комментарии, вижу это вас волнует, а значит это актуально =) Включу брейншторм на досуге.
Диссертацию по SemanticWeb пишу, правда в области образования )
Отличная тематика!
Глобальный граф есть. Я так понял, пользователи могут создать свои типы связей для графа? Это породит неразбериху, нужно будет делать disambigation — удаление повторных типов связей с похожей детализацией.
Лучше положиться на готовые библиотеки концептов, например schema.org/, тут дерево всех типов schema.org/docs/schemas.html
Для справки: работаю с CMF Drupal, для него есть модуль схемаорг drupal.org/project/schemaorg, он позволяет для контента и полей указывать метаданные. А потом гугл лучше ранжирует результаты, т.к. точно знает о чем сайт пользователя.
Я так понял, пользователи могут создать свои типы связей для графа?


Нет, связи и концепты создаёт администрация, об этом написано в статье.
Возможно пользователи будут привлекаться к созданию шаблонов, просто ещё не понятно в каком виде.

А микроформаты давно известны, о чём я тоже писал =)
Амбициозный и актуальный проект.
Но будет мне позволено высказать частное мнение.
1. Реальному пользователю незачем задавать запрос на «человек», чтобы получить в ответ восемь миллиардов имен. Пользователю интересен кто-то один. Конечно, можно запросить Васю Иванова, но чем в таком случае проект отличается от Википедии, в которой могут быть определения и «человек», и «Вася Иванов». Википедию можно усовершенствовать: к примеру, создавать ссылки автоматически. Например, размещается статья «Человек», затем новая статья, в которой пишется: «Вася Иванов – это человек…» — и слово «человек» автоматически превращается в ссылку. Чем больше статей, тем больше ссылок в качестве связей между ними. Если для каждого слова написана статья, статьи заполнены одними ссылками.
2. Универсальную иерархию концептов реализовать практически невозможно, особенно если не предоставить ее «на самотек» пользователям (что к какому-нибудь результату, да приведет, хотя бы отрицательному), а выполнять силами администрации. В частной области – пожалуйста, но никак не для всех видов человеческой деятельности. В свое время библиотековеды пытались создать иерархическую классификацию областей деятельности (только областей деятельности) для своих библиотечных каталогов, десятки книг выходили на протяжении десятилетий. Кое-как справились, а ведь это была частная задача. Статистиков еще можно вспомнить, которые над классификациями изрядно потрудились. Да и вообще, я не уверен (если откровенно, уверен в обратном), что универсальная база знаний должна быть не иерархической, а «плоской», хотя и такую построить предложенным методом никакой жизни не хватит. Гарантированно получится не универсальная база данных, а частный справочник (или социальная сеть) с весьма ограниченной структурой.
3. Предикаты мыслятся на основании тезауруса, а это ведет в тупик. Фейнман родился в Нью-Йорке. А если бы, допустим, он родился в мчащемся поезде, каким образом зарегистрировать место его рождения – указывать на поезд или на станцию, мимо которой поезд в тот момент проезжал, или одновременно на оба объекта? Любое слово – к примеру, «друзья», — имеет множество оттенков, которые могут интересовать пользователя. Это в социальной сети устанавливаешь «друг», и все как бы понятно, а в жизни? Если проект претендует на роль универсальной базы знаний, он должен данный факт учитывать: есть друзья по переписке, приятели, верные друзья, собутыльники, друзья-враги и т.д. – всего не опишешь. И выход из этого только один… Если заинтересует, пишите в личку (извините, но не хочу заранее провоцировать оскорбления).
P.S. А с «айФоном» вы что-то путаете, по-моему. Есть «айФон» — общее понятие (концепт, обозначающий все подобные аппараты), а есть конкретный «айФон» у Васи Иванова. Общее понятие не может быть индивидом. Просто словоупотребление таково, что одним словом обозначаются и концепт, и индивиды. Вам всего лишь необходимо идентифицировать индивиды, порядковыми номерами, или обозначением владельца, или серийного номера, или еще как-то…
Если вы считаете, что я говорю не по делу, тогда извините.
1) Компьютер не понимает лингвистику и поэтому не сможет понять, что Вася — это человек, даже если каждое слово будет ссылкой. Википедия — это для людей.

2) Согласен. Но я нигде не говорил, что пользователь никогда не будет допущен к наполнению терминологии. Просто мы сейчас не можем себе этого позволить.
Да и вообще, я не уверен (если откровенно, уверен в обратном), что универсальная база знаний должна быть не иерархической, а «плоской», хотя и такую построить предложенным методом никакой жизни не хватит.
Не совсем вас понял: она должна быть иерархической или плоской? Онтология — это и есть иерархия.

3) В идеале мы должны будем указать на поезд, а компьютер сам должен будет разобраться в какой точке пространства этот поезд находился в момент рождения =)
Если проект претендует на роль универсальной базы знаний, он должен данный факт учитывать: есть друзья по переписке, приятели, верные друзья, собутыльники, друзья-враги и т.д. – всего не опишешь.
Когда это станет актуальным, можно будет дополнить онтологию иерархией предикатов и каждому предикату назначать цену.

На самом деле это всё уже много раз обдумывалось; но спасибо за ваши замечания, они все актуальны.

По поводу айфона.
Суть концептов в том, что они фундаментальны и не могут приходить и уходить со временем.
Скорее всего необходимо вводить третий вид узлов…
1) Это ясно. Но когда автор Википедии напишет «человек», автоматически будет установлена связь со статьей «человек». Я это имел в виду.
2) База должна быть плоской. Возможно, мы по-разному понимаем онтологию. Для меня онтология — наука о бытии (философская трактовка). Вообще, вопрос спорный. В идеале пользователь системы сам должен устанавливать рабочую иерархию, т.е. иерархия для каждого из пользователей может быть своей.
3) С поездом понятно. On-line регистрация объектов — это круто и это будущее, по-моему.
4) Администратор не осилит классификации предикатов, это невозможно (потому что решение предлагается неверное).
5) Какой может быть третий вид узлов, не знаю, но от идентификации индивидов вы все равно не уйдете. Представьте, что появляется новый актер Джонни Депп, однофамилец. Что станете делать?
2) Для меня онтология — это математическая модель описания мира.

5) Да я и не собирался уходить от индивидов =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории