The document discusses using Neo4j, a graph database, to store and query provenance data. Some key points: - Storing provenance in a relational database requires complex SQL and pushes graph operations into code, hurting performance on graph queries. - Neo4j uses the Cypher query language which allows declarative graph queries without imperative code. - Example Cypher queries are provided to demonstrate retrieving paths and relationships in a provenance graph. - While graph databases provide better performance for graph queries, they have limitations for certain bulk scans compared to relational databases. Proper graph design is important.