Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify Solid Profile conformance (cardinality) and use #26

Open
csarven opened this issue Jun 30, 2022 · 9 comments
Open

Clarify Solid Profile conformance (cardinality) and use #26

csarven opened this issue Jun 30, 2022 · 9 comments
Assignees

Comments

@csarven
Copy link
Member

csarven commented Jun 30, 2022

This issue is related to #25 on clarifying Solid WebID Profile conformance and use in that it has to do with specifying the cardinality of properties.

Putting aside requiring a shape and validation mechanism for the moment, multiple values for any property can occur in RDF. So, in addition to the requirements, advisements (Notes) can mention what application developer may want to take into account when encountering e.g., multiple values for a property when only one was expected - process all, pick first, pick one at random (or flip table and go for lunch.)

In LDN discovery there was the same consideration about whether to require only one or allow multiple inboxes, and we decided on one ("A resource MUST advertise only one Inbox") as that would be the minimal requirement for interop as well as forcing the code base for senders and consumers to be simple.

Another example: In WAC, authorization evaluation is only concerned about finding whether there is a match for something or not.

@jeff-zucker
Copy link
Member

My opinion is that we should create a data model section to be the first section after the introduction which would set out this cardinality :

A Solid Profile contains

  • exactly one WebID Profile Document
  • exactly one Preferences Document (space:preferencesFile)
  • exactly one Public Type Index (solid:publicTypeIndex)
  • exactly one Private Type Index (solid:privateTypeIndex)
  • exactly one Solid inbox (ldp:inbox)
  • one or more OIDC issuers (solid:oidcIssuer)
  • one or more storages (space:storage)
  • zero or more Extended Profile Documents (rdfs:seeAlso)
  • zero or more of any other RDF predicates (any predicate)

@timbl
Copy link
Contributor

timbl commented Jul 2, 2022

Looks reasonable. Glad we won't have multiple prefs, type indexes.
I'd add for communities:

  • Zero or more profile:me solid:community ?org in profile
  • Zero or more profile:me solid:community ?org in preferences

@timbl
Copy link
Contributor

timbl commented Jul 2, 2022

For each storage, presumably, SolidOD should provide a tab to browse the files in each pod in the user's dashboard. Nothing else gets automatically discovered in each storage.

@timbl
Copy link
Contributor

timbl commented Jul 2, 2022

What things should be looked for in Extended profile Documents?

@jeff-zucker
Copy link
Member

jeff-zucker commented Jul 2, 2022

My view : It is up to the WebID owner what they want to store in Extended profile documents (seeAlsos). While they can do this for data-organization (e.g. keep all foaf:knows triples in one file), the more important use is for restricted audiences. I might want only work colleagues to know my work phone so I'd put it in a seeAlso file restricted to my work colleagues. If I had a complete storage that is only for me and my wife that I didn't want anyone else to even know was connected to me, I could put the space:storage triple in a seeAlso file only accessible to my wife and me. If I belong to the giraffesAreSexy community but don't want anyone but other members of that community to know, I would put the solid:community triple pointing to it in a seeAslo. I would put my ldp:inbox in a seeAlso if I wanted to restrict access to it. Since seeAlso files can contain any data, including important structural data such as location of storages, and inbox, it is incumbent on apps to load the seeAlso files unless they know they have already found the definitive answer to whatever question they are asking.

The way we describe things, the only triples which should NOT go in a seeAlso file are :

  • rdfs:seeAlso (the app is not obligated to follow seeAlsos in seeAlso files, that could get messy)
  • solid:oidcIssuer (the OIDC spec requires it to be in the WebID Profile Document itself)
  • space:preferencesFile (it should be loaded before seeAlso files because it can contain triples to other seeAlso files)

@jeff-zucker
Copy link
Member

  • Zero or more profile:me solid:community ?org in profile
  • Zero or more profile:me solid:community ?org in preferences

And in seeAlso files - for communities I want to share stuff with but which I don't want anyone but members of the community to know I belong to.

@timbl
Copy link
Contributor

timbl commented Jul 3, 2022

Isn't the preferences file the place for things I want to keep private? Then you can put a community link in there, and apps will see , but people won't. Then you can put things to share just with the community in the private type index of the community.

@jeff-zucker
Copy link
Member

The preferences file is where we put things that are only accessible when it is us operating the app - it is only visible to our WebID. A seeAlso file accessible only to community members can be seen by an app operated by another community member visiting my pod. So if you come to my pod, you can see the triples in my SolidOS seeAlso but not in my preferences file.

@jeff-zucker
Copy link
Member

These cardinalities are all covered in #40, continue discussion there, please.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants