четверг, января 10, 2008

Блеск и нищета Semantic Web

Случайно обнаружил занятный блог о semantic web на хабрахабре. Занятный он хотя бы тем, что гражданин ушел несколько дальше вольного пересказа завлекалок TBL о том как SW приблежает коммунизм в сторону практическую. Гораздо чаще в семантик вебовских кругах встречаются "теоретики" способные умно рассуждать, но не показывающие никакого практического результата. Полагаю, именно поэтому все SW технологии делятся на две категории: неверно используемые (работающие) и сложные (бесполезные). К первым можно отнести RSS, который хоть и основал на RSS, но никакими преимуществами оного не пользуется. Ко вторым тройку RDF, OWL, SPARQL. Со стороны идея выглядит красивой, до тех пор пока она не выходит за рамки простейшей структуры метаданных "Автор: Василий П, Дата публикации 02-10-2001". Красиво, интересно, но абсолютно бесполезно. Никому не нужны запросы по метаданным страницы, когда есть приличный полнотекстовый поиск, википедия и доступный предметные БД вроде того же IMDB. С другой стороны, для более сложных случаев RDF+OWL годится плохо в силу нескольких врожденных недостатков:

Отсутствие механизмов доверия

Приведу пример из жизни. Занимались мы созданием биологической базы знаний. Ну знаете, белок А образует с белком Б комплекс, который влияет на экспрессию гена С. Казалось бы, идеальное поле для RDF: опиши онтологию и клепай утверждения пока не надоест. Хрен. У каждого утверждения есть источник позволяющий отследить, его происхождение и достоверность. Не бывает непреложных истин данных нам свыше. Отсюда требуется как-то определять источник утверждения. RDF такого механизма не предоставляет, нету в тройке <субъект, предикат, объект> такого свойства. Как следствие, затраты на описание непротиворечивой модели взлетают до небес. Возможно есть способ как-то извратиться и, таки, запихать источник в модель, но мне они не известны.

Отсутствие механизмов ограничения области действия утверждения

Возьмем пример <Россия, Столица, Москва> Верно? Не всегда. С 1712 по 1918гг. Столицей России был Петербург. С 1922 по 1991гг. Москва была столицей другого государства, СССР. Более того, царская Россия до 1917 и Российская Федерация это разные государства. Можно сказать, что Петроград столица России? Нет, потому что ни той России ни Петрограда уже и нет в природе. Но сей факт имел место быть в прошлом.

Отсутствие встроенной поддержки метрик

Устройство А потребляет ток 0.5A, а устройство Б всего 500uA. И как быть? RDF не позволяет указывать тип утверждения. Можно, конечно, создавать объектов для каждого значения, но вам не кажется, что это решение несколько кривовато? Оные проблемы не дают использовать RDF+OWL где либо, где используется агрегация данных из нескольких источников, либо сами данные носят противоречивый характер. В принципе, проблему можно решить раз и навсегда, если добавить каждому RDF утверждению URI, позволяющий определить для него контекст. И тип измеряемой величины, и единицы измерения и источник. Например так: <statement_1, specie_3251, средняя длина листьев, 40cm> <statement_2, specie_3251, максимальная длина листьев, 60cm> <statement_3, specie_3251, средняя длина листьев, 50cm> <statement_4, (statement_1, statement_2), источник, "Аквариумные растения"> <statement_5, statement_3, источник, "Пресноводные тропические растения. Том 3">

Комментариев нет: