Как стать автором
Обновить
-0.62

Семантика *

Веб 3.0

Сначала показывать
Порог рейтинга
Уровень сложности

На тему моделирования предметной области в терминах ООП

Время на прочтение3 мин
Количество просмотров15K

Эта замечательная статья подтолкнула меня опубликовать давние мысли, касающиеся моделирования предметной области с помощью объектно-ориентированного программирования.


К актуальности изложенных в статье идей, приходишь подспудно (не имея возможности выразить по причине того, что парадигме моделирования в терминах теории множеств не учат в вузах, будущих «программистов», по крайней мере), долго работая с ООП и реляционными базами данных:

Каждый раз при моделировании предметной области, оперируя терминами ООП (сейчас говорим не об этапе бизнес-анализа, а о последующем этапе реализации модели в коде), для всех сущностей предметной области приходится реализовывать в коде и схеме БД следующий паттерн, состоящий их «подсущностей», связанных между собой:
  • класс/таблицу вида «Машины» (здесь и далее класс употребляю в терминах ООП);
  • класс/таблицу вида «Список машин»;
  • класс/таблицу вида «Машина».

Далее с помощью механизмов ООП и реляционной модели «подсущности» связываются между собой.

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

А далее следуют ожидаемые проблемы:

Читать дальше →

Особенности моделирования предметной области с помощью ООП

Время на прочтение6 мин
Количество просмотров35K


Введение


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

Адепту ООП очень трудно понять, что термин экземпляр класса в русском языке указывает на класс объектов, а не на созвучный этому термину элемент класса – объект класса. Для многих, кто изучал ООП, термины экземпляр и элемент – неразличимы. Давайте разберемся с этими терминами внимательно.
Читать дальше →

Зачем нам нужен понятный язык?

Время на прочтение7 мин
Количество просмотров9.4K
Зачем нам нужен понятный язык? Откуда вообще взялось это явление? Что такое «plain language» в мире и кто поддерживает это движение? На все эти вопросы я постараюсь ответить в этой заметке.

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

Онтоинженер: от сотворения мира к порождению сущностей

Время на прочтение12 мин
Количество просмотров16K
В этом посте я продолжу рассказ о той части Compreno, которая связана с профессией онтоинженера. Ну или о той работе онтоинженера, которая связана с упомянутой технологией — это уж кому как удобнее воспринимать.

Напомню, первая часть подвела нас к тому, что онтоинженеры строят онтологии, чтобы технология могла работать (без них — никуда, так уж всё устроено).
Чуть более полное описание первой части:
  • Наша система извлечения информации опирается на представление текста в виде синтактико-семантических деревьев Compreno.
  • Узлы деревьев примерно соответствуют словам в предложении, а дуги отражают зависимости между ними (с точки зрения грамматики зависимостей).
  • Деревья являются формальным представлением «смысла» высказывания, поэтому в них уже разрешены языковые неоднозначности.
  • Получив на вход эти деревья, на выходе система выдает информационные объекты — сущности (персоны, организации, локации и т.п.) или факты (аресты, смерти, покупки, родство, получение образования и т.п.).
  • Формальные модели действительности, внутри которых существуют все эти факты и сущности, называются онтологиями. Онтоинженеры разрабатывают онтологии, используя стандарт OWL.

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

Семь битв – одно поддерево


Основную часть рабочего времени онтоинженер посвящает не «моделированию мира» (хотя это и звучит очень гордо), а созданию системы извлечения. И хотя мы всё больше экспериментируем со статистикой, машинным обучением и автоматическим извлечением паттернов, пока в наших продуктах и проектах используются правила, написанные вручную. Однако правила эти представляют собой не какие-то жесткие шаблоны, опирающиеся на линейный порядок слов в предложении, а описания фрагментов семантико-синтаксических деревьев ABBYY Compreno. Это позволяет нам сравнительно легко обходить вариативность и неоднозначность языка, кратко задавая множество вариантов, используемых для выражения одного и того же смысла.
Читать дальше →

BPMN: Моделирование физических событий

Время на прочтение12 мин
Количество просмотров30K
Я нередко слышу тезис о том, что есть термины: событие и экземпляр этого события, или переменная и экземпляр этой переменной. Уважаемые аналитики, у меня убедительная просьба к тем, кто использует эти термины, прочитайте конец статьи и подумайте над тем, что там написано. Возможно, вы поймете, что так говорить нельзя.

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



Определение события


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

  1. Экстент — это любая 4-Д область из 4-Д пространства-времени. Дело в том, что наше пространство четырехмерно. Просто одно из измерений мы переживаем специфическим образом – как нечто, что разворачивается перед нами в одном направлении. Но для моделирования такая особенность нашего восприятия не имеет значения.
  2. Считается, что экстент, который мы считаем событием, с точки зрения рассказчика имеет нулевую временную ширину. То есть с точки зрения рассказчика событие – это мгновение. Однако, всегда существует точка зрения, в которой шириной события уже нельзя пренебречь и нам понадобится рассмотреть временную ширину этого экстента.
  3. Событие имеет физический смысл – это факты и ничего, кроме фактов. Мы рассматриваем такое событие как набор фактов без их трактовок. Например, в примере с маяком есть событие смотритель сидит на дровне и отдыхает. Такое событие мы будем называть физическое событие.
  4. Кроме физического события существует множество трактовок этого физического события разными субъектами. Например, при описании маяка одно и то же физическое событие «Смотритель отдыхает» может быть описано как: «Розжиг закончен» и «Тушение начато». Такое событие мы будем называть функциональное событие.

В итоге мы имеем такую иерархию объектов:


Читать дальше →

Физические и функциональные объекты (Продолжение)

Время на прочтение9 мин
Количество просмотров23K
Есть три способа описания процесса:







Чем они отличаются?

Описание сущего


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



Природа пространства-времени


Начнем с того, что воспринимаемый нами мир – это четырехмерное пространство-время. Но не то пространство-время, которое используют математики в своих рассуждениях. Скорее это то пространство, которое используют физики. Разница в том, что в физическом мире нет точек. Есть объекты, которые с точки зрения наблюдателя можно считать точечными. Но при ближайшем рассмотрении эти точки могут рассматриваться как бесконечные пространства. Мы часто не различаем воспринимаемый нами мир и математическую абстракцию, созданную для описания этого восприятия. В абстракции, созданной для описания воспринимаемого мира, есть понятие точка. В реальном мире нет точек. В этом огромная разница между моделируемым миром и его моделью. В неразличении этих двух сущностей кроется причина части холиваров, возникших на основе предыдущей статьи. Например, мы не способны воспринять срез пространственно-временного континуума поперек временной оси, как нам предлагает поступить ИСО 15926, для определения понятия событие. Поэтому далее я продолжу рассуждения, не отвлекаясь на такие понятия как точки, срезы пространственно-временного континуума и прочие абстрактные объекты. Мы будем работать только с реально воспринимаемыми нами объектами 4-Д пространства-времени.
Читать дальше →

Что такое событие, или зачем четырехмерная геометрия бизнес-аналитику?

Время на прочтение12 мин
Количество просмотров22K
Петька, ну как? Сдал экзамен?
Нет, Василий Иванович! Меня попросили квадратный трехчлен разложить. А я его не то что разложить, я его представить не могу!




Постановка вопроса


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

Посмотрите на диаграмму. На ней кружочками что-то изображено. В нотации BPMN это что-то называется «Событие». Но что есть само событие? И почему операция по отправке сообщения в одном случае обозначено как событие, а в другом как операция?



Чем ИСО 15926 мне не понравился


В прошлых статьях я давал определения физического объекта.

Физический объект — это любое подмножество 4-Д пространства-времени.

Кроме того, я давал определения функционального и информационного объектов.

Физический и информационный объекты — это физические объекты в 4-Д пространстве-времени, которые с точки зрения наблюдателя выполняют определенные функции, или служат определенным целям.

Читать дальше →

Знакомство с парадигмами построения моделей предметной области

Время на прочтение11 мин
Количество просмотров24K

Введение


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

Давайте зададим аналитикам простой вопрос.

Те, кто моделировал процессы, наверно, знакомы с нотацией BPMN. Очень часто при моделировании операции по заключению договора я встречаю такой фрагмент диаграммы:



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

  • Бумажка с печатью
  • Бумажки с печатью
  • Класс бумажек с печатью
  • Договор
  • Договоренность
  • Информация о договоренности
  • Файл MS Word с названием договор
  • Запись в базе данных
  • Поток каких-то объектов

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

Имитационное моделирование: создание терминов

Время на прочтение5 мин
Количество просмотров29K

История создания терминов




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

Онтоинженер: работа по понятиям

Время на прочтение7 мин
Количество просмотров24K
Привет, Хабр! Меня зовут Даня, и я работаю в группе извлечения знаний ДогадайтесьКакойКомпании. В двух постах я расскажу,
  • как мы извлекаем факты и сущности из текстов,
  • кто такие онтоинженеры,
  • зачем они отделяют трупы от костей,
  • причём здесь Лев Толстой.

На Хабре уже было несколько публикаций, посвященных извлечению информации из неструктурированного текста (много чего ищется по тегами Text Mining, Information Extraction). Вот здесь, например, приведен краткий джентльменский набор того, что желательно сделать с текстом, прежде чем из него будет удобно что-нибудь извлечь (спойлер: мы все это тоже делаем). А вот тут коллеги из Яндекса описывают свой подход с использованием КС-грамматик (кстати, там тоже замешан Толстой). В общем, тема для Хабра не новая, но и нельзя сказать, что достаточно раскрытая. Потому мы и решили поделиться нашим опытом.
Читать дальше →

Информационные объекты или причина одного заблуждения

Время на прочтение17 мин
Количество просмотров37K

Введение


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


Читать дальше →

Не только Яндексу. Микроразметка на крупнейших сайтах рунета: зачем ею пользуются и почему она пригодится и вам

Время на прочтение12 мин
Количество просмотров107K
Мы уже рассказали вам о мире семантической разметки — о том, какие бывают словари, почему столько стандартов синтаксиса, а также разобрали, в каких продуктах она используется.

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



Люди, которые отвечают за разработку и всю техническую часть таких сайтов, как Holodilnik.ru, Ozon.ru, Lenta.ru, Interfax.ru и Ivi.ru, ответили на вопросы о том, как на практике происходит внедрение микроразметки и каких результатов она позволяет добиться. А мы со своей стороны рассказали, какие типы мы бы порекомендовали таким сайтам и для чего.

Читать дальше →

Моделирование функциональных объектов

Время на прочтение9 мин
Количество просмотров14K
Продолжение статьи.
В данной статье я рассматриваю понятие функционального объекта и объясняю как можно трактовать модели функциональных объектов. Для торопящихся советую заглянуть сразу в конец статьи — в главу «Эксперименты и сотрудники», где дана готовая интерпретация модели, исходя из описанных здесь постулатов.

Понимание и познание



Когда мы описываем предметную область, мы думаем, что пытаемся ПОЗНАТЬ ее, а на самом деле занимаемся ПОНИМАНИЕМ предметной области и описанием своего понимания. Разницу между знанием и пониманием стоит подчеркнуть. Дело в том, что те модели, которые мы строим, являются субъективными, и потому являются отражением нашего понимания предмета, но не знания о предмете. Причина, по которой знание недостижимо, – это противоречивость того способа, который мы выбрали в качестве инструмента познания – расчленение объекта на части (анализ) и сборка их вместе (синтез) Моделирование объекта как целого и как композиции. Поэтому можно сказать, что мы нацелены прежде всего на понимание, но не на познание. Вопросами понимания занимается герменевтика. Понимание у каждого свое. Нет смысла спорить о том, у кого оно лучше или хуже. Можно спорить лишь о том, какое понимание способно объяснить более широкий круг практических задач, или является непротиворечивым в рамках определенных аксиом. Требовать от понимания большего нельзя. Например, я могу утверждать, что та модель, которую я предлагаю к рассмотрению, более полно описывает наше представление о реальности, чем модель, построенная на принципах реляционных данных. Но не могу сказать, что предлагаемая мной модель верно описывает наше представление о мире. Те же, кто не видят разницы между пониманием и знанием, часто претендуют в своих спорах на знание истины. Если рассуждать логически, и предположить, что истина постижима, то результатом ее постижения стало бы невозможность выразить его словами.
Читать дальше →

Ближайшие события

В поисках Святого Грааля бизнес-анализа

Время на прочтение8 мин
Количество просмотров17K

Пою что вижу, или вижу, что пою?


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

Структура таблицы

Читать дальше →

Десять типичных вопросов на собеседованиях на знание HTML

Время на прочтение7 мин
Количество просмотров100K
Аурэлио Де Роза несколько дней назад выпустил, на мой взгляд, очень привлекательную статью, которой я хочу с вами поделиться на тот случай, если у вас плохо с английским.
Читать дальше →

Препроцессоры и метаязыки в программах исправления ошибок

Время на прочтение5 мин
Количество просмотров5.8K
Компьютерная лингвистика очень консервативна, несмотря на огромное количество уже созданных программ, решающих весьма сложные задачи предварительной обработки целенаправленных языков (подобные программы редко используются в программах проверки орфографии). Далее на примере общепринятого «сложного» случая корректировки «ться» и «тся» я попытаюсь показать, как «консерватизм» программистов приводит к специфическому классу ошибок.
Читать дальше →

Триггеры, права доступа и версионность в точке доступа SPARQL

Время на прочтение4 мин
Количество просмотров3K
Тому, кто попытается использовать точку доступа SPARQL в качестве замены базы данных в каком-нибудь индустриальном проекте, придется столкнуться с несколькими неприятностями. Одна из них — отсутствие в арсенале средств такого продукта контроля прав доступа, триггеров, и возможностей организации версионности. Изучив все, что предлагается на рынке сегодня, мы пришли к необходимости реализовать такой функционал собственными силами.
В качестве «подопытного кролика» выступает Apache Fuseki, хотя тот же принцип можно применить к любой другой SPARQL endpoint.
Читать дальше →

Простой способ оценки понятности текста на русском языке

Время на прочтение4 мин
Количество просмотров16K
По сути, опубликованное ниже является моим комментарием к публикации «Что такое «Понятный русский язык» с точки зрения технологий. Заглянем в метрики удобочитаемости текстов». Поскольку я не могу оставлять комментарии, то пишу в «Песочницу».

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

Что такое «Понятный русский язык» с точки зрения технологий. Заглянем в метрики удобочитаемости текстов

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



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

Немного истории


18 января 2011 года, Президент Обама выпустил новый указ, Executive Order, «E.O. 1356 — Improving Regulation and Regulatory Review» («Улучшение регулирования и рассмотрению вопросов регулирования»). В нем говорится, что "[наша система регулирования] должна обеспечить, чтобы правила были доступны, согласованы, написаны простым языком, и легко понимаемы.".

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

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

Заглянем под капот: Microsoft Outlook 2013 Attachments Reminder

Время на прочтение6 мин
Количество просмотров7.3K
Работа нашей фирмы связана с разработкой под Microsoft Outlook и Exchange Server, и поэтому копаться в них мы очень любим. Сегодня мы будем копать маленькую новую фишечку Microsoft Outlook — напоминалку о забытых вложениях. Казалось бы, что может быть проще? Тексты наших «раскопок» на английском языке мы публикуем в блоге компании, а на русском — эксклюзивно для Хабра. Поехали!
Читать дальше →