GraphQL

A GraphQL server can process a client query using data from separate sources and present the results in a unified graph.

Facebook started GraphQL development in 2012 and released a draft specification and reference implementation as open source in 2015.

[7] GraphQL supports reading, writing (mutating), and subscribing to changes to data (realtime updates – commonly implemented using WebSockets).

Again, the client defines the shape of the data that it needs whenever an update is made.When a mutation is made through the GraphQL server that updates the associated field, data is sent to all subscribed clients in the format setup through the subscription.GraphQL does not provide a full-fledged graph query language such as SPARQL, or even in dialects of SQL that support transitive closure.

For example, a GraphQL interface that reports the parents of an individual cannot return, in a single query, the set of all their ancestors.

[12] New requests may be produced through search-based techniques due to a typed schema and introspection capabilities.