Сейчас же попробуем разобраться с мифами, которые можно услышать при обсуждении семантического подхода даже от профессионалов.
Итак, главным мифом технологии, которая называется семантической, технологии, которая, по заверению ее основателей, призвана заставить компьютер понимать содержание (значение) текстов или отдельных знаков, является само утверждение, что IT-семантика имеет какое-то отношение к смыслу. И для признания этого казуса достаточно осознать, что переход на другой формат записи фактов, к другой схеме организации данных, к иному способу их генерации не может принципиально изменить суть информационных технологий — компьютер, как никогда не понимал, так и по-прежнему не понимает смысла программно обрабатываемых знаков. Запись данных из реляционной БД в виде набора триплетов смысла не прибавляет. Замена таблиц на граф может быть полезна для унификации модели данных, реализации сложного поиска, безопасной модификации бизнес-моделей и пр., но не заставит компьютер понимать смысл данных.
Единственный случай, когда допустимо, хотя и в кавычках, употребить фразу “понимание смысла”, так это при обсуждении обмена данными между независимыми приложениями. Можно сказать, что использование единого формата записи (RDF) и единых словарей дает компьютеру возможность “понимать смысл” данных от неизвестного поставщика. Хотя очевидно, что и тут ни о каком понимании говорить не приходится: решается безусловно важная, но по сути банальная проблема согласования пространства имен, использования одинаковых идентификаторов для данных одного типа (просто договариваемся об именах колонок).
Не добавляет смысла и использование так называемых URI в качестве идентификатора сущности или ее типа. Если не считать таким “добавлением смысла” ссылку на описание сущности. Хотя опять же это не имеет никакого отношения к семантике, трактуемой как “понимание компьютером смыслов”; здесь идет речь только об удобстве визуализации данных для человека. К тому же, в электронной документации любой IT-системы описание сущностей обязательно связано с их идентификаторами в хранилище.
Мифом также является и утверждение, что семантические технологии, в отличие от традиционных, работают со знаниями. Ведь опять же очевидно, что изменение структуры хранения и обработки данных не делают из последних знания. Конечно, вполне допустимо называть графом знаний семантическое хранилище, содержащее максимально полное описание некоторой предметной области. Но при этом надо понимать, что мы имеем дело не со знаниями в содержательном смысле, а с большим массивом связанных фактов, по которому удобно вести поиск. И тут же следует отметить, что по сравнению с реляционными таблицами в графе нет никакой особой, дополнительной связанности данных — перевод данных из одной схемы в другую не увеличивает количество связей. Семантический формат лишь упрощает создание новых связей, то есть позволяет добавлять в граф новые типы данных без каких-либо изменений в структуре хранилища. Но это опять же технологическое удобство, а не повод говорить об особых «связанных данных» (Linked Data).
Ну и конечно, заявление, что компьютерные онтологии способны генерировать новые знания, не вызывает ничего, кроме улыбки Да, с помощью логического вывода, производимого специальными программами-ризонерами, в онтологии можно получить новые утверждения. Но логика этого вывода по уровню сопоставима с умозаключением трехлетнего ребенка “дедушка — это папа моего папы”. Безусловно, такой логический вывод необходим для расширенного поиска, но согласитесь, никаких новых знаний он в принципе породить не может, только позволяет не хранить лишние данные (например, не требует приписывать каждому папе то, что он стал еще и дедушкой при рождении ребенка у его ребенка). И тут опять следует обратить внимание на то, что никто не мешает таким же образом выводить “новые знания” в приложениях с реляционными БД: добавьте колонку для атрибута “дедушка” и программно контролируйте добавление факта рождения ребенка. Использование же онтологического подхода лишь унифицирует операции по логическому выводу, упрощает добавление новых аксиом, дает возможность хранить их в том же формате, что и данные, но не добавляет при этом никакой “интеллектуальности”.
Итак, семантические технологии ничуть не про семантику. Они про унификацию, стандартизацию, идентификацию, модификацию большого массива разнотипных данных, про обмен данными между независимыми приложениями, про сложный поиск… Но никак не про смысл и не про новые знания. Вернее, они не более про смысл и новые знания, чем другие технологии хранения и обработки данных. Однако не стоит эти выводы воспринимать, как призыв отказаться от устоявшейся терминологии — пусть технология останется семантической, граф — графом знаний, а данные связанными (Linked Data). Просто следует понимать, чему можно научить компьютер, а чему нельзя.
(Продолжение следует)
ganqqwerty
Я тут выделил слово программно. Прикол в том, что если будете осуществлять этот контроль кучкой if'ов или например, графовыми методами, никто не гарантирует вам, что полученные ответы будут логически правильными. А если «программно» означает ризонерами, основанными на тех же дескрипционных логиках — то вывод будет математически верным. Ризонер работает заведомо правильно и ошибки в этом случае могут быть только в данных, которые вы ему скормили.
boldachev Автор
Позвольте с вами не согласиться. Отличие ризонера от if'ов не в точности, а в универсальности. Вывод по любой аксиоме, той же «дедушка есть папа папы», можно однозначно запрограммировать стандартными языковыми средствами, и итог будет гарантированно правильным. Ведь языки программирования также основаны на строгих логиках. Вывод же ризонером просто использует общие логические правила и аксиомы. То есть разница лишь в том, что не надо писать для каждой аксиомы, каждого правила свой обработчик.
ganqqwerty
Ну да, то есть, если мы стремимся к логической точности, нам либо надо взять ризонер, либо реализовать свой ризонер для того набора выразительных средств, что мы используем.
boldachev Автор
Это если мы озабочены универсальными инструментами. А если мы пилим свое приложение, то можно просто на каждое правило/аксиому написать фрагмент кода. Итог будет такой же, но не масштабируемый. Новая аксиома — новый обработчик. Это я все к тому, что вывод новых утверждений из существующих возможно в любой программе. Это не особенность семантических технологий.