Товары в корзине: 0 шт Оформить заказ
Стр. 1 

75 страниц

Определяет отображение конструкций данных, определенных на языке EXPRESS, на формат двоичного файла, соответствующего Иерархическому формату данных, версия 5 (HDF5). Требования стандарта не распространяются на: - отображение ограничений и правил, определенных на языке EXPRESS, на файл HDF5; - отображение конкретных прикладных программных интерфейсов EXPRESS-схем на данные, определенные на языке EXPRESS.

 Скачать PDF

Идентичен ISO/TS 10303-26:2011

Оглавление

1 Область применения

2 Нормативные ссылки

3 Термины и определения

4 Сокращения

5 Соответствие

6 Отображение данных, определенных на языке EXPRESS, на формат файла HDF5

Приложение А (обязательное) Обозначение документа

Приложение В (справочное) Техническое обсуждение

Приложение С (справочное) Примеры

Приложение ДА (справочное) Сведения о соответствии ссылочных международных стандартов национальным стандартам Российской Федерации

Библиография

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ



АЦИОНАЛЬНЫ

СТАНДАРТ

РОССИЙСКОЙ

ФЕДЕРАЦИИ


Й


ГОСТ Р исо/тс 10303-26—

2015


Системы автоматизации производства и их интеграция


ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ

Часть 26 Методы реализации.

Двоичное представление данных, определенных на языке EXPRESS


ISO/TS 10303-26:2011 Industrial automation systems and integration - Product data representation and exchange - Part 26: Implementation methods: Binary representation of EXPRESS-

driven data (IDT)


Издание официальное


Москва

Стандартинформ

2016


Предисловие

1    ПОДГОТОВЛЕН Федеральным государственным автономным научным учреждением «Центральный научно-исследовательский и опытно-конструкторский институт робототехники и технической кибернетики» (ЦНИИ РТК) на основе собственного аутентичного перевода на русский язык международного документа, указанного в пункте 4

2    ВНЕСЕН Техническим комитетом по стандартизации ТК 459 «Информационная поддержка жизненного цикла изделий»

3    УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 21 июля 2015 г. № 926-ст

4    Настоящий стандарт идентичен международному документу ИСО/ТС 10303-26:2011 «Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 26. Методы реализации. Двоичное представление данных, определенных на языке EXPRESS» (ISO/TS 10303-26:2011 «Industrial automation systems and integration - Product data representation and exchange - Part 26: Implementation methods: Binary representation of EXPRESS-driven data»).

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

5    ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок - в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)

© Стандартинформ, 2016

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

ГОСТ Р ИСО/ТС 10303-26—2015

Таблица 1- Отображение типов данных языка EXPRESS на HDF5

Тип данных языка EXPRESS

Представление в HDF5

Пример - Исходные типы данных API HDF5 (справочно)

INTEGER

HDF5 Standard 8, 16, 32 или 64 bits, Big- или Little-Endian

Н5Т NATIVE INT, H5T NATIVE LONG, H5T NATIVE LLONG

REAL

HDF5 IEEE Floating Point 32 или 64 bits, Big- или Little-Endian

H5T NATIVE FLOAT, H5T NATIVE DOUBLE, H5T NATIVE LDOUBLE

BOOLEAN

HDF5 ENUM из nap <string>: <integer> BOOLEAN-TRUE: 1, BOOLEAN-FALSE:0

-

LOGICAL

HDF5 ENUM из nap <string>: <integer> LOGICAL-TRUE: 1, LOGICAL-FALSE:0 и LOGICAL-UNKNOWN: -1

STRING

H5T STRING переменной длины

BINARY

HDF5 OPAQUE, если задано FIXED или разрядность, иначе - HDF5 VARYING OPAQUE

NUMBER

Аналогично представлению типа данных REAL языка EXPRESS

H5T NATIVE FLOAT, H5T NATIVE DOUBLE, H5T NATIVE LDOUBLE

ENUMERATION

HDF5 ENUM из пар <string>: <integer>, где string это <schema group name> + + <enum name> + 7” + <enum literal>

-

Такое же кодирование для указанного типа данных языка EXPRESS может быть использовано во всей совокупности данных, содержащихся в файле HDF5. В этом случае в совокупности данных может быть использован необязательный атрибут для задания способа кодирования, который следует использовать для указанного типа данных языка EXPRESS. В зависимости от типа данных этот атрибут должен иметь следующее имя:

iso 10303 26 + <data type> + encoding

Значением данного атрибута должен быть тип данных HDF5, используемый для кодирования типа данных языка EXPRESS.

Пример - Атрибут iso_10303_26_real_encoding, имеющий значение “H5T_IEEE_F64LE”, указывает, что все значения типа данных REAL языка EXPRESS из данной совокупности должны кодироваться как Eight-byte, little-endian, IEEE floating point (восьмибайтовый код с плавающей запятой по IEEE, начиная с младшего байта).

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

-    для представления типа данных INTEGER языка EXPRESS используется способ кодирования HDF5 32 bits, Signed, Little-Endian (например, h5t_native_long в API HDF5);

-    для представления типов данных REAL и NUMBER языка EXPRESS используется способ кодирования HDF5 IEEE Floating Point 64 bits, Little-Endian (например, H5T_ native_double в API HDF5);

-    для представления типа данных ENUMERATION языка EXPRESS используются целые числа 1,2, Зит.д.

6.5 Отображение объявлений и спецификаций интерфейсов из EXPRESS-схемы

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

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

7

ГОСТ Р ИСО/ТС 10303-26—2015

EXPRESS-схемы было включено в файл HDF5.

Примечание — Текстовое или любое другое представление самой EXPRESS-схемы может факультативно быть включено в файл HDF5 также, как и многие другие типы данных (как атрибуты HDF5).

Параметры EXPRESS-схемы, закодированные в файле HDF5, должны быть определены в группе HDF5. Группа HDF5, представляющая EXPRESS-схему, должна быть расположена непосредственно под корневой группой (У). Имя группы, представляющей EXPRESS-схему, должно быть представлено следующим образом: <schema_name> + _encoding. Группа HDF5, содержащая схемы, может совместно использоваться совокупностями данных EXPRESS-схемы. Группа HDF5, содержащая представление необходимых параметров EXPRESS-схемы, должна иметь связанный с ней атрибут HDF5 с именем “iso_10303_26_schema” и значением <schema_id>. Атрибут HDF5 с именем “iso_10303_26_express_text” может дополнительно быть связан с группой HDF5 для обмена самим текстом на языке EXPRESS.

Пример — На рисунке 4 показана группа HDF5, содержащая именованные типы данных HDF5, которые относятся к EXPRESS-схеме, содержащей данную совокупность данных    (т. е. группа HDF5

“Geometry encoding” содержит определения типов данных для данных, закодированных на основании схемы “geometry”).

Рисунок 4 - Группа HDF5 с информацией о EXPRESS-схеме

Дополнительные примеры приведены в С.1 приложения С

6.6 Отображение объектных типов данных языка EXPRESS

В конкретном файле HDF5 должны быть отображены только те объектные типы данных языка EXPRESS, которые представляют данные, определенные на языке EXPRESS, содержащиеся в данном файле HDF5. Для каждого такого объектного типа данных языка EXPRESS в группе HDF5, представляющей данную EXPRESS-схему, должен присутствовать именованный тип данных HDF5, относящийся к составному типу данных HDF5. Относительное имя именованного типа данных HDF5 должно быть представлено следующим образом: <schema_group_name> + У + <entity_id>, либо следующим образом (см. 6.7):

<schema_group_name> + "/" + <entity_id> + ( "+" + <entity_id> )

В составном типе данных HDF5, представляющем объектный тип данных языка EXPRESS, должно присутствовать в качестве второго члена поле HDF5, основанное на типе данных INTEGER HDF5. Данное поле должно иметь имя “Entity-Instance-Identifier”. Данное поле должно содержать уни-

ГОСТ Р ИСО/ТС 10303-26—2015

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

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

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

Типом данных любого члена составного типа данных HDF5 является тип данных HDF5, соответствующий области определения атрибута языка EXPRESS, как это установлено в 6.8.2 для простых типов данных, в 6.10.4 для идентификаторов экземпляров объектов, в 6.8.3 для типов данных ARRAY и в 6.8.4 для агрегированных типов данных.

Пример — Следующие объектные типы данных языка EXPRESS, относящиеся к представлению схемы "sjencoding":

SCHEMA s;

ENTITY x;

name : STRING;

END_ENTITY;

ENTITY у SUBTYPE OF (x);

age : INTEGER;

END_ENTITY;

ENDJ3CHEMA;

приведут к следующим определениям HDF5:

-    именованный тип данных HDF5 "sencoding/х" определен одним полем HDF5 с именем

"s_encoding/x/name

-    именованный тип данных HDF5 "s_encoding/y" определен двумя полями HDF5 с именами "sencoding/y/name” и "s_encoding/y/age".

Настоящий стандарт не определяет отображение для производных или инверсных атрибутов, следовательно, они не должны присутствовать в соответствующем файле HDF5.

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

В языке EXPRESS унаследованный атрибут может быть переобъявлен несколькими способами. Обработка этих способов при отображении осуществляется следующим образом:

-    заданные в явном виде атрибуты языка EXPRESS, которые переобъявляют унаследованные атрибуты, отображаются на основе области определения атрибута в переобъявляющем подтипе данных;

-    производные атрибуты языка EXPRESS, являющиеся переобъявлениями унаследованных заданных в явном виде атрибутов, не присутствуют в составном типе данных HDF5, представляющем подтип данных, в котором они переобъявлены;

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

Так как в HDF5 нет понятия отсутствующего значения данных, то для этого в составной тип данных HDF5 вводится дополнительный член. Данный вспомогательный член является битовым образом, полученным из соответствующего объектного типа данных языка EXPRESS, который определяет состояние «1» или «0» (присутствует или отсутствует) для всех остальных членов составного типа данных, за исключением поля номер 2, которое является обязательным полем. Данное поле должно иметь тип данных H5TJNTEGER. Вспомогательный член должен быть первым в своем составном типе данных и иметь имя "set_unset_bitmap". Самый младший бит представляет первый атрибут языка EXPRESS (второй член в составном типе данных, начиная с нулевого). Следующий бит представ-

ляет второй атрибут языка EXPRESS и т. д.

Пример приведен в приложении С.З.

6.7 Отображение объявлений подтипов данных языка EXPRESS

В языке EXPRESS взаимосвязь между подтипами объектного типа данных по умолчанию заключается в том, что они не являются взаимно исключающими, чему соответствует оператор ANDOR языка EXPRESS. Экземпляры объектов языка EXPRESS, основанные на комбинации объектных типов данных, называются сложными объектными типами данных. В данном случае отображение заключается в том, что для каждой комбинации, присутствующей в данном экземпляре, определены составные типы данных HDF5. Эти составные типы данных трактуются так, как если бы они были отображением объектных типов данных, непосредственно присутствующих в EXPRESS-схеме. Если какой-либо объектный тип данных в комбинации является супертипом любого другого объектного типа данных из той же комбинации, то идентификатор данного супертипа не присутствует в имени именованного типа данных HDF5.

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

Относительное имя именованного типа данных HDF5 должно выглядеть следующим образом:

<schema_group_name> + "/" + <entity_id> + ( "+" + <entity_id> ),

где имена входящих в комбинацию объектных типов данных (entity id) расположены в алфавитном порядке, а символ "+" является разделителем.

Атрибуты языка EXPRESS трактуются так, как если бы сложный тип данных являлся подтипом всех объектных типов данных, входящих в комбинацию. В случае если унаследованные атрибуты языка EXPRESS в подтипе данных имеют одинаковые имена, то либо с помощью обычного наследования, либо с помощью переобъявления, переименовывающего данный атрибут, представление в HDF5 данного атрибута в данном подтипе получает следующее имя:

<schema_group_name> + "/" + <entity_id> + ( "+" + <entity_id> ) + "/" +

<entity id> +    +    <attribute id> .

Пример - Следующая EXPRESS-схема:

SCHEMA test;

ENTITY a;

name : STRING;

END_ENTITY;

ENTITY b SUBTYPE OF a; age : INTEGER; x : REAL;

END_ENTITY;

ENTITY c SUBTYPE OF a; height : REAL; x: BOOLEAN;

END_ENTITY;

END_SCHEMA;

приведет к появлению следующих имен в файле HDF5:

test/а test/а/паше

test/b test/b/name test/Ь/age test/b/х

ГОСТ Р ИСО/ТС 10303-26—2015

test/с test/с/name test/c/height test/c/x

test/b+c test/b+с/name test/b+с/age test/b+c/height test/b+c/b.x test/b+с/c.x

6.8 Отображение атрибутов языка EXPRESS

6.8.1    Общие положения

Конкретные детали отображения явных атрибутов языка EXPRESS зависят от области определения атрибута и представлены в данном подразделе для всех областей определения.

6.8.2    Области определения простых типов данных

Для каждого явного атрибута языка EXPRESS, областью определения которого является простой, перечисляемый или выбираемый тип данных языка EXPRESS, либо определенный тип данных, который сводится к простому или перечисляемому типу данных, определено поле HDF5 с единственным значением, относящимся к типу данных HDF5 в соответствии с 6.4, 6.9.4, 6.9.2 и 6.9.3.2.

6.8.3    Представление значений типа данных ARRAY языка EXPRESS в HDF5

В настоящем стандарте определены два подхода к отображению атрибутов языка EXPRESS, имеющих агрегированные значения:

a)    в случае больших агрегированных экземпляров для представления данных используется отдельный набор данных HDF5;

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

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

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

Значение атрибута языка EXPRESS, которое классифицировано как большое агрегированное значение, представляется как набор данных HDF5, в котором присутствует массив HDF5 или структура данных VLEN, содержащий реальные данные. В HDF5 все элементы массива могут иметь один и тот же тип данных HDF5. Кроме того, должны быть установлены число вложений массива (в терминах HDF5 это называется «рангом» массива) и размерность для каждого вложенного массива. Ранг массива в HDF5 должен быть представлен целым числом, определяющим число вложений массива, а размерности в HDF5 соответствуют числу элементов на каждом уровне. Массивы языка EXPRESS хранятся как отдельные наборы данных, доступ к которым осуществляется с помощью ссылок на наборы данных HDF5. Ссылка на набор данных HDF5 является значением, хранящимся в памяти для данного значения атрибута языка EXPRESS, и с нее должна быть снята косвенность для того, чтобы прочитать элементы массива.

Массивы могут содержать элементы, представляющие сброс или возврат в исходное состояние. Поэтому элементы массива хранятся как небольшие составные типы данных, состоящие из двух элементов. Первый элемент относится к типу данных H5T_BITFIELD и имеет имя "set_unset_array_element". Второй элемент имеет имя "value", и он может относиться к любому из типов данных, перечисленных в таблице 1, так же как и ссылки на экземпляры (см. 6.10.4) и составные типы данных, представляющие выбираемые типы данных. Если элементом массива является возврат в исходное состояние, то первый элемент составного типа данных должен иметь значение 0, а второй элемент должен быть пустым. Если

11

ГОСТ Р ИСО/ТС 10303-26—2015

второй элемент с именем "value" не пустой, то первый элемент должен иметь значение 1.

Примечания

1    Приложение, читающее и записывающее данные, закодированные в HDF5, само должно определять отличие индекса массива HDF5 от индекса массива языка EXPRESS.

2    В языке программирования С элементы массивов упорядочены. Таким же образом индексы экземпляра массива интерпретируются в HDF5.

Пример — Следующее объявление на языке EXPRESS:

ARRAY[1:2] OF AKRAY[1:3} OF INTEGER

будет представлено в HDF5 как массив ранга 2 с размерностями 2 и 3.

В таблице 2 определено представление значений элементов N-мерного массива, имеющих одинаковый тип данных языка EXPRESS.

Таблица 2 — Отображение массива языка EXPRESS на HDF5

Тип данных значений элементов N-мерного массива языка EXPRESS

Представление в HDF5

INTEGER

H5T ARRAY базового типа данных для типа данных INTEGER языка EXPRESS

REAL

Н5Т ARRAY базового типа данных для типа данных REAL языка EXPRESS

BOOLEAN

То же, что и для типа данных INTEGER

LOGICAL

То же, что и для типа данных INTEGER

STRING

Н5Т ARRAY базового типа данных для типа данных STRING языка EXPRESS

BINARY

Н5Т ARRAY базового типа данных для типа данных STRING языка EXPRESS

NUMBER

то же, что и для типа данных REAL

ENUMERATION

то же, что и для типа данных INTEGER

6.8.4    Представление значений агрегированных типов данных языка EXPRESS в HDF5

Так как размерности типов данных SET, LIST и BAG определяются их содержимым, а не схемой, то размерности типов данных HDF5 не могут быть определены на основе определения типов данных языка EXPRESS. Эти размерности должны быть установлены на основе самих данных.

Пример — Следующее объявление на языке EXPRESS:

LIST[2:?] OF LIST[2:?} OF INTEGER

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

Поэтому N-мерные типы данных LIST, BAG и SET языка EXPRESS отображаются на данные VLEN: Variable Length, Variable Length {.Variable Length} <HDF5 Datatype representation».

Пример - Следующее объявление на языке EXPRESS:

LIST[0:?] OF LIST[0:?} OF point

будет представлено в HDF5 данными VLEN, содержащими данные VLEN, которые представляют идентификаторы экземпляров объектов (см. 6.10.4), которые ссылаются на представление объектного типа данных языка EXPRESS "point".

Дополнительные примеры приведены в С.7.

6.8.5    Динамическое связывание хранилища агрегированных данных

Считают, что вложенный массив принадлежит к «чистому» типу данных ARRAY, если его агрегированные данные на всех уровнях вложенности принадлежат к типу данных ARRAY.

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

Первый элемент составного типа данных относится к типу данных H5T_BITFIELD и имеет имя

ГОСТ Р ИСО/ТС 10303-26—2015

"obj_ref_or_vlen". Второй элемент относится к типу данных H5T_STD_REF_OBJ и имеет имя "object_reference". Данный элемент не пуст в том случае, когда значением "obj_ref_or_vlen" является 0, и содержит ссылку на отдельный набор данных, в котором хранится агрегированная структура. Третий элемент относится к типу данных H5T_VLEN и имеет имя "vlen_array". Данный элемент не пуст в том случае, когда значением "obj_ref_or_vlen" является 1. При этом данные типа H5T_VLEN встроены в родительский составной тип данных.

6.9 Отображение определенных типов данных языка EXPRESS

6.9.1    Общие положения

Именованные типы данных HDF5, которые представляют определенные типы данных языка EXPRESS, определены так, что они имеют родителя, являющегося представлением EXPRESS-схемы, как определено в 6.5.

6.9.2    Отображение перечисляемых типов данных языка EXPRESS на HDF5

Перечисляемые типы данных языка EXPRESS отображаются также, как и другие простые определенные типы данных языка EXPRESS, которые отображаются на именованные типы данных HDF5. Однако соответствующий тип данных HDF5 определен непосредственно как HDF5 ENUM, представленный парой <string>:<unsigned integer>, где <string> представляет символическое имя, которому должно быть задано значение в виде <enum_name> + 7" + <enum_literal>. Во второй редакции языка EXPRESS был определен наращиваемый перечисляемый тип данных, следствием чего явилось отсутствие упорядочения, которое могло бы быть связано со значениями элементов перечисляемого типа данных. Поэтому ссылки должны делаться с использованием символического имени.

Пример — Отображение представленного ниже перечисляемого типа данных языка EXPRESS, связанного с представлением схемы "s_encoding", даст в результате именованный тип данных HDF5 "s_encoding/ahead_or_behind" и пары значений ("sencoding/aheadorbehind/ ahead", 0), ("s_encoding/ahead_or_behind/exact", 1) и ("s_encoding/ahead_or_behind/behind", 2), представляющие элементы перечисляемого типа данных языка EXPRESS, помня при этом, что целые числа 0, 1 и 2 не должны использоваться в качестве ссылок.

SCHEMA s;

TYPE ahead_or_behind = ENUMERATION OF

(ahead, exact, behind);

END_TYPE;

END_SCHEMA;

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

Пример — Следующие перечисляемые типы данных языка EXPRESS, связанные с представлением схемы "s encoding":

SCHEMA s;

TYPE x = EXTENSIBLE ENUMERATION OF (a,b);

END_TYPE;

TYPE у = ENUMERATION BASED_ON x WITH(c,d);

END_TYPE;

TYPE z = ENUMERATION BASED_ON x WITH(e,f);

END_TYPE;

END_SCHEMA;

в результате отображения дадут следующие определения в HDF5:

-    именованный тип данных HDF5 "s encoding/х", заданный шестью парами ("s encoding/x/a", 0), ("s_encoding/x/b", 1), ("s_encoding/x/c", 2), ("s_encoding/x/d", 3), ("s_encoding/x/e", 4) и ("s encoding/ x/f", 5), представляющими элементы перечисляемого типа данных “х” языка EXPRESS;

-    именованный тип данных HDF5 "s encoding/y", заданный четырьмя парами ("s_encoding/y/a",

0), ("s_encoding/y/b", 1), ("s_encoding/y/c", 2) и ("s_encoding/y/d", 3), представляющими элементы перечисляемого типа данных “у” языка EXPRESS;

-    именованный тип данных HDF5 "s_encoding/z", заданный четырьмя парами ("s encoding/z/а", 0), ("s_encoding/z/b", 1), ("s_encoding/z/e", 2) и ("s_encoding/y/f", 3), представляющими элементы перечисляемого типа данных “z” языка EXPRESS.

Дополнительный пример приведен в С.4.

13

6.9.3 Отображение выбираемых типов данных языка EXPRESS на HDF5

6.9.3.1 Общие положения

EXPRESS:


В настоящем стандарте определены следующие категории выбираемых типов данных языка

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

-    выбираемый тип данных, в списке выбора которого присутствуют только элементы объектного типа данных и других выбираемых типов данных, содержащих элементы только объектного типа данных;

-    выбираемый тип данных, в списке выбора которого присутствуют элементы разных типов данных.

6.9.3.2    Отображение выбираемого типа данных языка EXPRESS, содержащего элементы простых типов данных, на HDF5

Существуют два возможных варианта:

1)    Граф выбора является однозначным. В этом случае отображение аналогично отображению простых определенных типов данных, определенному в 6.9.4.

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

6.9.3.3    Отображение выбираемого типа данных языка EXPRESS, содержащего элементы объектных типов данных, на HDF5

В случае, когда все элементы, содержащиеся в списке выбора выбираемого типа данных языка EXPRESS, принадлежат к объектному типу данных, выбираемый тип данных языка EXPRESS не отображается на файл HDF5. Вместо этого все атрибуты языка EXPRESS, для которых в качестве области определения задан выбираемый тип данных, определяются так, что в качестве их типа данных задается ссылка на соответствующий экземпляр объекта языка EXPRESS (см. 6.10.4).

Пример — Следующий выбираемый тип данных языка EXPRESS, связанный с представлением схемы "s encoding":

SCHEMA s;

ENTITY x;

а: REAL;

END_ENTITY;

ENTITY y;

b : INTEGER;

END_ENTITY;

TYPE z = SELECT( x, у) ;

END_TYPE;

ENDJSCHEMA;

приведет к отображению на два объектных типа данных для "х" и "у", определенному в другом месте, но для "г” не будет создано никакого нового типа данных.

6.9.3.4 Отображение выбираемого типа данных языка EXPRESS, содержащего элементы разных типов данных, на HDF5

В случае, когда элементы, содержащиеся в списке выбора выбираемого типа данных языка EXPRESS, не принадлежат к одному объектному типу данных, представлением в HDF5 значений атрибутов языка EXPRESS, основанных на этом выбираемом типе данных, является составной тип данных HDF5, который имеет одно поле HDF5, определенное для каждого возможного простого типа данных.

Составной тип данных HDF5, представляющий выбираемый тип данных, должен иметь имя <schema_group_name> + 7" + <type_id>, а его поля должны иметь следующее имя, основанное на лежащих в основе основных типах данных: <underlying_type_id> + "-value".

Пример


integer-value real-value


(H5T_INTEGER) (H5T_FLOAT) (H5TJ3TRING) (see 6.10.4) (H5T ENUM)


s tring-value ins tance-value boolean-value logical-value binary-value 14


(H5T_ENUM) (H5T OPAQUE)


ГОСТ Р ИСО/ТС 10303-26—2015

<enumeration-name> (H5T_ENUM)

<name_of_typed_aggregate> (дескриптор агрегированной структуры — по 6.8.5)

Если значения данных представлены набором, то только одно из полей должно содержать элементы. В HDF5 отсутствует понятие недостающих данных. Поэтому подобно случаю отображения объектного типа данных (см. 6.6), в составном типе данных HDF5 из списка выбора первым должен быть элемент с именем "select_bitmap". Второй элемент должен иметь имя "type_path" и принадлежать к типу данных H5T_VLEN из H5T_STRING, представляя возможный путь для этого типа данных. В некоторых случаях подобный путь должен иметь составляющие элементы, так как значение выбираемого типа данных в противном случае будет неоднозначным. Такие выбираемые значения обычно называ-ются типизированными данными.

Пример — Следующий выбираемый тип данных языка EXPRESS, связанный с представлением схемы "s_encoding":

SCHEMA s;

TYPE г = REAL;

END_TYPE;

TYPE i = INTEGER;

END_TYPE;

TYPE n = SELECT( r, i);

END_TYPE;

ENTITY e;

a : n ;

END_ENTITY;

ENDJ3CHEMA;

приведет к отображению атрибута "е.а" языка EXPRESS, которое будет представлено составным типом данных HDF5 с именем "s_encoding/n" и полями HDF5 "select_bitmap", "real-value" и "integer-value".

Дополнительные примеры приведены в С.5.

6.9.4 Отображение простых определенных типов данных языка EXPRESS

Атрибуты объектов языка EXPRESS, базирующиеся на простых типах данных, отображаются непосредственно на основные типы данных HDF5, как определено в 6.4.

Существует дополнительная возможность отображать простые определенные типы данных языка EXPRESS на HDF5. В этом случае отображение осуществляется описанным ниже способом.

Для определенных типов данных языка EXPRESS, являющихся конкретизациями простых типов данных, должен быть создан именованный тип данных HDF5 в группе HDF5, представляющей EXPRESS-схему, для конкретных элементов отображаемого типа данных. Этот именованный тип данных должен иметь следующее относительное имя:

<schema group name> + "/" + <type id>.

Тип данных HDF5 именованного типа данных HDF5 является представлением базового типа определенного типа данных языка EXPRESS, как определено в 6.4.

Пример — Следующий определенный тип данных языка EXPRESS из EXPRESS-схемы "s" с соответствующей группой HDF5 с именем "s_encoding":

SCHEMA s;

TYPE x = REAL;

END_TYPE;

END_SCHEMA;

приведет к отображению на именованный тип данных HDF5 с именем "s_encoding/x" и базовым типом данных HDF5 H5T_FLOAT.

Отображение определенных типов данных языка EXPRESS, конкретизирующих другие определенные типы данных языка EXPRESS, осуществляется аналогичным образом. Новый именованный тип данных HDF5 определяется с базовым типом данных HDF5 другого именованного типа данных HDF5.

15

Пример - Пусть задана следующая EXPRESS-схема:

SCHEMA s;

TYPE positive_integer = INTEGER;

END_TYPE;

TYPE big_positive_integer = positive_integer;

END_TYPE;

END_SCHEMA;

Объявление первого типа данных отобразится на именованный тип данных HDF5 с именем "s_encoding/positive_integer" и базовым типом данных HDF5 H5TJNTEGER. Объявление второго типа данных отобразится на именованный тип данных HDF5 с именем "s_encoding/big_positive_ integer” и базовым типом данных HDF5, соответствующим именованному типу данных "s_encoding/positive_integer".

Дополнительный пример приведен в С.5.

6.9.5    Отображение определенных типов данных ARRAY языка EXPRESS

Отображение всех агрегированных типов данных языка EXPRESS представляется с использованием массива HDF5 или типа данных VLEN. Для типа данных ARRAY языка EXPRESS с фиксированными в схеме границами может быть непосредственно определен тип данных HDF5 Array. Однако для других агрегированных типов данных языка EXPRESS размерности агрегированных структур зависят от реального содержимого данных, и поэтому не выводятся непосредственно из EXPRESS-схемы. Именованный тип данных HDF5 должен иметь следующее относительное имя:

<schema_group_name> + "/" + <type_id>.

Пример — Следующий определенный тип данных языка EXPRESS из EXPRESS-схемы "в” с группой HDF5 с именем "sjencoding", соответствующей данной схеме:

SCHEMA s;

TYPE context_dependent_measure = REAL;

END_TYPE;

TYPE anisotropic_symmetric_tensor2_2d =

ARRAY [1:3] OF context_dependent_measure;

END_TYPE;

END_S CHEMA;

приведет к отображению на именованный тип данных HDF5 с именем ”s_encoding/anisotropic_ symmetric_tensor2_2d" и базовым типом данных HDF5 H5T_ARRAY или VLEN, содержащим данные типа H5TFLOAT, потому что тип данных "s_encoding/context_dependent_measure" должен быть отображен в соответствии с 6.9.4.

6.9.6    Отображение определенных типов данных BAG, LIST и SET языка EXPRESS

Для каждого экземпляра агрегированного определенного типа данных языка EXPRESS, в определении которого встречаются типы данных BAG, SET или LIST, используется тип данных HDF5 VLEN для сохранения каждого экземпляра типа данных BAG, SET или LIST языка EXPRESS. Представляющий данный экземпляр именованный тип данных HDF5, в соответствии с требованием для определенных типов данных ARRAY языка EXPRESS, не должен быть включен в файл HDF5.

Пример-Следующий определенный тип данных языка EXPRESS из EXPRESS-схемы "s" с груп

пой HDF5 с именем "s encoding", соответствующей данной схеме:

SCHEMA s;

TYPE real_list = LIST [1:?] OF REAL;

END_TYPE;

ENTITY x;

x_real_list : real_list;

END_ENTITY;

END_S CHEMA;

приведет к отображению на тип данных VLEN, не обязательно имеющий имя, хотя это и возможно. Базовым типом данных HDF5 должен быть HDF5 IEEE Floating Point 32 или 64 bits, Big- или Little-Endian. Настоящий стандарт не требует, чтобы этот тип данных был определен в группе "sjencoding”.

ГОСТ Р ИСО/ТС 10303-26—2015

Содержание

1    Область применения.................................................................................................................1

2    Нормативные ссылки.................................................................................................................1

3    Термины и определения...........................................................................................................1

4    Сокращения................................................................................................................................2

5    Соответствие..............................................................................................................................2

6    Отображение данных, определенных на языке    EXPRESS, на формат файла HDF5.........2

Приложение А (обязательное) Обозначение документа........................................................20

Приложение В (справочное) Техническое    обсуждение..........................................................21

Приложение С (справочное) Примеры.....................................................................................24

Приложение ДА (справочное) Сведения о соответствии ссылочных

международных стандартов национальным стандартам

Российской Федерации....................................................................................68

Библиография.............................................................................................................................69

ГОСТ Р ИСО/ТС 10303-26—2015

6.10 Отображение экземпляров объектов языка EXPRESS

6.10.1    Общие положения

Экземпляры из пространства объектов языка EXPRESS представляются с использованием по крайней мере одного набора данных HDF5. Может потребоваться множество наборов данных HDF5 в том случае, если у экземпляров объектов присутствуют атрибуты с агрегированными значениями. Экземпляры объекта типа данных CONSTANT языка EXPRESS представляются с использованием того же отображения, что и для экземпляров обычных объектов языка EXPRESS.

Примечание — На экземпляры объекта типа данных CONSTANT языка EXPRESS не могут быть сделаны прямые ссылки с помощью обычных ссылок на экземпляры объектов. Цель их включения в отображение заключается в том, что их необходимо учитывать при проверке достоверности набора данных относительно EXPRESS-схемы.

6.10.2    Представление экземпляров простых объектов языка EXPRESS в HDF5

В рамках содержимого EXPRESS-схемы полный набор экземпляров объектов языка EXPRESS одного объектного типа данных, часто называемый пространством объектов, представляется группой HDF5. Группа HDF5, содержащая экземпляры объектов языка EXPRESS, имеет следующее относительное имя:

<entity_id> + "_objects".

Группа HDF5, связанная с объектным типом данных языка EXPRESS, содержит набор данных HDF5, в состав которого входят все экземпляры объектов языка EXPRESS конкретного объектного типа данных. Набор данных HDF5, содержащий экземпляры объектов языка EXPRESS, должен иметь следующее относительное имя:

<entity_id> + "_objects" + "/" + <entity_id> + "_instances".

Пример — На рисунке 5 показано общее представление, не содержащее всех деталей, демонстрирующее два набора данных HDF5, один из которых содержит экземпляры объектов языка EXPRESS, принадлежащих к объектному типу данных "product", а второй содержит экземпляры объектов языка EXPRESS, принадлежащих к объектному типу данных "product definition formation".

Рисунок 5 - Наборы данных HDF5 с экземплярами простых объектов языка EXPRESS

Набор данных HDF5, содержащий пространство объектов языка EXPRESS, базируется на именованном типе данных HDF5, представляющем объектный тип данных языка EXPRESS в соответствии с 6.6. Набор данных HDF5 должен также иметь связанное с ним пространство данных HDF5 для того, чтобы определить ранг и размерность данного набора. Ранг HDF5 должен быть равен 1, а размерность HDF5 зависит от числа экземпляров в пространстве объектов языка EXPRESS. Следова-

17

Введение

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

Стандарты комплекса ИСО 10303 представляют собой набор отдельно издаваемых стандартов (частей). Стандарты данного комплекса относятся к одной из следующих тематических групп: «Методы описания», «Методы реализации», «Методология и основы аттестационного тестирования», «Интегрированные обобщенные ресурсы», «Интегрированные прикладные ресурсы», «Прикладные протоколы», «Комплекты абстрактных тестов», «Прикладные интерпретированные конструкции» и «Прикладные модули». Полный перечень стандартов комплекса ИСО 10303 представлен на сайте http://www.tc184-sc4.org/titles/STEP_Titles.htm. Настоящий стандарт входит в тематическую группу «Методы реализации». Он подготовлен подкомитетом SC4 «Производственные данные» Технического комитета 184 ИСО «Системы автоматизации производства и их интеграция».

Настоящий стандарт определяет связь языка EXPRESS с Иерархическим форматом данных, версия 5 (HDF5). HDF5 первоначально был разработан Национальным центром суперкомпьютерных приложений Иллинойского университета, а в настоящее время поддерживается некоммерческой организацией Группа HDF. Программное обеспечение HDF включает библиотеки ввода-вывода и средства анализа, визуализации и конвертирования научных данных.

Настоящий стандарт определяет отображение экземпляров данных, определенных на языке EXPRESS, на формат файла HDF5. Однако настоящий стандарт не отображает все конструкции языка моделирования EXPRESS на HDF5. HDF5 не является языком моделирования, но файл HDF5 содержит в себе типы данных, определяющие включенные в данный файл экземпляры данных.

Пользователи настоящего стандарта должны обладать детальными знаниями понятий языка EXPRESS, определенного в ИСО 10303-11, и HDF5. В приведенных примерах программ использован прикладной программный интерфейс HDF5.

IV

ГОСТ Р ИСО/ТС 10303-26—2015

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Системы автоматизации производства и их интеграция ПРЕДСТАВЛЕНИЕ ДАННЫХ ОБ ИЗДЕЛИИ И ОБМЕН ЭТИМИ ДАННЫМИ

Часть 26 Методы реализации.

Двоичное представление данных, определенных на языке EXPRESS

Industrial automation systems and integration. Product data representation and exchange. Part 26. Implementation methods. Binary representation of EXPRESS-driven data

Дата введения — 2016—10—01

1    Область применения

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

5    (HDF5).

Требования настоящего стандарта не распространяются на:

-    отображение ограничений и правил, определенных на языке EXPRESS, на файл HDF5;

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

2    Нормативные ссылки

В настоящем стандарте использованы ссылки на следующие международные стандарты и документы (для датированных ссылок следует использовать только указанное издание, для недатированных ссылок - последнее издание указанного документа, включая все поправки к нему):

ИСО 639-2 Коды для представления названий языков. Часть 2. Код Alpha-3 (ISO 639-2, Codes for the representation of names of languages - Part 2: Alpha-3 code)

ИСО 8601 Элементы данных и форматы обмена. Обмен информацией. Представление дат и времени (ISO 8601, Data elements and interchange formats - Information interchange - Representation of dates and times)

ИСО 10303-1 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 1. Общие представления и основополагающие принципы (ISO 10303-1, Industrial automation systems and integration - Product data representation and exchange -Part 1: Overview and fundamental principles)

ИСО 10303-11 Системы автоматизации производства и их интеграция. Представление данных

06    изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS (ISO 10303-11, Industrial automation systems and integration - Product data representation and exchange - Part 11: Description methods: The EXPRESS language reference manual)

Спецификация формата файлов HDF5. Группа HDF. Доступна в Интернете по адресу: http://www.hdfgroup.org/HDF5/doc/H5.format.html (HDF5 File Format Specification. HDF Group. Available from Workd Wide Web: http://www.hdfgroup.org/HDF5/doc/H5.format.html)

3    Термины и определения

В настоящем стандарте применены следующие термины с соответствующими определениями:

3.1    прикладной протокол (application protocol): Часть настоящего комплекса стандартов, которая определяет прикладную интерпретированную модель, удовлетворяющую области применения и информационным требованиям к конкретному приложению.

[ИСО 10303-1:1994, статья 3.2.7]

3.2    данные (data): Представление информации в формальном виде, пригодном для передачи, интерпретации или обработки людьми или компьютерами.

[ИСО 10303-1:1994, статья 3.2.14]

3.3    язык определения данных (data specification language): Набор правил для определения данных и их взаимосвязей, пригодный для компьютерной передачи, интерпретации или обработки.

Издание официальное

[ИСО 10303-1:1994, статья 3.2.16]

3.4    данные, определенные на языке EXPRESS (EXPRESS-driven data): Набор экземпляров объектов, определенных в EXPRESS-схеме.

3.5    совокупность (population): Множество экземпляров объектного типа данных.

[ИСО 10303-11:2004, статья 3.3.16]

4    Сокращения

В настоящем стандарте применены следующие сокращения:

ПП - прикладной протокол (application protocol; АР);

ТБ - тепловой баланс (thermal balance; ТВ);

ЯОД - язык определения данных (data definition language; DDL);

API - интерфейс прикладного программирования (application programming interface);

HDF5 - Иерархический формат данных, версия 5 (Hierarchical Data Format Version 5);

I/O - ввод и вывод (input and output).

5    Соответствие

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

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

Файл HDF5 соответствует настоящему стандарту в том случае, если:

-    он соответствует определению формата файла HDF5;

-    он основан на допустимой EXPRESS-схеме, которая может иметь интерфейсы с другими допустимыми схемами;

-    данные, определенные на языке EXPRESS, представлены в файле HDF5 так, как это определено в настоящем стандарте.

Соответствие препроцессоров и постпроцессоров обработки данных находится вне области применения настоящего стандарта.

6    Отображение данных, определенных на языке EXPRESS, на формат файла HDF5

6.1 Общие положения

В данном разделе определены отображения данных, определенных на языке EXPRESS, на Иерархический формат данных, версия 5 (HDF5). В данном разделе использовано соглашение, что заданы отображаемые понятия языка EXPRESS и определены соответствующие понятия HDF5. Отображение не определено относительно какого-либо конкретного интерфейса прикладного программирования (API). Реализации HDF5 доступны на многих языках программирования.

Примечание — В настоящем стандарте в примерах использован API HDF5, разработанный в Группе HDF5.

2

ГОСТ Р ИСО/ТС 10303-26—2015


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


HDF5 Group HDF5 Datatype HDF5 Dataset HDF5 Attribute

HDF5 Dataspace HDF5 Link


Root Group

Attribute


Dataspace


i Link i


''Link1'



Рисунок 1 — Условные обозначения на диаграммах HDF5


Пример — На рисунке 2 показан пример обозначений для представления понятий HDF5, использованных в настоящем стандарте.


Рисунок 2 - Условные обозначения на диаграммах HDF5 6.2 Неотображаемые понятия языка EXPRESS

Следующие понятия языка EXPRESS в настоящем стандарте не отображаются на HDF5, и поэтому их представление не должно присутствовать в файле HDF5:

-    объявления RULE;

-    правила определения областей в объявлениях ENTITY и ТУРЕ;

-    правила UNIQUE в объявлениях ENTITY;


3


-    объявления SUPERTYPE;

-    объявления FUNCTION;

-    объявления PROCEDURE;

-    объявления CONSTANT, за исключением объявлений CONSTANT для экземпляров объектов;

-    производные атрибуты и явно определенные атрибуты, переобъявленные как производные атрибуты;

-    инверсные атрибуты;

-    спецификации интерфейсов на языке EXPRESS;

-    комментарии.

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

6.3 Общие требования к отображению и использованный подход

6.3.1    Использованный подход

Язык EXPRESS является языком определения данных. Схема в языке EXPRESS задает область определения, а также раздел, к которому относятся объявления. Поэтому в настоящем стандарте для определения контекста данной реализации должна быть выбрана единственная схема. Однако это не означает, что контекстные схемы, содержащие спецификации интерфейсов не поддерживаются данным отображением. Спецификации интерфейсов на языке EXPRESS поддерживаются до тех пор, пока они не отображены непосредственно на файл HDF5. Что касается определения данных, то набор схем, видимых для данной контекстной схемы, определяет полный набор допустимых типов данных. В настоящем стандарте принято, что EXPRESS-схемы определены в целях ограничения применимости совокупностей данных. Множество совокупностей данных, основанных на одной и той же EXPRESS-схеме, может существовать и быть включено в один файл HDF5. Так как HDF5 поддерживает разные способы представления значений данных, определенных на языке EXPRESS, на основе одной и той же схемы, то для любой EXPRESS-схемы не требуется существование единственного представления. Один и тот же файл HDF5 может содержать совокупности данных EXPRESS-схемы, использующие разные ее представления. Информация о конструкциях HDF5, использованных для кодирования данных, определенных на языке EXPRESS, хранится в файле HDF5 вместе с самими данными, поэтому постпроцессоры могут запросить данный файл для нахождения способов декодирования. Подход, использованный в настоящем стандарте для представления данных, определенных на языке EXPRESS, с помощью HDF5, основан на следующих предположениях:

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

-    определены только типы данных, используемые для записи данных на диск, но ничего не задано относительно представления этих данных в памяти;

-    в тех случаях, когда это возможно, предпочтительно использовать предопределенные типы данных HDF5;

-    должна поддерживаться межплатформенная функциональная совместимость.

Общий подход к представлению данных, определенных на языке EXPRESS, заключается в трактовке экземпляров объектных типов данных языка EXPRESS и экземпляров агрегированного типа данных языка EXPRESS одинаковым способом. Множество экземпляров объектного типа данных языка EXPRESS вместе с любыми неагрегированными значениями атрибутов трактуется как набор данных, основанный на составном типе данных HDF5. Агрегированные значения атрибутов языка EXPRESS представлены с помощью отдельного набора данных HDF5 для каждого агрегированного экземпляра. Кроме того, для экземпляров с небольшими агрегированными значениями определена возможность их непосредственного встраивания в набор данных HDF5, содержащий экземпляры объектного типа данных языка EXPRESS.

6.3.2    Имена связей HDF5

Группы, наборы данных и именованные типы данных, использованные в данном отображении, идентифицированы, или поименованы, с помощью связи HDF5. Имя, начинающееся с символа «косая черта» («/»), является абсолютным именем, доступ к которому начинается с корневой группы файла; все остальные имена являются относительными, а доступ к поименованному объекту начинается с указанной группы. Особым случаем является имя «/», которое относится к корневой группе.

Для конструкций HDF5, являющихся непосредственным отображением конструкций языка EXPRESS, идентификаторы языка EXPRESS используются как часть имен связей HDF5. Все иденти-4

ГОСТ Р ИСО/ТС 10303-26—2015


фикаторы языка EXPRESS должны быть представлены символами верхнего регистра (прописными буквами). Символ «косая черта» («/») используется для того, чтобы отделить имена HDF5, являющиеся частью данной связи.

Примечание — Символ «точка» («.»), используемый как разделитель в идентификаторах языка EXPRESS, является зарезервированным символом в HDF5 и поэтому не используется для этой цели в файле


HDF5.


Важно отметить, что в соответствии с определением HDF5 так же, как и в файловой системе UNIX, объекты HDF5 не имеют имен, так как имена ассоциированы со связями. Объект имеет идентификатор объекта, являющийся уникальным в данном файле, но один объект может иметь много имен, потому что может существовать много связей для данного объекта. Объект может быть снабжен альтернативным именем или перемещен в другую группу с помощью добавления или удаления связей. Но в данном случае сам объект никуда не перемещается, а его членство в группе не имеет никакого отношения к физическому размещению объекта в памяти.

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

Пример — Следующий фрагмент на языке EXPRESS, отображенный на группу HDF5 с именем “pets encoding”, может в результате стать частью имени связи HDF5, относящейся к набору данных HDF5, - “pets encoding/Dogs”:

SCHEMA pets;

ENTITY Dogs;

END_ENTITY;

END_SCHEMA;

6.3.3 Представление совокупностей данных, определенных на языке EXPRESS, в HDF5

Каждая совокупность данных из EXPRESS-схемы представлена группой HDF5 (см. пример в С.2). Разные совокупности данных из одной EXPRESS-схемы могут появиться в одном файле HDF5, но при этом они будут принадлежать к разным группам HDF5.


Пример - На рисунке 3 показаны три группы HDF5, содержащие данные в соответствии с настоящим стандартом.

iso_10J0J_2B_data = Configuration controlled 3D designs of mechanical parts and assemblies'


isoJ0303_2(>_data = 'Configuration controlled 3D designs of mechanical



iso_10303_26_dafa = 'Composite and metallic structural analysis and related design'


Рисунок 3 - Совокупности данных в группах HDF5


5


Данные в файле HDF5 базируются на связанных с ними типах данных HDF5. Совокупности данных, определенных на языке EXPRESS, в файле HDF5 базируются на типах данных HDF5, которые получены, по крайней мере частично, из лежащей в их основе EXPRESS-схемы. Эти типы данных присутствуют в группе HDF5, как это определено в 6.5.

Группа HDF5, представляющая совокупность данных из EXPRESS-схемы, должна иметь два связанных с ней атрибута HDF5 со следующими именами и описаниями:

-    iso_l03 03-2 6_data - имеет значение <schema_id> и тип данных HDF5 STRING;

-    iso_l0303_26_data_set_names - содержит имена наборов данных родительских групп. В действительности данный атрибут представляет массив, содержащий имена объектов, соответствующие именам наборов данных. Реальные имена наборов данных получаются с использованием соглашений об именах, представленных в 6.10.

Атрибут HDF5 с именем “iso_l0303-26_data” является индикатором для программного приложения, указывающим, что группа HDF5 содержит данные, закодированные в соответствии с настоящим стандартом.

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

-    iso_i03 03-2 6_description - имеет значение <user_defined_description>;

-    iso_l0303-26_timestamp - имеет значение, соответствующее расширенному формату полной календарной даты, определенному в ИСО 8601, объединенному с расширенным форматом времени дня, также определенному в ИСО 8601. Дата и время должны быть разделены прописной буквой “Т”, как это определено в ИСО 8601, в котором также определены альтернативные форматы, допускающие факультативное включение указателя часового пояса;

-    iso_i03 03-2 6_author - имеет значение <user>;

-    iso_i03 03-2 6_organization - имеет значение <user_organization>;

-    iso_i0303-26_originating_system- имеет значение <software_system_name>;

-    iso юзоз-26 preprocessor version — имеет значение <software_application_and_ version>;

-    iso_l0303-2 6_context - имеет значение сконтекст, которому соответствуют данные>;

-    iso_l0303-2 6_language - имеет значение <язык, используемый по умолчанию для строковых значений>, где название языка должно быть закодировано с использованием библиографического кода Alpha-З, определенного в ИСО 639-2.

Настоящий стандарт не накладывает никаких ограничений на необязательные атрибуты HDF5, связанные с объектами HDF5 в файлах HDF5.

6.4 Отображение простых типов данных языка EXPRESS

Формат данных HDF5 поддерживает кодирование некоторых простых типов данных разными способами. Настоящий стандарт не требует определения конкретного способа кодирования для типов данных INTEGER, REAL или NUMBER языка EXPRESS.

Способ кодирования может быть запрошен из файла HDF5 постпроцессором. В таблице 1 определено представление значений простых и перечисляемых типов данных языка EXPRESS в HDF5 (см. раздел «Наборы данных HDF5» в [3]).

6