Thankfully @aschrijver already described the underlying problem in
Can we quickly solve this problem at least for Concepts which are already defined in FEPs?
All of redaktor’s architecture is based on JSON-LD.
This means as concrete example that if we use a FEP-400e: Publicly-appendable ActivityPub collections we need any way to identify it, for example asExt:PublicAppendable
as in "type": ["Collection", "asExt:PublicAppendable"]
Yet, 3 properties had made it in the Original as: namespace after it was specified as text.
These are as:manuallyApprovesFollowers
, as:sensitive
and as:movedTo
.
Other properties are in vendor namespaces like toot:featured
or
focalPoint: {'@container': '@list', '@id': 'toot:focalPoint' }
But how to deal with Classes / Types as in FEPs?
Arnold did post the formal concept/diagram of the SIOC vocabulary, so I am posting the diagram how this is used in the @redaktor.me architecture.
I left out a few things to not make it not to confusing like sioc:Site/as:Page which is very complex in redaktor CMS.
Showing only differences to the original, mainly:
- In redaktor a “User“ is not the “Actor”, a “User” can/could have multiple “Actor”
- A “Topic” can be an “Actor”
(sorry, if I use the svg version, no text is shown, even w unspecified fonts, also reflexive rel not shown, but e.g. a Group can be member of a Group)
view in Live Editor / markdown source
In this example, we had no namespace for the concept of the Collection FEP-400e: Publicly-appendable ActivityPub collections
It should really be the same in all different ActivityPub implementations.
We handle it in the International Press Telecommunications Council by just having the IPTC core namespace and the extension namespace denoted by Ext
as for example in Adobe Iptc4xmpExt
Maybe we can do the same here?
Basically, the only thing needed is a namespace and URL we need to specify permanently.
Proposal
namespace
https://w3id.org/asExt/
(automatically done w. SkoHub)
preferred namespace prefix
asExt
and simply published with SKOS and https://skohub.io from the FEP repos …
This would mean to just follow the steps described in Presenting the SkoHub Vocabs Prototype | Skohub Blog
The turtle file could e.g. quickly describe the FEP process (together with links/references) as :n00
and then describe
:n001 a skos:Concept ;
skos:broader :n00 ;
skos:inScheme :scheme ;
skos:notation "001",
"0011" ;
skos:prefLabel "Öffentlich-anhängbare ActivityPub Collections"@de,
"Publicly-appendable ActivityPub collections"@en ;
skos:definition "FEP-400e",
skos:scopeNote "Collection owned by someone that other people can contribute to. "@en .
skos:note "see https://codeberg.org/fediverse/fep/src/branch/main/feps/fep-400e.md"