I’ve had a couple of discussions with a lot of interesting people (se Demo app - RC flight logger and https://github.com/solid/solid-spec/issues/127) and come to these conclusions, at least about the location of data:
-
The application data is your data - not any specific app’s. For that reason the app-name should not be part of the URL.
-
The application state, preferences, currently selected item, sorting order and so on, is specific for the app and should have a URL that includes the app’s name.
-
The
/public
container name is misleading - you can put both private and public data there and control it with access control lists. I suggest using a more generic name. See https://github.com/solid/solid-spec/issues/129 -
DIfferent people want different structures for their data. The container structure is hierarchical and its impossible to find a structure that suits everybody. So let the user choose their own location.
-
Do check the type registry for a location first. See https://github.com/solid/solid/blob/master/proposals/data-discovery.md
-
If there is nothing in the type registry then select a suitable default location and let the user change it. Then register the user’s choice in the type registry.
-
Personally I suggest using
/user/...
for user data in general, something like/user/photos
or/user/my-pets
. But some people will prefer the root for user data if they think of their data as “important”. Myself, for instance, I use/rc-data
for data about my radio controlled aircrafts. -
Use
/app/...
for app-specific state data, something like/app/wonder-notes
or/app/mega-slideshow
.