Skip to content

For instructors ​

Timings, prerequisites and the rules of the road for running this course as a two-day workshop or a six-session evening course. The course is also designed to be taken alone; nothing here is needed for that.

Timings ​

Each lesson is planned at 60 to 90 minutes: reading or lecture, a short look at the named repository files, then the lab. The labs are the project's tutorial chapters, and the checkpoint files mean a participant who falls behind can start the next lab from the previous chapter's checkpoint rather than their own file.

LessonStoryLabLab needsNotes
1 Drawing software35 min25 minThe viewerNothing is written. Good opener.
2 Saying what, not how35 min30 minThe clone, pytestThree short reading exercises.
3 The program that writes the program35 min35 minseams generateThe hand-edited moment lands well live.
4 Why it kept stalling45 min30 minPen and paperDiscussion lesson. Collect the written exercises; they return in lesson 12.
5 One graph, many views25 min50 minText editorChapters 1 and 2. The first TriG anyone writes; budget for syntax errors.
6 Shapes before generation25 min50 minIn-process runChapter 3.
7 Interpret behaviour, generate structure25 min90 minIn-process runChapters 4 to 7. The long one; split across a break, or assign 6 and 7 as homework.
8 Questions no single tool can answer25 min50 minpytest, the docs buildWriting a question takes longer than it looks; have a candidate ready.
9 Code the templates cannot write30 min45 minOptional: a provider commandChapter 9. The LLM step is optional; the hand-written path is the lesson.
10 Getting changes back into the model30 min45 minThe viewer in edit modeChat app, not the expense file. Refusals are the teaching moments.
11 Same model, same bytes30 min60 minDockerChapters 8 and 10. Pull the images before the session.
12 What is still open30 min45 minPen and paperPair the exercise with lesson 4's.

Two-day format: lessons 1 to 6 on day one, 7 to 12 on day two, with chapters 6 and 7 as overnight homework. Six-evening format: two lessons per evening, in order.

Prerequisites by lesson ​

  • A laptop set up as in Before the first lesson for everyone, before lesson 1. Ask participants to confirm pytest -q is green and the viewer opens. An install problem discovered in lesson 5 costs the room half a lab.
  • Docker from lesson 11. Have participants pull the images the chapter 8 compose file names before the session; a room on one network pulling at once is slow.
  • A language-model provider command is optional and only for lessons 9 and 10. The project's seams propose, seams suggest and seams draft-generator take any command that reads a prompt on standard input and writes a draft to standard output, so a local model works. The chat app's own runtime does not need a key: its gateway falls back to a deterministic stub when none is set.
  • No prior knowledge of RDF, BPMN or SHACL is assumed. Participants who know them will move faster in module B and should be pointed at the capstone early.

Rules of the road ​

The repository is right. The course is written against the project at a point in time and the project moves. When a lab and the repository disagree, the repository wins, and the lesson needs a pull request; the backlog records what changed. Check the tutorial chapters against your checkout before each session: their excerpts are tested against the checkpoint files, so if the chapter builds, the lab works.

The scorecard is marked with evidence, not with enthusiasm. A row is closed when a participant can point at a file, a decision record or a test. Push back on "it feels solved". The project's own research notes model the tone.

Refusals are the lesson. In lessons 6, 9 and 10 the most instructive moments are when the tool says no: a 422 that names a path, an acceptance test that names a drift, a write-back refused with three candidates. Slow down there.

Do not hand-edit generated files to make a lab work. Continuous integration will catch it, and the point of lesson 3 is that it does.

Materials ​

Everything is in the repository. The course pages are in course/, the tutorial chapters in docs/tutorials/expenses/, the checkpoints in examples/expenses/, and the viewer's screenshots, which make good slides, in docs/guide/img/ and site/img/. The site builds with npm run build in course/; a link to a repository file that does not exist fails the build, so a renamed file is caught before a session.

Feedback ​

Course corrections go through pull requests against course/. Project gaps found during a lab go to the backlog in its format. Both are welcome.

Released under the Apache-2.0 License.