This is very interesting initiative. We have ourselves interest in the following questions, including patterns for (but not limited to):
- representing lists (more generally, representing ordered quantities)
- reactive processing (read: TRS & MQTT)
- distributed consistency (read: concurrently processing multiple TRS logs from OSLC servers that link to each other, esp. when TRS change events come via MQTT, not when we poll)
We have an idea of possible patterns but there is no “best” one. We might try to contribute some of them.
I read the description of the Developer-Tester Proxy Pattern (I would call it a proxy resource pattern) pattern and it sounds sane, but lacks more strictly defined semantics: is the proxy resource read-only? If not, how to deal with concurrent updates – does the proxy resource work as a slave, treating the original resource as a single source of truth?
There is a similar pattern Proxy URIs for linking to resources that are not RDF resources per se (e.g. JPEG images). Same idea, you create a proxy resource with all RDF properties and a link to the original resource.
Suggestion no. 1: add patterns via pull requests that we can comment on, so that my comment above can be added there.
Suggestion no. 2: provide machine-readable descriptions of patterns. I stumbled across http://www.ottr.xyz/ recently, that might be of interest to you.
Suggestion no. 3: keep the description and motivation apart. I would reduce the description accordingly to just state that a In order to maintain references to a Resource exposed by a Service a copy of the resource is kept (Proxy Resource) in the Remote Service. Resources local to the Remote Services can link to the Proxy Resource, which is semantically equivalent to linking to an original Resource. A Proxy Resource maintains a link to the original Resource.
Finally, we are interested to clean up the demo OSLC servers in Lyo and this might be a good opportunity to join forces and make sure that the updated services use most appropriate patterns. What do you say?
Also, two more links: