Every resource, down to character level, should be addressable in Open Hypermedia. The Link Resolver should always store and sync both Web and Hypermedia Internal links. The Link Resolver lives in the front end. Weblinks should be human-friendly, readable, and shareable.
Links or references can resolve to a regular jump/content link or to an embed/transclusion link. Transclusions bring content from other authors or documents to your document, so the link must include how it will appear in your document. We call these parameters Viewspecs.
Links are drinks.
Dynamic Links
Dynamic Links are calculated links. A link has a target and an origin. When the link sends the user to the target, a dynamic link calculates or computes the final destination. Current calculated links:
Variants
Variants are inferred from the URL hostname or path segments. Variants allow reference to tip versions. We have three different types of Variants:
Latest (From the Owner Author)
The target is an Open Hypermedia resource. It might have a specific version or not; it will traverse the DAG to the document owner's tip in both cases.
If a link doesn't have a fixed version by default, the resolver will resolve it to the latest version.
Hypermedia Protocol Internal Link
hm://d/DOC_ID?v=VERSION_ID&l
Weblink
https://hyper.media/DOC_PATH_NAME
Latest from an Author
The target is an Open Hypermedia resource. It might have a specific version or not; in both cases, it will traverse the DAG to the document author's tip.
Author Variants
Weblinks
https://hyper.media/USER_PATH_NAME/DOC_PATH_NAME
Hypermedia Protocol Internal Link
hm://d/DOC_ID?a=ACCOUNT_ID
Latest from a Group
The target is an Open Hypermedia resource. It might have a specific version or not; it will traverse the DAG to the document Group's tip in both cases.
The target is an Open Hypermedia resource. It might have a specific version or not; in both cases, it will traverse the DAG to the document merged set of variants tip.
Merged Variants
Explicit Variants
Explicitly Created Variants, which require creating a Name and ID. The ID can be as simple as 1, 2, 3, ...
Basic URL schema
The Hypermedia Protocol wants to complete the web with a better linking system. Users must have a Web Gateway or a Site to publish their documents.
Hypermedia Protocol Internal Link
hm://d/DOC_ID
Weblink without a Site
https://hyper.media/DOC_PATH_NAME
Weblink with a Site
https://gabo.es/DOC_PATH_NAME
Static Versions
Specific versions are addressable by adding a query parameter: ?v=VERSION_ID.
The Version_ID is not a Human-friendly notation. To refer to a concrete version with a Weblink, we will count the version number: ?v=#