PROPOSED Solid Working Group Charter
This is a draft text, under development by the community. The goal is to, eventually, submit this draft charter proposal to an official W3C AC review.
Any text rendered like this refers to content that must be finalized before the charter is sent to AC review.
Any text rendered like this refers to content that must be updated when the final charter is published at the latest (e.g., adjusting hyperlinks).
The mission of the Solid Working Group (LINK TBD) is to standardize the Solid Protocol and its use of associated data interoperability and authentication schemes. This effort will culminate in open standards that can be used by developers of servers and applications to continue to build a rich ecosystem that returns control of data back to users.
This proposed charter is available on GitHub. Feel free to raise issues.
|Charter Status||See the group status page (LINK TBD) and detailed change history.|
|Start date||[yyyy-mm-dd] (date of the "Call for Participation", when the charter is approved)|
|End date||[yyyy-mm-dd] (Start date + 2 years)|
|Team Contacts||TBD (0.x FTE)|
Teleconferences: 1-hour calls will be held bi-weekly
Face-to-face: we will meet during the W3C's annual Technical Plenary week; additional face-to-face meetings may be scheduled by consent of the participants, usually no more than 3 per year.
Note: The W3C Process Document requires “The level of confidentiality of the group's proceedings and deliverables”; however, it does not mandate where this appears. Since all W3C Working Groups should be chartered as public, this notice has been moved from the essentials table to the communication section.
Motivation and Background
It is common for web service providers to require users to surrender control over their own data, and store them in a way that is often restricted to certain systems, or can only be accessed by the applications that created it.
Solid extends open web standards to give priority to individual and community autonomy, allowing them to keep authority over their identity, data, and privacy, and giving them the freedom to select applications and services that suit their needs.
Solid defines the concept of storage (one feature of the construct informally referred to as Solid Pods), in which users place data and control access to it, and a suite of protocols for applications to use storages.
Solid offers several advantages over more traditional architectures for data use by Web services today, including:
- Storage is controlled by individuals or organizations, and can be delegated to other parties.
- Interoperability between applications and various storage server implementations of the protocol.
- A decentralized trust model enabling authentication and authorization mechanisms to operate at Web scale.
The W3C Solid Community Group has been incubating Technical Reports since 2018 towards that end:
to describe the interoperability between different classes of products by using Web communication protocols, global identifiers, authentication and authorization mechanisms, data formats and shapes, notifications, and query interfaces.
The wider Solid community has developed a suite of implementations, tools, and libraries for developers, as well as applications for users.
The design approach for the Solid Protocol will continue substantial efforts undertaken previously in the W3C Solid Community Group to specify a set of interoperable protocol standards for enabling the use and development of Solid servers and applications across a wide range of use cases.
The Working Group will:
- Define a core protocol specification for the secure and efficient operation of Solid servers and the behavior of clients interacting with those servers.
- Recommend a set of practices needed for data security for Solid storage, and for both server and client software, including use of appropriate authentication, authorization, verification, identity, and other standards, integrating existing outside efforts.
- Recommend a set of protocol behaviors and best practices for the use in Solid of the OpenID Connect (OIDC) / Federation identity layer on top of the OAuth 2.0 protocol.
- Recommend a set of protocol behaviors and best practices to request and grant access to data stored in Solid storage.
- Define a protocol for state synchronization regarding changes to resources in Solid storage.
Out of Scope
The following features are out of scope, and will not be addressed by this Working group.
- Definition of identity mechanisms such as WebID and DID
- Definition of linked data formats
Updated document status is available on the group publication status page (LINK TBD).
The Working Group will deliver the following W3C normative specifications:
- Solid Protocol v1.0
The Solid Protocol specification aims to provide applications with secure and permissioned access to externally stored data in an interoperable way.
An overarching design goal of the Solid ecosystem is to be evolvable and to provide fundamental affordances for decentralised Web applications for information exchange in a way that is secure and privacy respecting. In this environment, actors allocate identifiers for their content, shape and store data where they have access to, set access controls, and use preferred applications and services to achieve them.
Draft state: Adopted from W3C Solid Community Group.
Adopted Draft: Solid Protocol, Version 0.10.0, eds. Sarven Capadisli, Tim Berners-Lee, Ruben Verborgh, Kjetil Kjernsmo. W3C Solid Community Group, 2022.
When possible, the Solid Protocol will evolve while maintaining a high degree of compatibility with existing implementations, of both servers and clients, and with features from prior versions. If incompatible changes have to be made, then they will be done by introducing a stage where both old and new protocols are supported, to allow the implementors to upgrade their systems in a managed way.
The Solid Protocol may include protocol details for integration with identity layers and mechanisms; access management and data integrity; notifications about resource changes; and, authorization mechanisms.
All specifications, regardless of their progress along the W3C Process line from First Public Working Draft to Recommendation, will indicate their version using the Semantic Versioning scheme. The required versions of each dependency will be given in each specification.
Depending on the W3C Solid Community Group progress, including consideration for adequate implementation experience, the Group will also produce W3C Recommendations for the following documents:
- Allows entities to authenticate within the Solid ecosystem.
- Web Access Control
- Web Access Control (WAC) is a decentralized cross-domain access control system providing a way for Linked Data systems to set authorization conditions on HTTP resources using the Access Control List (ACL) model.
- Access Control Policy
- Access Control Policy (ACP) is a language for describing, controlling, and granting access to resources.
- Solid Notifications Protocol
- Linked Data-based protocol for sending notification to client application upon updates to resources in the Solid ecosystem while respecting resource-based access controls and privacy.
Adding new Recommendation-track deliverables
If additional in-scope Recommendation-track deliverables need to be added to the Charter before the Charter expires, the Working Group will prepare an updated Charter that differs only in deliverables.
The Working Group will not adopt new proposals until they have matured through the W3C Solid Community Group or another similar incubation phase.
Other non-normative documents may be created such as:
- Test Suite and Implementation Report
The Working Group will develop a test suite and implementation report to test and document conformance levels achieved by implementors.
|Note: The group will document significant changes from this initial schedule on the group home page.|
|Solid Protocol||START + 6M||START + 9M||START + 12M||START + 15M|
In order to advance to Proposed Recommendation, each normative specification is expected to have at least two independent interoperable implementations of every feature defined in the specification, where interoperability can be verified by passing open test suites, and two or more implementations interoperating with each other. In order to advance to Proposed Recommendation, each normative specification must have an open test suite of every feature defined in the specification.
There should be testing plans for each specification, starting from the earliest drafts.
To promote interoperability, the group will publish Solid QA detailing testing policy, processes, and procedures.
Each specification should contain sections detailing all known security and privacy implications for implementers, Web authors, and end users.
Each specification should contain a section on accessibility that describes the benefits and impacts, including ways specification features can be used to address them, and recommendations for maximizing accessibility in implementations.
This Working Group expects to follow the TAG Web Platform Design Principles.
For all specifications, this Working Group will seek horizontal review for accessibility, internationalization, privacy, and security with the relevant Working and Interest Groups, and with the TAG. Invitation for review must be issued during each major standards-track document transition, including FPWD. The Working Group is encouraged to engage collaboratively with the horizontal review groups throughout development of each specification. The Working Group is advised to seek a review at least 3 months before first entering CR and is encouraged to proactively notify the horizontal review groups when major changes occur in a specification following a review.
Additional technical coordination with the following Groups will be made, per the W3C Process Document:
- Credentials Community Group
- To explore and report on the application of creating, storing, presenting, verifying, and user control of credentials in the context of Solid Protocol.
- Decentralized Identifier Working Group
- To investigate the areas in which existing DIDs can be adopt by the Solid Protocol (and related technical reports), as well as to advance an understanding of whether a Solid-specific DID method is needed.
- LDP Next Community Group
- To transfer applicable design decisions and implementation experience towards the Solid Protocol, and report back on components that can be adopted.
- Notation 3 (N3) Community Group
- To investigate the possibility of transferring Solid Protocol's N3 Patch to the N3 CG where its standardisation development can continue with broader applicability.
- RDF-star Working Group
- To reuse and report on recent extensions to RDF and SPARQL that can be incorporated with upstream specifications like the Solid Protocol.
- Social Web Incubator Community Group
- To continue with the development of a shared understanding between Linked Data(-compatible) specifications and their reuse, e.g., ActivityPub, AS2, LDN.
- Solid Community Group
- To maintain a separation of goals and transfer of incubated work items.
- Verifiable Credentials Working Group
- To inquire on the suitability of credentials data models and serializations, and their potential integration with the Solid Protocol.
- WebID Community Group
- To provide integration feedback on the use of WebIDs in Solid Protocol (and related technical reports) in order to stabilise the fundamental notions and behaviors.
- Web Authentication Working Group
- To ensure that Web Authentication primitives align with Solid principles and aims, as well as investigate areas to bridge with the WebAuthn API to improve user's privacy and consent.
- Web Platform Incubator Community Group
- To further develop a mutual understanding of how the federated credential management API and Solid OIDC can align better.
- Web of Things Working Group
- To investigate the suitability of Solid Protocol in the context of IoT platforms and application domains, and ways to improve their integration.
- OpenID Connect Work Group
- Coordination on specifications related to OpenID Connect (OIDC).
To be successful, this Working Group is expected to have 6 or more active participants for its duration, including representatives from the key implementors of this specification, and active Editors and Test Leads for each specification. The Chairs, specification Editors, and Test Leads are expected to contribute half of a working day per week towards the Working Group. There is no minimum requirement for other Participants.
The group encourages questions, comments and issues on its public mailing lists and document repositories, as described in Communication.
The group also welcomes non-Members to contribute technical submissions for consideration upon their agreement to the terms of the W3C Patent Policy.
Participants in the group are required (by the W3C Process) to follow the W3C Code of Ethics and Professional Conduct.
Technical discussions for this Working Group are conducted in public: the meeting minutes from teleconference and face-to-face meetings will be archived for public review, and technical discussions and issue tracking will be conducted in a manner that can be both read and written to by the general public. Working Drafts and Editor's Drafts of specifications will be developed in public repositories and may permit direct public contribution requests. The meetings themselves are not open to public participation, however.
Information about the group (including details about deliverables, issues, actions, status, participants, and meetings) will be available from the Solid Working Group home page (LINK TBD).
Most Solid Working Group teleconferences will focus on discussion of particular specifications, and will be conducted on an as-needed basis.
This group primarily conducts its technical work: on the public mailing list email@example.com (LINK TBD) (archive (LINK TBD)) or on GitHub issues (LINK TBD). The public is invited to review, discuss and contribute to this work.
The group may use a Member-confidential mailing list for administrative purposes and, at the discretion of the Chairs and members of the group, for member-only discussions in special cases when a participant requests such a discussion.
This group will seek to make decisions through consensus and due process, per the W3C Process Document (section 5.2.1, Consensus). Typically, an editor or other participant makes an initial proposal, which is then refined in discussion with members of the group and other reviewers, and consensus emerges with little formal voting being required.
However, if a decision is necessary for timely progress and consensus is not achieved after careful consideration of the range of views presented, the Chairs may call for a group vote and record a decision along with any objections.
To afford asynchronous decisions and organizational deliberation, any resolution (including publication decisions) taken in a face-to-face meeting or teleconference will be considered provisional. A call for consensus (CfC) will be issued for all resolutions (for example, via email, GitHub issue or web-based survey), with a response period from five to ten working days, depending on the chair's evaluation of the group consensus on the issue. If no objections are raised by the end of the response period, the resolution will be considered to have consensus as a resolution of the Working Group.
All decisions made by the group should be considered resolved unless and until new information becomes available or unless reopened at the discretion of the Chairs or the Director.
This charter is written in accordance with the W3C Process Document (Section 5.2.3, Deciding by Vote) and includes no voting procedures beyond what the Process Document requires.
This Working Group operates under the W3C Patent Policy (Version of 15 September 2020). To promote the widest adoption of Web standards, W3C seeks to issue Web specifications that can be implemented, according to this policy, on a Royalty-Free basis. For more information about disclosure obligations for this group, please see the licensing information (LINK TBD).
This Working Group will use the W3C Software and Document license for all its deliverables.
About this Charter
This charter has been created according to section 3.4 of the Process Document. In the event of a conflict between this document or the provisions of any charter and the W3C Process, the W3C Process shall take precedence.
The following table lists details of all changes from the initial charter, per the W3C Process Document (section 4.3, Advisory Committee Review of a Charter):
|Charter Period||Start Date||End Date||Changes|