Re: graphql over graphs [Was: W3C Graph Data Workshop trip report]

Hi Eric,

GraphQL is not a query language but an approach to build Web APIs (i.e., an 
alternative to REST APIs). It is designed to be used as an interface for 
arbitrary types of underlying data sources, including RDBs, graph databases 
(e.g., RDF, Property Graphs), but also legacy REST APIs.

So, yes, it supports graphs. In fact, GraphQL APIs expose the underlying data 
sources in the form of a graph. In our paper at TheWebConf last year [1], we 
provide a formal definition of this (virtual) graph view and a formal semantics 
of the requests over it. This graph view is very similar to a Property Graph.

If you happen to come to ISWC in October this year, Ruben Taelman and I will 
give a tutorial on GraphQL:
http://www.ida.liu.se/research/semanticweb/events/

GraphQLTutorialAtISWC2019.shtml

Cheers,
Olaf

[1] Olaf Hartig and Jorge Pérez: Semantics and Complexity of GraphQL. In Proc. 
of The Web Conference 2018.
- preprint: http://olafhartig.de/files/HartigPerez_WWW2018_Preprint.pdf

- blog post with a light-weight high-level summary: http://blog.liu.se/

olafhartig/2018/08/08/lightweight-summary-of-our-paper-semantics-and-
complexity-of-graphql/


On fredag 8 mars 2019 kl. 22:33:12 CET Eric Prud'hommeaux wrote:
> On Fri, Mar 08, 2019 at 01:42:12PM -0500, Juan Sequeda wrote:
> > All,
> > 
> > I wrote my trip report on the W3C Graph Data workshop:
> > http://www.juansequeda.com/blog/2019/03/08/w3c-graph-data-workshop-trip-re

> > port/
> tx for the report! i'd hoped to go but a contract is taking a little
> longer than hoped. (if there's another in the next 14 days, i can
> probably go.)
> 
> I was interested in the graphql stuff. I know the graphql spec is
> actually about trees but graphql is frequently used for graphs. Do you
> know if it actually supports graphs? As a litmus for that, can I look
> for people that know same person or do I have to look for people who
> know a person with the same name? In SPARQL, the former:
> 
> SELECT ?whom {
>   ?a foaf:knows ?whom .
>   ?b foaf:knows ?whom .
>   (FILTER ?a < ?b)
> }
> 
> The latter relies on heuristics to because there's no graph identifier
> on nodes. In SPARQL it would look kind of like:
> 
> SELECT ?whom {
>   ?a foaf:knows [ foaf:name ?nameA ] .
>   ?b foaf:knows [ foaf:name ?nameB ] .
>   (FILTER ?nameA = ?nameB)
> }
> 
> The latter is of course subject to false positives if multiple people
> have the same name.
> 
> >  It was a successful event! In a nutshell
> > 
> > – There is a unified and vibrant graph community.
> > – A W3C Business Group will be formed and serve as a liaison between
> > different interested parties.
> > – There is a push for RDF*/SPARQL* to be a W3C Member submission.
> > – There is interest to standardize a Property Graph data model with a
> > schema.
> > – There is interest to standardize mappings between Property Graphs and
> > RDF.
> > 
> > Best,
> > 
> > Juan
> > 
> > 
> > 
> > --
> > Juan Sequeda, Ph.D
> > www.juansequeda.com

Received on Saturday, 9 March 2019 08:40:28 UTC