Skip to content

Commit

Permalink
Merge pull request #9 from FediMod/feat/prelaunch-changes
Browse files Browse the repository at this point in the history
Prelaunch changes
  • Loading branch information
ThisIsMissEm authored Oct 3, 2024
2 parents 948a98e + 35127cd commit 87c52a1
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
58 changes: 58 additions & 0 deletions docs/concepts/labels.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,61 @@

> [!CAUTION]
> This section of the documentation is still being written.
In order to better support interoperability between different FediMod FIRES servers, running as [Data Providers](./terms/data-provider.md), and [Data Consumers](./terms/data-consumer.md), we have introduced the concept of “Labels”.

Labels in FediMod FIRES are URIs that can be both:
- followed by a human to view a human readable page explaining the Label
- dereferenced by software to discover machine readable information about the Label

Data Providers can reuse Labels from different [Label Providers](./terms/label-provider.md) as well as being a Label Provider themselves if they need additional labels which haven't been yet defined, or whose definition they need to change. Label Providers can extend other Label Providers by annotating their labels as being the "same as" or "similar to" another Label.

As a Data Provider annotating the recommendations and advisories with Labels enables both machines and humans to better understand the information being presented. For instance, a Data Consumer may choose to automatically apply recommendations with one label, but require human review for another label.

## Work In Progress - What does a Label look like?

Initially we expected the JSON representation of Labels to be something like the following:

```json
{
"provider": "Example Label Provider",
"labels": [
{
"id": "https://labels.provider.example/#csam",
"title": "CSAM",
"description": "Depictions or descriptions of Child Sexual Abuse Material"
},
// ...
]
}
```

However, this format has some limitations and is fairly unique to the project. We are currently considering something more inline with the ActivityStreams 2 Vocabulary, creating a new Object Type of Label. This would still allow dereferencing, but also allow maybe updating labels via ActivityPub, where the Label provider is an Actor that issues `Update(Label)` activities and `Add/Remove` operations on the Collection of labels.

In both designs, servers need not request the entire set of labels or even expose them all in a single request, and URIs can be both for a single Label and for a collection of Labels where a single label is identified by a hash fragment identifier on the Collection URI, as is below.

```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
// extends as:Object, URI subject to change / definition being managed via a FEP defining a Label.
"Label": "https://fires.fedimod.org/ns#Label"
}
],
"summary": "Example Labels",
"type": "OrderedCollection",
"id": "https://labels.example.org/",
"totalItems": 2,
"orderedItems": [
{
"id": "https://labels.example.org/#violent-threat",
"type": "Label",
"name": "Violent Threat",
"content": "description for a violent threat"
// ...
},
// ...
]
}
```
9 changes: 9 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,12 @@ features:
<br/><br/>
FIRES is designed to allow consumers to periodically refresh their copy of the data using the last change ID known.
---

## Project Funding

<a href="https://NLnet.nl" class="funder-logo" name="ack"><img src="/nlnet-logo.svg?url" alt="Logo NLnet: abstract logo of four people seen from above"></a>
<a href="https://NLnet.nl/NGI0" class="funder-logo"><img src="/NGI0Entrust_tag.svg?url" alt="Logo NGI Zero: letterlogo shaped like a tag"> </a>

This project was funded through the <a href="https://NLnet.nl/entrust">NGI0 Entrust</a> Fund, a fund established by <a href="https://nlnet.nl">NLnet</a> with financial support from the European Commission's <a href="https://ngi.eu">Next Generation Internet</a> programme, under the aegis of <a href="https://commission.europa.eu/about-european-commission/departments-and-executive-agencies/communications-networks-content-and-technology_en">DG Communications Networks, Content and Technology</a> under grant agreement N<sup>o</sup> 101069594.
<br><br>
The writing of the proposal initially outlining FediMod FIRES was funded by <a href="https://nivenly.org">Nivenly Foundation</a>.

0 comments on commit 87c52a1

Please sign in to comment.