{"id":20950425,"url":"https://github.com/atomgraph/linkeddatahub-apps","last_synced_at":"2026-03-16T21:32:31.485Z","repository":{"id":43402125,"uuid":"236239521","full_name":"AtomGraph/LinkedDataHub-Apps","owner":"AtomGraph","description":"System, demo, and user-submitted applications built on LinkedDataHub","archived":false,"fork":false,"pushed_at":"2024-04-14T22:06:21.000Z","size":91465,"stargazers_count":10,"open_issues_count":3,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-16T18:33:32.278Z","etag":null,"topics":["data-driven","declarative","demo-app","knowledge-graph","low-code","sparql","xslt"],"latest_commit_sha":null,"homepage":"https://linkeddatahub.com/demo/","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AtomGraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-01-25T22:39:00.000Z","updated_at":"2024-04-17T22:23:33.282Z","dependencies_parsed_at":"2023-02-16T11:15:48.881Z","dependency_job_id":"cded1420-5a13-42d1-a243-1360af40678f","html_url":"https://github.com/AtomGraph/LinkedDataHub-Apps","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FLinkedDataHub-Apps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FLinkedDataHub-Apps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FLinkedDataHub-Apps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AtomGraph%2FLinkedDataHub-Apps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AtomGraph","download_url":"https://codeload.github.com/AtomGraph/LinkedDataHub-Apps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243345893,"owners_count":20275910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-driven","declarative","demo-app","knowledge-graph","low-code","sparql","xslt"],"created_at":"2024-11-19T00:48:29.344Z","updated_at":"2026-03-16T21:32:31.474Z","avatar_url":"https://github.com/AtomGraph.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LinkedDataHub applications\n\nSystem, demo, and user-submitted applications built on LinkedDataHub. Completely data-driven, no code involved (besides the shell scripts).\n\n## Prerequisites\n\nThe installation scripts in this repository use [LinkedDataHub's CLI scripts](https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/command-line-interface/). You need to add the `bin` (and its subfolders) of your LinkedDataHub fork or clone to `$PATH`, for example:\n\n```shell\nexport PATH=\"$(find bin -type d -exec realpath {} \\; | tr '\\n' ':')$PATH\"\n```\n\n__Note that app installation scripts are not idempotent. Subsequent runs might continue adding data but are not guaranteed to succeed.__\n\n## Apps\n\n### Documentation\n\n**The documentation of LinkedDataHub open-source and Cloud versions.**\n\n\u003cdl\u003e\n    \u003cdt\u003eSource\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"linkeddatahub/docs/\"\u003elinkeddatahub/docs/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eFeatures\u003c/dt\u003e\n    \u003cdd\u003eXHTML document content is rendered from RDF literals\u003c/dd\u003e\n    \u003cdt\u003eLines of code\u003c/dt\u003e\n    \u003cdd\u003e0 lines of imperative code\u003c/dd\u003e\n    \u003cdd\u003e164 lines of installation shell scripts\u003c/dd\u003e\n\u003c/dl\u003e\n\n### Northwind Traders\n\n![Set-based (parallax) navigation](demo/northwind-traders/screenshot.gif \"Set-based (parallax) navigation\")\n\n**Knowledge Graph representation of the [Northwind Traders](https://powerapps.microsoft.com/en-us/blog/northwind-traders-relational-data-sample/) sample database.**\n\n\u003cdl\u003e\n    \u003cdt\u003eSource\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"demo/northwind-traders/\" target=\"_blank\"\u003edemo/northwind-traders/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLive instance\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"https://linkeddatahub.com/demo/northwind-traders/\" target=\"_blank\"\u003ehttps://linkeddatahub.com/demo/northwind-traders/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eFeatures\u003c/dt\u003e\n    \u003cdd\u003eFaceted search\u003c/dd\u003e\n    \u003cdd\u003eRelated results (parallax navigation)\u003c/dd\u003e\n    \u003cdd\u003eCustom \u003ccode\u003eSELECT\u003c/code\u003e query for each container that includes links to related resources (1:N relationships) from which faceted search options are generated\u003c/dd\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/imports/csv/\" target=\"_blank\"\u003eImport from CSV\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLines of code\u003c/dt\u003e\n    \u003cdd\u003e0 lines of imperative code\u003c/dd\u003e\n    \u003cdd\u003e681 lines of SPARQL\u003c/dd\u003e\n    \u003cdd\u003e951 lines of installation shell scripts\u003c/dd\u003e\n\u003c/dl\u003e\n\n### City Graph\n\n![City Graph geospatial view](demo/copenhagen/screenshot.png \"City Graph geospatial view\")\n\n**Browser of Copenhagen's geospatial open data, imported from [Copenhagen Open Data](https://data.kk.dk/). Provides a type-colored geospatial overview. Geo resources provide a view with neighbouring resources included.**\n\n\u003cdl\u003e\n    \u003cdt\u003eSource\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"demo/copenhagen/\" target=\"_blank\"\u003edemo/copenhagen/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLive instance\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"https://copenhagen.demo.linkeddatahub.com/\" target=\"_blank\"\u003ehttps://copenhagen.demo.linkeddatahub.com/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eFeatures\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/imports/csv/\" target=\"_blank\"\u003eImport from CSV\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLines of code\u003c/dt\u003e\n    \u003cdd\u003e0 lines of imperative code\u003c/dd\u003e\n    \u003cdd\u003e535 lines of SPARQL\u003c/dd\u003e\n    \u003cdd\u003e488 lines of installation shell scripts\u003c/dd\u003e\n\u003c/dl\u003e\n\n### Unesco Thesaurus\n\n![SKOS viewer](demo/unesco-thesaurus/screenshot.png \"SKOS viewer\")\n![SKOS editor](demo/unesco-thesaurus/screenshot-edit-mode.png \"SKOS editor\")\n\n**Basic SKOS editor with a custom UI theme. Concepts, collections and concept schemas can be created, edited, and linked with each other. SKOS types have dedicated content templates; constructors are auto-generated during ontology import; constraints are added using CLI script.**\n\n\u003cdl\u003e\n    \u003cdt\u003eSource\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"demo/unesco-thesaurus/\" target=\"_blank\"\u003edemo/unesco-thesaurus/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLive instance\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"https://unesco-thesaurus.demo.linkeddatahub.com/\" target=\"_blank\"\u003ehttps://unesco-thesaurus.demo.linkeddatahub.com/\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eFeatures\u003c/dt\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/stylesheets/\" target=\"_blank\"\u003eCustom stylesheet\u003c/a\u003e\u003c/dd\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/administration/ontologies/#classes\" target=\"_blank\"\u003eClasses\u003c/a\u003e\u003c/dd\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/administration/ontologies/#constructors\" target=\"_blank\"\u003eConstructors\u003c/a\u003e\u003c/dd\u003e\n    \u003cdd\u003e\u003ca href=\"https://atomgraph.github.io/LinkedDataHub/linkeddatahub/docs/reference/administration/ontologies/#constraints\" target=\"_blank\"\u003eConstraints\u003c/a\u003e\u003c/dd\u003e\n    \u003cdt\u003eLines of code\u003c/dt\u003e\n    \u003cdd\u003e0 lines of imperative code\u003c/dd\u003e\n    \u003cdd\u003e107 lines of SPARQL\u003c/dd\u003e\n    \u003cdd\u003e499 lines of installation shell scripts\u003c/dd\u003e\n    \u003cdd\u003e60 lines of XSLT stylesheet\u003c/dd\u003e\n\u003c/dl\u003e\n\n__You need to request append/write access to be able to create/edit the data.__\n\n## Packages\n\n**Reusable vocabulary packages that add domain-specific functionality to LinkedDataHub dataspaces.**\n\nPackages provide ontology imports and custom XSLT templates for rendering specific RDF vocabularies. They use **installation-time composition** - integrating content during installation via JAX-RS endpoints rather than loading dynamically at runtime.\n\n### Structure\n\nEach package consists of:\n- **`ns.ttl`** - Ontology with vocabulary imports (`owl:imports`) and template blocks (`ldh:template`)\n- **`layout.xsl`** - XSLT stylesheet with custom rendering templates using system modes\n\n### Installation\n\nPackages are installed via CLI or from application install scripts:\n\n```bash\ninstall-package.sh \\\n  -b https://localhost:4443/ \\\n  -f ssl/owner/cert.pem \\\n  -p Password \\\n  --package https://packages.linkeddatahub.com/skos/#this\n```\n\nInstallation integrates the package by:\n1. Downloading and storing the ontology as a SPARQL document\n2. Adding `owl:imports` to the namespace ontology\n3. Saving the stylesheet and updating master stylesheets with `xsl:import`\n4. Clearing caches to load the new content\n\n### Available Packages\n\n- **[skos](packages/skos/)** - SKOS vocabulary support (concepts, schemes, collections)\n\n### Architecture\n\n- **Declarative only** - RDF + XSLT, no Java code\n- **Installation-time composition** - Pre-composed before loading, no runtime overhead\n- **Template blocks** (`ldh:template`) - SPARQL-based views attached to RDF types\n- **XSLT overrides** - Custom rendering using system modes (`bs2:*`, `xhtml:*`, etc.)\n\n[Read the full packages documentation →](packages/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomgraph%2Flinkeddatahub-apps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatomgraph%2Flinkeddatahub-apps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatomgraph%2Flinkeddatahub-apps/lists"}