1
0
mirror of https://codeberg.org/fediverse/fep.git synced 2026-08-05 19:55:46 +00:00

0499: Change term IRI from #multibox to /multibox

This commit is contained in:
a
2024-10-10 13:47:39 -05:00
parent 9822ed98a2
commit 753a399dd7
10 changed files with 390 additions and 14 deletions
-8
View File
@@ -1,8 +0,0 @@
{
"@context": {
"multibox": {
"@id": "https://w3id.org/fep/0499#multibox",
"@type": "@id"
}
}
}
+55
View File
@@ -0,0 +1,55 @@
{
"@context": {
"multibox": {
"@id": "https://w3id.org/fep/0499/multibox",
"@type": "@id"
}
},
"@graph": [
{
"@id": "https://w3id.org/fep/0499/multibox",
"@type": "http://www.w3.org/1999/02/22-rdf-syntax-ns#Property",
"http://www.w3.org/2000/01/rdf-schema#comment": {
"@language": "en",
"@value": "An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to."
},
"http://www.w3.org/2000/01/rdf-schema#isDefinedBy": {
"@id": "https://w3id.org/fep/0499"
},
"http://www.w3.org/2000/01/rdf-schema#label": {
"@language": "en",
"@value": "multibox endpoint"
},
"http://www.w3.org/2000/01/rdf-schema#range": {
"@id": "http://www.w3.org/2000/01/rdf-schema#Resource"
},
"http://www.w3.org/2002/07/owl#maxCardinality": {
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger",
"@value": "1"
}
},
{
"@id": "https://w3id.org/fep/0499",
"@type": "http://www.w3.org/2002/07/owl#Ontology",
"http://purl.org/dc/elements/1.1/creator": "a <trwnh.com>",
"http://purl.org/dc/elements/1.1/rights": {
"@language": "en",
"@value": "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication"
},
"http://purl.org/dc/terms/abstract": "This FEP introduces a server-wide endpoint for delivering activities to multiple inboxes. sharedInbox currently allows for doing this, but it requires the remote server to know how to deliver the activity based on its addressing properties. However, the remote server might not know how to deliver the activity to private recipients, or recipients within a collection. The multibox endpoint removes this knowledge requirement from the receiving server and instead makes the sending server responsible for marking inboxes to explicitly deliver to.",
"http://purl.org/dc/terms/dateSubmitted": {
"@type": "http://www.w3.org/2001/XMLSchema#date",
"@value": "2024-09-30"
},
"http://purl.org/dc/terms/identifier": {
"@type": "http://www.w3.org/2001/XMLSchema#anyURI",
"@value": "https://w3id.org/fep/0499"
},
"http://purl.org/dc/terms/license": {
"@id": "https://creativecommons.org/publicdomain/zero/1.0/"
},
"http://purl.org/dc/terms/title": "FEP-0499: Delivering to multiple inboxes with a multibox endpoint"
}
],
"@id": "https://w3id.org/fep/0499#"
}
+66 -6
View File
@@ -89,7 +89,7 @@ Alternatively, without a context declaration:
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"https://w3id.org/fep/0499#multibox": {"id": "https://remote.example/multibox"}
"https://w3id.org/fep/0499/multibox": {"id": "https://remote.example/multibox"}
}
}
```
@@ -144,15 +144,75 @@ Content-Type: application/ld+json; profile="https://www.w3.org/ns/activitystream
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
<div resource="https://w3id.org/fep/0499#multibox">
<h3 id="multibox">multibox</h3>
"multibox": "https://remote.example/multibox"
}
}
</code>
<dd><code>https://w3id.org/fep/0499#multibox</code>
</dd>
</pre>
<pre title="Discovering a multibox endpoint without additional context" lang="json">
<code>
{
<dd property="https://www.w3.org/2000/01/rdf-schema#comment">An optional endpoint used for wide delivery of activities to multiple inboxes.</dd>
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://remote.example/actors/af4c8205cd81",
"type": "Person",
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"https://w3id.org/fep/0499/multibox": {"id": "https://remote.example/multibox"}
}
}
</code>
</pre>
<pre title="Delivering to a multibox endpoint" lang="http">
<code>
POST /multibox HTTP/1.1
Host: remote.example
Content-Type: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"object": "https://example.com/some-activity",
"target": [
"https://remote.example/inboxes/fbb433c8e6c4",
"https://remote.example/inboxes/d21f509146e5",
"https://remote.example/inboxes/68a7453f79e4",
"https://remote.example/inboxes/655216a0be07",
"https://remote.example/inboxes/84907eff485d",
]
}
</code>
</pre>
</div>
## References
- Christine Lemmer Webber, Jessica Tallon, [ActivityPub][ActivityPub], 2018
- Christine Lemmer Webber, [Rebooting the Web of Trust 9: Keeping Unwanted Messages off the Fediverse > Proposed Suggestions > MultiBox][multibox], 2020
[ActivityPub]: https://www.w3.org/TR/activitypub/
[multibox]: https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/topics-and-advance-readings/ap-unwanted-messages.md#multibox
## Copyright
CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
To the extent possible under law, the authors of this Fediverse Enhancement Proposal have waived all copyright and related or neighboring rights to this work.
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"object": "https://example.com/some-activity",
"target": [
"https://remote.example/inboxes/fbb433c8e6c4",
"https://remote.example/inboxes/d21f509146e5",
"https://remote.example/inboxes/68a7453f79e4",
"https://remote.example/inboxes/655216a0be07",
"https://remote.example/inboxes/84907eff485d",
]
}
</code>
</pre>
</div>
## References
+27
View File
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
>
<rdf:Description rdf:about="https://w3id.org/fep/0499/multibox">
<rdfs:isDefinedBy rdf:resource="https://w3id.org/fep/0499"/>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
<rdfs:comment xml:lang="en">An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to.</rdfs:comment>
<rdfs:label xml:lang="en">multibox endpoint</rdfs:label>
</rdf:Description>
<rdf:Description rdf:about="https://w3id.org/fep/0499">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Ontology"/>
<dcterms:identifier rdf:datatype="http://www.w3.org/2001/XMLSchema#anyURI">https://w3id.org/fep/0499</dcterms:identifier>
<dc:rights xml:lang="en">CC0 1.0 Universal (CC0 1.0) Public Domain Dedication</dc:rights>
<dcterms:license rdf:resource="https://creativecommons.org/publicdomain/zero/1.0/"/>
<dcterms:title>FEP-0499: Delivering to multiple inboxes with a multibox endpoint</dcterms:title>
<dcterms:abstract>This FEP introduces a server-wide endpoint for delivering activities to multiple inboxes. sharedInbox currently allows for doing this, but it requires the remote server to know how to deliver the activity based on its addressing properties. However, the remote server might not know how to deliver the activity to private recipients, or recipients within a collection. The multibox endpoint removes this knowledge requirement from the receiving server and instead makes the sending server responsible for marking inboxes to explicitly deliver to.</dcterms:abstract>
<dc:creator>a &lt;trwnh.com&gt;</dc:creator>
<dcterms:dateSubmitted rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2024-09-30</dcterms:dateSubmitted>
</rdf:Description>
</rdf:RDF>
+23
View File
@@ -0,0 +1,23 @@
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<https://w3id.org/fep/0499/multibox> a rdf:Property ;
rdfs:label "multibox endpoint"@en ;
rdfs:comment "An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to."@en ;
rdfs:isDefinedBy <https://w3id.org/fep/0499> ;
rdfs:range rdfs:Resource ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger .
<https://w3id.org/fep/0499> a owl:Ontology ;
dc:creator "a <trwnh.com>" ;
dc:rights "CC0 1.0 Universal (CC0 1.0) Public Domain Dedication"@en ;
dcterms:abstract "This FEP introduces a server-wide endpoint for delivering activities to multiple inboxes. sharedInbox currently allows for doing this, but it requires the remote server to know how to deliver the activity based on its addressing properties. However, the remote server might not know how to deliver the activity to private recipients, or recipients within a collection. The multibox endpoint removes this knowledge requirement from the receiving server and instead makes the sending server responsible for marking inboxes to explicitly deliver to." ;
dcterms:dateSubmitted "2024-09-30"^^xsd:date ;
dcterms:identifier "https://w3id.org/fep/0499"^^xsd:anyURI ;
dcterms:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
dcterms:title "FEP-0499: Delivering to multiple inboxes with a multibox endpoint" .
+79
View File
@@ -0,0 +1,79 @@
# multibox
URI
: `https://w3id.org/fep/0499/multibox`
Label
: multibox endpoint
Comment
: An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to.
Domain
: A map of `endpoints`
Range
: The endpoint (@id)
Functional
: Yes
Is defined by
: [FEP-0499](https://w3id.org/fep/0499)
## Examples
Discovering a multibox endpoint with additional context
```json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/fep/0499"
],
"id": "https://remote.example/actors/af4c8205cd81",
"type": "Person",
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"multibox": "https://remote.example/multibox"
}
}
```
Discovering a multibox endpoint without additional context
```json
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://remote.example/actors/af4c8205cd81",
"type": "Person",
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"https://w3id.org/fep/0499/multibox": {"id": "https://remote.example/multibox"}
}
}
```
Delivering to a multibox endpoint
```http
POST /multibox HTTP/1.1
Host: remote.example
Content-Type: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"object": "https://example.com/some-activity",
"target": [
"https://remote.example/inboxes/fbb433c8e6c4",
"https://remote.example/inboxes/d21f509146e5",
"https://remote.example/inboxes/68a7453f79e4",
"https://remote.example/inboxes/655216a0be07",
"https://remote.example/inboxes/84907eff485d",
]
}
```
+78
View File
@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html>
<head>
<title>multibox</title>
</head>
<body>
<div id="multibox" resource="https://w3id.org/fep/0499/multibox" typeof="rdf:Property">
<h1>multibox</h1>
<dl>
<dt>URI</dt>
<dd><code>https://w3id.org/fep/0499/multibox</code></dd>
<dt>Label</dt>
<dd lang="en" property="rdfs:label">multibox endpoint</dd>
<dt>Comment</dt>
<dd lang="en" property="rdfs:comment">An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to.</dd>
<dt>Domain</dt>
<dd>A map of <code>endpoints</code></dd>
<dt>Range</dt>
<dd property="rdfs:range" resource="rdfs:Resource">The endpoint (@id)</dd>
<dt>Functional</dt>
<dd content="1" datatype="xsd:nonNegativeInteger" property="owl:maxCardinality">Yes</dd>
<dt>Is defined by</dt>
<dd><a href="https://w3id.org/fep/0499" property="rdfs:isDefinedBy">FEP-0499</a></dd>
</dl>
<pre lang="json" title="Discovering a multibox endpoint with additional context">
<code>
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/fep/0499"
],
"id": "https://remote.example/actors/af4c8205cd81",
"type": "Person",
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"multibox": "https://remote.example/multibox"
}
}
</code>
</pre>
<pre lang="json" title="Discovering a multibox endpoint without additional context">
<code>
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://remote.example/actors/af4c8205cd81",
"type": "Person",
"name": "Alice P. Hacker",
"inbox": "https://remote.example/inboxes/fbb433c8e6c4",
"endpoints": {
"https://w3id.org/fep/0499/multibox": {"id": "https://remote.example/multibox"}
}
}
</code>
</pre>
<pre lang="http" title="Delivering to a multibox endpoint">
<code>
POST /multibox HTTP/1.1
Host: remote.example
Content-Type: application/ld+json; profile="https://www.w3.org/ns/activitystreams"
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Add",
"object": "https://example.com/some-activity",
"target": [
"https://remote.example/inboxes/fbb433c8e6c4",
"https://remote.example/inboxes/d21f509146e5",
"https://remote.example/inboxes/68a7453f79e4",
"https://remote.example/inboxes/655216a0be07",
"https://remote.example/inboxes/84907eff485d",
]
}
</code>
</pre>
</div>
</body>
</html>
+36
View File
@@ -0,0 +1,36 @@
[
{
"@id": "https://w3id.org/fep/0499/multibox",
"@type": [
"http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"
],
"http://www.w3.org/2000/01/rdf-schema#comment": [
{
"@language": "en",
"@value": "An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to."
}
],
"http://www.w3.org/2000/01/rdf-schema#isDefinedBy": [
{
"@id": "https://w3id.org/fep/0499"
}
],
"http://www.w3.org/2000/01/rdf-schema#label": [
{
"@language": "en",
"@value": "multibox endpoint"
}
],
"http://www.w3.org/2000/01/rdf-schema#range": [
{
"@id": "http://www.w3.org/2000/01/rdf-schema#Resource"
}
],
"http://www.w3.org/2002/07/owl#maxCardinality": [
{
"@type": "http://www.w3.org/2001/XMLSchema#nonNegativeInteger",
"@value": "1"
}
]
}
]
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
>
<rdf:Description rdf:about="https://w3id.org/fep/0499/multibox">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:label xml:lang="en">multibox endpoint</rdfs:label>
<rdfs:comment xml:lang="en">An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to.</rdfs:comment>
<rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
<owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality>
<rdfs:isDefinedBy rdf:resource="https://w3id.org/fep/0499"/>
</rdf:Description>
</rdf:RDF>
+11
View File
@@ -0,0 +1,11 @@
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<https://w3id.org/fep/0499/multibox> a rdf:Property ;
rdfs:label "multibox endpoint"@en ;
rdfs:comment "An optional endpoint used for wide delivery of activities to multiple inboxes. POST an Add activity where the object is at least one activity to be delivered, and the target is at least one inbox to deliver to."@en ;
rdfs:isDefinedBy <https://w3id.org/fep/0499> ;
rdfs:range rdfs:Resource ;
owl:maxCardinality "1"^^xsd:nonNegativeInteger .