Address the change of Firefish's AP extension URI
What does this PR do? (Please give us a brief description of what this PR does.)
Update the URI of Firefish's AP extension to https://firefish.dev/ns#
ref: https://info.firefish.dev/notes/9s1n2xtnr1zdkmzh
Contribution Guidelines By submitting this merge request, you agree to follow our Contribution Guidelines
-
I agree to follow this project's Contribution Guidelines -
I have made sure to test this pull request
Merge request reports
Activity
WTF???
NO!
this is not how any of this works!
namespaces are syntactically URIs, but they can't be changed
a json-ld document that says:
{ "@context": {"firefish":"https://joinfirefish.org/ns#"}, "firefish:thing": "foo" }
and a json-ld document that says:
{ "@context": {"firefish":"https://firefish.dev/ns#"}, "firefish:thing": "foo" }
are completely different documents. They do not encode the same information, and a compliant processor MUST NOT treat them the same way.
That linked note says absolutely nothing about changing the LD namespace URI.
If the Firefish devs want to change that, every consumer that correctly implements JSON-LD will break (of course, since most Fedi software does not implement JSON-LD correctly, they'll probably carry on working by accident, just as they work by accident now)
This change must not be merged.
@naskya apologies for the… forceful tone of my reaction
I thank you for taking the time to propose a change that you believed correct, and I'm available to explain in more detail why it is not actually something that should happen.
I'm closing this MR, but please don't be discouraged from sending more improvements!
oh, dammit, firefish has been sending documents with the changed IRI for a month?
For extra confirmation, I've used https://tools.w3cub.com/jsonld-to-expanded to convert the "compact representation" that we normally send over the network, to the "expanded representation" that compliant processors should actually be using.
{ "@context": { "firefish": "https://joinfirefish.org/ns#", "speakAsCat": "firefish:speakAsCat" }, "speakAsCat": true, }
expands to:
{ "https://joinfirefish.org/ns#speakAsCat": [ { "@value": true } ] }
but:
{ "@context": { "firefish": "https://firefish.dev/ns#", "speakAsCat": "firefish:speakAsCat" }, "speakAsCat": true, }
expands to:
{ "https://firefish.dev/ns#speakAsCat": [ { "@value": true } ] }
which is not the same thing. A Fedi instance that receives a document with the "new" IRI mapping must not interpret the attributes (in this example,
speakAsCat
), but must ignore them, because they're completely different. Changing the IRI is the same as changing the name!speakAsCat
with the new IRI might as well be writtenhtoedoeuoed
, because it has no relation whatsoever with the old one.Firefish devs, @naskya, please revert the change in your code! You are relying on a set of widespread bugs and shortcomings in AP/AS consumers, and by making this change you are making it harder for everyone to switch to more correct implementations.
added federation label