Managing data described by EXPRESS schemas requires an understanding of how schemas, data populations, and software tools interact. This module introduces the key concepts behind EXPRESS data management — how schemas are compiled, how data is stored and organized, and what operations can be performed on EXPRESS-based data.
The Data Management Challenge
An EXPRESS schema defines the structure and constraints of a data model, but the schema itself is just a specification. To work with actual data — creating instances, querying populations, validating constraints, exchanging files — you need software infrastructure that understands EXPRESS.
The core challenges of EXPRESS data management are:
Schema compilation — translating an EXPRESS schema into an internal representation that software can work with
Data storage — organizing populations of entity instances so they can be efficiently created, read, updated, and deleted
Validation — checking that a population satisfies all constraints defined in the schema (WHERE rules, global rules, uniqueness constraints)
Data exchange — importing and exporting data in standard formats (Part 21, Part 28)
Query and transformation — finding specific data within a population and transforming data between schemas
Key Concepts
Schema Compilation
Before any data operations can take place, an EXPRESS schema must be compiled. Compilation checks the schema for syntactic and semantic correctness and produces an internal representation — often called a dictionary or schema definition — that serves as the blueprint for all subsequent data operations.
The compilation process verifies:
All identifier references resolve correctly
Type declarations are consistent
Inheritance hierarchies are well-formed
Interface declarations (USE FROM, REFERENCE FROM) are valid
All constraints are syntactically correct
Once compiled, the schema definition can be used to create data populations that conform to its structure.
Data Populations and Repositories
EXPRESS data management systems typically organize data in a hierarchical structure:
Repository — a named container that holds one or more models and their associated schema definitions
Model — a collection of entity instances that conform to a specific EXPRESS schema
Instance — a single entity occurrence with concrete attribute values
A repository may contain models based on different schemas, and a model belongs to exactly one schema. This organization allows multiple related data sets to be managed together while maintaining clear schema boundaries.
Transactions
Data modifications in an EXPRESS data management system are typically performed within transactions. A transaction groups a set of operations into an atomic unit — either all operations succeed, or none of them take effect.
Transactions are essential for:
Consistency — ensuring that validation rules are checked against complete, self-consistent data sets
Recovery — providing the ability to roll back changes if an error occurs
Concurrency — managing simultaneous access by multiple users or applications
Most systems support nested transactions, allowing complex operations to be composed from simpler ones.
Data Access Patterns
Applications interact with EXPRESS data through well-defined access patterns:
Open a session — establish a connection to the data management system
Open a repository — access the container holding the relevant models
Open or create a model — access the specific data population
Manipulate instances — create, read, update, or delete entity instances
Validate — check the population against schema-defined constraints
Close — release resources and commit or rollback changes
This pattern is formalized in the ISO 10303-22 Standard Data Access Interface (SDAI), which defines a standard API for EXPRESS data access across multiple programming languages.
Schema Types
An EXPRESS data management system typically works with several types of schemas:
EXPRESS schema — the base data model, compiled from an EXPRESS source file
Mapping schema — an EXPRESS-X schema that defines how to transform data from one EXPRESS schema to another
Query schema — defines business objects and query operations on an EXPRESS schema
Rule schema — adds validation rules and constraints to an EXPRESS schema
Each of these schema types serves a distinct purpose. The EXPRESS schema defines the data structure, mapping schemas define transformations, query schemas define retrieval operations, and rule schemas define additional validation logic. All are compiled by appropriate compilers and stored alongside the EXPRESS schema definition.
Instance Management
Entity instances are the core data objects in an EXPRESS data management system. Each instance:
Belongs to exactly one entity type defined in the schema
Has attribute values conforming to the entity’s attribute declarations
Has a unique identifier within its model
May participate in subtype/supertype relationships
Operations on instances include:
Creation — instantiate a new entity with initial attribute values
Reading — retrieve attribute values from an existing instance
Updating — modify attribute values of an existing instance
Deletion — remove an instance from its model
Classification — determine the entity type, check subtype/supertype relationships
Attribute values can be of any EXPRESS data type: simple types (INTEGER, REAL, STRING, etc.), named types (entity references, defined types), aggregations (ARRAY, LIST, SET, BAG), or select types.
Data Exchange
EXPRESS data management systems support data exchange through standardized file formats:
ISO 10303-21 (STEP Physical File) — a clear-text encoding of EXPRESS instance data, widely used for data exchange between organizations
ISO 10303-28 (XML representation) — an XML encoding of EXPRESS data, useful for web-based applications and integration with XML-based systems
These formats are described in detail in the dedicated modules on Part 21 and Part 28. The key point is that any compliant EXPRESS data management system should be able to import and export data in these formats, ensuring interoperability between different implementations.
Validation
Validation is a critical capability of EXPRESS data management. It involves checking that a population of instances satisfies all constraints defined in the schema:
WHERE rules — local constraints on individual entity instances
Global rules — constraints that span multiple instances
Uniqueness constraints — ensuring no two instances share the same values for specified attributes
Inverse attribute consistency — verifying that bidirectional relationships are correctly maintained
Validation can be triggered at various levels: on individual instances, on all instances of a particular entity type, or across an entire model. The results are typically reported as a list of violations, identifying which instances failed which constraints.
The Standard Data Access Interface (SDAI)
ISO 10303-22 defines the Standard Data Access Interface (SDAI), a standard API for accessing EXPRESS data. SDAI provides a language-independent model for data access, with bindings defined for several programming languages including C, C++, Java, and others.
SDAI concepts include:
Session — the top-level handle for all SDAI operations
Repository — a container for models
Model — a collection of instances conforming to a schema
Schema definition — the compiled representation of an EXPRESS schema
SDAI is covered in more detail in the modules on data access and programming with SDAI.
Tool Considerations
When selecting tools for EXPRESS data management, consider the following capabilities:
EXPRESS compiler — validates schemas and produces internal representations
EXPRESS-G visualization — displays schemas graphically for documentation and analysis
Data browser/editor — allows interactive viewing and editing of instance populations
File import/export — supports Part 21 and Part 28 formats
Validation engine — checks populations against all schema constraints
Query interface — allows searching and filtering instances based on criteria
API bindings — provides programmatic access in your preferred programming language
Several commercial and open-source tools provide these capabilities, with varying levels of EXPRESS feature support.