The “Browse Path” Myth in OPC UA
TL;DR — What You Need to Know
- There is no such thing as a textual OPC UA Browse Path.
- /Objects/Plant1/AreaA/Unit1/Measurement is not part of the OPC UA standard.
- A real BrowsePath is a typed structure, not a string
- Using string paths breaks the OPC UA information model.
In many industrial OPC UA projects, this confusion between real BrowsePath and so-called OPC UA path strings leads to incorrect implementations, poor interoperability, and long-term maintenance issues across systems.
OPC UA Does Not Define Any Browse Path
Let’s be explicit.
OPC UA does not define any of the following:
- OPC UA Node Path
- OPC UA Full Path
- Absolute Browse Path
- Hierarchical Path
- Textual Path
These are vendor-invented terms.
They are not part of the standard.
They are not interoperable.
They are not reliable.
Treating them as OPC UA concepts is a category error.
What OPC UA BrowsePath Really Is
OPC UA does define something called a BrowsePath.
But it is not what vendors present.
A BrowsePath is:
- a sequence of RelativePathElements
- defined by:
- ReferenceTypeId
- IsInverse
- IncludeSubtypes
- TargetName (QualifiedName)
It is used by the service:
TranslateBrowsePathsToNodeIds
A real BrowsePath is:
- not a string
- not human-readable
- not a filesystem path
It is a typed graph traversal instruction.
Reducing it to a string is model corruption.
Why OPC UA Path Strings Are Wrong
Many tools present OPC UA as a tree:
Objects → Plant → Area → Unit → Measurement
From this, they derive a string:
/Objects/Plant1/AreaA/Unit1/Measurement
This is:
- easy to display
- easy to script
- easy to understand
But it is incorrect.
OPC UA is not a tree.
It is a reference graph.
Why OPC UA Path Strings Break Industrial Systems
It breaks interoperability
A node may have multiple parents or none.
A single path cannot represent that.
It creates false uniqueness
Only NodeIds are guaranteed unique.
String paths are ambiguous and unstable.
It contradicts the information model
OPC UA is based on references and semantics.
Paths assume hierarchy.
This is incompatible.
It introduces vendor lock-in
String-based access makes systems:
- non-portable
- tool-dependent
It destroys maintainability
When models evolve:
- paths break
- scripts fail
- systems degrade
Correct OPC UA Modeling Approach
A correct OPC UA implementation follows these principles:
- Use NodeIds for identification
- Use BrowsePaths for resolution
- Use QualifiedNames properly
- Use TranslateBrowsePathsToNodeIds
- Treat string paths as UI-only
Anything else is non-standard engineering.
What Vendors Should Stop Doing
- exposing string paths as OPC UA concepts
- calling them “Browse Paths”
- using them in APIs
- suggesting they are standard
Call them what they are:
- Display Paths
- Navigation Paths
- UI Paths
The OpenOpcUa Position
At OpenOpcUa, the position is simple:
- no pseudo-standards
- no shortcuts that break the model
- strict compliance with OPC Foundation specifications
In real industrial systems, this requires a proper OPC UA architecture aligned with model-driven principles. This approach is fully implemented in the industrial OPC UA middleware platform developed within OpenOpcUa.
We promote:
- correct use of NodeIds
- correct use of BrowsePaths
- model-driven architecture
- interoperability-first design
This is exactly why OOUAMiddleware is designed as a model-driven OPC UA middleware:
- no string-based navigation
- full NodeSet-based modeling
- runtime graph traversal aligned with the standard
Stop Calling It a Browse Path
The so-called “OPC UA Browse Path” as a string:
- does not exist in the standard
- misrepresents the model
- creates interoperability issues
OPC UA already provides:
- NodeIds for identity
- References for structure
- BrowsePaths for traversal
Everything else is vendor-specific.
OPC UA is a graph-based information model.
Not a filesystem.
The OPC UA specifications published by the OPC Foundation clearly define BrowsePath as a structured concept.
The TranslateBrowsePathsToNodeIds service is defined in OPC UA Part 4.
What is an OPC UA Browse Path?
An OPC UA BrowsePath is a structured sequence of references used to navigate the address space. It is not a string-based path.
Does OPC UA support string paths?
No. OPC UA does not define any textual path like /Objects/Plant1/… These are vendor-specific abstractions
Why are OPC UA string paths problematic?
They break interoperability, create ambiguity, and do not reflect the graph-based nature of the OPC UA information model.
Want to see a correct OPC UA implementation?
→ Explore OOUAMiddleware Architecture
→ Download the ProductionCell demo