Reaching Back to the ARPANET
We’re going to revisit another graph we’ve seen before, the ARPANET, and look at some additional DQL features: inverses, paths, and recursion. So, let’s set up a Dgraph schema for this.
We start by clearing out the graph service of schemas and data:
| iex> graph_delete |
| "" |
We can now read our Dgraph schema from the graph store:
| iex> IO.puts (arpa70_schema = read_graph "schemas/arpa70.schema").data |
| name: string @index(term) . |
| type: string @index(term) . |
| |
| H_LINK: [uid] @reverse . |
| N_LINK: [uid] . |
| |
| type Host { |
| name |
| type |
| <~H_LINK> |
| } |
| |
| type Node { |
| name |
| type |
| N_LINK |
| } |
| |
| :ok |
No surprise here, apart from the @reverse directive set on the H_LINK predicate. Also, note the ...
Get Exploring Graphs with Elixir now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.