solid / vocab

Solid Vocabularies
https://solid.github.io/vocab/
42 stars 14 forks source link

Provide vocab/terms for Solid Pod related entities and functionalities #83

Open coolharsh55 opened 1 year ago

coolharsh55 commented 1 year ago

Hi. Currently the vocabulary does not provide sufficient concepts to represent information related to Pod functionalities. For example, Who developed/provided the App? Who is the Infrastructure provider for Solid? These terms should be provided through the solid vocabs to enable representing use-cases with correct granularity. This vocabulary should also establish the terms for entities that may take different roles in relation to Pods - e.g. who provided the server, who provided the software, etc. Such clarity in terms regarding entities, roles, and functionalities will help transparency in the Pod provisioning and use, maintaining records, and most importantly - legal tasks related to ensuring appropriate responsibilities and agreements are established.

For example, the following are based on existing standard for cloud terminology ISO/IEC 22123-1:2021 Information technology — Cloud computing — Part 1: Vocabulary where Solid is interpreted as a Data Storage technology (Solid and Pod are prefixed for informative purposes):

ThisIsMissEm commented 1 year ago

For:

Who developed/provided the App?

I'd recommend taking a look at Client Identifiers, which are JSON-LD documents that describes an application

coolharsh55 commented 1 year ago

I have written up an article titled "Making Sense of Solid for Data Governance and GDPR" https://osf.io/m29hn/ that provides more context and depth for the above as well as an analyses of GDPR compliance and how existing issues can also be applicable for Solid. There are some specific ideas for improving things (Section 8) -- which relate to the above, as well as expands on the discussions in solid/data-interoperability-panel/issues/282 (separation of Agents) and solid/authorization-panel/issues/46 (trusting an app).

csarven commented 1 month ago

I have a couple brief comments:

Generally I like this. And, we should refer to existing stuff out there.

Where applicable or available, terminology should be based on technical terms from specifications for example. There is room for layperson terminology for things like "pod", but if we are essentially talking about a "service" or a "server" or a "storage", those would be better than "pod" since the latter is not well-defined and not all "pods" have equivalent functionality.

Regarding "Interoperability Types" - I think that's generally covered by Classes of Products in specifications, e.g., https://solidproject.org/TR/2024/protocol-20240512#classes-of-products , https://solidproject.org/TR/2024/notifications-protocol-20240512#classes-of-products , so when a class of product needs to be references, that should point where they are defined in specifications where available instead of the vocab. That said, http://www.w3.org/ns/spec#ClassesOfProducts is a Concept Scheme with some top concepts based on https://www.w3.org/TR/spec-variability/#cop . Specs can specialise them or come up with their own.