Skip to main content

Factored

Knowledge Graphs and Graph Databases


About This Course

Knowledge Graphs & Graph Databases prepares you for knowledge graph and GraphRAG project work. You learn when a graph beats a relational join or a vector search, and how to build one in both main graph models: labeled property graphs with Neo4j and Cypher, and RDF with SPARQL and SHACL. You then build knowledge graphs from documents with LLMs, and learn to choose and benchmark a graph database. A building, modeled with the Brick ontology, is the running example.

Requirements

  • Comfortable writing basic Python, used throughout the GraphRAG and agent-tool sections
  • Comfortable working from a terminal, with Git and Docker installed and running. You clone the lab repository, and the hands-on lab runs Neo4j locally in a container
  • An LLM API key is useful for the LLM-driven extraction and agent sections, but not required to complete the course
  • No prior graph database, Cypher, RDF, or SPARQL knowledge needed. This course teaches them from the start
  • A free openHPI account, for the RDF and SPARQL course that the RDF subsections link to

What You'll Learn

  • Model data as nodes and relationships from the questions it must answer, and write Cypher that is safe to run many times
  • Represent data as RDF triples, query it with SPARQL, and validate it with SHACL
  • Turn source data, such as a building point list, into RDF with a tested pipeline, and prove that a round trip through a store loses nothing
  • Turn unstructured documents into a knowledge graph with an LLM, and measure the quality of the extraction
  • Know when a graph is the right tool compared to a semantic layer or a vector database, and choose and benchmark a graph database for a project
The Agentic Knowledge Graph Construction course in the GraphRAG section is optional. It goes further than the rest of the course and is not required to finish it.

Hands-On

The course ends with a graded lab: stand up Neo4j locally and build a real, idempotent data-loading pipeline against it.

Enroll