Skip to content

Commit 1bab228

Browse files
committed
Add deployment-linked sampling features clarification note
1 parent d24bfb1 commit 1bab228

1 file changed

Lines changed: 200 additions & 0 deletions

File tree

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Deployment-Linked Sampling Features Clarification (2026-06-08)
2+
3+
| Field | Value |
4+
|---|---|
5+
| **Date** | 2026-06-08 |
6+
| **Author** | Codex |
7+
| **Status** | Clarification Note |
8+
| **Scope** | Distinguishing 1:1 system/deployment modeling from deployment-scoped `samplingFeatures` exposure |
9+
| **Related Reports** | [CSAPI_Deployed_Systems_Design_Pattern](CSAPI_Deployed_Systems_Design_Pattern.md), [CSAPI_Deployment_Modeling_Standards_Conformance](CSAPI_Deployment_Modeling_Standards_Conformance.md), [OSH_Sampling_Features_Implementation_Analysis](OSH_Sampling_Features_Implementation_Analysis.md) |
10+
11+
---
12+
13+
## 1 The Question
14+
15+
An external client/plugin question prompted this clarification:
16+
17+
> If a server already models deployed systems using a 1:1 `System`:`Deployment` pattern, does that mean the server is already "attaching features to deployments"?
18+
19+
The answer is **not necessarily**.
20+
21+
Creating a `Deployment` resource for a `System` and exposing `samplingFeatures` from that `Deployment` are related, but they are **not the same thing**.
22+
23+
---
24+
25+
## 2 The Short Answer
26+
27+
There are three distinct facts a server may or may not expose:
28+
29+
1. A `System` exists.
30+
2. A corresponding `Deployment` exists.
31+
3. The `Deployment` exposes a `samplingFeatures` association.
32+
33+
Many publisher patterns implemented so far focus on **(1) and (2)**.
34+
35+
The question being asked by client developers is often about **(3)**:
36+
37+
> Can a client start from the deployment and discover the associated sampling features directly from the deployment side of the resource graph?
38+
39+
That is a separate capability from merely creating a deployment record.
40+
41+
---
42+
43+
## 3 Why the Confusion Happens
44+
45+
The existing OS4CSAPI design work intentionally treats `Deployment` as the operational face of a `System` in many publisher patterns:
46+
47+
- one operationally meaningful system
48+
- one corresponding deployment
49+
- often a 1:1 relationship for user-facing navigation
50+
51+
This is the pattern described in [CSAPI_Deployed_Systems_Design_Pattern](CSAPI_Deployed_Systems_Design_Pattern.md).
52+
53+
However, **a 1:1 deployment pattern does not automatically imply that all system associations are re-exposed from the deployment**.
54+
55+
In other words:
56+
57+
- `System A` may expose `/systems/{id}/samplingFeatures`
58+
- `Deployment A` may exist as the operational wrapper for `System A`
59+
- but `Deployment A` may still fail to expose `/deployments/{id}/samplingFeatures`
60+
61+
The deployment exists, but deployment-scoped discovery is still incomplete.
62+
63+
---
64+
65+
## 4 Standards Basis
66+
67+
OGC API - Connected Systems Part 1 treats `Deployment` as a first-class feature resource with its own associations.
68+
69+
Two standards facts matter here:
70+
71+
### 4.1 Deployments can carry `samplingFeatures`
72+
73+
Part 1 defines `samplingFeatures` as a valid `Deployment` association.
74+
75+
In plain terms, a deployment can expose:
76+
77+
- the systems deployed during the deployment
78+
- the features of interest observed/controlled during the deployment
79+
- the sampling features associated to systems deployed during the deployment
80+
81+
This means Joana's request is **standards-aligned**, not a plugin-specific invention.
82+
83+
### 4.2 Deployment location is not the same thing as sampling features
84+
85+
Part 1 also explicitly distinguishes:
86+
87+
- deployment `location`
88+
- sampling-feature geometry
89+
90+
This distinction is important. A deployment can have a place/time context without that being equivalent to the geometry of the sampling footprint, sensor point, coverage polygon, or observed area.
91+
92+
So "we already have deployment geometry" is **not** the same as "we already publish deployment-linked sampling features."
93+
94+
---
95+
96+
## 5 What the 1:1 Pattern Gives You, and What It Does Not
97+
98+
### 5.1 What it gives you
99+
100+
A 1:1 `System`:`Deployment` pattern can provide:
101+
102+
- operational naming
103+
- valid-time scoping
104+
- deployment hierarchy
105+
- deployment-scoped datastream or observation queries
106+
- continuity of operational role even when hardware changes
107+
108+
These are the strengths already documented in the deployment design reports.
109+
110+
### 5.2 What it does not give you automatically
111+
112+
It does **not** automatically guarantee:
113+
114+
- a `samplingFeatures` link in the deployment representation
115+
- a working `/deployments/{id}/samplingFeatures` traversal
116+
- deployment-scoped aggregation of sampling features across subdeployments
117+
- client discoverability of sampling features when the user navigates from deployments first
118+
119+
Those behaviors must be **explicitly published**.
120+
121+
---
122+
123+
## 6 What a Client Developer Usually Means by "Attach Features Also to Deployments"
124+
125+
When a client developer asks for features "attached to deployments," they usually mean one or more of the following:
126+
127+
1. The deployment representation contains a discoverable `samplingFeatures` association link.
128+
2. The nested route `/deployments/{id}/samplingFeatures` exists and returns useful results.
129+
3. A deployment-centered workflow can retrieve the same relevant feature geometry that is otherwise only discoverable from the system side.
130+
131+
This is mainly a **resource-graph discoverability** request.
132+
133+
It is not necessarily a demand for a different underlying data model.
134+
135+
---
136+
137+
## 7 Practical Interpretation for OS4CSAPI Publishers
138+
139+
If a publisher uses a 1:1 deployment pattern, then deployment-linked sampling features are often a **reasonable next publishing enhancement**, because:
140+
141+
- the system-side association may already exist
142+
- the deployment is already treated as the operational face of the system
143+
- deployment-first client workflows become more complete and intuitive
144+
145+
In many such cases, publishing deployment-linked sampling features is closer to:
146+
147+
- exposing an already meaningful association from another traversal point
148+
149+
than to:
150+
151+
- inventing a wholly new modeling concept
152+
153+
That said, it is still an implementation choice. The Part 1 association is useful and standards-grounded, but it is not the same thing as saying every deployment must always expose it in all publishers.
154+
155+
---
156+
157+
## 8 Recommended Mental Model
158+
159+
Use this distinction:
160+
161+
### A. Modeling layer
162+
163+
> Do we create deployments for deployed systems?
164+
165+
This is the 1:1 deployed-system pattern.
166+
167+
### B. Association layer
168+
169+
> Does a deployment explicitly publish `samplingFeatures` as an associated resource set?
170+
171+
This is the deployment-linked sampling-features question.
172+
173+
### C. Client discoverability layer
174+
175+
> Can a client starting from a deployment discover the relevant feature geometry without having to pivot manually to systems first?
176+
177+
This is usually what plugin authors care about most.
178+
179+
---
180+
181+
## 9 Recommended Response Framing
182+
183+
If asked whether "we already do this," the best accurate response is:
184+
185+
> We often already model deployed systems with a 1:1 `System`:`Deployment` pattern, but that is not automatically the same as publishing deployment-linked `samplingFeatures`. The real question is whether the deployment resource itself exposes a discoverable `samplingFeatures` association or traversal.
186+
187+
That framing preserves the value of the existing deployed-system pattern while correctly identifying the missing capability.
188+
189+
---
190+
191+
## 10 Bottom Line
192+
193+
The likely misunderstanding is:
194+
195+
- **internal assumption:** "we already create deployments, so deployments already have the same feature relationships"
196+
- **client expectation:** "if deployments are first-class operational resources, I should be able to discover sampling features from them directly"
197+
198+
Those are not equivalent.
199+
200+
A server can already be doing good deployment modeling and still have room to improve deployment-scoped sampling-feature discoverability.

0 commit comments

Comments
 (0)