Тема: Вопросы доверия к источнику

В любом хранилище данных ( любого в принципе формата) существует вопрос доверия к источнику. А чтобы получить user-generated контент и как то заинтересовать пользователя актуальной информацией необходимо либо иметь эти доверенные источники либо показывать пользователю информацию с неким индексом достоверности (ИД).
RDF как формат способен описать объекты любой онтологии с достаточной точностью  (то есть более точная информация чем можно выразить на основе существующей онтологии заведомо не нужна, поправьте меня если я ошибаюсь). Естественно что для этого формата можно легко добавить ИД и источник для всех записей.

То есть механизм работы некоего "сервиса для пользователей" мне видится так:
1) в сервис добавляются (руками или как то автоматизировано) онтологии неких источников данных и каждому источнику присваивается свой ИД (1-99% например). 0% - бессмысленно, 100% - непонятно зачем такое может понадобиться.
2) эти онтологии интегрируются в некоторую общую онтологию сервиса.
3) информация импортируется на сервис, где она обрабатывается и для каждого триплета высчитывается его собственный ИД. То есть если скажем один пользователь сказал что sony это круто, а другой что плохо. То в таком случае в базе должно появиться 3 "записи".
а. user1 оценкаsony круто user1ИД
б. user2 оценкаsony плохо user2ИД
в. service оценкаsony I(а,б) F(user1ИД,user2ИД);

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

я могу реализовать подобный механизм на mysql+php+arc, но работать это будет крайне медленно.
возможно ли использовать тут virtuoso или hbase? какая степень доработки потребуется?
сам я владею php и немного java, поэтому дорабатывать hbase не хотелось бы:)

сделать такой сервис было бы крайне любопытно для меня, поэтому любые дельные советы/мысли приветствуются.

если кому интересно - могу описать механизм поподробнее (настолько подробно, насколько я это вижу конечно:))

Thumbs up +1 Thumbs down

2

Re: Вопросы доверия к источнику

здравствуйте,
похоже, что структура хранения, что предлагается в а.-в., (с точностью до типа значений оценки доверия), уже используется. Можно посмотреть здесь http://books.google.com.ua/books?id=D45 … p;f=false, и отталкиваясь от этой статьи искать дальше (потому как в книге Google  не вся статья).

Хартиг предлагает и инструментарий для работы с такой структурой: http://trdf.sourceforge.net/tsparql.shtml

Что хорошо - есть tSPARQL4Jena - надстройка для обработки tSPARQL запросов над jena ARQ. А раз так, вопрос c реализацией хранилища триплов отпадает - т.к. любое хранилище, который понимает Jena.

Может, Вы посмотрите на это, сделаете анализ - и в ветку напишете - подходит ли такое решение?

Thumbs up Thumbs down

Re: Вопросы доверия к источнику

спасибо за ответ - вторая ссылка действительно очень интересная, попробую реализовать как описано и посмотрим что получится:)

Thumbs up Thumbs down

4

Re: Вопросы доверия к источнику

Если можете, ведите в этой ветке форума журнал ваших исследований,  список возникающих вопросов. Это поможет сохранить важную информацию даже в случае, если вы полностью не закончите реализацию проекта (примера). Как только наберется информация по этой теме, мы откроем в вики соответствующую тему.

BTW, Shanghai Tiger

Thumbs up Thumbs down

5

Re: Вопросы доверия к источнику

Подумалось, что в зависимости от профиля нагрузки надо сделать одно из двух:

Вариант 1: отдельно квады с оценками (граф=источник) и отдельно граф с оценками достоверности источников. Если источников не очень много, и они уместятся в память, то производительность будет почти как у системы без оценок.

Вариант 2: По образцу RDF_QUAD сделать табличку пятёрок ("квинт"?), с дополнительной колонкой для достоверности, и естественно RDF View над ней.
Вариант 2.1. Или даже шесть колонок, ещё и с ID для реификации. "Раз пошла такая пьянка --- режь последний огурец" smile

Re: Вопросы доверия к источнику

да, вобщем то о первом варианте я давно думал, почти так и собираюсь делать:)

тут просто возникает такая соблазнительная вещь как вывод мнения сервиса по поводу достоверности некоего высказывания (триплета) на основе имеющихся высказываний других источников (думаю их лучше называть Агентами).
то есть можно хранить мнение Агента-Сервиса в бд и пересчитывать при добавлении высказываний о триплете другими Агентами. Но для этого нужен именно "квинт":)

можно Агентов идентифицировать по foaf#Agent кстати

В общем и целом получается 2 графа и таблица:
1) "стандартный" rdf quad
Агент, s, p, o
2) такой же по структуре граф но с дополнительным полем оценки достоверности (reliability) и без поля Агент
s, p, o, r
3) справочник вида
Агент, t

В принципе id как всегда не помешает, по крайней мере в справочнике точно:)

Thumbs up Thumbs down

7

Re: Вопросы доверия к источнику

"вывод мнения сервиса по поводу достоверности некоего высказывания (триплета) на основе имеющихся высказываний других источников" --- частный случай коллаборативной оценки, и боюсь, что он почти такой же трудоёмкий, как общей случай. На лету вычислять может получиться, а может и нет --- в зависимости от модели, но если потребуется масштабируемость, то хранить надо будет чуть-чуть замысловато и вычислять написанными на С встроенными процедурами. В общем, если потребуется масштабируемость, то учите Virtuoso --- других недорогих вариантов нет smile

Re: Вопросы доверия к источнику

хранить то конечно несколько замысловато и загвоздка для меня именно в этом, а вот насчет трудности вычислить тут я сомневаюсь. Хотя, возможно, я неправильно Вас понимаю или просто чего то не знаю.

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

а) есть триплет в "стандартном" кваде:
Агент1 s1 p1 o1
и таблица с доверием к Агентам:
Агент1 0.8
Агент2 0.2

б) Агентом 2 добавляется еще одно мнение:
Агент1 s1 p1 o1
Агент2 s1 p1 o1

в) высчитываем мнение Агента-Сервиса по этому триплету и помещаем его отдельно:
s1 p1 o1 F(0.8, 0.2) = 0.5 к примеру

*везде o1 это не опечатка, чтобы подчеркнуть что разными Агентами добавляются абсолютно одинаковые триплеты ( в самом простом случае).

еще хочу подчеркнуть что от Агентов никаких данных относительно достоверности Агент-Сервис не получает.

-------------------

то есть при добавлении нового триплета единственная трудоемкая операция это достать аналогичные триплеты, добавленные другими Агентами.

Отредактировано Евгений (2009-11-30 18:21:04)

Thumbs up Thumbs down

9

Re: Вопросы доверия к источнику

> то есть при добавлении нового триплета единственная трудоемкая операция это достать аналогичные триплеты, добавленные другими Агентами.

Даже в этом почти непригодном для большинства применений варианте это именно "достать аналогичные триплеты", в потенциально большом количестве. То есть проблем не будет только если F --- некая формула от  стандартных статистик (скажем, от среднего и дисперсии), для которой не надо вспоминать все уже обработанные значения.

10

Re: Вопросы доверия к источнику

iv_an_ru пишет:

> то есть при добавлении нового триплета единственная трудоемкая операция это достать аналогичные триплеты, добавленные другими Агентами.

Даже в этом почти непригодном для большинства применений варианте это именно "достать аналогичные триплеты", в потенциально большом количестве. То есть проблем не будет только если F --- некая формула от  стандартных статистик (скажем, от среднего и дисперсии), для которой не надо вспоминать все уже обработанные значения.

Ну F в данном случае это и есть формула от среднего или ненамного сложнее, так что тут проблем нет:)
То есть заполняем граф с мнением Агента-Сервиса изначально без проверки на непротиворечивость и без логического вывода. А какие то правки можно сделать и потом в "фоновом" режиме. Я исхожу из того что Агент-Сервис все равно не может предоставить 100% точную информацию (по крайней мере данных со 100% точностью не будет), поэтому есть возможность трудоемкие операции растянуть/отложить по времени.

Вопрос к вам как к специалисту, "потенциально большое количество" это сколько? И сколько по времени занимает скажем выборка триплета из таких обьемов если известны все три составляющие? то есть SELECT ?s ?p ?o WHERE <s> <p> <o>

Спасибо за ответы:)

Thumbs up Thumbs down

11

Re: Вопросы доверия к источнику

Я честно не понял, при чем тут именно онтологии. Тут, видимо, речь идет о доверии к агентам в принципе. Может вам бы что-то в этом роде почитать http://www.springerlink.com/content/n377705276744476/

Или посмотреть на алгоритмы Google Page Rank-а.

Отредактировано sasha (2010-06-18 19:58:03)

12

Re: Вопросы доверия к источнику

sasha пишет:

Я честно не понял, при чем тут именно онтологии. Тут, видимо, речь идет о доверии к агентам в принципе. Может вам бы что-то в этом роде почитать http://www.springerlink.com/content/n377705276744476/

Или посмотреть на алгоритмы Google Page Rank-а.

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

Хотя если честно я пока до вывода так ине дошел:) Пока что бьюсь над юзабельным (для непосвященных:)) представлением произвольных семантических данных на сайте. Оказалось довольно неожиданной и мало освещенной проблемой. Видимо имеено из-за недостатка

Thumbs up +1 Thumbs down