Part 3: Intro
This is part three of a three part series.
In part 1 of this series I wrote about using Elixir to parse Wikivoyage data dumps and push them into Neo4j. If you want to follow along at home but you have no data locally, then you'll want to go back to that section before reading further.
In part 2 of this series I wrote about using the data in the graph database, along with Cypher queries, to make iterative improvements to the model that's been constructed thus far.
This final part of the writeup will continue where part 2 left off, showing off a few more advanced features of the Cypher query language and discussing a few ideas for future work.
Also in the previous section, we talked about a type of naive query that could not possibly work for finding countries 1 step beneath continents and cities 1 step beneath countries. What we can do however is this: update "contains" edge in the graph to have a "containment-depth" property. Edges where containment-depth==1 may not necessarily be countries, but this information ought to be at least heuristically useful in some other circumstance.
It's quite tempting to see what else can be done to make the data structure more complete, perhaps by using open travel data or by enhancing the dump parser to understand the
##Get In and
##Get Out sections of wikivoyage pages to make a "transport-connection" relationship type. To be continued..