Currently we don't know a storage's workspaces. What we know (or do e.g., databox.me and some of the practices in our own profiles / preferencesFile) is that a user has workspaces, which can be seen as a single grouping of workspaces, and the storage in which they may be in is inferred through agent's ws:storage property.
I think this can be improved by using the property ws:workspace on instances of ws:Storage (or its subclasses), instead of using it on foaf:Agent. It will make it possible to declare different workspaces to different storages, especially when users may have multiple storages.
Workspaces are now deprecated. Storage discovery is handled via the http://www.w3.org/ns/pim/space#storage property (see the Default Containers section in the spec).
Closing.
Currently we don't know a storage's workspaces. What we know (or do e.g., databox.me and some of the practices in our own profiles / preferencesFile) is that a user has workspaces, which can be seen as a single grouping of workspaces, and the storage in which they may be in is inferred through agent's
ws:storage
property.I think this can be improved by using the property
ws:workspace
on instances ofws:Storage
(or its subclasses), instead of using it onfoaf:Agent
. It will make it possible to declare different workspaces to different storages, especially when users may have multiple storages.