Scapius Language Overview
The Scapius Domain-Specific Language (.ea) provides a concise, human-readable, and machine-verifiable syntax to model enterprise architecture aligned with The Open Group ArchiMate standards.
File Format & File Extension
- File extension:
.ea(e.g.applications.ea,business_capabilities.ea) - Encoding: UTF-8 without BOM
Scapius exclusively processes .ea files. Multi-file workspaces are defined simply by organizing .ea files into directories and running the validator on the directory path.
Lexical Rules & Identifiers
-
Identifier Syntax (
snake_case): All entity IDs, workspace IDs, and container names must be in lowercasesnake_case(consisting of lettersa-z, numbers0-9, and underscores_).- ✅
payment_gateway_api - ✅
user_auth_service_v2 - ❌
PaymentGatewayApi(No PascalCase or camelCase) - ❌
payment-gateway(No hyphens) - ❌
payment gateway(No whitespace)
- ✅
-
Display Names: Display names are human-readable strings enclosed in double quotes:
system order_mgmt "Order Management & Fulfillment System" { ... } -
Comments: Line comments begin with
#or//:# This is a comment// This is also a comment/* Block comments are also supported */
Structural Hierarchy & Containers
Scapius organizes elements into logical containers:
1. workspace
The root container representing a full architectural scope.
workspace <workspace_id> "<Workspace Name>" {
# Child layers, groups, entities, and styles
}
2. layer
Used to delineate standard architectural layers (e.g., Business, Application, Technology, Security & Governance).
layer "<Layer Name>" {
# Entities belonging to this layer
}
3. group
Logical grouping within a layer or globally across bounded domains.
group "<Group Name>" {
# Entities belonging to this domain
}
Scope & ID Uniqueness
- All entity IDs within a workspace must be globally unique, regardless of which file or layer they are defined in.
- Relationships can reference any entity by its global ID across layers and files.
Next Steps
- Language Syntax: Explore the detailed declaration syntax for entities, properties, and relationships.
- Entity Reference: Learn about each entity type and its ArchiMate alignment.
- Style Rules: Separate visual styling from business models using
stylesblocks.