Skip to content

Commit acf2eef

Browse files
committed
feat: redirect to editor's draft of extensions policy
1 parent 697ce1a commit acf2eef

File tree

1 file changed

+9
-301
lines changed

1 file changed

+9
-301
lines changed

draft-extensions-policy.html

Lines changed: 9 additions & 301 deletions
Original file line numberDiff line numberDiff line change
@@ -1,303 +1,11 @@
11
<!DOCTYPE html>
22
<html>
3-
<head>
4-
<meta charset='utf-8'>
5-
<script src='https://www.w3.org/Tools/respec/respec-w3c' async class='remove'></script>
6-
<script class='remove'>
7-
// All config options at https://respec.org/docs/
8-
var respecConfig = {
9-
// Working Groups ids at https://respec.org/w3c/groups/
10-
group: "socialcg",
11-
specStatus: "unofficial",
12-
editors: [{
13-
name: "Evan Prodromou",
14-
url: "https://evanp.me/",
15-
}],
16-
github: {
17-
branch: "main",
18-
repoURL: "w3c/activitystreams",
19-
},
20-
// See https://respec.org/docs/#xref for usage.
21-
xref: ["activitystreams-core", "activitystreams-vocabulary"],
22-
};
23-
</script>
24-
</head>
25-
<body>
26-
<h1 id="title">Process for Including Extensions in Activity Streams 2.0</h1>
27-
<section id='abstract'>
28-
<p>
29-
This document describes the process and criteria for approving extensions
30-
for inclusion in the main Activity Streams 2.0 context document.
31-
</p>
32-
</section>
33-
<section id='sotd'>
34-
<p>
35-
This is a draft Note for publication by the SocialCG. It is not a W3C
36-
recommendation.
37-
</p>
38-
</section>
39-
<section>
40-
<h2>Motivation</h2>
41-
<p>
42-
Activity Streams 2.0, as described in [[activitystreams-core]]
43-
and [[activitystreams-vocabulary]] is a vocabulary for representing
44-
social data. It is used by, among others, the [[activitypub]] API and protocol.
45-
It is designed to be extensible, so that new terms can
46-
be used by publishers and consumers.
47-
</p>
48-
<p>
49-
Extensions provide at least the following benefits:
50-
</p>
51-
<ul>
52-
<li>Support specialist vocabularies for specific fields of interest</li>
53-
<li>Model social software patterns that were not common when
54-
Activity Streams 2.0 was originally published</li>
55-
<li>Provide alternate terms or structures for patterns already
56-
represented in Activity Streams 2.0 that improve the vocabulary's clarity
57-
or ease of use</li>
58-
</ul>
59-
<p>
60-
Any publisher can define an extension to Activity Streams 2.0, and use it in
61-
published documents. For example, a publisher could define an extension
62-
that provides a term for the favorite ice cream flavor of a person.
63-
</p>
64-
<figure>
65-
<figcaption>
66-
Context document for the example favorite ice cream flavor context.
67-
</figcaption>
68-
<div id="ex1-context" style="display: block;">
69-
<pre class="example highlight json">
70-
{
71-
"@context": {
72-
"ic": "https://flavors.example/ns/icecream#",
73-
"favoriteIceCreamFlavor": {
74-
"@id": "ic:favoriteIceCreamFlavor",
75-
"@type": "@id"
76-
},
77-
"Chocolate": "ic:Chocolate",
78-
"Vanilla": "ic:Vanilla",
79-
"Strawberry": "ic:Strawberry",
80-
"Pistachio": "ic:Pistachio"
81-
}
82-
}
83-
</pre>
84-
</div>
85-
</figure>
86-
<p>
87-
This publisher, or any other publisher, can create Activity Streams 2.0
88-
documents that use this extension.
89-
</p>
90-
<figure>
91-
<figcaption>
92-
Example of a person with a favorite flavor of ice cream term.
93-
</figcaption>
94-
<div id="ex1-context" style="display: block;">
95-
<pre class="example highlight json">
96-
{
97-
"@context": [
98-
"https://www.w3.org/ns/activitystreams",
99-
"https://favorites.example/ns/icecream"
100-
],
101-
"id": "https://example.com/people/evan",
102-
"type": "Person",
103-
"name": "Evan Prodromou",
104-
"favoriteIceCreamFlavor": "Pistachio"
105-
}
106-
</pre>
107-
</div>
108-
</figure>
109-
<p>
110-
If the publisher uses different extensions in the same
111-
document with different terms, they will need to resolve
112-
those naming conflicts by hand.
113-
</p>
114-
<figure>
115-
<figcaption>
116-
Example of using two extensions with conflicting terms for "Chocolate"
117-
as an ice cream flavor and as a color of a horse's coat.
118-
</figcaption>
119-
<div id="ex1-context" style="display: block;">
120-
<pre class="example highlight json">
121-
{
122-
"@context": [
123-
"https://www.w3.org/ns/activitystreams",
124-
"https://favorites.example/ns/icecream",
125-
"https://horse.example/ns/colors"
126-
],
127-
"id": "https://example.com/people/evan",
128-
"type": "Person",
129-
"name": "Evan Prodromou",
130-
"favoriteIceCreamFlavor": "ic:Chocolate",
131-
"horseCoatColor": "horse:Chocolate"
132-
}
133-
</pre>
134-
</div>
135-
</figure>
136-
<p>
137-
Any publisher or consumer can implement this extension, subject to
138-
the terms of the creator's license(s), if any.
139-
</p>
140-
<p>
141-
Referencing many extensions can be a burden for publishers and consumers.
142-
Although one or two lines in the @context property of the Activity Streams 2.0
143-
document may not be a problem, ten or twenty could be. In addition,
144-
the more extensions that are used, the more likely it is that there will
145-
be conflicts between terms.
146-
</p>
147-
<p>
148-
If an extension becomes very popular, it may be useful to include its terms
149-
and namespace in the main Activity Streams 2.0 context document.
150-
This will let publishers use the extension without having to include
151-
an additional line of context. It also provides an opportunity to resolve
152-
conflicts between terms in different extensions in the SocialCG.
153-
</p>
154-
<p>
155-
Thereafter, publishers will not need to include the extension's context URL
156-
in their documents. The extension's terms will be available for all documents
157-
that use the Activity Streams 2.0 context, without requiring a namespace
158-
prefix.
159-
</p>
160-
<figure>
161-
<figcaption>
162-
Theoretical example of using the favorite ice cream flavor term
163-
after it has been included in the main Activity Streams 2.0 context
164-
document.
165-
</figcaption>
166-
<div id="ex1-context" style="display: block;">
167-
<pre class="example highlight json">
168-
{
169-
"@context": "https://www.w3.org/ns/activitystreams",
170-
"id": "https://example.com/people/evan",
171-
"type": "Person",
172-
"name": "Evan Prodromou",
173-
"favoriteIceCreamFlavor": "Chocolate"
174-
}
175-
</pre>
176-
</div>
177-
</figure>
178-
<p>
179-
This inclusion does not come without a price. First, the Activity Streams 2.0
180-
context document is that much larger, which has a cost in terms of readability,
181-
maintainability, and bandwidth used. In addition, there is work for the
182-
SocialCG in updating, documenting, harmonizing, and maintaining the context
183-
document.
184-
</p>
185-
<p>
186-
This Note describes the criteria that the SocialCG will use to decide
187-
whether the benefits of simplicity and clarity by including extension
188-
terms in the main context document outweigh the costs of doing so.
189-
</p>
190-
<p>
191-
Properly implemented, this process provides a way to make Activity Streams 2.0
192-
a continuously evolving vocabulary, serving new needs for developers and
193-
users, while maintaining the stability of the core terms.
194-
</p>
195-
</section>
196-
<section>
197-
<h2>Process</h2>
198-
<p>These are the steps to including an extension in
199-
the Activity Streams 2.0 context document.</p>
200-
<ol>
201-
<li><b>Publish the extension for review.</b> Extensions can be published
202-
through the Federation Enhancement Proposal (FEP) process, as Notes of
203-
the SocialCG, through another standardisation process, or by any other
204-
organisations or individuals. See "Criteria" below for required content.
205-
</li>
206-
<li>
207-
<b>Implement the extension.</b> See "Criteria" below for implementation requirements.
208-
</li>
209-
<li>
210-
<b>List the extension in the <a href="https://www.w3.org/wiki/Activity_Streams_extensions">Activity Streams 2.0 extensions registry</a>.</b>
211-
</li>
212-
<li>
213-
<b>Propose the extension for inclusion.</b> The proposal should include a justification
214-
for inclusion of the extension.
215-
</li>
216-
<li>
217-
<b>Vote on the extension.</b> The SocialCG will vote on whether to include the
218-
extension in the Activity Streams 2.0 context document.
219-
</li>
220-
<li>
221-
<b>Create a draft version of the Activity Streams 2.0 context document including
222-
the extension terms and namespace.</b> This is the time to resolve any conflicts
223-
with existing names in the context document.
224-
</li>
225-
<li>
226-
<b>Test the draft version of the Activity Streams 2.0 context document.</b>
227-
</li>
228-
<li>
229-
<b>Publish the new version of the Activity Streams 2.0 context document.</b>
230-
</li>
231-
</ol>
232-
</section>
233-
<section>
234-
<h2>Criteria</h2>
235-
<p>To be included in the Activity Streams 2.0, extensions SHOULD meet these requirements.</p>
236-
<ul>
237-
<li>
238-
A unique namespace, distinct from the Activity Streams 2.0 namespace.
239-
</li>
240-
<li>
241-
A JSON-LD context document at a permanent URL.
242-
</li>
243-
<li>A document that describes the terms and usage of the extension.</li>
244-
<li>
245-
An intellectual property rights policy that is compatible with
246-
inclusion in a W3C specification.
247-
</li>
248-
<li>
249-
Demonstrated implementation by at least two (2) independent publishers.
250-
</li>
251-
<li>
252-
Demonstrated implementation by at least two (2) independent consumers.
253-
</li>
254-
</ul>
255-
<p>Extensions to be included MAY meet these criteria:</p>
256-
<ul>
257-
<li>
258-
A security review, either by the submitter, members of the SocialCG, or by the <a href="https://www.w3.org/Security/wiki/IG/W3C_spec_review">SecurityIG]</a>.
259-
</li>
260-
<li>
261-
A privacy review, either by the submitter, members of the SocialCG, or others.
262-
</li>
263-
<li>
264-
An accessibility (A11Y) review.
265-
</li>
266-
<li>
267-
An internationalisation (I18N) review.
268-
</li>
269-
</ul>
270-
</section>
271-
<section id='history'>
272-
<h2>Previous Work</h2>
273-
<p>
274-
The section on Extensibility in [[activitystreams-core]] says, in part,
275-
"Some popular extensions are included in the Activity Streams 2.0 namespace
276-
document [...]". It does not define how extensions are added and which
277-
criteria are used to decide whether an extension is popular enough to be
278-
included.
279-
</p>
280-
<p>
281-
<a href="https://www.w3.org/ns/activitystreams#extensions">The section on Extensions in the Activity Streams 2.0 namespace document</a>
282-
says, in part, "The extensions must document their terms in a spec-like way
283-
at a persistant [sic] URL. Approval of extensions will be by the Social Web WG
284-
until it closes, and after that by the followup Community Group. Process and criteria
285-
for extensions approval is being finalised and will be described or linked
286-
to here in due course."
287-
</p>
288-
</section>
289-
<section id='changelog'>
290-
<ul>
291-
<li>
292-
<strong>2023-09-29</strong>: Add review criteria.
293-
</li>
294-
<li>
295-
<strong>2023-06-24</strong>: First draft.
296-
</li>
297-
</ul>
298-
</section>
299-
<section id='conformance'>
300-
<!-- This section is filled automatically by ReSpec. -->
301-
</section>
302-
</body>
303-
</html>
3+
<head>
4+
<meta http-equiv="refresh" content="0;url=https://swicg.github.io/extensions-policy/">
5+
<title>Page Redirection</title>
6+
</head>
7+
<body>
8+
<!-- Note: don't forget to include a message and a link for users who do not get automatically redirected -->
9+
<p>If you are not redirected automatically, follow this <a href='https://swicg.github.io/extensions-policy/'>link</a>.</p>
10+
</body>
11+
</html>

0 commit comments

Comments
 (0)