Links

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.

Group Variants

Weblinks
https://hyper.media/GROUP_PATH_NAME/DOC_PATH_NAME
Hypermedia Protocol Internal Link
hm://d/DOC_ID?a=g/GROUP_ID/DOC_PATH_NAME&v=VERSION_ID&l

Latest from a Merge Variants

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=#
Hypermedia Protocol Internal Link
hm://d/DOC_ID?v=Version_ID
Weblink
https://hyper.media/DOC_PATH_NAME?v=#

Document URLs Published to a Site

Hypermedia Protocol Internal Link
hm://d/DOC_ID?by=g/GROUP_ID/DOC_PATH_NAME&v=VERSION_ID&l

Subgroups

Weblink
http://hyperacademia.org/SUBGROUP_NAME/DOC_PATH_NAME
Hypermedia Protocol Internal Link
hm//d/DOC_ID?a=g/GROUP_ID/DOC_PATH_NAME&v=VERSION_ID&l