CPub as a general semantic ActivityPub server is using content-addressable RDF with ERIS.
Object’s id
should be de-referencable URI. There is no problem with loading a content using HTTP for URLs. However URNs require some another way for it.
Any existing ActivityPub client will be surprised to see something like this:
{
"@context": "https://www.w3.org/ns/activitystreams#",
"id": "urn:erisx2:AAADAF4BGFGNTYG65ZX3JW7A75VBCMRWN7B2WGIQ7PAQGBHOKYGMRESC2QZVSBDYW5P45R6FRRPBZYGZ5H6XTWSNR6HEXKOD735UG3B7IQ",
"object": "urn:erisx2:AAAFVNIJDY22FZJZBL2LEWM7XR6P7GHUJ52NWP2E4EBR4O2LSBAOSW2YHA5DA5726X53KPABXYYO5ZRWLIOOLTEXNPE6FIBQW23LDEEMEM",
"to": "local:rustra",
"type": "Create"
}
For that reason we need a mechanism to resolve URNs to URLs / resources.
One of the proposal could be an agreement about exact endpoints similar to /.well-known
. RFC2169 describes a trivial convention for using HTTP in URN resolution.
The general approach used to encode resolution service requests is quite simple:
GET /uri-res/<service>?<uri> HTTP/1.0
Examples of services:
- N2L (URN to URL);
- N2Ls (URN to URLs);
- N2R (URN to Resource);
- N2Rs (URN to Resources).
Please share your opinion according to RFC2169 and ideas about any possible ways of URN resolution.