Pull to refresh

Comments 111

Никогда не смотрел на классы, объекты и прочие подобные штуки как на множества и не слышал чтобы кто-то смотрел. В программировании объекты скорее как словари рассматриваются, стандарт содержимого которых определяется классами-фабриками. Словари это, конечно, тоже множества «ключ-значение», где ключ это имя метода или переменной объекта, а значение, соответственно, метод или переменная объекта… Но в статье — как мне показалось, немного путаной — речь о другом:

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


Вы вели спор с самим собой или с кем-то ещё (если второе — ссылку хотя бы одну на источники)? Интересно ещё для чего была написана статья. Просто поделиться своим взглядом на мир и обсудить философию программирования?
Интересно ещё для чего была написана статья.
А мне интересно для чего вы ее читали? В ней нет ни слова про программирование и написана не для программистов. В первой же строке обозначены границы темы «Описание предметной области (создание ее онтологии)...». (Про то, что такое класс в ОПП и семантике см. habrahabr.ru/post/249165)
Ну… Я читал потому, что не разбирался в таком разделении наук и до конца ожидал что будет что-то про программирование. Поэтому и озадачился, собственно.
Да, это стандартная ситуация — программиста читая «класс» сразу думают про ООП и словари, а в семантике Class и SubClass это совсем про другое.
А также на то, что речь идёт про программирование и ООП намекает то, что используется термин предметная область (часть реального мира, рассматриваемая в пределах данного контекста) и указан хаб «Анализ и проектирование систем». Предметная область — это описание мира глазами пользователя. С точки зрения ветеринара, корова — это биологическая система с её историей, а с точки зрения мясника — кусок мяса определенного качества и веса. Соответственно, похудевшая корова будет эквивалентна самой себе в предметной области ветеринара, и не будет эквивалентна самой себе в предметной области мясника (извиняюсь за жестокий пример). Анализ и проектирование систем — этап разработки программного обеспечения, начинающийся с понимания предметной области пользователя. Наиболее распространенный способ описания предметной области в рамках программы — ООП. Чтобы быть уверенным (а большинству — просто чтобы допустить, ведь это программисткий сайт), что статья не имеет никакого отношения к ООП, нужно быть телепатом. Я бы на вашем месте добавил пометку о том, что речь не идёт о ООП, во избежание недопонимания.
Зачем телепатом? Можно просто уметь читать, например, название первого хаба «Семантика», а так же тэги «онтологии, моделирование предметной области, классификация, системный анализ». Встретить в тексте термины «онтология», «родо-видовые отношения», «часть-целое».

Да, сайт преимущественно программистский, но на нем есть люди читающие и пишущие в хабе «Семантика» о проблемах построения онтологий предметной области. Большинство комментариев подтверждают это.

Но если кто и ошибется — так не беда: проблемная ситуация помогает быстрее ощутить новое. Спасибо за совет.
На счёт множеств поддерживаю. Ещё лет 100 назад Бертран Рассел показал, что с множествами не всё в порядке. И древние греки тоже приводили какие-то примеры про Сократа и смерть.

И вообще сейчас в моде всякие 4D-онтологии, ISO 15926, теория категорий и т.п.
www.brunel.ac.uk/~cssrcsp/BusObj.pdf
4D-онтологии, ISO 15926
Это все та же теория множеств (класс-подклассы). А вот теорию категорий надо держать в уме)))
Нет конечно, не та же самая. В рамках 4D подхода решение Ваших «проблем» 2 и 3 описаны в методологии и изначально не могут стать предметом путаницы или каких-то ошибок.

Решение всех возможных противоречий по «проблеме» 1 предполагает тоже ряд онтологических выборов (well-founded sets, экстенсиональный или интенсиональный подход), и если их честно и явно сделать — тоже нет никаких проблем работать далее в выбранных для себя рамках.
Спасибо.

Я, конечно, знаю, что в рамках RDF/OWL и особенно ISO 15926 есть ряд решений, которые позволяют (хотя порой и на уровне заплат) решать возможные проблемы — «если их честно и явно сделать». Но мне эти решения не кажутся лучшими. Вот и появляется текст, в котором пока только задаются вопросы: а возможно ли на изначальном уровне учесть все варианты?

Кстати, под цифрами в списке перечислены не проблемы, в лишь варианты отношений Жучки и множеств, в которые она входит. И нигде не утверждалось, что в существующих семантических подходах нет методологии их описания. Проблема видятся в том, что аналитики не всегда отдают себе отчет в неоднозначности отношений множество-подмножество.
Уж к RDF/OWL сказанноем мной не имеет никакого отношения.

В 15926 же на изначальном уровне учтено — в каких вариантах из этих трёх какое отношение использовать.
То есть организация Жучек в кучки, их цветность и породистость, признание лидера стаи и всякое такое не важно, если у вас определённая характеристика любой Жучки не влияет на связанные действия.
Спасибо. Очень мудрая мысль: что не влияет, то неважно, а что влияет — то важно.
Очень интересная тема, я в своё время сломал об неё мозг.

2-ой вариант про роли. Вот, пара статей на эту тему:
ceur-ws.org/Vol-179/eon2006kozakietal.pdf
mp.binaervarianz.de/ijeis2010.pdf
Авторы достаточно глубоко рассматривают роли, варианты их представления в моделях, виды и т.п. Японцы в статье ссылаются на свой инструмент для создания онтологий, ориентированных на роли. Они разделяют просто роли (role concept) и носителей ролей (role-holder). Например, есть сущность «Человек». Человек может играть роль учителя. Причём, «учитель Иванов» — это role-holder, а просто «учитель» — это role concept. Такое разделение важно, потому что role concept могут существовать и без носителей, например, в штатном расписании может быть просто должность учителя или может быть вакансия на учителя (без привязки к конкретному человеку).

А 3-ий вариант — это ещё большая тема, которая является предметом мереологии. Вот, несколько статей:
www.conradbock.org/compkind.html
www.inf.ufes.br/~gguizzardi/CAISE2011-CR.pdf
plato.stanford.edu/entries/mereology
Там рассматривается множество различных видов и классификаций отношений часть-целое. Приведу несколько примеров мереологических отношений:
1) Сотрудник — отдел
2) Палец — рука
3) Город — страна
4) Порция воды в стакане — вся вода в этом стакане
5) Акт — пьеса
Всё это отношения «часть-целое», но они обладают разными свойствами. Например, я — сотрудник (часть) отдела, отдел — часть организации, следовательно, я — часть организации. В данном случае отношение «часть-целое» является транзитивным. Но с другой стороны, мой палец — часть меня, я — часть организации, но это не значит, что мой палец — это часть организации. Т.е. мереологические отношения могут быть разными.

Оба этих вопроса (про роли и мереологические отношения) сейчас открыты. Есть разные работы на эту тему, какой-то единственно правильной классификации ролевых или мереологических отношений лично я не нашёл.​
Спасибо за ссылки — посмотрю.
2-ой вариант про роли.
Я как раз умышленно не стал использовать понятие «роль», хотя во многих случаях специализационные (реляционные) отношения сводятся именно к ролям. (Про role concept и role-holder не думаю, что это точное решение — ведь роль может быть только у индивида, и вакансия — это тоже индивид — тут отношения сложнее… позже попытаюсь расписать.) Меня интересовал общий случай.
А 3-ий вариант — это ещё большая тема, которая является предметом мереологии.
В этом тексте (на начальном уровне описания) я прежде всего хотел показать отличие множества, как объем понятия, и множества, как группы индивидов в составе сложного индивида. Остальные проблемы — позже.
какой-то единственно правильной классификации ролевых или мереологических отношений лично я не нашёл.​
Да и я не нашел удобоваримого решения. Вот пытаюсь подобраться к этой проблеме со стороны субъектно-событийного подхода (см. предыдущие статьи).
Насчет отношений тоже интересная тема… Роли можно представлять в моделях разными способами. Например, человек может играть роль водителя транспортного средства. Мы можем в модели описать две сущности: человек и транспортное средство. И можем создать между ними отношение «водитель — управляемое ТС». Т.е. моделируем роль в виде отношения. А можем моделировать роль как самостоятельную сущность «Водитель», у которого могут быть какие-то свои атрибуты (стаж вождения, категория), отношения с другими сущностями (водительское удостоверение).

Т.е. получается, что одно и то же понятие «Водитель» можно описать либо как отношение, либо как сущность. Для подавляющего большинства людей такая неоднозначность — это норма и они вообще не увидят тут проблемы. Но такая неоднозначность — это явный признак того, что с языком моделирования что-то не так. И потенциально это может привести к усложнению модели, к её переделке по каждому чиху. Например, я ввожу правило, что если у роли нет никаких свойств и отношений с другими сущностями, то моделирую её как отношение, иначе — как сущность. Но, что если сейчас у роли нет никаких свойств, а завтра вдруг окажется, что какие-то свойства всё-таки нужны. В этом случае придётся переделывать модель: отношение превращать в сущность. Или обратная ситуация: были свойства, а потом они стали не актуальны.

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

Кстати другие подобные примеры «неоднозначности» описываются в книге www.brunel.ac.uk/~cssrcsp/BusObj.pdf (там пример на тему наследования) — я думаю, книга маст рид для всех кто занимается моделированием.

Или то же «транспортное средство» — это класс или роль? С одной стороны, это, очевидно, роль. Например, автомобиль может играть роль транспортного средства, товара (при купле-продаже), продукции (при производстве), музейного экспоната, орудия убийства и т.п. Но во всех этих ролях автомобиль остается автомобилем, это его неизменная сущность. Другие примеры сущностей, которые могут играть роль транспортного средства — самолет, линия электропередач, трубопровод и т.п. Иными словами, транспортное средство — это роль. Но, блин, когда начинаешь рассказывать предметным специалистам или даже ИТшникам про то, что транспортное средство — это не суперкласс автомобиля, а его роль, то на тебя смотрят как на сумасшедшего )

Поэтому лично я пока забили на все эти роли, мереологию, 4D-онтологии и т.п. Пусть модель будет неправильная, примитивная, но зато понятная людям. Хотя в подсознании конечно все эти идеи сидят, может получится когда-нибудь применить.

Ещё одна ссылка про роли — объектно-ролевое моделирование.
Спасибо. Вы высказали именно те соображения-опасения-проблемы-тупики, которыми я сейчас и озабочен. И даже из этого вашего текста можно вынести основные требования к формализму описания: во-первых, это должно быть понятно специалистам (надо иметь внутренний-системый и внешний-интерфейсный словари), во-вторых, для разных специалистов должны быть разные описания (но состыкованные на нижнем уровне — именно для того, чтобы для одного нечто был ролью, а для другого классом), и в-третьих, разные уровни описания. Поэтому я и не спешу с рассуждениями о мереологии и ролях — пока пытаюсь выдержать разговор на самом общем уровне. (Еще раз спасибо за ссылки — полезные.)
Прикольно, что когда я ломал себе мозг подобными вопросами, то среди прочих рассматривал и примеры, которые вы здесь привели — кто такие «Водители», что такое «Транспорт». Ну плюсом также — что такое «Товар», кто такие «Контрагенты», что такое «Банки». И еще именно термином «роль» мучил себя и окружающих.

Для себя я нашел ответы, которые меня устроили. Но в целом согласен, что для практики в 90% ситуаций достаточно примитивных моделей.
У Джона Sowa есть такая классификация способов группировки:
— Коллекция: составной объект, включающий разнородные, не обязательно исчисляемые, не обязательно четко разделяемые части. Пример: куриный суп с клецками.
— Множество: совокупность однородных, исчисляемых объектов.
— Тип: произвольная группа объектов, которую аналитик счел нужным выделить по какому-либо основанию.
— Категории: типы, используемые с целью классификации.

Мутно у него написано про категории, а в остальном — классификация полезная.
Если говорить о типах, как раз становится понятна та мысль, которую доносит автор поста. Выделяя тип, мы подразумеваем некую идею — это интенсионал; те объекты, которые соответствуют этой идее — экстенсионал.

Понятно, что экстенсионал одного и того же типа может быть различным для разных субъектов.
Интенсионалу мы присваиваем знак — например, слово «собака». Также понятно, что в разных контекстах интенсионал одного и того же знака может быть разным.

На мой взгляд, это ставит все на свои места.

В том числе, из этого следует, что задачи типизации, классификации, категорирования никогда не должны решаться вне практического контекста.
Спасибо. У вас же и читал про классификацию Sowa )). Мне она не нравится. Не понятно, почему коллекция должна содержать разнородные объекты — я не вижу существенной онтологической разницы между коллекцией картин и коллекцией утвари дворянской усадьбы. И как может быть коллекция неисчесляемой? А множество, наоборот, обязательно исчисляемо? Почему тип — это множество? Да, можно создать множество однотипных объектов, но сам тип никак не множество. А про категории и говорить нечего — какая-то откровенная нелепица. Ведь все, что введено в онтологию используется с целью классификации. Да еще налицо тавтология: тип — это множество (то есть уже некая классификация), а категория — тип, используемый для классификации. Вообщем туши свет.
Понятно, что экстенсионал одного и того же типа может быть различным для разных субъектов
Для этого любое выделение объекта должно приписываться конкретному субъекту. Вообще онтлогии могут быть только субъектными, конечно, с фиксацией, некоторой «объективной» (для данного множества субъектов) онтлогии, понимаемой как пересечение субъектных онтологий. Если субъекта выделить нельзя, то надо вводить что-то типа «абсолютного субъекта».
Также понятно, что в разных контекстах интенсионал одного и того же знака может быть разным.
Для этого онтология должна быть исключительно темпоральной — с привязкой утверждений/фактов к событиям конкретного действия (контекста). В этом случае один и тот же объект может подпадать под разные понятия или «играть» разные роли без возникновения противоречий.
Тут с вами соглашусь по всем пунктам. Особенно про субъекта — этим соображением мы напрямую руководствуемся в моделировании.

Как википедию прочитал. Брр…

Формализм теории множеств может использоваться только как локальное упрощение для нужд логического вывода, а не как основной метод описания

Так UML же. И не придется ограничиваться одним лишь включением подмножеств во множества. Я частенько дополняю UML оговоренными компонентами, что позволяет не только описать разлиные типы отношений (наследование, агрегация, композиция), но и определить дополнительные характеристики предметной области.
И не придется ограничиваться одним лишь включением подмножеств во множества.
Тут проблема на самом верхнем теоретическом уровне: есть сторонники так называемого логического подхода, предлагающие все мыслимые отношения и атрибуты (включая численные) описывать на языке теории множеств. С ними и полемика.

И по поводу UML: да, дополнить можно. Но проблема не в подгонке модели к конкретной задаче, а о создании универсальной онтологии верхнего уровня. Существующие меня принципиально не устраивают. Вот и приходится начинать практически с нуля.
создании универсальной онтологии верхнего уровня

Приведете пример?
Cyc (OpenCyc, ResearchCyc), BFO (Basic Formal Ontology), GFO (General Formal Ontology), SUMO (Suggested Upper Merged Ontology), DOLCE (Descriptive Ontology for Linguistic and Cognitive Engineering), онтология Джона Сова (Sowa’s
ontology).

Просто поищите по «онтологии верхнего уровня» или Top-Level Ontology, Upper Ontology.
Я тоже пытался сделать онтологию верхнего уровня, не совсем универсальную, а под конкретный проект. Хотя, всё-таки, с замашкой на универсальность. Кстати, тоже выделял события, роли и т.п. Потому, что существующие онтологии были или слишком узкоспецилизированные, или наоборот слишком философские (со всякими endurant, perdurant), или вроде бы нормальные, но слишком сложные (типа ISO 15926).

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

А, во-вторых, даже если бы я разрешил все эти противоречия, всё-равно вряд ли бы кто-то стал этим пользоваться, потому что слишком сложно.
Чисто философская у меня получилась такая habrahabr.ru/post/256331 Да и то, как-то вышел на меня сугубо программист с расспросами, как эту схемку для семантической БД использовать.

Про «во-первых»: непротиворечивой, на мой философский взгляд, не получится, поэтому и стремится не надо. Желать можно только локальной непротиворечивости — в рамках одной деятельной проекции на фиксированный уровне субъектов. А другого и не надо — нет задачи пересчитать все песчинке в мире и учесть все причины. И строиться онтология верхнего уровня должна не от верха, а от середины (как мы и мыслим) — только так можно добиться локальной сводимости. А универсальности я пытаюсь добиться вводя сугубо событийную онтологию — все можно описать через поток событий: любой факт — это событие.

Про «во-вторых»: сложно должно быть на периферии (сверху и снизу — для обобщений и реализации), а на уровне пользователя должно быть элементарное условное описание событий меняющих систему.
индивида Жучку мы называем лайкой, если она входит в множество лаек, а само множество лаек определяем как совокупность всех индивидов лаек
Я не специалист в теориях, возможно где-то и рассматривается принадлежность ко множеству как единственный вариант связи. Но в обычном бытовом смысле мы Жучку называем лайкой, если она соответствует общепринятым признакам лайки. У вас это называется «подпадание индивида под понятие». Только не очень понятно, зачем вы посвятили этому 3 абзаца. Выглядит так, как будто вы придумали проблему с неправильным определением понятий и потом доказали, что неправильные определения это неправильно.

связь индивида «Жучка» с понятием «ездовая» существенно отличается от связи с понятием «лайка»…
К примеру, Жучка могла быть признана абсолютным чемпионом породы, а потом утерять это звание, что принципиально невозможно с концептуальными понятиями
Неа. Здесь тоже идет соответствие признакам. К примеру, абсолютным чемпионом можно назвать победителя последней мировой выставки. Одна собака может несколько раз побеждать в выставках и соответствовать этим признакам, потом победит другая, и этим признакам будет соответствовать уже она.
Аналогично Жучка может перестать соответствовать признакам лайки, если набор признаков лайки поменяется, например, в результате какой-нибудь всемирной конференции биологов. Другой пример, можно считать банан деревом, а потом окажется, что это трава.

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

Жучка является частью псарни и частью упряжки
Тут, конечно, есть отношение «часть-целое», но если рассмотреть это с другой стороны, то все снова сводится к набору признаков. У нас есть некоторое представление о том, что такое упряжка собак, и один из признаков — это некоторое множество собак. На привале собак можно распрячь и отпустить, тогда можно будет сказать, что у нас пустая упряжка.

То есть, все 3 случая — это соответствие определенному набору признаков. Может в теории традиционным является выделение множеств, но на практике выделение признаков давно уже применяется в программировании и проектировании предметной области приложения. Правда, там есть свои технические сложности касательно задания и определения соответствия, но это уже другой вопрос.
Вы, наверное, не подозревая сами, выделили самую суть проблемы — одно и тоже семантическое содержание можно описать неконечным числом способов: через принадлежность к классам-множествам, концептуально — через подпадание под понятия, через отношения между объектами, через наборы признаков. И ни один из них не является единственно правильным. По поводу применимости каждого из подходов можно произнести ваше «но если рассмотреть это с другой стороны».

Если попытаетесь разобраться с проблемами использования ООП для описания сложных предметных областей, то как раз узнаете о неадекватности использования набора признаков (классов ООП).
Все эти Жучки стоя пирамидкой не могут построить систему, потому что система вскрывается во взаимодействии с другими объектами.
Информационные системы всегда являются частными ролевыми. Не общими.
Поэтому любые классификации, выходящие за рамки конкретной ролевой модели считаются несущественными.

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

Порода и цвет не влияет на норму амортизации и инвентарный учет в бухгалтерии. А значит их учитывать не следует. Зато влияет назначенная роль (приплод в питомнике, служебные собаки в таможне, ...).
Инвентарный номер — обязательно, балансовая стоимость — самое главное, кличка — желательно, но можно и обойтись.
Если вы отдельной Жучке написали инвентарный номер на ошейнике, уж не перепутаете с другими Жучками. Это и есть её главное онтологическое свойство.

Нет никаких неизменных сущностей. В рамках конкретного учета собака приравнивается машине, несмотря на всю онтологическую философскую метафизику.
Иначе наши Жучки будут стремиться обладать бесконечным набором классификаций
(Жучки спящие на правом боку, Жучки со звёздочкой на лбу, Жучки родившиеся в первую четверть луны, Жучки весящие ровно 10 кг итд итп)
То есть организация Жучек в кучки, их цветность и породистость, признание лидера стаи и всякое такое не важно, если у вас определённая характеристика любой Жучки не влияет на связанные действия.
Спасибо. Очень мудрая мысль: если что не влияет, то неважно, а если влияет, то важно)))
Золотые слова!
Как я не раз писал,
— само выделение типа «Собака» зависит от контекста (фарфоровая собака — это Собака? в одном контексте — да, в другом — нет),
— границы объекта зависят от контекста (на собаке, правда, это сложно показать),
— интенсионал, соответствующий знаку «Собака», в разных контекстах и для разных субъектов разный,
— набор конкретных объектов, являющихся Собаками, может отличаться для разных субъектов даже в пределах одного контекста и интенсионала,
— говорить о классификации Собак имеет смысл только с оглядкой на конкретную задачу, которую мы хотим решить,
не всякий признак Собаки есть основание для классификации (на каком боку она спит — точно не основание).

Есть, конечно, техника безатрибутного моделирования, когда наличие любого признака, любое утверждение об объекте выражается классификацией. Но с практической точки зрения очень неудобно получается.
Куда удобнее, когда классификация выражает утверждения о самом объекте как таковом, а атрибуты — утверждения о его положении в мире, связях, структуре и т.д.
Золотые слова!
Смысл этих «золотых слов» заключается в простой мудрости: собака есть то, что я назвал собакой (или точнее, то что попало под мое понятие «собака»). И атрибуты тут вторичны, производны от понятия (далее должны идти рассуждения о прототипах).

Гораздо более золотой была бы методология/нотация, в которой эти золотые слова можно было бы не только произнести, но и формально зафиксировать (над чем и работаю))))
Скромно добавлю, что с технической точки зрения тут нет особой проблемы. Никто мне не мешает в онтологии выразить сведения о том, что такой-то объект является тем-то с такой-то точки зрения. Мы это делаем на практике, например, создавая утверждения о том, что предприятие X с точки зрения закона ФЗ-123 — это опасный производственный объект, а с точки зрения пользователя, глядящего на карту такого-то масштаба, оно же является пространственным объектом, имеющим площадь. Из первого следуют определенные регламенты, применимые к этому предприятию, из второго — то, что мы его можем на карте нарисовать в виде многоугольника. При этом «точка зрения» явно указывается в определении классов, и используется при работе с моделью в информационной системе.

Тут главное смотреть на технологию как на технологию, а не догму.

А вот стройная методология, в которой все это можно описывать до внесения в ИТ-систему, очень бы не помешала. Как средство организации умов аналитиков.
А вот стройная методология, в которой все это можно описывать до внесения в ИТ-систему, очень бы не помешала.
Некоторые моменты я попытался зафиксировать в своем комментарии по поводу классификации. Какие-то общие соображения есть в моих предыдущих публикация по субъектно-событийному подходу. Постараюсь развить эту тему в последующих текстах.
Уважаемый автор и уважаемые комментаторы!

В очередной раз читаю о разработках в области так называемой «Онтологии». Огромное количество трудозатрат уходит на выявление «связей и отношений» какой-либо «Жучки» с какими-нибудь «дедушками и бабушками». Может ли кто-то объяснить, что это даёт исследователям и разработчикам? Станут ли от этого машины умнее? Смогут ли они понимать тексты на естественных языках, как это умеет делать человек? Научатся ли компьютеры оперировать Знаниями, а не только Данными, как это имеет место быть сейчас?

Зачем, вообще, нужны все эти онтологии?

Был бы очень благодарен за откровенный и обстоятельный ответ.
Спасибо за ссылку! Скажите, в этой книге материалы чисто теоретического плана или выросшие из практики? Вы реально применяете изложенное в каких-либо проектах?
Выросшие из практики — все применяем. Немного о проектах сказано на сайте trinidata.ru, больше могу рассказать в личку.
Ок, я почитаю, если возникнут вопросы — напишу Вам.
Вы пишите на сайте, что Ваши разработки могут «управлять знаниями» и приводите такие определения, как «базы знаний».
Неужели Вам удалось научить машину оперировать Знаниями? Или всё же речь идёт о чём-то другом?
Есть конкретные технологии, которые позволяют представлять концептуальные модели в электронной форме и оперировать ими. Чтобы понять, как это выглядит на практике — нужно углубляться в детали, которые в книжке описаны. Тогда станет понятно, что машина может на этих технологиях делать, а что — не может.

Например, машина может делать логические выводы в духе «Все люди смертны, Иван — человек, значит — Иван смертен» (уровень сложности как условий, так и получаемых результатов практически не ограничен).
Следовательно, я могу известные мне факты (мои знания) записать в электронной форме в виде вот таких аксиом, и машина за меня сделает выводы. Это одна из граней управления знаниями.

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

Хорошо. Тогда могли бы Вы привести пример формата записи любой части текста и сказать, вот это и есть Знание и оно понятно машине, которая распоЗНАёт его именно как Знание?
Распознавание смысла текста — отдельная задача. Ее вполне сносно решает, например, продукт ABBYY Compreno, который позволяет получить из текста онтологию.

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

Один из таких инструментов — наша Система управления знаниями, которая позволяет строить запросы к базе знаний. Одним из способов построения запросов в ней является контролируемый естественный язык. Слово «контролируемый» значит, что можно написать не любую фразу, а только такую, какая дозволена правилами.

У нас есть мини демо-версия (см. trinidata.ru/asuz_demo.htm), которая позволяет построить, например, такой запрос:
Курорт, такой (-ая), что Находится в стране Россия и Имеет климат Средиземноморский.

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

Наша система «знает» термины Курорт, Страна, Климат, Находится, Имеет. Запрос будет преобразован в шаблон поиска, который будет применен к графу. Результатом запроса будет 100% точный, логически обоснованный (с позиций фактов, имеющихся в системе) ответ на заданный вопрос.

Это очень простой пример, зато его можно привести в рамках комментария.
Более полную информацию, повторю, можно найти в книжке.

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

У вас там предложены решения возникающих проблем с использованием классов-множеств в рамках изначально заявленной вами парадигмы. Моя же цель, показать, что эта методология изначально неудовлетворительна, что возможны другие подходы, не требующих заплат для решения некоторых проблем.
Кстати, пособие я обновил пару недель назад, если не видели этой версии — гляньте, там добавлено немало материала. В т.ч. о способах группировки.

В целом же, если под «нашей» парадигмой понимать RDF/OWL, то нужно разделить вопросы концептуального моделирования и ИТ. Первоначально кажется (и мне самому казалось), что OWL задает некую парадигму моделирования уже тем, что использует понятия «класс», «индивид», «свойство», использует инструментарий теории множеств. Сейчас я пришел к выводу, что никто не заставляет нас так думать.

Иными словами, на уровне концептуальной модели мы можем мыслить так, как нам удобно.
Можем думать о типах, имеющих интенсионал (подразумеваемое значение) и экстенсионал (набор объектов, которые ему соответствуют).
Можем думать о множествах.
Можем думать о коллекциях.
И на этом уровне совершенно «не париться» за то, как это будет выражено средствами ИТ.

Далее, когда доходит дело до представления модели, начинаем смотреть на возможности OWL — действительно весьма ограниченные (хотя, с другой стороны, и в таком объеме до сих пор мало используемые). И тут нам приходится выбрать способ технического представления тех или иных наших измышлений. Пару рецептов на эту тему я описывал.

Но, самое главное — от того, что и тип, и множество превратились в owl:Class, в концептуальной модели ничего не изменилось. Мы можем с этим owl:Class'ом оперировать как с типом, а можем — как с множеством. Можем подразумевать у него интенсионал, а можем и не подразумевать, а просто механически объединить какие-то объекты.

Кстати, пособие я обновил пару недель назад
Спасибо. Смотрел и последнюю версию.
Иными словами, на уровне концептуальной модели мы можем мыслить так, как нам удобно
Это понятно. Но хотелось бы приблизить формальный язык (нотацию) к мыслимой модели. Хотя потом при машинной интерпретации все в конечном может свестись к тем же owl:Class. О чем я написал в последнем предложении текста: "Формализм теории множеств может использоваться только как локальное упрощение для нужд логического вывода, а не как основной метод описания."

Можно задачу поставить так: нужен язык высокого уровня (с концептами, ролями, коллекциями, системами и пр.) для описания предметной области и его компилятор для перевода написанной онтологии на язык, скажем, логики первого порядка, тот же OLW — для логического вывода.
Зачем, вообще, нужны все эти онтологии?

Чтобы строить модель предметной области.
Ну хорошо, эксперты — живые люди построили эти «модели предметной области» (МПО). Модель, как я понимаю, это набор взаимоувязанных каким-то образом Данных. И что? А где Знания? Разве «МПО» это Знания?
Можно ли с помощью МПО извлекать из текстов Знания? Вроде, нет. Тогда зачем всё это, когда есть сообщество экспертов, которые делают работу вместо машин?
Разве «МПО» это Знания?

Да, модель предметной области — это выраженные нужным образом знания о предметной области.

Можно ли с помощью МПО извлекать из текстов Знания?

В определенных случаях — да.

Тогда зачем всё это, когда есть сообщество экспертов, которые делают работу вместо машин?

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

Однако, мне не стало легче. Камень преткновения здесь понятие «Знание». Возможно мы по разному понимаем этот термин. На мой взгляд, в онтологиях нет никаких Знаний. А понимание — это есть установление Знаний или как-то так. Разве можно извлечь Знания из текста без «знаниевой» технологии?

Возможно, что здесь просто какие-то ухищрения, не совсем приемлемые. Но ИМХО, онтологии это не те технологии, чтобы машина научилась оперировать со Знаниями. Не так ли?
Камень преткновения здесь понятие «Знание».

Если у вас свое понимание термина «знание», я не могу ответить на ваши вопросы, не зная, что вы вкладываете в это понятие.

Но ИМХО, онтологии это не те технологии, чтобы машина научилась оперировать со Знаниями. Не так ли?

Во-первых, не так. А во-вторых, оперирование «знаниями» — далеко не единственная задача, которую решают разработчики программного обеспечения, поэтому просто бессмысленно все сводить к этому вопросу.
Хорошо, постараюсь объяснить, что такое Знание.

Вот, например, кто-то говорит или написано в тексте: «Петя пошёл». С точки зрения лингвистики, это есть некое предикатное исчисление. С позиции онтологии — это связи и отношения. А вот, наше мышление реагирует на это с иной позиции. У нас в Сознании возникает некий Образ /Петя/, который куда-то двигался пешком. Фактически, получается, что выражение «Петя пошёл» есть некий КОД, а наше соЗНАние дешифровало его с помощью Знания, представляя себя, как кто-то, которого зовут /Петя/ куда-то идёт.

Так вот, если человек умеет расшифровывать Мысль, закодированную в языковом выражении с помощью Знаний, то как это может делать машина с помошью онтологий?
Так вот, если человек умеет расшифровывать Мысль, закодированную в языковом выражении с помощью Знаний, то как это может делать машина с помошью онтологий?

habrahabr.ru/company/abbyy/blog/269191
Технология «Компрено», на которую Вы ссылаетесь, есть модифицированная технология «Семантической Сети» Ёлкина С.В., которая была создана ещё 15 лет назад и от которой автор отказался примерно тогда же.

Компрено ИМПОТЕНТНА в отношении извлечения Смысла или каких-либо Знаний из текстов. Максимум, что она может делать, это находить некоторые слова по заданным для них в словаре маркерам.

По связям и отношениям между словами в предложении машина никогда не сможет представить себе её СМЫСЛОВУЮ модель.
Об этом побеседуйте с автором той статьи, а не со мной.

Я, со своей стороны, сказал, что онтологии полезны для построения модели предметной области. «Знания» сюда зачем-то приплели вы.
Модели предметно области полезны ровно в той степени, в какой полезны записи в бухгалтерской книге, в которых кроме автора мало кто разбирается.

Я действительно «приплёл» понятие «Знание», поскольку технологии обработки Данных сейчас на пике своих возможностей и мир ждёт технологии обработки Знаний. А мы занимаемся чепухой, составляем записи бухучёта…
Модели предметно области полезны ровно в той степени, в какой полезны записи в бухгалтерской книге, в которых кроме автора мало кто разбирается.

А как вы предлагаете разрабатывать программное обеспечение для сложной предметной области, не имея ее — области — модели?

поскольку технологии обработки Данных сейчас на пике своих возможностей

Что, правда? А почему тогда столько проблем в типовых, казалось бы, задачах?

А мы занимаемся чепухой, составляем записи бухучёта…

Я не знаю, кто эти «мы», которые занимаются чепухой — а вот программисты, которых я знаю, или которых я читаю, в основном занимаются вполне полезными вещами, решая конкретные проблемы конкретных людей и организаций.

Прямо скажем, если бы не эта «чепуха», мы бы сейчас с вами здесь не переписывались.
//А как вы предлагаете разрабатывать программное обеспечение для сложной предметной области, не имея ее — области — модели?//

Очень просто. Сначала надо разработать машинный формат Знаний. Чтобы это сделать, надо понимать, что есть на самом деле Знания?

Даю наводку. ЗНАНИЯ это есть ОТВЕТ на познавательный вопрос, записанный в памяти человека.

Если Вы сумеете записать Знание как Ответ на вопрос в памяти машины, значит Вы решили проблему!!!

Вот, собственно, чем надо заниматься.
Очень просто. Сначала надо разработать машинный формат Знаний.

… и это никак не решит поставленную выше задачу. При этом намного более «простые» методологии успешно ее решают.

Вот, собственно, чем надо заниматься.

И оставить тех людей, которые сейчас получают пользу от того, что я сейчас делаю, без этой пользы? Спасибо, но нет.
Если Вы сумеете записать Знание как Ответ на вопрос в памяти машины, значит Вы решили проблему!!!

BTW, в такой формулировке это решенная задача. Но проблему бизнеса она все еще не решила.
Этим должны заниматься теоретики. Но они этим могут заниматься еще очень долго. Что делать в это время практикам?
Павел, согласен с Вами! Действительно, разработкой «знаниевых» технологий должны заниматься специалисты в этой области. Однако, и программисты не должны стоять в стороне.
Самое печальное в таких рассуждениях состоит в том, что они являются основанием для возврата к экселю.

Аргумент звучит так: если невозможно полностью воспроизвести человеческое мышление в ЭВМ — то не стоит пытаться использовать частичные решения, позволяющие к этому приблизиться.
Легко прийти к выводу, что нужно сидеть и ждать, пока кто-то создаст настоящий электронный мозг, а до тех пор можно со спокойной душой работать в электронных таблицах.

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

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

p.s. посмотрите еще на IBM Watson. Интересная вещь.
//Аргумент звучит так: если невозможно полностью воспроизвести человеческое мышление в ЭВМ — то не стоит пытаться использовать частичные решения, позволяющие к этому приблизиться.//

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

//Петя пошел в школу, то благодаря онтологиям ЭВМ способна сделать вывод, что Петя — школьник//

Вот здесь и кроется главный недостаток всяких онтологий. С какого перепугу онтология должна выдать, что «Петя это школьник»? А может, это мать школьника говорит про своего мужа, который пошёл на классное собрание, или петух по имени Петя забрёл во двор школы. Мы не знаем контекста, который может давать массу вариантов.
Если сказать: «кирпич, камень, вода, песок, цемент» — что именно выдаст Ваша онтология? Это есть Стена, Забор, Фундамент, Перекрытие и так далее?

Айбиэм Ватсон, Аскнет и прочие так называемые «вопросно-ответные системы» являются поисковиками по ключевым словам, в которых ответы заранее вбиты на вопросы.
Никакая Прога пока не может понять смысл вопроса или фразы.
Никакая Прога пока не может понять смысл вопроса или фразы.
И? Какой вывод? Все дружно форматируем свои винчестеры? Ведь ни одна программа на вашем компьютере не может понять смысл вашего вопроса. А заодно не забудьте выкинуть свой калькулятор он тоже не может.

Вы вообще о чем? Вам кто-то обещал, что онтологии предметных областей будут понимать смысл? Если не обещал, то к чему ваши требования? У каждой вещи, каждой программы, каждой технологии свои задачи, с которыми они более или менее успешно справляются. Не решают семантические технологии ваши задачи? Так и не обязаны. В чем суть ваших претензий?
Айбиэм Ватсон, Аскнет и прочие так называемые «вопросно-ответные системы» являются поисковиками по ключевым словам, в которых ответы заранее вбиты на вопросы.

А вы откуда знаете? Вы на реализацию смотрели?
Да и с разработчиками знаком.
Можете, в таком случае, указать конкретный участок реализации Watson, который подтверждает, что это «поисковик по ключевым словам»?
1. Ищет всё то, что есть в Базе.
2. В Базе связки Вопрос-Ответ.
3. Если запрос совпадает со связкой ключевых слов в вопросе, то Ватсон находит связанный с ним ответ.
4. Такая технология более менее приемлема для аналитических языков, к коим относится английский язык. Для русского языка процент попаданий будет намного хуже.
Я просил конкретный участок реализации, а не ваши предположения. Вот, скажем, конкретная структура хранилища подойдет.
image

А что если пойти по этому пути…
Онтологии используются не только для машинной обработки знаний. Их можно использовать просто для построения концептуальных моделей. Причём как строить, так и использовать эти модели будут люди. Это нужно, например, при разработке различных интеграционных шин.

Представьте несколько информационных систем, с какими-то своими базами данных. Допустим нам нужно наладить информационный обмен между этими системами. Для этого мы анализируем все эти базы данных и строим единую модель в виде онтологии. Например, в одной базе данных есть сущность «Товар», в другой — «Продукция». Мы понимаем, что в действительности речь идёт об одной и той же сущности, просто они называются по-разному в разных базах. И в онтологии мы всё это дело унифицируем, создаём одну сущность, которую договариваемся назвать, допустим, просто «Товар».

Или обратная ситуация. Допустим мы не интегрируем существующие ИС, а разрабатываем новую. Но хотим, чтобы в нашей ИС была правильная терминология, были правильно выделены сущности и т.п. В этом случае мы можем взять онтологию например из ISO 15926. И если мы будем проектировать ИС в соответствии с ней, то наша ИС будет гарантированно совместима на терминологическом, концептуальном уровне с другими ИС, которые также основаны на этой онтологии.
//Онтологии используются не только для машинной обработки знаний. //

Не могли бы Вы привести хотя бы один единственный пример, когда онтологии достигли успеха в «машинной обработке знаний»?
Я, в общем-то, с вами согласен. В моём понимании онтология — это просто навороченный словарь или справочник. К машинному понимаю чего-то или ИИ всё это имеет очень косвенное отношение. Я думаю, что онтологии делаются, главным образом, людьми для людей.
//онтологии делаются, главным образом, людьми для людей.//

Ну, вот, наконец-то, правдивая и точная формулировка — «делается людьми для людей»! Спасибо Вам за это, а то сам никак не мог сформулировать.

Чем ПРИНЦИПИАЛЬНО онтологии отличаются, например от словаря Ожегова? Да ни чем. Это такой же инструментальный справочник, как и другие средства подобного рода. Меняются или обновляются лишь способы использования таких инструментов. Так зачем из этого делать фетишь? Нужно искать выходы на новый уровень обработки информации, на новый технологический уклад — к знаниевым технологиям — а не заниматься бесконечным усовершенствованием справочников и словарей, называя их «онтологиями».
Как вы понимаете «правильность» терминологии? Как соответствие какому-то стандарту?
Как соответствие её онтологии. В меня конечно сейчас полетят камни, но, если очень грубо, то онтология — это просто навороченный словарь. Например, создатели ISO 15926 в своей онтологии зафиксировали, что есть классы, события, роли, свойства,… дали определения этим понятиям, зафиксировали в онтологии как они между собой связаны. Теперь все разработчики ИС, которые опираются на онтологию из ISO 15926 будут создавать свои модели в одних и тех же терминах, будут понимать под ними одно и то же.
Ага, спасибо. То есть все же стандарту :)
Я разницу между Данными и Знаниями определяю так.

Данные требуют интерпретации человеком. Excel может просуммировать столбец с суммой продаж, но это механическая операция — он ничего не «знает» о продажах. То есть, человек дважды совершает преобразование: первый раз — когда вносит знания в ЭВМ, превращая их в данные, и второй раз — когда смотрит на обработанные данные, и делает на основании столбца цифр какие-то выводы о продажах (получает новые знания).

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

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

Однако, не стоит проявлять максимализм и говорить, что пока такая система не создана — об обработке знаний нет и речи.

Главный критерий — это практика. Если онтологии позволяют имитировать процесс принятия решения человеком в определенных ситуациях (а они позволяют), дают возможность представить знания с большим богатством структуры, с меньшей потерей информации, чем, скажем, реляционные СУБД (а они дают) — стоит использовать эти возможности.

//Данные требуют интерпретации человеком.//

Верно! Человек всё интерпретирует и делает он это с помощью Знаний. Причём интерпретирует не только Данные, но и информацию, содержащую в зашифрованном виде Знания!

Онтологии, как и записи бухучёта, тоже требуют интерпретации и тоже с помощью Знаний. А поскольку онтологии не являются Знаниями, то с помощью онтологий НЕЛЬЗЯ ничего интерпретировать.
Интерпретации-то они требуют, но это интерпретация другого уровня. Поскольку в онтологии информация представлена при помощи понятий, которыми оперирует человек, и выражена в виде фактов. Это представление намного ближе к нашему сознанию, чем колонка цифр.

Повторю, если придерживаться вашей точки зрения — то Знаниями является только то, что у человека в голове. Из этого априори следует, что не может быть способа работы с ними в ЭВМ, то есть разговор получается ни о чем.

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

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

1. Огромная просьба к Вам, как к специалисту в онтологиях, могли бы Вы показать мне ровно один пример «понятия» и ровно один пример «факта», которые может распознать машина?

На мой взгляд сегодня машина умеет распознать только Пиксель, а точнее его координату и цветовое значение.

Ничего более компьютер не умеет делать.

//Повторю, если придерживаться вашей точки зрения — то Знаниями является только то, что у человека в голове. Из этого априори следует, что не может быть способа работы с ними в ЭВМ, то есть разговор получается ни о чем.///

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

//Человек до сих пор не летает, как птица, однако практической пользы получено огромное количество.//

3. Человек самостоятельно и не будет летать в условиях земли. Но человек умеет разрабатывать инструменты для переноса себя в воздушном и безвоздушном или водном пространстве. Единственный инструмент, который ему осталось разработать — это автоматизированный обработчик Знаний.
Эта задача обязательно будет решена, но не с помощью ухищрений типа «онтологии» или «компрено», а с помощью действительно мощного инструмента, способного дешифровать мысли, закодированные естественным языковым средством.
Ну, тот же агрегатор новостей Яндекс по ключевым словам определяет тематику новостей (политика, культура, экономика, ...), группирует новости про одно и то же, но размещённые на разных сайтах.

Т.е. он каким-то образом устанавливает факт принадлежности новости к той или иной категории, устанавливает факт того, что две новости про одно и то же.
Понимает ли агрегатор новостей, что он делает? Или же ему задали какой-то алгоритм, который он выполняет?
Каково количество новостей, имеющих ту же тематику, но написанные в ином контексте (иными ключевыми словами) не попадают под агрегацию?
Есть много вещей, от тезауруса до конкорданса, от статистики до стохастики, при помощи которых можно агрегировать массивы информации по ключевым словам, имеющим семантисы с иерархической атрибутивностью.
Понимает ли что-то агрегатор новостей или понимает ли что-то человек — это философские вопросы. Честно говоря, в последнее время я думаю, что разница между мышлением человека и «мышлением» агрегатора новостей всего лишь количественная. У агрегатора очень простые входные стимулы, очень простые алгоритмы и очень ограниченный набор реакций. Ему скормили кучу новостей, он их обработал и для каждой новости выдал категорию.

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

Всю свою жизнь человек программируется обществом на выполнение определенной программы, его жизнь полностью детерминирована. Точно также как «жизнь» агрегатора новостей. Да, она разнообразней, но качественной разницы нет.

Человек, который никогда раньше не видел телевизор или компьютер, будет воспринимать их как живые организмы. Он будет думать, что в телевизоре сидят какие-нибудь гномы и т.п. Равно как и нам окружающие люди и мы сами кажемся «живыми», обладающими разумом, самосознанием и т.п. только потому что мы не понимаем как устроен человеческий разум. Т.е. «разум» агрегатора новостей и разум человека в действительности принципиально не отличаются. Это мы их воспринимаем такими разными потому что 1-ый для нас понятен, а 2-ой — нет.
Наверное агрегатор новостей не смог бы написать подобный комментарий. А раз я смог, значит, обладаю каким-то типа разумом. Но, в действительности, всё очень просто
1) я смотрел как другие люди пользуются интернетом и стал тоже им пользоваться по аналогии
2) смотрел как люди пишут комментарии и тоже по аналогии научился их писать
3) наслушался от других людей идей о том, что в пробках стоять очень фигово, что это трата времени
4) услышал от кого-то, что жизнь одна, не надо тратить время в пустую
5) услышал, что во всём можно найти свои плюсы, что если не можешь изменить ситуацию (и тебе приходится ездить на работу и стоять в пробках), то измени отношение к пробкам, найди в них плюсы
6) узнал от других людей, что существую аудиокниги, что люди их слушают
7) узнал, что есть клевый писатель Виктор Пелевин, что другие люди его слушают
8) скомбинировал все эти факты и стал в пробках слушать Пелевина
9) Пелевин в S.N.U.F.F., в смотрителе, бэтмане аполло и других книгах задаёт читателю вопросы: что такое человеческое сознание, отличается оно чем-то от сознания «машины» или животного
10) а мне остаётся просто тупо задавать те же самые вопросы окружающим на форуме

Где во всём этом пресловутый человеческий разум? Я просто смотрю, что делают другие люди, как-то комбинирую это и делаю практически то же самое, что и остальные. Просто копирую их поведение, а не создаю что-то принципиально новое усилием мысли, воли, сознания или чего бы то ни было!
не создаю что-то принципиально новое усилием мысли, воли, сознания или чего бы то ни было!
Вот тут и принято проводить границу между рассудком, с одной стороны, и разумом/интеллектом с другой: рассудок только воспроизводит, не способен на создание нового (и таково — рассудочно — практически все население планеты), и лишь малый процент людей творит, то есть обладает разумом/интеллектом. Рассудочная деятельность вполне поддается рациональному моделированию — калькулятор считает куда быстрее нас. А творческая разумная/интеллектуальная деятельность принципиально иррациональна.
Иррациональна — это не то же самое, что случайна, стохастична, хаотична? Картина ниже — это рассудочная или разумная деятельность? Человека в костюме рисовали и до Магритта, яблоко тоже рисовали до него. Он тупо скомбинировал человека и яблоко. Что он создал? Изобразительное искусство, люди в костюмах, яблоки, комбинирование разных вещей — всё это было до него. Он просто повторяет вещи, которые делают окружающие люди, общество его запрограммировало на рисование таких картин.

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

Иррациональна — это не то же самое, что случайна, стохастична, хаотична?
Нет.
он просто берёт известные вещи и случайным образом их комбинирует.
Попробуйте сами скомбинировать что-нибудь.

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

Данное это Элемент Системы, именуемой Знание.

Данное это как Слово в языковой системе.

Машина умеет оперировать Элементами, но не умеет пока оперировать Системами.
Не все так плохо. Мы принципиально не объясним полупроводниковому роботу что такое «первая любовь», просто потому что у робота нет и не будет мозгов, половых органов и др. чисто биологических атрибутов.

Но его вполне можно научить таким понятиям, как:
— скорость движения;
— качество покрытия дороги;
— направление движения;
— наличие препятствий.
— мотивация к действию (как значение некоторой функции)

Дополнив эту модель концептом «поиск другого робота с комплиментарным форм-фактором разъема передачи данных», уже можно говорить о машине в некотором смысле понимающей, что такое «одиночество», «грусть», «поиск половинки», «пропасть, разделяющая нас двоих» и т.д.
Хороший вопрос.

Допустим, мы хотим построить модель предприятия с целью автоматизации бизнес-процессов.
Я уверен, что если дать задание трем разным аналитикам построить модель 1 предприятия, в результате моделирования будут получены 3 разные модели.

И сразу возникают вопросы:
— Почему мы описывали 1 предприятие, а получили 3 разных модели?
— Какая из трех моделей «правильная»?
— Что означает «правильная» модель?

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

Так и с онтологиями: согласитесь, лучше иметь формальное описание того, чем ты занимаешься, чем не иметь. Онтология — это и есть опись всего, что есть в предметной области с фиксацией отношений между этим «всем». Знания это? Конечно, знания. Помогают они человеку? Ну, настолько, насколько он сам сумеет этими знаниями воспользоваться. Вот проблема оперирования этими знаниями для генерации нового знания самим компьютером, конечно, еще далека до человеческого уровня. А вот на уровне поиска, систематизации, фиксации корреляций между элементами онтологии компьютер уже давно обошел по скорости человека (как и калькулятор по скорости счета).
Наука нужна для установления ЗАКОНОМЕРНОСТЕЙ в Мироздании и получения НОВЫХ Знаний.
Всё это прекрасно описывается в учебниках по научным дисциплинам, да так здорово и понятно, что большего и не надо.
Затем придумывают новое описание — онтологии, которое не имеет никаких преимуществ по сравнению с учебниками, физики или математики. Поэтому вопрос — ЗАЧЕМ?

Некоторые отвечают, что учебники машина не понимает и не может оттуда извлекать Знания. Нужно как-то структурировать, как-то формализовать, как-то описать Знания, чтобы машина могла с этим работать.
Ладно, допустим, что препарированный текст каким-то образом обрабатывается компьютером. Но тогда опять новый вопрос: «Если человек понимает Знания с помощью имеющихся в его Сознании Знаний, то как машина с помощью онтологий, не являющихся Знаниями, может распознать Знания в текстах?

Ответ — НИКАК!

Наука нужна для установления ЗАКОНОМЕРНОСТЕЙ в Мироздании и получения НОВЫХ Знаний.
Онтология (модель предметной области) нужна для установления ЗАКОНОМЕРНОСТЕЙ в предметной области и получения НОВЫХ Знаний об этой предметной области.

Вы тут затеяли сугубо терминологический спор — в каком значении использовать слово «знание». Если знанием называть любые факты о предметной области (или Мироздании), то модель предметной области в той же степени. что и любая научная теория дает нам новые знания. Так же, как с помощью научной теории я могу получить выводы о траектории полета какого-то тела, так и при логическом выводе из онтологии мы получим новые суждения о предметной области (изначально в не заложенные в онтологию).

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

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

Если для вас этого мало, то это ваши проблемы. Это как предъявлять претензии к автомобилю, что он не летает. Да, не летает. Но со своей задачей ездить успешно справляется.
//Онтология (модель предметной области) нужна для установления ЗАКОНОМЕРНОСТЕЙ в предметной области и получения НОВЫХ Знаний об этой предметной области.//

Кто или что устанавливает Закономерность? Пока что только человек!

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

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

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

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

Вы могли бы привести один единственный пример того, как онтологии «получают суждения о предметной области»?
//если вам кто-то скажет, что современные семантические технологии позволяют решать творческие задачи, открывать законы, ставить новые проблемы, то не верьте ему. Не могут. //

С чего Вы этот посыл адресуете мне? Может это следует сказать компании Абби с их Компрено?

Я, собственно, как раз и утверждаю, что ни псевдосемагнтические, ни онтологические, ни стохастические, ни миварные, ни другие известные технологии не способны работать со Знаниями. Все они оперируют Данными! Следовательно, они не способны синтезировать Знания.
Я, собственно, как раз и утверждаю, что ни псевдосемагнтические, ни онтологические, ни стохастические, ни миварные, ни другие известные технологии не способны работать со Знаниями. Все они оперируют Данными! Следовательно, они не способны синтезировать Знания.
Повторю вам — это же сугубо терминологическая проблема. Вы тут спорите о словах. Если под знаниями понимать, то что вы, то следует признать, что ни одна научная теория неспособна синтезировать Знания. Почему вы не предъявляете претензии к научным теориям?
//Почему вы не предъявляете претензии к научным теориям?//

Во-первых, научные теории не являются ТЕХНОЛОГИЯМИ, к которым Вы относите онтологии. Научные теории являются лишь инструментом, то есть, одной из двух компонент, которые определяют любую технологию.
Методология и инструментарий в совокупности даёт технологию. Функция методологии, как набора способов, это использовать инструменты, как наборы средств, в заданном алгоритме.

Во-вторых, есть такое понятие как ПРЕСУППОЗИЦИЯ, которым Вы воспользовались. Я никому и ничему не предъявлял никаких претензий. Я искал ответы на свои вопросы и в большинстве случаев их не получил.

В-третьих, синтезом Знаний всегда занимался пока исключительно человек! Ни книга сама по себе, ни теория, пусть и научная, сама по себе, ни Интернет сам по себе не синтезирует Знания.
Во-первых, научные теории не являются ТЕХНОЛОГИЯМИ, к которым Вы относите онтологии.
Есть семантические технологии при помощи которых создаются онтлогии предметных областей, которые есть ни что иное как теории/модели этой предметной области. Научная теория некоторого предмета и онтология предметной области — это модели, построенные по определенным технологиям. И у этих моделей одинаковый статус относительно знания: ни одни, ни другие не предназначены для синтеза Знаний (с большой буквы).

Вся проблема (в ваших вопросах) заключается в том, что кто-то вам сказал, что модели предметной области синтезируют Знания (с большой буквы). Таки и нет — такого вам не скажет ни один разумный человек. Никакая рациональная модель/теория предметной области/предмета для этого не предназначена. Синтезом Знаний (с большой буквы) занимается только человек.

Хотя есть и другая сторона этой проблемы — терминологическая: слово «знание» используется в нескольких значениях. Если вы результат расчета поведения предмета, сделанный с помощью научной теории этого предмета, назовете словом «знание» (с маленькой буквы), то совершенно аналогично в результате логического вывода в модели предметной области может быть получено новое знание (с маленькой буквы) — новые факты.

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


Не совсем понимаю, почему классификация, основанная на теории множеств стала традиционным подходом? Когда? В какой традиции?

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

Так при чем здесь теория множеств?
Не совсем понимаю, почему классификация, основанная на теории множеств стала традиционным подходом?
В современном стандарте semantic web (описание моделей предметной области) — RDF/OWL.
Еле продрался сквозь текст. Мессадж интересен, форма подачи — ужасает (меня, по крайней мере).

Спасибо. Читайте продолжение (ссылку добавил в конец текста).
С формой подачи бывают и промахи. Буду надеяться, что те немногие, кому это действительно важно — продеруться.
Sign up to leave a comment.

Articles