Proposal: expose alternative query interfaces via `pim:storage`
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Domain
- backend-api-design, documentation
Research direction
Start by reading the WebID specification's definition of pim:storage and the related discussions in specification issues 229 and 227. Done requires an agreed approach for exposing alternative query interfaces, including whether pim:storage can be broadened or a new predicate such as solid:storage is needed, followed by the corresponding specification update.
Written by the indexing model from the issue text.
Description
Not sure if this is the correct location for this proposal, feel free to move this issue to https://github.com/solid/specification or elsewhere if needed
Motivation
There has been some discussions in the past around exposing query interfaces as alternative to the LDP-based interface, such as SPARQL endpoints, or TPF/QPF interfaces (https://github.com/solid/specification/issues/229, https://github.com/solid/specification/issues/227).
However, up until now, there is still no agreed upon way to expose such alternative interfaces, which makes it difficult to make use of such query interfaces in the Solid ecosystem.
Below, I list a simple and concrete proposal to fill this gap.
Proposed solution
The WebID spec specifies the use of pim:storage as "location(s) of the WebID owner's storage space(s)".
The spec says that this should refer to the root LDP container.
However, if we would lower this requirement, and make it say that it should refer to any kind of interface to access the user's pod, then this predicate could also be used to refer to an alternative interface using this predicate, such as a SPARQL endpoint or QPF interface.
Example
For example, a person deciding to expose a SPARQL endpoint and a QPF interface next to its LDP-based storage, could then do this as follows:
<http://example.org/bob/#me> pim:storage
<http://example.org/bob/container/>,
<http://example.org/bob/sparql>,
<http://example.org/bob/qpf>.
A client app could consider these storages as alternatives to each other, and pick the one that is best suited for the query needs of the client.
Limitations
The only downside of this approach would be backwards-compatibility, where apps would assume that these alternative interfaces are also LDP containers. For this reason, it may be better to introduce a new predicate, such as solid:storage.
- Dominant language
- HTML
- Stars
- 563
- Forks
- 110
- Avg merge
- 5d 7m
- Merged PRs (30d)
- 3
Getting set up
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.
More from solid/specification
-
new-work-item
Difficulty 5/5 Over a week Newbie friendliness 25/100
solid/specification#806 · 11 comments · 4 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
solid/specification#804 · 9 comments · 2 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
solid/specification#799 · 1 reaction ·
-
topic: resource access
Difficulty 5/5 Over a week Newbie friendliness 30/100
solid/specification#797 · 4 comments · 2 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
solid/specification#788 · 4 comments · 1 reaction ·
All issues in solid/specification
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
PedestrianDynamics/pyFDS-Evac#199 ·
Maintainers usually reply within 1 day
-
agent-reported area/server bug good first issue hacktoberfest help wanted P2
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
kotope/aio_energy_management#196 · 2 comments ·
-
v1 v2
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
modelcontextprotocol/python-sdk#3589 ·
Maintainers usually reply within 1 day