i can’t help but feel we’ve not really solved the issue while going ahead and formalizing it. the problem as i see it is that mastodon et al’s usage of alsoKnownAs
follows nightpool’s “concept 2” (different actors for the same logical person), whereas the DID usage follows “concept 1” (different representations for this actor)
if the intent is indeed “concept 2”, then a rel-me approach would have been better. we might mark up an attachment Link on the actor like so:
attachment:
- type: Link
href: <the other actor>
rel: ["me"]
and then check for bidirectionality. or in mastodon’s Move handler’s case, check that the target
(migrating to) links rel-me back to the object
(migrating from).
indeed, the DID notion of “also known as” seems to differ from the existing activitypub usage of it. it may instead be thought of not as a “rel-me” (concept 2, i control both actors) but more like the XRD/JRD aliases
property (concept 1, both identifiers represent the same subject). in fact, is this not literally what the definition ended up being?
This relationship is a statement that the subject of this identifier is also identified by one or more other identifiers.
in the interest of opening the way / paving the path toward DID and nomadic identity and other cool and interesting things, it seems like this might be worth revisiting. given that as:alsoKnownAs
got imported into the DID core with the above definition, we probably need to decide whether we are going to defer to this definition, or if we are going to defer to mastodon’s existing usage of the term.
i see a few possible approaches:
-
defer
alsoKnownAs
to mastodon’s usage (concept 2, controlling the listed actor). define a new termaliases
(pending name) to represent concept 1, different identifiers for the same subject. we might also definesubject
or some similar term to identify a “canonical” identifier? -
defer
alsoKnownAs
to the DID core definition (concept 1, different identifiers for the same subject). implement a transitional period in which mastodon and other projects switch to a different mechanism more along the lines of rel-me. eventually deprecate the use ofalsoKnownAs
for determining rel-me.
EDIT: some possibly related “prior art”?
owl:sameAs
is described as identifying two individuals as the same (not to be confused with owl:equivalentClass
, which declares two classes to represent the same concept) OWL Web Ontology Language Reference