Foreword
The EXPRESS Language Foundation (“ELF”) is a registered public charity in the US that facilitates the education, standardization, research, promotion, definition, and usage of information modelling and programming languages, with a focus on the EXPRESS language family.
ELF works with international partners and experts across the globe, reflecting the international nature of its mission. More information about ELF is available on the official website (https://www.expresslang.org).
The procedures used to develop this document and those intended for its further maintenance are described in the ELF Directives.
In particular, the different approval criteria needed for the different types of ELF documents should be noted. This document was drafted in accordance with the editorial rules of the ELF Directives.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ELF shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be provided in the Introduction.
Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement.
This document was prepared by Technical Committee EXPRESS.
Introduction
0.1 General
The EXPRESS Schema Manifest specification provides a standardized format for listing and referencing multiple EXPRESS schemas within a project or system. This specification addresses the need for a consistent way to organize and reference EXPRESS schemas, particularly in the context of the EXPRESSdocs framework.
EXPRESS schemas are fundamental components in data modeling for product data representation and exchange. As projects grow in complexity, they often incorporate multiple schemas that need to be referenced and managed collectively. The EXPRESS Schema Manifest specification offers a solution to this challenge by providing a structured format for schema listings.
0.2 Historical context
In STEPmod (developed by ISO/TC 184/SC 4), the repository_index.xml file served the purpose of defining the SMRL (STEP Module Repository Library) collection of EXPRESS schemas. This specification builds upon that concept, providing a more flexible and modern approach using YAML syntax.
The current specification reflects the schemas.yaml file structure that is used in EXPRESSdocs, offering a clear and maintainable way to reference multiple EXPRESS schemas and their locations.
EXPRESS schema manifest specification
1 Scope
This document specifies the EXPRESS Schema Manifest format, a standardized approach for listing and referencing multiple EXPRESS schemas within a project or system.
The EXPRESS Schema Manifest specification provides a structured format for defining collections of EXPRESS schemas, their locations, and relationships, particularly in the context of the EXPRESSdocs framework.
This document:
defines the structure and syntax of the EXPRESS Schema Manifest;
specifies rules for referencing EXPRESS schemas and their locations;
provides methods for organizing collections of EXPRESS schemas; and
includes examples of proper EXPRESS Schema Manifest usage.
2 Normative references
The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
ISO 10303-11, Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual
YAML, YAML Ain’t Markup Language — https://yaml.org
EXPRESSdocs, EXPRESSdocs framework for EXPRESS schema documentation — https://www.expresslang.org/expressdocs
3 Terms and definitions
For the purposes of this document, the following terms and definitions apply.
ISO and IEC maintain terminology databases for use in standardization at the following addresses:
ISO Online browsing platform: available at https://www.iso.org/obp
IEC Electropedia: available at https://www.electropedia.org
EXPRESS
data modeling language defined in ISO 10303-11 that provides a formal way to specify data structures and constraints
[SOURCE: ISO 10303-11]
EXPRESS schema
named collection of data specifications in EXPRESS language that defines a set of entities, types, rules, and other elements for a specific domain or application
[SOURCE: ISO 10303-11]
schema manifest
structured document that lists and references multiple EXPRESS schemas and their locations
root path
base directory path from which individual schema paths are resolved
schema listing
entry in a schema manifest that identifies an EXPRESS schema by name and optionally specifies its location
4 Syntax
4.1 General
The EXPRESS Schema Manifest is defined using YAML syntax. This section specifies the structure and components of the manifest file.
4.2 General structure
The manifest file consists of two main components:
An optional root path that serves as the base directory for all schemas
A mandatory schema listings section that enumerates all EXPRESS schemas
The general structure of the manifest file is as follows.
---
path: ~/src/iso-10303-srl <1>
schemas: <2>
# listing of EXPRESS schema names
action_schema: <3>
# `path`: per-schema relative path to the root path
path: schemas/resources/action_schema/action_schema.exp <4>
aic_associative_draughting_elements:
path: schemas/resources/aic_associative_draughting_elements/aic_associative_draughting_elements.exp
# ...
Key
- 1
(optional) Root path
- 2
(mandatory)Schema listings
- 3
(mandatory) Individual EXPRESS schema names
- 4
(optional) Individual schema path
Figure 1
4.3 Components
4.3.1 Root path
The root path is an optional component that specifies the base directory for all schemas listed in the manifest file.
If not set, the current working directory is used as the root path.
The root path can be an absolute path or a path that includes shell expansions like ~ for the home directory.
EXAMPLE
path: ~/src/iso-10303-srl
4.3.2 Schema listings
The schema listings section is a mandatory component that enumerates all EXPRESS schemas included in the manifest.
Each schema is represented by a key-value pair where the key is the name of the EXPRESS schema.
Each schema entry may include an optional path that specifies the location of the schema file relative to the root path.
EXAMPLE
schemas:
action_schema:
path: schemas/resources/action_schema/action_schema.exp
aic_associative_draughting_elements:
path: schemas/resources/aic_associative_draughting_elements/aic_associative_draughting_elements.exp
4.3.3 Individual schema path
The individual schema path is an optional component that specifies the location of a specific schema file.
If not set, the schema is assumed to be located at {root_path}/{schema_name}.exp or {current directory}/{schema_name}.exp if no root path is specified.
The path is relative to the root path if one is specified, or to the current working directory otherwise.
4.4 Usage patterns
4.4.1 When root path is current directory
When the root path is the current directory, individual schema paths must be specified if they differ from the default pattern of {schema_name}.exp.
EXAMPLE
schemas:
action_schema:
path: schemas/resources/action_schema/action_schema.exp
aic_associative_draughting_elements:
path: schemas/resources/aic_associative_draughting_elements/aic_associative_draughting_elements.exp
# ...
4.4.2 When root path is specified
When a root path is specified and schemas are located at {root_path}/{schema_name}.exp, individual schema paths can be omitted or set to nil.
EXAMPLE
path: ~/src/iso-10303-srl
schemas:
action_schema: nil
aic_associative_draughting_elements: nil
# ...
4.4.3 When schema names do not match file names
When schema names do not match their file names, individual schema paths must be specified.
EXAMPLE
---
schemas:
Event_arm:
path: ../../schemas/modules/event/arm.exp
Event_mim:
path: ../../schemas/modules/event/mim.exp
# ...
4.5 Example implementation
An example implementation of the EXPRESS Schema Manifest is provided in the EXPRESSdocs framework.
EXAMPLE The schemas-srl.yml file in the EXPRESSdocs repository provides a complete example of an EXPRESS Schema Manifest.
Bibliography
[1] ISO 10303, Industrial automation systems and integration — Product data representation and exchange
[2] EXPRESSdocs Repository, EXPRESSdocs implementation — https://github.com/expresslang/expressdocs
[3] STEPmod, STEP Modules Library — https://www.stepmod.org
[4] YAML Specification, YAML Specification — https://yaml.org/spec/
[5] ISO/TC 184/SC 4, Industrial data — Technical committee for industrial data