Как стать автором
Обновить
48
0

Пользователь

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

Что это за сообщения? Они описаны где-то?
Вполне можно понять почему он до сих пор используется… Просто на нём основано много стандартов. Большая часть из которых появилась до XML. И просто так всё переделывать из-за какого-то XML, который появился сравнительно недавно и даёт какие-то сугубо технические преимущества, видимо слишком дорого. Хотя на XML конечно потихоньку переходят. Тот же HL7v3, ISO 20022, UN/CEFACT CCTS и т.п.

Правда, нет гарантии, что лет через 10 не появится ещё какой-нибудь модный стандарт и все не начнут переползать на него. Наверное единственный способ защититься от переделывания всего при появлении новых технологий, это использование модельно-ориентированного подхода, о котором я пишу тут цикл статей :) Вообще, это наверное общий тренд сейчас в этой области. Взять тот же CCTS или ISO 20022 (любой более-менее современный стандарт) — везде предлагается описывать данные в платформо-независимом виде. И есть отдельная спецификация, в которой описано как сгенерить из платформо-независимой модели XML-схемы и т.п. Если появляется новая технология, то не нужно переделывать абсолютно всё, просто делаем новые маппинги из PIM в PSM.

А почему вам интересна эта тема?
А принцип максимума энтропии тут никак не применим? Известны параметры всей коробки конфет, нужно определить параметры её составляющих.
И, самое главное, у меня не усилилось желание попробовать ReactOS, потому что не понятно будут работать все нужные приложения или нет. Не хватает таблички с перечнем приложений и статусом (поддерживается или нет). С возможностью добавить новое приложение, которое хочется, чтобы работало. И с возможностью проголосовать за него.
Мне тоже не очень нравится анимация, в ней слишком много и слишком быстро всего движется. Если оставлять анимацию, то максимум с 2-3 движениями, или какой-нибудь пульсирующей кнопочкой, но не больше. Иногда она вообще подвисает — просто черно-серый фон и всё.

В блоке «Our Features» не помешали бы ссылки, подтверждающие фичи. Ссылка на скачивание, на список разработчиков, модулей, интенсивность коммитов и т.п.

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

А потом погуглил чувака, который меня собеседовал и узнал, что он в прошлом ИТ-олимпиадник из СНГ. Отсюда и такой подход к собеседованию, как к олимпиаде :)

Может, и хорошо, что провалил, по крайней мере, сейчас от меня на работе требуется думать, а не решать задачки на скорость.
Пенёк — это пенёк (то, что осталось от дерева), а не стол или стул.

Если вам на колени кто-нибудь сядет, вы же не станете от этого стулом? А останетесь человеком?

Если вы сядете на стол, то всё-равно он останется столом. Или если будете использовать стул в качестве стола, всё-равно это будет стул.

У всего есть какая-то неотъемлемая, постоянная суть и временные роли. Забыл как это называется, что-то из философии… Есть достаточно жесткий набор характеристик, атрибутов, которые определяют сущность объекта, а есть не очень существенные характеристики, которые могут меняться. Вспомнил: thin and thick objects.
Иррациональна — это не то же самое, что случайна, стохастична, хаотична? Картина ниже — это рассудочная или разумная деятельность? Человека в костюме рисовали и до Магритта, яблоко тоже рисовали до него. Он тупо скомбинировал человека и яблоко. Что он создал? Изобразительное искусство, люди в костюмах, яблоки, комбинирование разных вещей — всё это было до него. Он просто повторяет вещи, которые делают окружающие люди, общество его запрограммировало на рисование таких картин.

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

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

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

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

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

Человек, который никогда раньше не видел телевизор или компьютер, будет воспринимать их как живые организмы. Он будет думать, что в телевизоре сидят какие-нибудь гномы и т.п. Равно как и нам окружающие люди и мы сами кажемся «живыми», обладающими разумом, самосознанием и т.п. только потому что мы не понимаем как устроен человеческий разум. Т.е. «разум» агрегатора новостей и разум человека в действительности принципиально не отличаются. Это мы их воспринимаем такими разными потому что 1-ый для нас понятен, а 2-ой — нет.
Ну, тот же агрегатор новостей Яндекс по ключевым словам определяет тематику новостей (политика, культура, экономика, ...), группирует новости про одно и то же, но размещённые на разных сайтах.

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

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

Или обратная ситуация. Допустим мы не интегрируем существующие ИС, а разрабатываем новую. Но хотим, чтобы в нашей ИС была правильная терминология, были правильно выделены сущности и т.п. В этом случае мы можем взять онтологию например из ISO 15926. И если мы будем проектировать ИС в соответствии с ней, то наша ИС будет гарантированно совместима на терминологическом, концептуальном уровне с другими ИС, которые также основаны на этой онтологии.
Может быть вам будет интересна эта статья: habrahabr.ru/company/abbyy/blog/269191
Я тоже пытался сделать онтологию верхнего уровня, не совсем универсальную, а под конкретный проект. Хотя, всё-таки, с замашкой на универсальность. Кстати, тоже выделял события, роли и т.п. Потому, что существующие онтологии были или слишком узкоспецилизированные, или наоборот слишком философские (со всякими endurant, perdurant), или вроде бы нормальные, но слишком сложные (типа ISO 15926).

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

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

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

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

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

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

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

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

И вообще сейчас в моде всякие 4D-онтологии, ISO 15926, теория категорий и т.п.
www.brunel.ac.uk/~cssrcsp/BusObj.pdf
Очень интересная тема, я в своё время сломал об неё мозг.

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) Акт — пьеса
Всё это отношения «часть-целое», но они обладают разными свойствами. Например, я — сотрудник (часть) отдела, отдел — часть организации, следовательно, я — часть организации. В данном случае отношение «часть-целое» является транзитивным. Но с другой стороны, мой палец — часть меня, я — часть организации, но это не значит, что мой палец — это часть организации. Т.е. мереологические отношения могут быть разными.

Оба этих вопроса (про роли и мереологические отношения) сейчас открыты. Есть разные работы на эту тему, какой-то единственно правильной классификации ролевых или мереологических отношений лично я не нашёл.​
Столкнулся с тем, что OCL в Sirius ощутимо тормозит. Переписал все выражения на AQL (в основном это сводится к замене префикса «ocl:» на «aql:») и всё стало летать. Для AQL реализован собственный парсер, который примитивней парсера OCL, но зато и гораздо быстрее. Лучше использовать AQL.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность