Category: it

Category was added automatically. Read all entries about "it".

Sharge
  • vvagr

Open-source наконец!

Создание платформы .15926 в основных чертах завершено, и для упрощения разработки приложений на ней мы приняли решение о раскрытии исходных кодов редактора.

Код опубликован в репозитории https://github.com/TechInvestLab/dot15926.git , вы можете скачать архив или клонировать репозиторий по ссылке. Инструкции по запуску и некоторую дополнительную информацию можно найти в вики проекта https://github.com/TechInvestLab/dot15926/wiki/Starting-the-software---Dependencies

Код раскрыт под лицензией GNU Lesser General Public License версии 3 https://www.gnu.org/licenses/lgpl.html . Это означает, что он может быть использован в том числе как часть проприетарного и/или коммерческого софта. Разумеется, мы с удовольствием примем помощь иных комитеров, готовых что-то сделать с кодом. Обращайтесь за правами.

Откомпилированные версии (стабильная 1.43 и экспериментальная 1.5beta) могут быть по-прежнему скачаны с http://techinvestlab.ru/dot15926Editor вместе с пользовательской документацией. На сегодня опубликованный код соответствует версии 1.5beta.
Sharge
  • vvagr

Выпуск третьего релиза версии 1.5beta редактора .15926 Editor

http://techinvestlab.ru/dot15926Editor15beta/

Версия 1.5 остаётся на уровне беты, но третий релиз включил значительные изменения и улучшения компоненты Builder и мэппинга. Также были исправлены обнаруженные нами и бета-тестерами ошибки.

Мэппинг и работа Builder были существенно улучшены при работе над демонстрацией для Use Case 2 проекта"Capturing Equipment Data Requirements Using ISO 15926 and Assessing Conformance" (EDRC), осуществляемого FIATECH. Информация о проекте EDRC доступна на http://www.fiatech.org/images/stories/projects/Project_Resumes/EDRC_Resume_v8_Sept_13_2013.pdf . Демонстрация была представлена на заседании FIATECH Member Meeting в сентябре 2014 г.


Демонстрация состояла из двух частей. Не стороне проектной организации происходят подготовка запроса на оборудование и обработка предложения, полученного от производителя оборудования. При этом использовалось программное обеспечение Aucotec Engineering Base (https://www.aucotec.com/PagEd-index-page_id-271.html). Запись этой части доступна на видео-канале Aucotec:


Новая функциональность нашей платформы позволяет запустить сервис адаптера, связывающийся со специализированным инженерным ПО (системами CAD/CAM/PLM/CAE) и преобразующий данные этого ПО в вид, соответствующий стандарту ISO 15926, и обратно. При этом мэппинг данных описывается с помощью образцов (patterns), используя элементарные образцы (TIP) для описания отдельных свойств и отношений, и составленный из них универсальный образец (TSP) для описания полной исходной модели данных. Сервис адаптера запускается и управляется из обслуживаемого инженерного ПО при помощи его родных API и языков программирования.

Если вы являетесь пользователями ПО Aucotec Engineering Base - свяжитесь с нами для получения демо адаптера.

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


Все данные для воспроизведения второй части и пошаговую инструкцию можно скачать с http://techinvestlab.ru/EDRCDemo .
Sharge
  • vvagr

Выпуск версии 1.5beta редактора .15926 Editor

http://techinvestlab.ru/dot15926Editor15beta/


Всё новое и интересное в этой версии связано с образцами (patterns).

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

Редактор позволяет импортировать образцы из базы данных онлайнового редактора TIP Manger, используемого группой IIP. При этом проводится верификация и выявление высокоуровневых образцов моделирования.

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

В этой версии можно ознакомиться также с тремя новыми способами представления и визуализации данных ISO 15926:

- Открытое расширение, позволяющее превратить редактор в сервер Связанных Данных (Linked Data) с семантическим поиском. При этом управление шаблонами веб-страниц, представляющих данные для изучения человеком, осуществляется через определяемые пользователем образцы.

- Основанный на образцах экспорт в табличный формат для простых отчётов по RDF-данным.

- Простейший графический экспорт для представления топологии технических систем в формате .xgml, пригодном для просмотра удобными и свободными графическими редакторами.

Редактор поддерживает продемонстрированный ранее в альфа-версии доступ к API внешних баз данных и сервисов, учебный адаптер к Google Maps API (https://github.com/ailev/anird/wiki) иллюстрирует эти возможности.

Кроме того, редактор позволяет теперь полностью работать с файлами в формате Turtle - поддерживаются и чтение, и сохранение файлов .ttl .

Мы выпускаем бета-версию в основном потому, что ещё не все новые свойства и возможности отражены в документации.
Sharge
  • vvagr

Хакатон - веб-движок

В репозитории https://github.com/ailev/anird опубликован код, запускающий локальный веб-сервер и конструирующий веб-страницы по семантическим данным, вытащенным из внешнего источника.

Как запустить вебсервер и посмотреть пример - написано на странице https://github.com/ailev/anird/wiki/WebPresentationSpecEng (англ.).

Более подробной документации пока не ожидается, смотрите пример и читайте документацию фреймворка Flask.
2019
  • ailev

Программы семантической интеграции данных

Мы с .15926 Editor в хорошей компании: уже не только существуют специфические продукты интеграции данных из сообщества ISO 15926 (например, iRING Tools), но и самые разные другие "просто семантические":
-- karma -- a data integration tool (http://www.isi.edu/integration/karma/)
-- ontop -- a platform to query databases as Virtual RDF Graphs using SPARQL (http://ontop.inf.unibz.it/)
-- и так далее, их сейчас много таких будет.

Ну что же, бежать в пелетоне веселее: это означает, что мы не сбились с дороги (или сбились, но всей весёлой толпой бегущих).

Теперь хорошо бы сравниться со всеми остальными по фичам. Тут мне вспоминается одна давняя история. Когда-то было очень много редакторов текста. И журналы выходили чуть ли с не ежемесячными рейтингами этих редакторов. И MS Word занимал в этих рейтингах отнюдь не первые места. Постепенно MS Word прихватывал фича за фичей и выбился на первые строчки рейтингов. А потом публиковать рейтинги уже стало бессмысленным ввиду очевидной победы одного редактора. Так что "сравниться по фичам" может быть не такой уж плохой идеей, если потом хватит сил быстро реализовать недостающие фичи...
2019
  • ailev

Платформенность .15926

С выпуском версии 1.2 (ждите, это совсем скоро!) нужно обратить внимание на то, куда мы движемся: от Browser к Editor, от Editor к Platform -- если в прошлой версии стало возможным делать пользовательские расширения с использованием Сканера и Билдера графа, то в версии 1.2 добавляются расширения для пользовательских паттернов.

Продукт у нас штучный и сложный, и неплохо бы поглядеть, как в таких условиях развиваются продукты аналогичного класса. Например, Robot Operation System (ROS) -- http://www.ros.org/wiki/ROS/Introduction (число участников тамошнего проекта сильно меньше, чем в Eclipse -- http://eclipse.org/, так что он больше похож на нас нынешних). По большому счёту все эти проекты ползут с ростом числа участников к пониманию "платформенности" как вариантам ручной сборки из разношёрстных и разномастных деталек к какой-то автоматизации и самосборке сложных конфигураций и достижению монструозности, а затем в рамках уже этой монструозности и избыточности софта появляется AppStore.

У нас уже есть:
-- последовательность самообразования (ибо без знания ISO 15926 никакого .15926 софта не нужно), в том числе методология разработки. Конечно, когда всё это собрано в кучку, становится понятным, как это всё компактно переписать и тем самым снизить входной порог.
-- файловые форматы (Часть 8 -- нам свезло, ибо остальным приходится сочинять что-то своё, а тут "безобразно, но единообразно").
-- фриварный движок, который медленно-медленно начинает стабилизироваться и к нему документированные API всех этих расширений
-- сделанные in house примеры расширений (их мало, но они есть)
-- интернет-комьюнити, где все это можно обсуждать (вот это, в котором находится данный пост).

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

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

Итоги 2012

В прошлом году мы не подводили итогов года, но вот в 2010 году -- было дело: http://dot15926.livejournal.com/2010/12/28/ (начинались те итоги так: "1. Опубликовать софт пока не получилось..."). Сейчас же, пару лет спустя, начнём так:

1. Опубликовать софт получилось много раз. В итоге имеем лучший в абсолютном зачёте на сегодняшний момент редактор для ISO 15926 -- .15926 Editor v.1.1 (качать тут: http://techinvestlab.ru/dot15926Editor).

2. vvagr вместе с Benjamin Robins (лидер iRINGTools) теперь сопредседатель рабочей группы по реализации Части 8 стандарта (мне кажется, что самый совместимый с текущим вариантом Части 8 софт -- это .15926 Editor, а не iRINGTools. Но после работы рабочей группы дойдёт очередь и до iRINGTools).

3. Очередной релиз (v1.2) планируется в январе 2013, его главные фичи -- опускание уровня языка вниз (до уровня языка репрезентации ISO 15926 -- полная поддержка RDF) и вверх (возможность задания пользовательских -- в расширениях -- паттернов ISO 15926). В принципе, планы по этому всему докладывались на Semantic Days 2012 в мае (http://dot15926.livejournal.com/32309.html).

4. В рамках Ontology Summit 2012 удалось ознакомить с ISO 15926 довольно много онтологов, которые не подозревали о существовании такой онтологии и сообщества инженеров-онтологов вокруг неё (http://dot15926.livejournal.com/31759.html).

5. Опубликованный год назад (декабрь 2011) курс самообразования (http://dot15926.livejournal.com/27293.html, на английском -- http://levenchuk.com/2012/10/01/iso-15926-self-education-sequence/) в 2012г. помог многим и многим. Также удалось сформулировать производственный трёхдневный учебный курс по ISO 15926 (http://dot15926.livejournal.com/30913.html) и провести его дважды, плюс сделать ещё однодневный сверхкомпактный "обзор".

6. В сообществе ISO 15926 (http://www.linkedin.com/groups?gid=2547763) в LinkedIn число участников из Russian Federation -- 6%, это самый крупный сегмент, дальше там Oslo Area, Norway и Houston, Texas Area с их 5% (но скромно умолчим, что будет с лидеорством РФ, если все эти заморские Area сложить в рамках их стран).

Раньше было извинение: работать с ISO 15926 нельзя, потому как нет ни софта, ни справочных данных для распространённых форматов. Теперь софт есть, и по этой линии извинения не принимаются. В 2013 году должны появиться и справочные данные.

Идеи для развлечений в дни зимних каникул:
1. Поиграйтесь с онтологией CYC (http://www.opencyc.org/downloads -- там в OWL-файле число триплов лишь 2/3 от объема PCA RDL). Можно, конечно, и с любыми другими OWL-онтологиями. Не все они показываются аккуратно, но таксономию из них видно.

2. Попробуйте поработать с естественным языком (например, извлечь какие-то отношения из текстов, или задавать команды вместо Питона на естественном языке). Для этого используйте или по-старинке NLTK (http://ailev.livejournal.com/1006416.html) или по-новому алгоритмы deep learning (http://ailev.livejournal.com/1044735.html).

3. Попробуйте построить адаптеры для своих любимых данных -- к вашим услугам примеры и 160 страниц документации в поставке .15926 Editor (http://techinvestlab.ru/dot15926Editor).

4. Сделайте какой-то парсер для адаптеров OMG MOF языков. Это отдельное онтологическое приключение, и его рано или поздно всё одно придётся проходить.

5. Подготовьте доклад по одной из тем для грядущего семинара "Онтологические проблемы инженерии" (http://ailev.livejournal.com/1050472.html).

С Новым Годом!
2019
  • ailev

Почему Semantic web нам не конкуренты

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

Я хорошо помню неуклюжие первые Паскали, и взявший мир штурмом Турбо-паскаль. Он обладал двумя особенностями: компилировал очень быстро (в разы быстрее других компиляторов), а также позволял ассемблерные вставки (со словами "если вам не хватит скорости Паскаля, вы всегда сможете сделать ассемблерную вставку"). Массовое программирование на Паскале началось как раз с приходом этого компилятора. И тут выяснилось, что для практически всех приложений ассемблерные вставки не нужны, ассемблер ушёл под капот этой сложной машины, и капот этот поднимать было не нужно -- всё работало и без этого.

Мне кажется, что курс ISO 15926 на подъем уровня языка, на подкладывание удобной онтологии в части мэппинга к ней самых разных эпистемологий (что тоже является несомненным добавлением к уровню говорения о мире по сравнению с говорением о мире в языке триплов и изобретением заново такой онтологии в любой RDF/OWL системе, в которой возникает задача содержательной интеграции данных), это ровно то же самое. Сегодня правильно демонстрировать, что внутри ISO 15926 есть ассемблерные вставки на RDF/OWL (и мы продемонстрируем это на версии 1.2 нашего .15926 Editor -- желающие смогут юзать эту версию как полноценный RDF editor. Ну, чем не "ассемблерные вставки" древнего Турбо-паскаля?). Другие команды демонстрируют подход "всё можно интегрировать, если вы интегрируете на ассемблере" -- например, http://www.topquadrant.com с его TopBraid Suit. Нет, это не наш путь. Мы, конечно, готовы будем сжевать любой RDF/OWL, но нас интересует много более высокоуровневая интеграционная работа с моделями предметных областей, с эпистемологиями разных программных систем (про эпистемологию -- http://dot15926.livejournal.com/38046.html).

Сегодня преимущества этой работы не видны, весь мир увлёкся ассемблером. А завтра поглядим.

Хотя да, ISO 15926 в этом плане выглядит вполне бейсиком, фортраном и коболом -- даже не Паскалем. Никакого изящества, просто ему случилось быть одному из первых. Но я походил по базару: другой поддержки работы со временем, а также понятием системы у нас нет. Так что мы пока тут задержимся на некоторое время.

Паттерны, паттерны -- и их формализация. Вверх, вверх.
2019
  • ailev

Питонное

Потратил некоторое количество времени на разбирательство с экосистемой интерактивного компьютинга (exploratory computing, обычно под этим имеют ввиду emphasizing programming and scripting languages over point-and-click interfaces для разбирательства с какими-нибудь сверхкучерявыми данными) на Питоне. Тут нужно особо заметить, что я:
-- считаю, что с ростом сложности и объема программы никакая графика (гхм... никакие блок-схемы) не справляются, и нужны текстовые языки.
-- разделяю мысль Алана Кея, что "приложения должны верстаться", и верстать приложения для себя должны предметные эксперты. То бишь концепция диалога человека и программы, с возможностью записи кусков этого диалога в Notebook, как в Mathematica, или workspace, как в Smalltalk должна присутствовать.

Онтологическое программирование, в котором разбирательство с уже имеющимися справочными данными происходит 95% времени, и только 5% времени уходит на попытки сказать своё веское онтологическое слово, относится именно к exploratory computing. Поэтому нам в .15926 нужно будет разобраться, что уже готового в этой области есть на Питоне, чтобы не изобретать собственного велосипеда.

Прежде всего нужно указать на инструментарий IPython -- http://ipython.org/ipython-doc/stable/overview.html. Этот инструментарий даёт питоновскую оболочку (shell) повышенной интерактивности, включая Notebooks как в математических пакетах типа Mathematica, плюс диалоговое параллельное программирование.

Этот инструментарий лёг в основу огромного числа немаленьких программ, из которых нужно выделить:
-- Sage (http://sagemath.org/): что-то типа помеси Mathematica и Matlab, но вместо "особого языка" используется Питон.
-- JModelica (http://www.jmodelica.org/): акаузальное программирование на языке Modelica, но скриптование делается на Питоне, невзирая на то, что J в названии -- от Java.
-- NotebookCloud (https://notebookcloud.appspot.com/docs): поддержка Ipython notebooks в "облачных сервисах", чтобы научные вычисления были доступны изначально.
-- Pitz (http://pitz.tplus1.com/main-idea.html) распределённый issue tracker , который может работать с распределёнными системами контроля версий.
-- множество разработок для поддержки работ в тех или иных научных лабораториях, а также скриптования веб-инструментария (http://wiki.ipython.org/Projects_using_IPython).

Интересна и похожая на exploratory computing с её не мышиным, а скриптовым интерфейсом попытка разработать на Питоне "неграфическиинтерфейсный" 3D CAD, который нацелен не столько на "редактирование WYSIWYG", а именно на generative design (http://www.pythonocc.org/about/, хотя жизнь там и остановилась пару лет назад -- грант какой-нибудь кончился?):
  • pythonOCC is not a CAD software as usually understood: excellent products are available on the market, whether they are proprietary/commercial (e.g. Catia V5™, SolidWorks™, SolidEdge™ etc.) or free and open source/commercial software as FreeCad for instance. Unlike these products, pythonOCC does not provide any advanced Graphical User Interface (GUI): development team focuses on adding value for engineers or architects, with high expectations, rather than spending time on GUI polishments.
  • pythonOCC is not a low level C++ API intended to C/C++ software developers. The python programming language offers a radically more efficient way to design complex shapes/products.

As a consequence, pythonOCC is an intermediate layer between these two levels, and adresses both users (end-user engineers/designers, software developers). ... pythonOCC is a 3D CAD/CAE/PLM development framework for the Python programming language. It provides features such as advanced topological and geometrical operations, data exchange (STEP, IGES, STL import/export), 2D and 3D meshing, rigid body simulation, parametric modeling.

Итого: конечно, никакого крупнопанельного (типа как в OpenERP) массового строительства инженерных приложений в питоновской экосистеме пока не наблюдается. Но ежели нужно выпустить промышленного качества инжtythysq инструментарий, который был бы не хуже всяких там TopBraid в части семантической работы, то на Питоне это может оказаться круче и быстрее, чем могут ожидать недремлющие конкуренты. Ибо "каждая программа содержит в себе полноценный язык программирования, например, Питон", "каждая программа содержит в себе полноценную систему вёрстки с исполняемым кодом, мультимедийными фрагментами и текстом, то бишь Notebook", и так далее. Похоже, на Питоне это вполне решаемые вопросы, даже не выходя за рамки свободного софта.

То есть самое первое, что приходит в голову -- это выпустить версию .15926 Editor на IPython, поддержать reference data exploration, а заодно синтегрироваться с Pitz (т.е. сделать что-то типа PLM для reference data, предложив вместо всех этих SPARQL нормальную работу с файлами), заодно подверстав pythonOCC, чтобы 3D иметь "из коробки". Ну, и уйти в параллельный компьютинг, чтобы решить раз и навсегда все проблемы с производительностью. Это, конечно, мечты. Но эти мечты, похоже, сегодня становятся стандартным решением для любого exploratory computing, будь то численные данные, или дискретные онтологические (хотя 3D и P&ID заставляют сомневаться, что все эти данные такие уж нечисленные -- скорее уж нужна система, в которой поддерживается и одно, и другое, иначе трудно будет отлаживаться).
Sharge
  • vvagr

Курс обучения ISO 15926

Провёл курс обучения ISO 15926.

Заняло 3 дня подряд по 7 часов в день.

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

Программа:

День 1

1. Модели данных, применение в интеграции данных, критерии качества моделей.

2. Концептуальные модели. Онтологии.

3. Сущности и атрибуты, субстанциональная пардигма.

4. Объектная парадигма. Безатрибутная модель.

5. Отношения, реификация.

6. Время. 3D и 4D.

7. Экстенсионализм, физический и функциональный объект, мереология.

8. Классы, типы.

10. Жизненный цикл.

11. Общее введение в ISO 15926.
- архитектура моделей
- справочные данные
- архитектура интеграции
- история
- части стандарта
- организации, проекты и планы

День 2

1. Языки диаграмм.

2. Концептуальная модель части 2. Обзор 201 типа, примеры моделирования. (Реальный охват - около 70% раздела 4 части 2, в зависимости от предполагаемого проекта слушателей 30% им ненужного отбрасывается)

День 3.

1. Повторение элементов концептуальной модели.

2. Части 4 и 6. Табличное представление, метаданные.

3. Часть 7. Стандарт в FOL, шаблоны.

4. Семантический веб, часть 8. Идентификация справочных данных.

5. Сопоставление представлений информации по стандарту: табличное, диаграмное, FOL, XML, RDF/OWL

6. SPARQL, архитектура интеграции данных iRING.

7. Демонстрация работы с RDL через веб-интерфейсы и через .15926 Editor.

8. Практика редактирования данных в .15926 Editor.

9. Обзор источников дальнейшей информации.

Требования к участникам:

Базовый английский и начальные сведения по теории множеств, математической логике, языкам разметки данных (в объёме представлений о структуре HTML).

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

Надо, конечно, добиваться того, чтобы слушатели умели построить диаграмму модели, описать в таблице и построить шаблоны, а потом записать их экземпляры. Туда и будем развивать упражнения. На RDF/OWL в трёхдневный курс упражнений не будет.