Make Statements on Your Pages

How OP reads your page to record data you send to the server.

Last modified 2026-05-01

Table of content
  1. Servers look for statements about relationships
  2. Statements you can make about your page with OP
  3. Octothorpes
  4. Links
  5. The difference between Links and Hashtags
  6. Special types of links
  7. Processed link types
  8. Labeled subtypes
  9. How to actually record these links
  10. In this section

Servers look for statements about relationships

When a server indexes your page, it looks for relationships to hashtags or other pages made with statements recognizable by OP.

OP only looks at the HTML that comes directly from your server. This means that any octothorpes added with client-side JavaScript will not be verified. The relationships must be present in the HTML that comes from your server to be trusted.

The server saves the relationships to its graph.

The graph is a series of statements about domains, pages, and their relationships.

Statements a page makes about a term are what we call hashtags, tags, or octothorpes. In OP these are called terms

Statements a page makes about another page are links.

Statements about a pages that mutually octothorpe each other are backlinks.

Links can be declared as bookmarks or other subtypes, yet to be defined.

When we just say something is an "octothorpe", that usually means a hashtag that uses OP to connect across sites. In OP, these are called terms to distinguish them from other kinds of octothorped links.

Statements you can make about your page with OP

OP tracks relationships between webpages with statements

If you put the hashtag #hummingbirds on your page, the equivalent statement is

yourpage.com/hummingbirds octothorpes hummingbirds

In the datastore of the OP server, that looks like:

<https://yourpage.com/hummingbirds> octo:octothorpes <https://CURRENT-OP-SERVER.COM/~/hummingbirds>

where CURRENT-OP-SERVER.COM is the server that you're sending data too.

Every OP server has an endpoint for terms that follows this structure:

server-domain.com/~/term

which are what we call "hashtags" or just plain "octothorpes".

Octothorpes

You can "tag" or "hashtag" or just "octothorpe" a page by telling OP that you have linked to a server's endpoint for a term.

You can also octothorpe a regular link to another page. That just means recording that link relationship on an OP server. OP servers then let you query or subscribe to link relationships they record just like hashtags.

So if Site A, B, and C all octothorpe their links to Site D, you can get a list of all sites linking to Site D.

Octothorpe relationships to Terms are treated as hashtags and referred to simply as "octothorpes"

Octothorpe relationships to Pages are Links, which have subtypes such as Bookmarks

links can have types.

backlinks are links that have been endorsed or mutually linked by the page linked to. A link cannot be unilaterally declared as a backlink; the target of the link must either endorse the domain the link is coming from or link back to the same page. When the system determines that to be the case, a backlink record is added.

Labeled subtypes

You can also assign subtypes to a link to categorize them. Subtypes other than backlinks don't have intrinsic meaning, but the following types currently have their own endpoints:

bookmarks

New in v0.6: You can add terms to links using data-octothorpes. See Tags on Links.

Ok, so how does this actually work? What do you put on your page to use OP?

In this section

How to Write Statements — The markup reference: link tags, anchor links, bookmarks, citations, endorsements, and webrings.