Skip to content

Reconsider Strict Tree layout #135

@damooo

Description

@damooo

LWS specifies the layout of primary resource organization to be a hierarchy instead of strict tree, diverging from prior art like LDP, Solid. Thus it allows a resource to be in multiple containers simultaniously.

There doesn't seems many compelling UCRs for such radical departure. Where as it makes for interoperability concern, and brings ambiguity and friction in integrating with external standards and specifications.

For example:

  • For servers that follow URI restrictions to integrate with relative-uri-ref affordances of the web, they cannot implement this. Such restrictions are legitimate, and ubiquitous in the ecosystem. Thus no client can model their functionality assuming interoperable multiple-simultanious-containment.

  • There are servers, that provide obvious view over underlying tree layouts, like fs, obj-stores, etc. These cannot support hierarchical layout in a natural way. These servers too are ubiquitous.

  • It is friction prone and non-obvious to integrate with external standards that assume single containment. For Eg: WAC and ACP has algorithms, that assume single hierarchical path for resource. It is not clear on how one should integrate with these standards with multi containment. I couldn't find any material in spec that can give clarity on this integration.

Thus, though it may cater to few niche cases, create hazard for interoperability, standard integration, etc in majority cases.

For those few niche cases, there need not be identity-level mechanism to share content between containers. Instead should better use web native content-level mechanisms like having multiple distinct resources, where clone resources redirects-to/proxies/copies main resource as per need. Fedora has some relevent mechanism

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions