Skip to content

Have separate auxiliary resource for containment index #86

Description

@damooo

Currently containment index of a container (contains statements + basic metadata of contained resources) is specified to be part of container's content. Solid experience shows that this will be painful and leads to compatibility issues, implementation difficulties and modelling difficulties. Following are issues.

  1. Containers cannot have arbitrary primary representations, and are limited to lws+json, unlike other resources. Most applications and modelling paradigms expects uniform freedom with representations of resources in the holonymy. For example many wishes to have a arbitrary html hypermedia representation for container (Like book's cover page). Or just free rdf representation like other self describing rdf resources enabling HATEOS. In Solid's world, lack of consensus on this led to ad-hoc implementation assumptions and implementation divergence. See also: [UC] Authoring Arbitrary Hypermedia lws-ucs#33 , Specify/advise semantics of default Container resources (index.html/.ttl) solid/specification#69 , Specify container description solid/specification#227 , Alternative solutions to container HATEOAS solid/specification#525 .

  2. Having server managed data and user defined data in same resource leads to implementation difficulties and non-determinism regarding which is which.

  3. Due to containment metadata recording modified time of each child, the modified attribute and Last-Modified header change will be propagated upwords till storage root for each modification. This is immensely problematic. Solid had to specify hackish exception.

  4. Container creation now requires empty representation payload and other quirks diverging from naturality and consistency with other resources, as specified in Concerns about container creation #77 by @pchampin . If containment index metadata is refactored into representation of an auxiliary resource, then container can have arbitrary representations at the creation time with a qualifier.

Due to such, it is requested to seriously consider having separate resource for containment metadata (Just like linkset resource for other relations), and link it to the container through a link in the linkset. It will make many things natural and less painful. As containment pagination is already mandated, clients have no special problem to follow a link to glean membership.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-discussionThis issue will be added to the agenda and discussed in the LWS meeting.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions