Пользователь
0,1
рейтинг
23 декабря 2012 в 14:57

Разное → MilkyWeb — Graph of Everything



В данной статье я хочу поделиться своими мыслями по поводу способов решения фундаментальных проблем современного Интернета. Хочу описать модель, которая, по моему мнению, может помочь ещё лучше упорядочить знания в интернете, и продемонстрировать свою попытку реализации такой модели.

Intro

Социальные сети и поисковые машины пытаются упорядочить как можно больше информации об окружающем мире и в частности о пользователе.
В компьютерных науках базисом для описания любой предметной области (ПО) являются онтологии или их упрощённая разновидность – графы. Именно с их помощью возможно наиболее однозначно для компьютера описать любую базу знаний.

В существующем веб-пространстве создано большое количество специализированных графов: Facebook, Linkedin, Foursquare и т.д.
Как известно Google расширяет свой Knowledge Graph и активно использует его в поисковых механизмах.

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

Проект MilkyWeb (MW, МилкиВэб), который я хочу презентовать – это попытка создать универсальный инструмент для описания любых предметных областей (создания любых графов) в одном месте.
Другими словами, это попытка создать универсальную социальную сеть базу знаний всего на свете.

Проект ещё не вышел из стадии альфа, поэтому интерфейс оставляет желать лучшего, за что прошу не серчать. Сайт верстался, только под Chrome. На поддержку кросс-браузерности решил время пока не тратить, поэтому приношу извинения пользователям других браузеров.

Идеология



В основе идеологии проекта лежит модель онтологии – математического представления знаний.
Она базируется на трёх китах: концептах, индивидах и предикатах.

Концепты – это абстрактные понятия окружающего мира. Грубо говоря, это обобщённые (собирательные) наименования вещей и явлений, которые нас окружают.
Множество концептов образуют иерархию, например, понятие «Программист» производное от понятия «Человек», а последнее в свою очередь является «Организмом».
Можно провести аналогию с программированием: Концепты в онтологии – это классы в ООП.
Концепты бывают двух видов: абстрактные понятия и множества (или Анцесторы от англ. Ancestor – предок, прародитель). Понятие «дружба» абстрактно, в то время как «машина» – это название множества реальных объектов.

Индивиды – объекты, которые окружают нас в реальном мире. Каждый индивид является реализацией хотя бы одного концепта-анцестора. В контексте ООП – индивиды концептов – это экземпляры классов.
Например: объект «Альберт Эйнштейн» – это индивид концепта «Учёный». Наследование, естественно, поддерживается. Так как «Учёный» – это «Человек», то «Альберт Эйнштейн» тоже является «Человеком».
Когда новый пользователь создаёт аккаунт в MW, фактически это означает создание нового индивида концепта «Человек» в онтологии.

В терминах графов концепты и индивиды являются вершинами графа, в то время как рёбрами (или дугами) выступают предикаты.

Предикаты – это свойства, с помощью которых вершины графа связаны между собой.
Простой пример предиката, как многие смогли догадаться, это отношение дружбы в FB или ВК.



Изображённая на рисунке выше связь называется триплетом, т.к. в ней участвуют три составляющих: субъект «Richard Feynman» (вершина графа), предикат «Родился» (дуга графа), объект «New-York» (вершина графа).

По сути, вся задача проекта МилкиВеб сводится к тому, чтобы пользователь смог создать страницу любого объекта окружающего мира (концепта или индивида) и смог семантически правильно связать её с другими страницами (с помощью предиката).

Каждый предикат создаётся в связке с одним или несколькими концептами.
Например, свойства «друг» или «мама» могут быть только у индивидов концепта «человек»; а предикат «CEO» может связывать «человека» и «компанию».

Предикаты бывают литеральными. Такие предикаты-«литералы» указывают не на вершину графа, а на какое-либо значение. Каждый литерал имеет тип, например: строка, целое число, дата, географические координаты и т.д. (в данный момент поддерживаются только URL-литералы).

Концепты и предикаты являются каркасом любой онтологии, то есть шаблоном, на котором строится весь граф, поэтому на данный момент эти сущности могут быть созданы только администрацией сайта. Этот процесс включает не только создание сущностей как таковых, но их настройку, которую пользователь не видит.
Например, каждый предикат имеет порог на максимальное количество триплетов. Так с предикатом «мама» у индивида может быть только один триплет, а с предикатом «друг» – множество.

Пример

Как я сказал, администрация создаёт каркас онтологии, а пользователи наполняют её.
Приведу пример наполнения предметной области на основе концепта «фильм».

Администратор создаёт концепт «фильм», и набор необходимых предикат таких как «в ролях», «режиссёр», «продюсер», «премьера», «страна», «любимый фильм», «смотрю».

Пользователь FOO на основе концепта «фильм» создаёт страницу (индивид) «Пираты Карибского моря» и начинает её “описывать”.
С помощью предиката «в ролях» он указывает, что в фильме снимались индивиды «Джонни Депп» и «Кира Найтли».
Затем он связывает страницу с продюсером, режиссером и страной.
Литералом «премьера» пользователь указывает, что премьера фильма состоялась 28 июня 2003 года.

Окей, основные данные о фильме были внесены, но что дальше? Дальше FOO может указать, что «Пираты Карибского моря» – это его «любимый фильм».
В это время пользователь GOO, который приходится другом FOO, как раз скучал за монитором и увидел в своей ленте только что созданный FOO триплет. Он воспринял это как призыв к действию и решил скачать фильм на торрентах купить DVD с этой картиной и тут же посмотреть её! Начав вкушать фильм, он создал триплет «смотрю» «Пираты Карибского моря», тем самым поведав всему миру небольшую часть своей жизни одним кликом!

Я не зря выбрал предметную область «фильмы» для примера. Инженеры фейсбука как раз работают над тем, чтобы структурировать такие мгновения из жизни людей. Подробнее: www.wired.com/business/2012/11/mike-vernal-facebook

Хочу также отметить, что предикат «любимый фильм» и кнопка «I like» на странице фильма на сайте IMDB – это не одно и то же. Семантика лайков очень размыта и не позволяет однозначно сказать, что же имел в виду пользователь, когда “лайкал” ту или иную страницу.

Такая структура сильно упрощает описание той или иной предметной области. Если в Фейсбуке есть константный набор шаблонов для создания страниц, то в вышеописанной системе шаблоны можно создавать налету. Если в один момент времени мы решим привнести в социальную сеть новую ПО, необходимо будет просто создать набор концептов и предикатов, характерных для данной сферы.

В данный момент все создаваемые страницы поддерживают только английский язык (стоит учитывать при поиске). В планах сделать механизм локализации на другие языки.

Data sharing и проблемы Big Data

Я не нашёл подходящего устоявшегося в русском языке выражения, обозначающего sharing в понимании “делиться информацией” или “распространять информацию”, поэтому термин в заголовке оставил без перевода.

В последнее время для описания области, которой характерен бурный рост количества информации, принято использовать понятие Big Data. Априори под этим термином подразумевается проблема: темп генерации данных настолько велик, что наиболее ценная информация может затеряться в общем потоке. Чтобы информация не терялась, необходимо её структурировать и классифицировать.

Как показала практика, формирование news-feed’а на основе постов “от друзей” не самый лучший вариант. Точнее, такой способ хорош для того чтобы получать информацию об окружающих тебя людях, но не об интересующих вещах в общем.
Как следствие, во Вконтакте новостная лента завалена котиками и цитатами “великих” людей. Можно пробовать подписываться на тематические паблики, но это не гарантирует доставку в пользовательский фид всей генерируемой в данный момент времени информации, которая могла бы быть интересна юзеру.
Фейсбук лепит костыль за костылём, чтобы доставить только самую релевантную информацию в ленту пользователю. И в какой-то степени этого достаточно, но алгоритм построения ньюс-фида основан на действиях пользователя (анализ лайков, комментариев и т.д.), поэтому это также не является универсальным.

На мой взгляд, наиболее успешно приблизиться к модели «пришёл, узнал всё актуальное, ушёл» получилось у Твиттера и Hacker News.
Поэтому механику распространения информации в MilkyWeb я изначально пытался сделать чем-то средним между T и HN. Т.е. пользователь заходит на сайт и получает всю информацию, которая его могла бы заинтересовать за последнее время X.
Но не только со страниц, на которые он подписан (Твиттер, FB, VK), но и по тематическим стримам (HN).

В MW распространять можно текст (до 2000 знаков), ссылки и видео (YouTube). Фотографии пока что нет – их дорого хранить.

Как пользователь может делиться информацией и кто эту информацию получит?

Пользователь может:

  1. постить сообщения к себе на страницу;
    В таком случае сообщение дойдёт до тех пользователей, которые фолловят отправителя.
    Стоит отметить, что если пользователь А создал хотя бы один триплет с пользователем В, то А считается подписанным на В.
  2. постить сообщения на страницу другому пользователю;
    Очевидно: сообщение дойдёт только до адресата.
  3. постить сообщения на страницы индивидов “не пользователей”;
    Сообщение дойдёт всем, кто на эту сущность подписан.
  4. бродкастить сообщения в тематические потоки.
    Тематические потоки – это всё то, что касается концептов. Т.е. можно запостить сообщение на страницу «программирование». В этом случае сообщение дойдёт всем, кто подписан на «Программирование», а также всем пользователям, которые “наследуют” концепт «Программист».

Два последних способа – это то, что касается попытки решения проблемы Big Data. Основная идея такая:
Пользователь X имеет информацию, которая тематически относится к той или иной сфере реальной жизни. Он не задумывается над тем, куда эту информацию запостить, а просто кидает её в общий тематический стрим для той или иной ПО. И теперь задача системы – на основе действий других пользователей (например, ранжирование или репосты) выделить наиболее ценные данные из общего потока.

Работа над этим механизмом ещё ведётся. Системы ранжирования контента ещё нет, но она будет реализована в ближайшее время, и есть идеи как на основе всего этого сделать пользовательский новостной поток релевантнее, чем в других сетях. Именно модель, описанная в предыдущей главе, позволяет семантически однозначно различать понятия и правильно классифицировать информацию.

Естественно, такой подход может порождать волны спама. В данный момент на сайте нельзя постить больше одного сообщения в 20 сек. В будущем буду более разумно решать эту проблему. Сейчас задача в том, чтобы проверить механику на жизнеспособность и как раз выделить возможные критические моменты.

Как читатель, наверное, догадался, в такой системе есть большой потенциал для распространения таргетированного контента. Можно делать сложные выборки для выбора целевой аудитории. Например, отправить сообщение всем, кто «Программист» и «живёт в» «Москва»; или тем, кто «купил» «айФон» и «купил» «айПад»; или всем, кто «водит» «мерседес».
Возможно, когда-нибудь это станет способом монетизации, но сейчас миссия проекта МилкиВеб в другом. О ней я и хочу рассказать в следующей главе.

Семантическая паутина

Семантическая паутина (СП) – это веб-пространство, в котором контент, генерируемый человеком, понятен для компьютера.
Этого можно достичь путём добавления метаданных в веб-документ (например, html). Метаданные широко используются в сети и выполняют важные роли при поиске, структурировании данных и т.д.
Но для того, чтобы поисковая машина смогла “понять” содержание той или иной страницы, необходимо, чтобы эта страница сопровождалась отдельным документом с понятным для компьютера описанием (в виде графа) той части мира, о которой идёт речь на исходной странице.

Спецификация требует, чтобы такие мета-документы были составлены в формате RDF. Проблема в том, что эти файлы должны кем-то создаваться, чтобы затем быть прикреплёнными к html-документу.

Собственно, это та проблема, за решение которой я взялся два года назад в виде дипломной работы. Цель была – сделать удобный и интерактивный инструмент для создания RDF-описаний, централизованное хранилище мета-данных, где они будут накапливаться и не будут дублироваться.

Со временем я немного отклонился от заданного направления в пользу социального аспекта. Но уже сейчас возможно получить RDF-описание той или иной сущности перейдя по адресу milkyweb.net/rdf/{ c | p | i }/id_сущности. Например, RDF-документы индивида «Moscow» и концепта «Human» лежат по адресам milkyweb.net/rdf/i/10460 и milkyweb.net/rdf/c/10000 соответственно (пользовательская информация естественно не публична).

То есть всё, что остаётся веб-мастеру – это просто прикрепить ссылку на необходимый объект к веб-странице своего сайта. В будущем поисковая машина заберёт документ по указанному урлу и сможет классифицировать контент на странице, увеличивая релевантность поисковой выдачи. Или же можно будет в реальном времени наблюдать появление контента для той или иной сущности во всем Интернете. Согласитесь, круто же! :)

Для специалистов в этой сфере отмечу, что интеграция с существующими словарями планируется.

Конечно, я всё сильно упрощаю. Для того чтобы популяризовать СП, одной социальной сетью не обойдёшься. Скорее всего, необходимо создавать специальные фреймворки для веб-разработчиков, которые автоматизируют процесс пометки контента метаданными. Но я верю, что рано или поздно такой механизм будет работать, и первый шаг в эту сторону – это создание глобальной базы знаний интернета.

Проблемы

Самые большие проблемы, с которыми я столкнулся, лежат в идеологи проекта и в терминологии онтологий как таковых.

Все спецификации технологий СП (RDF, OWL) от W3C утверждают, что для описания веб-онтологий можно обойтись Концептами, Индивидами и Предикатами, и я поверил этому на некоторое время.

В русской википедии можно найти такое описание понятия «Концепт»:
Понятия (concepts) — абстрактные группы, коллекции или наборы объектов. Они могут включать в себя экземпляры, другие классы, либо же сочетания и того, и другого.

И дальше идёт пример с небольшим отступлением:
Понятие «люди», вложенное понятие «человек». Чем является «человек» — вложенным понятием, или экземпляром (индивидом) — зависит от онтологии.

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

Если мы начнём создавать глобальную онтологию по этим “классическим правилам”, вся наша структура тут же рухнет, в чём я убедился лично.
Изначально я считал, что концепты в моей сети – это абстрактные понятия, которые могут или не могут “иметь” индивидов.
А индивиды в свою очередь – это реальные объекты, которые можно пощупать руками и которые “реализуют” какие-то концепты.

Но предположим, что у нас есть концепт «Телефон». Теперь нам необходимо создать страницу айФона. Но что такое «айФон»: концепт или индивид? Предположим, что это индивид. И в какой-то момент времени юзер FOO решает создать персональную страницу того девайса «айФон», который лежит у него в кармане. Зачем? Неважно, возможно, он хочет выставить его на продажу. Важно здесь то, что если «айФон» – это индивид, то уже нельзя создать страницу конкретного девайса, т.к. мы ограничили уровень абстракции и система перестаёт быть целостной.
Окей, предположим что «айФон» – это концепт. Но мы изначально решили, что концепты – это фундаментальные понятия, они не могут приходить и уходить со временем. То есть не будем же мы для каждого нового продукта, созданного человечеством, создавать отдельный концепт в иерархии.

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

Таких подводных камней огромное множество, и я думаю, что создать универсальный способ описания мира можно только путём проверок и перестановок.

Outro

Я не жду от проекта быстрой отдачи, как я и сказал ранее – на данный момент это эксперимент.
Много вопросов и проблем стоят ребром. Возможно, глобальный граф вообще не имеет место быть. Или, возможно, предложенный подход просто негоден для его создания.
Цель моей деятельности – практическим путём найти возможные способы решения фундаментальных проблем глобальной паутины.

Всё, что я описал выше – это лишь верхушка айсберга моих наработок и идей. Если тема окажется актуальна, постараюсь продолжить цикл статей.

Буду приблагодарен за фидбэк любого содержания! Можете писать в комментариях, в личку или в форму на сайте (о багах и хаках постить туда же).
Если кому-то изложенные идеи покажутся интересными, и этот кто-то захочет принять участие в развитии проекта – я открыт к сотрудничеству (ядро сайта – Java + MySQL).

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

PS: Те, кто запросил приглашение, не удивляйтесь, если оно придёт не сразу. SMTP сервер – это наш bottleneck. Можете написать мне в личку – кину.

Благодарю за внимание!
@Frolenarzt
карма
102,0
рейтинг 0,1
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разное

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

          5) Да я и не собирался уходить от индивидов =)
    • 0
      Вы изобрели www.wikidata.org ;)

      Фолксономии рулят!
      • 0
        викидата не социальна =)
  • 0
    удалено

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.