Unified Architecture Model
The Unified Architecture Model (UAM) is the v0.1.0 in-memory representation used by graph rendering, visualization, audits, and policy validation. Its graph is a NetworkX MultiDiGraph, allowing multiple relationships between the same two entities.
Core records
PackageMetadata
Contains package name, version, type, maintainers, license, description, source path, overlay state, health score, and dependency groups.
NodeDefinition
Contains package and language information plus publishers, subscriptions, services, clients, action servers, and action clients. has_dynamic_names marks nodes whose endpoint names could not be fully resolved statically.
CommunicationEndpoint
Each endpoint records:
- name and detected interface type;
- source file and line when available;
- source evidence;
- type source and confidence.
InterfaceDefinition
Represents a workspace .msg, .srv, or .action definition and its fields.
Graph entity kinds
| Kind | ID prefix | Examples |
|---|---|---|
| Package | pkg: | pkg:navigation2 |
| Node | node: | node:navigation2/BtNavigator |
| Topic | topic: | topic:/cmd_vel |
| Service | svc: | svc:/reset |
| Action | action: | action:/navigate |
| Interface | iface: | iface:geometry_msgs/Twist |
Relationships
| Relationship | Meaning |
|---|---|
depends_on | Package dependency |
defined_in | Node belongs to a package |
publishes | Node publishes a topic |
subscribes | Node subscribes to a topic |
provides | Node provides a service or action server |
calls | Node is a service or action client |
uses_interface | Entity references a workspace interface |
Endpoint edges can preserve file, line, evidence, type-source, and confidence metadata.
JSON export
ros2inspector graph full --format json serializes packages, nodes, interfaces, derived communication entities, launch remaps, diagnostics, summary data, and the graph's keyed edges.