From 976571b03c1d27ac103520e3e182a165e4c9d4d2 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Fri, 24 Apr 2026 03:27:40 +0100 Subject: [PATCH 1/6] solid26: neutral wording change for WAC and ACP framing Action item from the 2026-04-22 CG call. Details in the PR body. --- solid26.html | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/solid26.html b/solid26.html index 8208eed9..bbd336db 100644 --- a/solid26.html +++ b/solid26.html @@ -295,8 +295,9 @@

Table of Contents

  • 2.1 Solid Protocol
  • 2.2 Solid-OIDC
  • 2.3 Web Access Control
  • -
  • 2.4 WebID 1.0
  • -
  • 2.5 Solid WebID Profile
  • +
  • 2.4 Access Control Policy
  • +
  • 2.5 WebID 1.0
  • +
  • 2.6 Solid WebID Profile
  • @@ -361,6 +362,11 @@

    Specifications

    (CG-DRAFT, v1.0.0, 2024-05-12) Link + + Access Control Policy + (v0.9.0, 2022-05-18) + Link + @@ -376,28 +382,19 @@

    Solid Protocol

  • - Servers are strongly encouraged to implement Web Access Control (WAC), see below. + The Solid Protocol requires Servers to conform to Web Access Control (WAC) or Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice Clients typically conform to one. A Client that needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements each satisfies.

    +

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC does not express deny rules, application-aware matching beyond Origin, or conditional grants.

    +

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules compose via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    Note

    -

    The March 2026 implementation survey yields the following results (archived):

    - -

    The data shows that most clients implement only one access control language, despite the Solid Protocol requiring Clients to conform to both WAC and ACP.

    +

    The March 2026 implementation survey (data, archived):

    + +

    Most surveyed Clients implement one access control language, not both.

    -

    - In case WAC seems not to satisfy implementers' requirements, implementers are strongly encouraged to verify their understanding of the matter in community discussion by providing feedback to the community. - If WAC is not able to satisfy the requirements, implementers might consider ACP or other suitable mechanisms to achieve their goals. - Client implementers are advised to consider that their Client implementation will not be able to interoperate with every conforming Server their Client might encounter. -

  • @@ -443,7 +440,14 @@

    EDITORS' Note

    Web Access Control

    Web Access Control (CG-DRAFT, v1.0.0, 2024-05-12) is included.

    -
    + + + +
    +

    Access Control Policy

    +
    +

    Access Control Policy (v0.9.0, 2022-05-18) is included.

    +
    @@ -649,7 +653,7 @@

    Note

    @@ -670,6 +674,9 @@

    References

    [WAC]
    Web Access Control. Sarven Capadisli. W3C Solid Community Group. 12 May 2024. Draft Community Group Report, Version 1.0.0. URL: https://solidproject.org/TR/2024/wac-20240512
    +
    [ACP]
    +
    Access Control Policy. Matthieu Bosquet. W3C Solid Community Group. 18 May 2022. Version 0.9.0. URL: https://solidproject.org/TR/2022/acp-20220518
    +
    [WEBID]
    WebID 1.0. Andrei Sambra; Stéphane Corlosquet. W3C WebID Community Group. 5 March 2014. W3C Editor's Draft. URL: https://www.w3.org/2005/Incubator/webid/spec/identity/
    From 8b0dd709b9e001a7d258b313d2f457f06722c3f5 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:39:56 +0100 Subject: [PATCH 2/6] =?UTF-8?q?Apply=20@TallTed=20editorial=20suggestions?= =?UTF-8?q?=20on=20=C2=A72.1=20WAC/ACP=20framing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apply the two suggestion comments on PR #783: - Three-item list 'WAC, ACP, or both'; comma after 'In practice'; scope the interop sentence explicitly to single-language Clients; 'requirements satisfied by each'. - Parallelise the ACP composition clause: 'rules composed via …'. Co-authored-by: Ted Thibodeau Jr --- solid26.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solid26.html b/solid26.html index bbd336db..2325d9ec 100644 --- a/solid26.html +++ b/solid26.html @@ -382,10 +382,10 @@

    Solid Protocol

  • - The Solid Protocol requires Servers to conform to Web Access Control (WAC) or Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice Clients typically conform to one. A Client that needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements each satisfies. + The Solid Protocol requires Servers to conform to Web Access Control (WAC), Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice, Clients typically conform to one. A Client that conforms to only one and needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements satisfied by each.

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC does not express deny rules, application-aware matching beyond Origin, or conditional grants.

    -

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules compose via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    +

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules composed via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    Note

    The March 2026 implementation survey (data, archived):

    From 5435add26f45693c90a31ae090c689d60741e91c Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:44:53 +0100 Subject: [PATCH 3/6] =?UTF-8?q?Signpost=20WAC=201.1=20ED=20additions=20in?= =?UTF-8?q?=20=C2=A72.1=20commentary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per @elf-pavlik on PR #783: the 'WAC does not express…' sentence was correct for WAC 1.0 (which solid26 pins) but readers should know that two of the three gaps close in the WAC 1.1 ED via acl:condition (application-aware matching and conditional grants). Deny rules remain absent in WAC 1.1, consistent with WAC's monotonic design. No implementations known at time of publication. Co-authored-by: elf Pavlik --- solid26.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solid26.html b/solid26.html index 2325d9ec..ea4a5e61 100644 --- a/solid26.html +++ b/solid26.html @@ -384,7 +384,7 @@

    Solid Protocol

    The Solid Protocol requires Servers to conform to Web Access Control (WAC), Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice, Clients typically conform to one. A Client that conforms to only one and needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements satisfied by each.

    -

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC does not express deny rules, application-aware matching beyond Origin, or conditional grants.

    +

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC 1.0 (pinned here) does not express deny rules, application-aware matching beyond Origin, or conditional grants. Application-aware matching and conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules composed via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    Note

    From 196d08eecdce4eac4fd426498cbaa0e03f2646a4 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:55:35 +0100 Subject: [PATCH 4/6] Use Wayback Machine snapshot for WAC 1.1 link Use https://web.archive.org/web/20260425225256/... as a permanent reference for the WAC 1.1 ED while https://solidproject.org/TR/2026/ wac-20260420 is being created in #784. Once that snapshot PR is merged, this link should be swapped to the immutable TR URL. --- solid26.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solid26.html b/solid26.html index ea4a5e61..45642466 100644 --- a/solid26.html +++ b/solid26.html @@ -384,7 +384,7 @@

    Solid Protocol

    The Solid Protocol requires Servers to conform to Web Access Control (WAC), Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice, Clients typically conform to one. A Client that conforms to only one and needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements satisfied by each.

    -

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC 1.0 (pinned here) does not express deny rules, application-aware matching beyond Origin, or conditional grants. Application-aware matching and conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    +

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC 1.0 (pinned here) does not express deny rules, application-aware matching beyond Origin, or conditional grants. Application-aware matching and conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules composed via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    Note

    From 7fb35b739f8bee35da4acb728e9c41b522c83cf1 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:09:45 +0100 Subject: [PATCH 5/6] Phase 1 of @csarven review on PR #783: tighten WAC/ACP framing WAC paragraph: - One-line opener: 'WAC is pragmatic, user-friendly, and extensible.' - Drop the monotonic-semantics explanation (item 5: not useful to implementers). - Reframe limitations as 'WAC 1.0 does not support deny or non-additive policy composition, application-aware matching beyond Origin, or issuer matching' (item 15: deliberate-design framing implicit; items 16/17: drop 'more expressive' / 'beyond WAC' rhetoric). - Keep WAC 1.1 ED signpost via the Wayback URL (will swap to TR snapshot once #784 merges). ACP paragraph: - One-line opener: 'ACP is expressive.' - Drop 'more expressive alternative' / 'suited to requirements beyond WAC' rhetoric; replace with concrete capabilities grounded in the ACP spec (acp:client, acp:issuer, acp:vc, acp:allOf/anyOf/noneOf). - Note ACP does not define its own access modes (per spec). - Add maintenance/test/no-S&P-section caveats (items 10/18). --- solid26.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solid26.html b/solid26.html index 45642466..bf2b0c22 100644 --- a/solid26.html +++ b/solid26.html @@ -384,8 +384,8 @@

    Solid Protocol

    The Solid Protocol requires Servers to conform to Web Access Control (WAC), Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice, Clients typically conform to one. A Client that conforms to only one and needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements satisfied by each.

    -

    WAC is the simpler and extensible access-control language, covering the cases used by most current Solid applications. Its policies are RDF with monotonic semantics — adding or removing triples preserves the truth of existing grants. Optional acl:origin matching is not intended as client identification [WAC § Security and Privacy Review]. WAC 1.0 (pinned here) does not express deny rules, application-aware matching beyond Origin, or conditional grants. Application-aware matching and conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    -

    ACP is the more expressive alternative, suited to requirements that go beyond what WAC can directly express. Policies can carry allow and deny rules in the same document with non-monotonic semantics, so a deny rule can override a prior allow. Subjects can additionally be identified by the application making the request via the acp:client matcher, and rules composed via acp:allOf, acp:anyOf, and acp:noneOf, supporting context-aware policies.

    +

    WAC is pragmatic, user-friendly, and extensible. WAC 1.0 does not support deny or non-additive policy composition, application-aware matching beyond Origin, or issuer matching; application-aware matching, issuer matching, and other conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    +

    ACP is expressive. It supports allow and deny rules (deny overrides allow), application-aware (acp:client) and issuer (acp:issuer) matching, verifiable-credential matching (acp:vc), and policy composition via acp:allOf / acp:anyOf / acp:noneOf. ACP does not define its own access modes. The ACP draft has not been revised since 2022 and has no public test suite or Security and Privacy Considerations section.

    Note

    The March 2026 implementation survey (data, archived):

    From 244025911fb6ed5da0b56cd75bc0a7e5cf418c53 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:11:19 +0100 Subject: [PATCH 6/6] Drop ACP maintenance/no-modes caveat sentence Removes the 'ACP does not define its own access modes. The ACP draft has not been revised since 2022 and has no public test suite or Security and Privacy Considerations section.' sentence from the ACP paragraph, keeping the description focused on capabilities only. --- solid26.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solid26.html b/solid26.html index bf2b0c22..717b2dec 100644 --- a/solid26.html +++ b/solid26.html @@ -385,7 +385,7 @@

    Solid Protocol

    The Solid Protocol requires Servers to conform to Web Access Control (WAC), Access Control Policy (ACP), or both, and requires Clients to conform to both. In practice, Clients typically conform to one. A Client that conforms to only one and needs to read or write access-control rules will not interoperate with a Server that implements only the language the Client does not support; Clients that do not interact with access-control rules are unaffected. Implementers choosing between the two should consider the requirements satisfied by each.

    WAC is pragmatic, user-friendly, and extensible. WAC 1.0 does not support deny or non-additive policy composition, application-aware matching beyond Origin, or issuer matching; application-aware matching, issuer matching, and other conditional grants land as acl:condition in WAC 1.1 ED, with no implementations known at the time of publication.

    -

    ACP is expressive. It supports allow and deny rules (deny overrides allow), application-aware (acp:client) and issuer (acp:issuer) matching, verifiable-credential matching (acp:vc), and policy composition via acp:allOf / acp:anyOf / acp:noneOf. ACP does not define its own access modes. The ACP draft has not been revised since 2022 and has no public test suite or Security and Privacy Considerations section.

    +

    ACP is expressive. It supports allow and deny rules (deny overrides allow), application-aware (acp:client) and issuer (acp:issuer) matching, verifiable-credential matching (acp:vc), and policy composition via acp:allOf / acp:anyOf / acp:noneOf.