- From: Michael Puckett <michaelcpuckett@gmail.com>
- Date: Sat, 22 Feb 2020 08:39:21 -0500
- To: public-graphql-rdf@w3.org
- Message-ID: <CAAxTZXFN8S_XnQeObBQYb8XZuGkQowYnHJsjQvuS2S6St2qXrw@mail.gmail.com>
Hi everyone and hello Holger - I think the work you've done on SHACL is very exciting! The GraphQL solution you outlined seems very in line with the goals of this community group. I'm Michael from the U.S. and I've been a web developer for over a decade, mostly front-end but also Node.js. I often use proprietary tools -- I have dabbled with Apollo -- but I would prefer to use standards-based tools. I have been evaluating the RDF/JSON-LD stack to see if it will fit my needs. My main reason for joining this group is that I would like to be able to send a REST request for data from client to server and specify how the data should be returned, filtering out properties I don't need, and including referenced objects (or edges of edges of those references...). In an advanced scenario, the data *could* be spread across multiple sources and I would expect the server to stitch it all together. I'm actually less interested in using GraphQL syntax directly (because it's a string). I would rather use JSON-LD. I envision GraphQL syntax as syntactic sugar that can convert to underlying JSON-LD. This is similar I think to how you can [construct queries]( https://graphql.org/graphql-js/constructing-types/). I have looked into Linked Data Platform (LDP) but it seems limited in its ability to do shape modeling using the Prefer header: ``` Prefer: return=representation; include=" http://www.w3.org/ns/ldp#PreferMinimalContainer" ``` From: https://www.w3.org/TR/ldp/#header-accept-post#h-prefer-parameters (If I have misunderstood all that's possible with LDP, please let me know!) After looking at LDP, I came to SHACL because at first glance it looks a bit like GraphQL and I assumed it could be used to model RDF queries. I've come to understand that SHACL's purpose is actually for RDF validation. Still, I think it's a powerful convention to be able to start with a target node and walk the graph with sh:property/sh:path. ``` { "targetClass": "Person", "property": [{ "path": "name" }, { "path": "height" }, { "path": "friends", "property": { "path": "name" }, "maxCount": 5 }] } ``` I don't know how easy it would be to build off of SHACL as it currently stands to do this sort of querying, but I do think that using Shapes could be a great starting point. This is my first community group post. Please let me know if I'm way off track here! Thanks, Michael Puckett Web Developer
Received on Saturday, 22 February 2020 13:41:15 UTC