Steve on Reference Properties

Great discussion (“EPR’s, RefP’s, and MSDN2”) from Steve on Reference Properties.

I get the feeling that Steve is forgetting the opaqueness of RefProps and RefParams. It’s not the case that one could just safely put any value in the <version> element and create a new EPR that is useable. The consumer of an EPR should not infer any semantics about what’s in the Reference Properties; only the service knows. The Address + Reference Properties elements of an EPR have to be treated as a pair that doesn’t change and uniquely identifies a resource. That has been the argument of the Web people. Why separate the identity of a resource into two parts (Address and ReferenceProperties)?

I personally prefer to treat an EPR as a reference to a WS and convey any information related to my application logic (e.g. “I want to access the particular version of an MSDN2 page”) in the body of the message. Then, I am talking to a service about a resource and I don’t seem to be talking directly to a resource. This avoids coupling resource identity semantics with the address of a service.

Also, I prefer to name resources with non application/transport-specific URIs. In the MSDN case, a great choice was made to give a GUID to each page created that never changes. A new version just gets another GUID and the page gets related to the previous one through other means. If one wanted, they could establish an ftp connection to msdn and get the “b8a5e1sa” topic.

This is very much according to what I’ve been advocating. So, your last example looks great to me with the caveat that I would have used a URN as an identifier for the resource. LSIDs are a great example of what I am talking about.

Recent Posts

The Beginning of CVOYA

There’s a unique energy that comes with starting something new — a blend of excitement,…

1 month ago

Enhancements in Graph Model: Dynamic Entities & Full-Text Search

As I continued work on BrainExpanded and its MCP service, I came to realize that…

4 months ago

GraphModel: A .NET Abstraction for Graphs

Just over a month ago, I published "Playing with graphs and Neo4j". Back then, it…

5 months ago

Playing with graphs and neo4j

After my initial implementation of some BrainExpanded-related ideas on top of dgraph using its GraphQL…

6 months ago

A Graph Model DSL

Say hello to the Graph Model Domain Specific Language (GMDSL), created with the help of…

7 months ago

BrainExpanded – Web app and Data Sources

As I wrote in previous posts, the manual recording of memories for BrainExpanded is just…

7 months ago