First edition

Date: 2024-05-21

ELF

EXPRESS schema manifest specification


Don’t panic, EXPRESS.



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:

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:

  1. An optional root path that serves as the base directory for all schemas

  2. 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