nodeSolidServer / nodeSolidServer/node-solid-server
Proposal: graphql for retrieving, updating turtle documents
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.8k
- Forks
- 308
- PR merge metrics
- No merged PRs in 30d
Description
I know this might be a bit controversial (it is maybe seen as redundant burden) but it has some advantages:
1. search
Currently implementing a search would require to search all documents for the specific values to conform the sparql requirements. Implementing a search in graphql is very easy:
you tag every document with some metadata and can search through the metadata
2. custom actions (mutations)
The sparql Syntax allows just a limited set of operations. In graphql you can add Operations (mutations).
This might be handy for creating actions like "encrypt content for pod with public keys specified in pod" or "ping owner of pod".
3. privacy
Sparql searches are very expressive. This way it is harder to track which operations should be restricted and how to not leak metainformations. In graphql you can customize the search like in rest.
- a solution would be to prefilter the query and only allow rdf operations on the filtered query
4. reuse libraries, simpler implementation
There are already some libraries for graphql which can be easily adapted for own needs. Also you can define which APIs you expose and how. This makes authentication easier and also allows triggers for events like: "document was queried".
Also it allows an bottom-up approach which is helpful for creating prototypes.
5. documentation
Graphql is self-documenting. You can have an autogenerated documentation.
Nomenclature
- Document: a turtle file
- SPARQL: typically used query language for rdf documents.
- GraphQL: a query language created by facebook
Opinions?
Is there a way to extend sparql for supporting custom actions?
- Yes there is a way
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 repository's existing SPARQL API and how Turtle documents are retrieved and updated. Compare the requested GraphQL queries and mutations with the current API surface, authentication, and privacy controls. Done would require an agreed scope and implementation plan for GraphQL support, but this issue does not name files, tests, or a concrete first change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100