Skip to content

Technologies

Towndex is built on a range of technologies suited to different purposes. The source for Towndex is available on GitHub under an Apache 2.0 license.

Extraction and synthesis of knowledge graphs is implemented in TypeScript to run on Node.js. The code uses LibreOffice to convert rich documents to PDFs (as needed), Amazon Textract to extract HTML from PDFs, and the Vercel AI SDK to access large language model APIs in order to synthesize schema.org-based knowledge graphs serialized in JSON-LD. In a postprocessing step the code converts JSON-LD to RDF and cleans the latter. The knowledge graphs are validated against SHACL shapes with a SHACL validator.

Static site generation is implemented in TypeScript using Next.js, React.js, and Mantine. The Towndex Next.js app works with schema.org-based knowledge graphs via an abstraction layer of TypeScript classes generated by SHACLmate.

The demo site is deployed to GitHub Pages using GitHub Actions with a custom, Docker-based action.