Title:
|
THE SOLID DEVELOPMENT EXPERIENCE: GIVING DEVELOPERS THE TOOLS THEY NEED |
Author(s):
|
Koen Luyten, Gregory Van Seghbroeck, Wannes Kerckhove, Thomas Dupont, Filip De Turck and Bruno Volckaert |
ISBN:
|
978-989-8704-53-5 |
Editors:
|
Paula Miranda and Pedro IsaĆas |
Year:
|
2023 |
Edition:
|
Single |
Keywords:
|
Linked Data, Solid, Software Development, RDF, SHACL, GraphQL |
Type:
|
Full |
First Page:
|
133 |
Last Page:
|
140 |
Language:
|
English |
Cover:
|
|
Full Contents:
|
click to dowload
|
Paper Abstract:
|
The Solid protocol aims to let people take back control over their personal data by allowing them to store this data in personal data vaults called pods. While this has advantages in terms of data ownership, it also imposes new challenges when developing applications that use the protocol for data storage. Some auxiliary software libraries already exist in most popular programming languages for handling functions like authentication or basic file management, however, to the best of our knowledge, there is currently no toolkit available that provides a more integrated developer environment with features like data validation, code completion, and package management. In this paper a Solid Development Experience or SDX is presented, which uses SHACL shapes and GraphQL as the basis to provide a type-safe programming environment for both Javascript and Java projects. SHACL shapes can be downloaded and installed, after which GraphQL schemas can be generated based on them. Next, queries can be defined on these schemas to retrieve RDF data stored in a pod. The use of SHACL and GraphQL allows a mapping of dynamically typed RDF models to statically typed Java/Typescript constructs, with the goal of leveraging full type-safety when interfacing with RDF data. This mapping was found to incur a limited overhead during performance testing, the results of which are presented in this paper. Additionally, a detailed overview of the main components that make up the SDX and the design and technology choices that were made for each of them is provided. |
|
|
|
|