Skip to content

Describing context in hypermedia systems

Today in the mind of me... Is rel-tag enough when it would need to stack encodings, to get any meaningful technical specification in?

I think it is not, and I'm not sure others have open specifications designed to communicate this information which is a shame

Without context, information can be benign/useless, or harmful. If you leave the house on a day dressed for the beech and it's sub-zero, you should change. Books, Training, Blogs and technology sites can be devoid of this information. The web is getting better at this, as are pre/non-web systems.

Historical need for context

I've been quite lucky over the past 20 years to have worked with numerous systems designed to solve this

  • bundling [external] vendor and [internal] code together
  • bundling [internal] code, but omitting vendors, with a named reference
  • bundling [internal] code, but omitting vendors, with a structured reference
  • Package & Lock-file approach to contain structured references to a revision (ignoring bundling)
  • Package file containing specific project and revision
  • Undocumented systems

After many years, I think I prefer aspects of several of the above and have come to expect and enforce them, so that I can reason about software. I also prefer commodity solutions to trying to play deity.

Problems with web-address encoding

Separating structured data, to convey at a minimum version information can be problematic with URL's

Thankfully strangers on the internet are winning for me, providing specifications such as microformats2 rel-tag

Consider the following

<a href="" rel="tag">WordPress</a>

Is as valueless as a screenshot of the web frontend. It conveys no context to derive meaning of a post outside of WordPress.

Perhaps date could be used to infer context.

WordPress@5.3 might be better, but... Would perhaps fit a URL structure with hierarchy better for software which bundles it's vendor dependencies with it's distribution medium.

WordPress@cad04902d6a162ba8320f82a6c65c7eb58cf9759 may prove too narrow a definition (it's the 5.3.2 git sha hash)

I believe the predicate that the tail-slash should be omitted means that hierarchical tags don't make a great deal of sense

  • Perhaps more details than a specific version-control-system hash would be easier to understand.
  • Perhaps a taxonomy is the wrong place to put this.

If a page had a specific version of WordPress tagged or within markup in an alternative way to provide context. How would the reader discern the difference between the software serving the URL describing it's internal technical setup and the content of the URL describing the context which it relates to?

Of course this has nothing to do with WordPress. It's an illustrative example of a popular project.

As-yet I have no answers for a solution which is a standard not proprietary. When I setup the CODESIGN2 knowledgebase I simply used the project@release format. It was not perfect, but it was workable.