Basic resource typing through HTTP Link header
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 563
- Forks
- 108
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 3
Description
In order to promote ad hoc discovery of information, servers practice advertising self-describing resources. One way for servers to do this is by advertising the resource type (rel=type) in HTTP Link header. Explicit types can also help to categorise resource lifecycles (for server's management) and data partitioning eg. it is somewhat integral to LDP given its interaction models. When a client encounters Web resources without context, they can at least have a basic understanding what a resource may contain provided that they meet the authorization requirements.
Some cases are listed below and certainly there are others. Should the Solid spec have a requirement (at any level / case by case) for significant types that can be encountered in the ecosystem?
-
Container type (eg.
ldp:Container,ldp:BasicContainer): https://github.com/solid/specification/pull/160#issuecomment-636822687 (see also https://github.com/solid/specification/pull/190 ) -
LDP compatibility (eg.
ldp:Resource): https://www.w3.org/TR/ldp/ -
Solid resource (eg.
solid:Resource): https://github.com/solid/specification/issues/194#issuecomment-694828342 explains (with some diff toldp:Resource). -
Storage (eg.
pim:Storage): https://github.com/solid/specification/issues/153#issuecomment-624630022 to help client determine root container - on way to discovering its creator/controller. -
WAC/Access-control list (eg.
solid:AccessControlList): https://github.com/solid/specification/issues/105#issuecomment-551272993 to help client determine that a resource contains authorization policies. Related: https://github.com/solid/specification/issues/31 -
Memento types (eg.
mem:Memento,mem:OriginalResource): https://github.com/solid/specification/issues/61 -
Fixed resource (eg.
http://www.w3.org/2006/gen/ont#FixedResource) -
Shapes tree (eg.
tree:shapeTreeResource): https://shapetrees.github.io/specification/primer -
Provenance (eg.
solid:Provenance): after viarel="http://www.w3.org/ns/prov#has_provenance": https://github.com/solid/specification/issues/177#issuecomment-623737444 where it can contain provenance record (mix of activity, entity, agent..) -
ODRL resource: (eg.
http://www.w3.org/ns/odrl/2/Resource): potentially described in the formal-semantics document with the ODRL link relation type (eg.odrl:has_policy): https://github.com/w3c/odrl/issues/12 -
Other partitioning: https://github.com/solid/specification/issues/105#issuecomment-552131166
-
?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the linked Solid specification issues and pull requests, along with the LDP, Memento, Shape Trees, provenance, and ODRL references. Determine whether the Solid specification should require rel=type for the listed resource categories and at what level. Done requires a resolved scope and an agreed specification change, not just a list of possible resource types.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100