FEP-2e40: The FEP Vocabulary Extension Process

After taking another look at how the feature is written, I agree it needs a rework. Not exactly sure where it needs to end up. The current format is also lacking the ability to define something like MultiKey did:

{
  "@context": {
    "id": "@id",
    "type": "@type",
    "@protected": true,
    "Multikey": {
      "@id": "https://w3id.org/security#Multikey",
      "@context": {
        "@protected": true,
        "id": "@id",
        "type": "@type",
        "controller": {
          "@id": "https://w3id.org/security#controller",
          "@type": "@id"
        },
        "revoked": {
          "@id": "https://w3id.org/security#revoked",
          "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
        },
        "publicKeyMultibase": {
          "@id": "https://w3id.org/security#publicKeyMultibase",
          "@type": "https://w3id.org/security#multibase"
        },
        "secretKeyMultibase": {
          "@id": "https://w3id.org/security#secretKeyMultibase",
          "@type": "https://w3id.org/security#multibase"
        }
      }
    }
  }
}

This would lead to some level of type safety being enforced through json-ld. This is certainly not useful for something that varies a lot, e.g. a Note, but I think is quite appropriate for cryptographic material.

:100: I think these are both really good points. I think the current version of FEP-2e40 is too over engineered. I completely ignored that having other processes to create vocabularies might be a possibility when writing it.

1 Like

Iā€™ve reworked the file format a bit, the current result can be seen at

In order to test it, I added the terms from the security vocabulary commonly used to it, see here and can say that the tests work to find mistakes. At least the mistakes, I tend to make.

Iā€™ve now updated the index page. Most things about references now work as intended:

https://helge.codeberg.page/fediverse-vocabulary/

Basically, what remains is update the FEP with the new format and add purls for the context file and documentation.

Iā€™m withdrawing fep-2e40 as it is no longer compatible with the FEP repository model ā€¦

Do you have any plans for fediverse-vocabulary? I think such resource could be valuable to community

There are a few problems with the approach:

From a technical standpoint: The examples as shown are incompatible with Mastodon. One would need to use:

{
  "@context": [
       "https://purl.archive.org/fedi-2023/context.json",
       "https://www.w3.org/ns/activitystreams",
  ],
  "id": "https://example.com/note/1",
  "type": "Note",
  "content": "This is a note containing a #tag",
  "tag": {
    "type": "Hashtag",
    "name": "#tag",
    "href": "https://example.com/hashtags/tag"
  }
}

if one wants Mastodon to understand the objects.

From a more philosophical stand point: Iā€™m no longer sure if a centralized context is a good idea. It might be a better idea to use ā€œFediverse Vocabularyā€ to just collect definitions of URIs used.

The entire thing needs thinking. Fortunately, the linked Fediverse Vocabulary provides an excellent base on how stuff might be build.

1 Like