Personally, I think at:uri does not convey enough meaning. Since it just sounds like the broad concept of an AtUri, people are likely to assume it means any generic AtUri, rather than look up whether it has stronger semantic.
I’d prefer at:canonical and at:alternate, modeled after the rel attribute:
rel="canonical" => Preferred URL for the current document.
at:canonical => preferred AtUri for this page.
ref="alternate" => Alternate representations of the current document.
at:alternate => Other AtUris this page may represent.
I’m ambivalent about prefixing thing with at:rel:, but I’m not strongly opposed. I think some allowance for namespacing is good in general. For example, I could see myself prototyping with e.g. at:com.fujocoded:my-cool-idea…even if it is a bit of a mouthful.
The semantic could be:
at:[name] => something there’s some agreement on, honor system
at:[namespace]:[name] => experimentation, or something based on an existing system (e.g. rel or org.schema).
Agreed.
Hard to tell, but that’s also where we can look at the current, concrete cases without trying to solve further out than what we can see now. Eventually, the collection in the AtUri does provide further meaning, so you can do a lot even if we start with a simple at:alternate.
at:uri is not enough to imply at:author: presence of the entry in a PDS does not mean the authorship is with the PDS’s owner. This is going to quickly become common with communities, but even now publications can have different authors that publish the content in the publication’s PDS. Sometimes there’s even multiple authors.
Getting concrete
Since we have some examples of what caused issues, I would start with a couple at:[name]s that match those needs.
On standard.site I see these two:
<link
rel="site.standard.publication"
href="at://did:plc:abc123/site.standard.publication/rkey"
/>
<link
rel="site.standard.document"
href="at://did:plc:xyz789/site.standard.document/rkey"
/>
And I also I have a concrete need for a way to represent events, and the people associated with a page.
Which means my concrete choices would be at:canonical, at:alternate, at:author, at:me.
This would allow for:
Publication main page
<meta property="at:canonical" content="at://did:plc:abc123/site.standard.publication/rkey" />
Article page
<meta property="at:canonical" content="at://did:plc:xyz789/site.standard.document/rkey" />
<meta property="at:alternate" content="at://did:plc:abc123/site.standard.publication/rkey" />
<meta property="at:author" content="at://did:plc:author" />
Event page
<meta property="at:canonical" content="at://did:plc:xyz789/community.lexicon.event/rkey" />
Personal site
<meta property="at:me" content="at://did:plc:my-did" />
or even
<meta property="at:me" content="at://did:plc:my-did/com.atprotofans.profile/self" />
which also indicates my favorite profile to display me as.
Extra notes
As a last thing, we could encourage people to do:
<meta property="..." data-at-type="record" data-at-collection="site.standard.publication" content="at://did:plc:abc123/site.standard.publication/rkey" />
So that people who requested that this info can be surfaced more easily, can have a way not to parse the whole thing. However, we should still consider “content” as the ultimate source of truth, and this as a convenience.
In the meantime, to give people space to experiment, at:[namespace]:[name] should also be considered valid by any tooling built around this.