{"id":26190074,"url":"https://github.com/zazuko/blueprint","last_synced_at":"2025-08-11T13:08:55.628Z","repository":{"id":241588594,"uuid":"803878454","full_name":"zazuko/blueprint","owner":"zazuko","description":"Zazuko Blueprint is an enterprise knowledge graph frontend and browser, designed to make RDF Knowledge Graphs accessible and customizable for domain users.","archived":false,"fork":false,"pushed_at":"2025-07-14T13:34:15.000Z","size":5013,"stargazers_count":30,"open_issues_count":36,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-14T17:14:20.744Z","etag":null,"topics":["frontend","knowledge-graph","rdf","sparql"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/zazuko.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-05-21T14:36:00.000Z","updated_at":"2025-07-14T13:33:54.000Z","dependencies_parsed_at":"2024-05-29T06:45:57.983Z","dependency_job_id":"ec4185c7-e241-42be-b12f-e4ed4e521dac","html_url":"https://github.com/zazuko/blueprint","commit_stats":null,"previous_names":["zazuko/blueprint"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zazuko/blueprint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fblueprint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fblueprint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fblueprint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fblueprint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zazuko","download_url":"https://codeload.github.com/zazuko/blueprint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zazuko%2Fblueprint/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269891746,"owners_count":24491768,"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","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["frontend","knowledge-graph","rdf","sparql"],"created_at":"2025-03-12T00:52:24.646Z","updated_at":"2025-08-11T13:08:55.581Z","avatar_url":"https://github.com/zazuko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blueprint - Enterprise Knowledge Graph Frontend and Browser\n\n## Introduction\n\n\u003e Zazuko Blueprint is an enterprise knowledge graph frontend and browser, designed to make RDF Knowledge Graphs accessible and customizable for domain users.\n\nZazuko Blueprint is the culmination of a decade of experience at Zazuko working with RDF Knowledge Graphs. We understand that for Knowledge Graphs to be truly accessible to domain users, they must align with the context, experience, and expectations of those users. Generic \"bubble\"-oriented graph browsers often fall short in this regard. Zazuko Blueprint simplifies the creation of customized configurations or hypergraphs on top of your RDF Knowledge Graph, allowing you to focus on the most relevant elements from a high-level domain specialist perspective. You can also tailor generic vocabularies, such as schema.org, to reflect the specific terminology used within your organization or domain.\n\n![blueprint-sam](https://github.com/zazuko/blueprint/assets/583021/81b89afa-e321-46a5-b773-4fe7d6e1c1da)\n\nRecognizing the challenges web developers face when building applications on top of RDF, Zazuko Blueprint minimizes their exposure to RDF, enabling them to create specialized views of domain-specific knowledge with ease. Developers can provide a web component, and we leverage the declarative power of RDF to map the data schema to a highly specific visualization schema without extensive coding.\n\nZazuko Blueprint has been in development for several years for our customers, and we are now making the code base publicly available. While we currently anticipate our audience to have some knowledge of RDF Knowledge Graphs, Zazuko also offers retainers for assistance with using and working with Zazuko Blueprint. [Contact us](mailto:info@zazuko.com?subject=Blueprint%20Support) to learn more.\n\nZazuko Blueprint is an Angular web application that runs entirely in the browser.\n\n## Customization and Configuration of Zazuko Blueprint\n\nWe plan to provide a configuration frontend in the future. For now, you need to add the configuration directly to the knowledge graph. This configuration is purely written in RDF and resides with your data in the knowledge graph. Blueprint will read this configuration when you interact with the application.\n\nThe configuration allows you to define various aspects such as what should be visible and what should be hidden, how different entities relate to each other, and many other customizable elements. Please note that the configuration language and style may change before we release version 1.0 of Zazuko Blueprint. Examples and detailed documentation will be added soon to help guide you through the process.\n\n## Demo stack\n\nIf you want to quickly try out Zazuko Blueprint, you can take a look at the Docker Compose stack in the [stack](./stack) directory.\nIt contains a simple demo dataset with Kubernetes and OCI data, and all the instructions to run it are in the [README](./stack/README.md).\nYou will also find instructions on how to generate the triples for the Kubernetes and OCI data for your own Kubernetes cluster.\n\n## Deployment\n\n### Standalone\n\nThe configuration file of the Angular app itself is located in [config.json](projects/blueprint/src/config.json).\n\n```json\n{\n  \"endpointUrl\": \"http://localhost:4200/query\",\n  \"sparqlConsoleUrl\": \"https://ld.example.org/sparql/#query'\",\n  \"graphExplorerUrl\": \"https://ld.example.org/graph-explorer/?resource\",\n  \"fullTextSearchDialect\": \"stardog\"\n}\n```\n\nAfter the build `config.json` is located in the App root directory.\nYou can replace it if needed.\n\n**sparqlConsoleUrl** - you can provide a link to a SPARQL console. It's used in the flux detail panel context menu to jump to something like a YasGUI. Set it to `null` to remove the option from the context menu.\n\n**graphExplorerUrl** - you can provide a link to an instance of Graph Explorer . It's used in the flux detail panel context menu to jump to graph explorer. Set it to `null` to remove the option from the context menu.\n\n**endpointUrl** - the SPARQL endpoint URL. This is the URL where the SPARQL queries are sent to. It's used to fetch data from the triple store. The SPARQL endpoint must support CORS or you need to use a proxy for development. See below for more information.\n\n**fullTextSearchDialect** - the full text search dialect. Currently only `stardog`, `fuseki` and `neptune` are supported. This is used to fetch full text search results.\n\nIn case you are using the `neptune` dialect you need to provide the OpenSearch endpoint to use in an additional configuration parameter `neptune.ftsEndpoint`:\n\n```json\n{\n  // ...\n  \"neptune\": {\n    \"ftsEndpoint\": \" https://YOUR-OPENSEARCH-ENDPOINT.es.amazonaws.com\"\n  }\n}\n```\n\n### Using Docker\n\nYou can use our Docker image to run Blueprint.\n\n```sh\ndocker pull ghcr.io/zazuko/blueprint:latest\n```\n\nIt will listen on port 80.\n\nThe following environment variables can be set:\n\n- `ENDPOINT_URL`: the SPARQL endpoint URL (required)\n- `SPARQL_CONSOLE_URL`: the SPARQL console URL (default placeholder value: `http://example.com/sparql/#query`)\n- `GRAPH_EXPLORER_URL`: the Graph Explorer URL (default placeholder value: `http://example.com/graph-explorer/?resource`)\n- `FULL_TEXT_SEARCH_DIALECT`: the full text search dialect (default value: `fuseki`)\n- `NEPTUNE_FTS_ENDPOINT`: the OpenSearch endpoint for the Neptune dialect (in case you are using `neptune` dialect)\n\nIf any of the required environment variables are not set, the container will be started using the development configuration.\n\nYou can also mount a custom configuration file to `/app/config.json`.\n\nYou should make sure that `ENDPOINT_URL`, `SPARQL_CONSOLE_URL` and `GRAPH_EXPLORER_URL` are reachable from the browser.\nMake sure that `ENDPOINT_URL` is configured to allow CORS requests.\n\nYou can use [Trifid](https://github.com/zazuko/trifid) to proxy any SPARQL endpoint and to expose a SPARQL console and Graph Explorer.\nYou can also use it to dereference URIs.\n\n## Development\n\n### Configuration\n\nBefore the Blueprint Angular App starts, it fetches the `/config.json`. It will then overwrite the values in [environments/environment.development.ts](projects/blueprint/src/environments/environment.development.ts) or [environments/environment.ts](projects/blueprint/src/environments/environment.ts). At build time, `environments/environment.development.ts` will be replaced with the `environments/environment.ts` version.\n\nYou can still add configuration parameters to the environment files as usual. Internally, the Blueprint app only uses `src/environments/environment.ts`.\n\n### Development Server\n\nRun `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.\n\n### Proxy for SPARQL - CORS Issues\n\nBlueprint uses SPARQL to fetch data from a triple store. For development, the configuration parameter `endpointUrl` is set to `http://localhost:4200/query`. `ng serve` provides a proxy for SPARQL requests to the triple store. This way, CORS is not an issue, and it’s convenient to develop locally with a quickly configurable SPARQL endpoint.\n\nThe proxy is configured in `./proxy.conf.json`.\n\n```json\n{\n  \"/query\": {\n    \"target\": \"https://ld.example.org/query\",\n    \"headers\": {\n      \"Connection\": \"keep-alive\"\n    },\n    \"secure\": true,\n    \"changeOrigin\": true\n  }\n}\n```\n\nNote: This proxy uses HTTP/1.1 and is therefore a bit slower.\n\n## Code Scaffolding\n\nRun `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.\n\n## Build\n\nRun `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.\n\n## Running Unit Tests\n\nRun `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).\n\n## Running End-to-End Tests\n\nRun `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).\n\n## Further Help\n\nTo get more help on the Angular CLI, use `ng help` or check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.\n\n## License\n\nAll source files in this project are licensed under the Apache License Version 2.0, unless otherwise noted in the file itself. For the full license text, see the [LICENSE](./LICENSE) file included in this repository.\n\nCopyright 2024 Zazuko GmbH\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Fblueprint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzazuko%2Fblueprint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzazuko%2Fblueprint/lists"}