Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions metaverse-specs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ Pick Part 1 when you already have an artist-authored USD asset and want to drive
| Question | *What does this camera see, and what did it conclude?* | *How do I tell this robot what to do?* | *Which model produced this answer, and can I audit it?* |
| The gap | OPC 40100-1 leaves result content undefined; OPC 40010-1 has no vision types at all | OPC 40010-1 describes robot topology and defines **no motion verbs** | OPC UA has no way to say what an AI model *is*, where it runs, or what it was trained on |
| Namespace | `http://opcfoundation.org/UA/Vision/` | `http://opcfoundation.org/UA/RobotIntent/` | `http://opcfoundation.org/UA/AI/` |
| Release | 0.1.0 | 0.1.0 | 0.1.0 |
| Release | 0.1.0 | 0.1.0 | 0.2.0 |

All three are self-contained on base OPC UA — none takes a companion specification as a `RequiredModel`.
Vision and Robot Intent are self-contained on base OPC UA. AI Deployment additionally requires *OPC UA — xRegistry*, because its model catalogue is a domain extension of that abstract registry rather than a private invention — a model catalogue **is** a registry, and defining a second one would leave two incompatible ways to describe the same artefact.

**They compose without coupling.** Vision's `InferencePipelineType.Deployment` is a plain `NodeId`, so a Server can publish cameras and verdicts with no AI model at all; where it does describe one, the chain *result → deployment → model → digest* is available end to end. Vision and Robot Intent share a frame vocabulary with identical literals and numbering. In every case the join is a **facet precondition**, never a `RequiredModel` — which is what lets a domain adopt one model without inheriting the others.

Expand All @@ -41,7 +41,7 @@ All three are self-contained on base OPC UA — none takes a companion specifica
- <!-- release-spec-link:YG9wZW51c2Qtc2NlbmUvYCDigJQgUGFydCAyIHNwZWNpZmljYXRpb24sIE5vZGVTZXQsIENTViwgYW5kIG1hdGVyaWFsaXplZCBleGFtcGxlIG92ZXJsYXlzLg== -->*Under OPC Foundation review — moved to [OPCF-Members/spec-drafts](https://github.com/OPCF-Members/spec-drafts); OPC Foundation members can [request access](https://github.com/OPCF-Members/Help).*<!-- /release-spec-link -->
- `vision/` — **OPC UA — Vision**: sensors, the media they emit, the AI that interprets them, the results they produce, and the feedback path back in. Standalone on base OPC UA, with worked addenda for `robotics/` and `machine-vision/`.
- `robot-intent/` — **OPC UA — Robot Intent**: task-level verbs for commanding a robot, with a Part 10 lifecycle. OPC 40010-1 describes robot topology and defines no motion verbs; this supplies the verbs and nothing else. Standalone on base OPC UA.
- `ai-deployment/` — **OPC UA — AI Deployment and Learning**: the model nameplate, the dataset it was trained on, the deployment that executes it and the learning job that produces the next version. Deliberately **domain-neutral** — it names no camera, no robot and no sensor — so any domain can build on it. Aligned member-for-member with IDTA 02058/02059/02060.
- `ai-deployment/` — **OPC UA — AI Deployment and Learning**: what a model is, how to call it, how to call one hosted somewhere else, and how to get one from a catalogue onto the machine. Deliberately **domain-neutral** — it names no camera, no robot and no sensor — so any domain can build on it. The invocation surface does not change with where inference runs; what changes is the trust boundary, and clauses 8 and 10 are about saying so out loud: what happens when the link drops, and whether calling a model sends plant data off site.
- `extras/` — everything secondary to standardization, mirroring the folders above:
- `openusd-binding/tools/` — the model generator and validator; `examples/` — the pumps and robotics USD assets, binding descriptors, writers, renderers and end-to-end guides.
- `openusd-scene/tools/` — the model generator, the `.usd` ↔ NodeSet converters, and the round-trip checker.
Expand Down
596 changes: 556 additions & 40 deletions metaverse-specs/ai-deployment/OPC-UA-AI-Deployment.md

Large diffs are not rendered by default.

143 changes: 141 additions & 2 deletions metaverse-specs/ai-deployment/Opc.Ua.AiDeployment.NodeIds.csv
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,42 @@ DatasetSourceEnum,3004,DataType
DatasetSourceEnum_EnumStrings,3904,Variable
LearningJobStateEnum,3005,DataType
LearningJobStateEnum_EnumStrings,3905,Variable
FinishReasonEnum,3006,DataType
FinishReasonEnum_EnumStrings,3906,Variable
ApiDialectEnum,3007,DataType
ApiDialectEnum_EnumStrings,3907,Variable
AuthenticationKindEnum,3008,DataType
AuthenticationKindEnum_EnumStrings,3908,Variable
FallbackPolicyEnum,3009,DataType
FallbackPolicyEnum_EnumStrings,3909,Variable
VersionBindingEnum,3010,DataType
VersionBindingEnum_EnumStrings,3910,Variable
ImportModeEnum,3011,DataType
ImportModeEnum_EnumStrings,3911,Variable
SafetySeverityEnum,3012,DataType
SafetySeverityEnum_EnumStrings,3912,Variable
ReachabilityEnum,3013,DataType
ReachabilityEnum_EnumStrings,3913,Variable
TensorSignatureDataType,3050,DataType
TensorSignatureDataType_Encoding_DefaultBinary,5001,Object
ModelReferenceDataType,3051,DataType
ModelReferenceDataType_Encoding_DefaultBinary,5002,Object
UsageDataType,3052,DataType
UsageDataType_Encoding_DefaultBinary,5003,Object
CapabilityDataType,3053,DataType
CapabilityDataType_Encoding_DefaultBinary,5004,Object
SafetyAssessmentDataType,3054,DataType
SafetyAssessmentDataType_Encoding_DefaultBinary,5005,Object
EvaluationMetricDataType,3055,DataType
EvaluationMetricDataType_Encoding_DefaultBinary,5006,Object
RateLimitDataType,3056,DataType
RateLimitDataType_Encoding_DefaultBinary,5007,Object
UsesModel,4001,ReferenceType
TrainedOn,4002,ReferenceType
DerivedFrom,4003,ReferenceType
FallsBackTo,4004,ReferenceType
ImportedFrom,4005,ReferenceType
EvaluatedBy,4006,ReferenceType
AiRootType,1001,ObjectType
AiRootType_Models,6001,Object
AiRootType_Datasets,6002,Object
Expand Down Expand Up @@ -52,18 +84,125 @@ DeploymentType_LatencyBudget,6033,Variable
DeploymentType_BatchSize,6034,Variable
DeploymentType_State,6035,Variable
LearningJobType,1005,ObjectType
LearningJobType_JobId,6036,Variable
LearningJobType_State,6037,Variable
LearningJobType_Dataset,6038,Variable
LearningJobType_BaseModel,6039,Variable
LearningJobType_CandidateModel,6040,Variable
LearningJobType_SamplesCollected,6041,Variable
LearningJobType_LastError,6042,Variable
LearningJobType_StartCollection,6043,Method
LearningJobType_StopCollection,6044,Method
LearningJobType_TriggerTraining,6045,Method
LearningJobType_TriggerTraining_OutputArguments,6046,Variable
LearningJobType_PromoteModel,6047,Method
LearningJobType_PromoteModel_InputArguments,6048,Variable
LearningJobType_PromoteModel_OutputArguments,6049,Variable
AiJobType,1006,ObjectType
AiJobType_JobId,6050,Variable
AiJobType_LastError,6051,Variable
AiJobType_StartedAt,6052,Variable
AiJobType_FinishedAt,6053,Variable
AiJobType_Progress,6054,Variable
AiJobType_RequestedBy,6055,Variable
ModelImportJobType,1007,ObjectType
ModelImportJobType_Source,6056,Variable
ModelImportJobType_ModelReference,6057,Variable
ModelImportJobType_Mode,6058,Variable
ModelImportJobType_TargetDeployment,6059,Variable
ModelImportJobType_ImportedModel,6060,Variable
ModelImportJobType_BytesTransferred,6061,Variable
ModelImportJobType_DigestVerified,6062,Variable
ModelImportJobType_Cancel,6063,Method
InferenceJobType,1008,ObjectType
InferenceJobType_Deployment,6064,Variable
InferenceJobType_RequestPayload,6065,Variable
InferenceJobType_RequestContentType,6066,Variable
InferenceJobType_ResponsePayload,6067,Variable
InferenceJobType_ResponseContentType,6068,Variable
InferenceJobType_ModelUsed,6069,Variable
InferenceJobType_Usage,6070,Variable
InferenceJobType_FinishReason,6071,Variable
InferenceJobType_SafetyAssessment,6072,Variable
ModelSourceType,1009,ObjectType
ModelSourceType_SourceId,6073,Variable
ModelSourceType_EndpointUri,6074,Variable
ModelSourceType_ApiDialect,6075,Variable
ModelSourceType_EndpointDescriptionUri,6076,Variable
ModelSourceType_AuthenticationKind,6077,Variable
ModelSourceType_CredentialReference,6078,Variable
ModelSourceType_TokenAudience,6079,Variable
ModelSourceType_Reachability,6080,Variable
ModelSourceType_LastSuccessAt,6081,Variable
ModelSourceType_ConsecutiveFailures,6082,Variable
ModelSourceType_RateLimit,6083,Variable
ModelSourceType_Capabilities,6084,Variable
ModelSourceType_TestConnection,6085,Method
ModelSourceType_TestConnection_OutputArguments,6086,Variable
ModelSourceType_ListModels,6087,Method
ModelSourceType_ListModels_InputArguments,6088,Variable
ModelSourceType_ListModels_OutputArguments,6089,Variable
EvaluationRunType,1014,ObjectType
EvaluationRunType_RunId,6090,Variable
EvaluationRunType_EvaluatedModel,6091,Variable
EvaluationRunType_Dataset,6092,Variable
EvaluationRunType_CompletedAt,6093,Variable
EvaluationRunType_Metrics,6094,Variable
EvaluationRunType_Passed,6095,Variable
EvaluationRunType_ReportUri,6096,Variable
ModelCardType,1015,ObjectType
ModelCardType_IntendedUse,6097,Variable
ModelCardType_Limitations,6098,Variable
ModelCardType_OutOfScopeUse,6099,Variable
ModelCardType_License,6100,Variable
ModelCardType_TrainingDataCutoff,6101,Variable
ModelCardType_EthicalConsiderations,6102,Variable
ModelCardType_ContactUri,6103,Variable
ModelRegistryType,1010,ObjectType
ModelPublisherType,1011,ObjectType
AiResourceType,1016,ObjectType
ModelResourceType,1012,ObjectType
ModelResourceType_TaskKind,6107,Variable
ModelResourceType_Framework,6108,Variable
ModelResourceType_Digest,6109,Variable
ModelResourceType_DigestAlgorithm,6110,Variable
ModelResourceType_SizeBytes,6111,Variable
ModelResourceType_Gated,6112,Variable
ModelResourceType_MutableRefs,6113,Variable
DatasetResourceType,1013,ObjectType
DatasetResourceType_SourceKind,6114,Variable
DatasetResourceType_SampleCount,6115,Variable
DatasetResourceType_Digest,6116,Variable
DatasetResourceType_DigestAlgorithm,6117,Variable
DatasetResourceType_SizeBytes,6118,Variable
AiRootType_Sources,6119,Object
AiRootType_Registries,6120,Object
AiRootType_Evaluations,6121,Object
AiRootType_Jobs,6122,Object
ModelType_Card,6123,Object
ModelType_Publisher,6124,Variable
ModelType_ParameterCount,6125,Variable
ModelType_Quantization,6126,Variable
ModelType_SafetyPolicyUri,6127,Variable
DeploymentType_Source,6128,Variable
DeploymentType_VersionBinding,6129,Variable
DeploymentType_BoundRef,6130,Variable
DeploymentType_FallbackPolicy,6131,Variable
DeploymentType_Reachability,6132,Variable
DeploymentType_ConsecutiveFailures,6133,Variable
DeploymentType_LastSuccessAt,6134,Variable
DeploymentType_RateLimit,6135,Variable
DeploymentType_Capabilities,6136,Variable
DeploymentType_DataJurisdiction,6137,Variable
DeploymentType_EgressPermitted,6138,Variable
DeploymentType_RetainsInput,6139,Variable
DeploymentType_EgressPolicyUri,6140,Variable
DeploymentType_Invoke,6141,Method
DeploymentType_Invoke_InputArguments,6142,Variable
DeploymentType_Invoke_OutputArguments,6143,Variable
DeploymentType_InvokeAsync,6144,Method
DeploymentType_InvokeAsync_InputArguments,6145,Variable
DeploymentType_InvokeAsync_OutputArguments,6146,Variable
DeploymentType_GetCapabilities,6147,Method
DeploymentType_GetCapabilities_OutputArguments,6148,Variable
ModelRegistryType_Group,6149,Object
ModelPublisherType_Resource,6150,Object
AiDeployment,7001,Object
Loading
Loading