Jekyll RDF is a Jekyll plugin that renders RDF data into static HTML pages, mapping each resource to a Liquid template and providing SPARQL-powered queries for customization.
What is Jekyll RDF?
Jekyll RDF is a Ruby gem and Jekyll plugin from the AKSW organization that turns RDF data into a static website. It takes a local RDF file (configured via path) or a remote SPARQL endpoint (via remote.endpoint) as input, and outputs one HTML page per selected resource into Jekyll's _site directory. The plugin integrates with Jekyll's existing Liquid template system, so you can build custom layouts for classes or individual resources using the same tooling as your main Jekyll site.
Key Features
Jekyll RDF bundles data-source configuration, resource restriction, template mapping, and RDF-aware Liquid filters into one plugin.
- Flexible data sources — Load RDF from a file path or a SPARQL endpoint; the
remoteconfig also supports selecting a named graph withdefault_graph. - Resource restriction — Limit which resources get pages using a SPARQL query bound to
?resourceUri, the keywordssubjects,predicates,objects, or a newline-separated list of resource IRIs in arestriction_file. - Template mapping — Route files to templates via
class_template_mappingsfor RDF classes,instance_template_mappingsfor specific IRIs, and adefault_templatefallback for all other resources. - RDF-aware Liquid filters — Use filters like
rdf_property,rdf_inverse_property,rdf_get,sparql_query,rdf_container, andrdf_collectionto pull property values, inverse relations, query results, and ordered collections into your pages. - Language and blank-node controls — Set a preferred literal language with
language, and choose whether blank nodes are rendered withinclude_blank. - Fragment identifier grouping — Resources sharing a base URI before a
#fragment are grouped on one super-resource page, accessible via thepage.sub_rdfcollection. - Docker image — The published container
ghcr.io/aksw/jekyll-rdfincludes Jekyll and the plugin, with configurableBUNDLE_PATHandNO_BUNDLERenvironment variables.
Who is it for?
- Semantic web developers — Publish RDF knowledge bases as clean, static HTML pages without operating a triple store or server-side rendering.
- Jekyll site owners — Add RDF content to an existing Jekyll site by dropping a Turtle file into the project and adding a few configuration lines.
- Data publishers in research or cultural heritage — Use SPARQL restrictions to assemble a browseable site that showcases specific entities or relationships.
What can you do with Jekyll RDF?
You can publish RDF data as a static website, query remote SPARQL endpoints, and render RDF containers or collections directly in your pages.
- Generate entity pages — With a Turtle file containing people and their properties, map
foaf:Personto a custom template and output one page per person with all their triples. - Query remote endpoints — Use the
sparql_queryfilter to run arbitrary SPARQL from a template (with?resourceUrisubstituted with the current resource) and render the result set in tables. - Render RDF collections and containers — Walk
rdf:Bag,rdf:Seq,rdf:Altcontainers or RDF lists directly in your templates using the dedicated filters, producing HTML lists or ordered lists.
How does Jekyll RDF work?
Install the gem and add the jekyll-rdf plugin to your _config.yml with RDF source and template settings. Then run jekyll build or jekyll serve — the plugin selects resources via your restriction SPARQL/restriction file, matches each to a template in the _layouts folder, and writes the rendered pages into _site. RDF resources outside the configured base URL are placed in _site/rdfsites/.
Pricing
Jekyll RDF is free and open source under the MIT license.
Alternatives
The README points to Jinja RDF, MkRdf, and kisumu as successors. MkRdf is intended to cover the main Jekyll RDF use case with MkDocs and Jinja templates.
FAQ
Is Jekyll RDF free?
Yes, Jekyll RDF is an open-source Ruby gem released under the MIT license, so you can use and modify it without licensing fees.
What kinds of RDF data can I use?
You can use a local RDF file in a format Jekyll-RDF can load (e.g. Turtle) by setting jekyll_rdf.path, or a remote SPARQL endpoint by setting jekyll_rdf.remote.endpoint. With a remote endpoint you can also select a named graph via default_graph.
Does Jekyll RDF require JavaScript or a database?
No. The plugin renders plain static HTML at build time; the output lives in _site and can be hosted on any static file server or CDN. You only need Ruby, Jekyll, and the plugin to build the site.
How do I restrict which resources get pages?
Set jekyll_rdf.restriction to a SPARQL SELECT query that binds ?resourceUri, or use the keywords subjects, predicates, or objects. As an alternative, jekyll_rdf.restriction_file can point to a plain-text file listing the exact resource IRIs to render.
Is Jekyll RDF still actively developed?
The repository notes that further development will happen at Jinja RDF, MkRdf, and kisumu. Jekyll RDF itself remains available as a Ruby gem, but the README states the project is mostly in maintenance.







