Skip to content
Snippets Groups Projects

Address the change of Firefish's AP extension URI

Closed naskya requested to merge (removed):firefish-domain-change into develop

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Ghost User approved this merge request

    approved this merge request

  • Developer

    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.

  • Ghost User unapproved this merge request

    unapproved this merge request

  • Developer

    @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!

  • closed

  • Developer

    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 written htoedoeuoed, 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

Please register or sign in to reply
Loading