We have a very nice rel
attribute, which has been part of HTML since the early days, but it is constrained to the three types of link element <link>
, <a>
and <area>
… as if these are the only ways that anything can be related to anything else.
But what if we want to express other kinds of relationship between parts in an unambiguous, machine-readable way?
Consider these relationships (e.g. between datapoints, entries, cells, items or whatever):
- supports/corresponds
- addresses/handles
- contradicts/negates
- is an outlier/special case
- is within/inside (a limit, set or boundary)
- is beyond/outside (a limit, set or boundary)
- is part of
- relates to
- includes
- is (on) a boundary
- matches
- connects to
- leads to
- is correlated with
- comes from
- refers to
- duplicates
- is the same as
- is opposite to
- is similar to
- is singled-out (different from “in focus”, and also from “selected”, because read-only/non-operable)
- filters/reduces
- generalizes/expands
- is congruent with
- is complete
- is incomplete
- is valid/approved
- is “dirty”/unsaved
- may be obsolete
- has new content
- is pronounced as
- is a synonym of
- is an antonym of
- suggests/implies
- is associated with
- is current
This list is not exhaustive. Different problem domains will have their own jargon.
Something like rel
for non-link element types would permit greater semantic richness, which would be good for SEO, accessibility and machine learning - ultimately, it would move us towards the holy grail called the semantic web.
Or… why don’t we open up rel
, and permit it on all element types? We could also expand the range of tokens/values that are permitted in such cases.
Thoughts?