https://github.com/AtomGraph/LinkedDataHub Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Copilot + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Skills + GitHub Sponsors + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} AtomGraph / LinkedDataHub Public * Notifications * Fork 69 * Star 244 The Knowledge Graph notebook. Apache license. atomgraph.github.io/linkeddatahub/ License Apache-2.0 license 244 stars 69 forks Star Notifications * Code * Issues 36 * Pull requests 0 * Actions * Projects 1 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights AtomGraph/LinkedDataHub This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 94 branches 63 tags Code Latest commit @namedgraph namedgraph [maven-release-plugin] prepare for next development iteration ... 5e9848e Jun 22, 2022 [maven-release-plugin] prepare for next development iteration 5e9848e Git stats * 4,764 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows Undon GH action changes Jun 3, 2022 config Fixed a:quadStore values Apr 21, 2022 hooks Removed server.xsl Feb 8, 2021 http-tests Removed -f option from curl call Jun 9, 2022 platform Refactoring content structure from rdf:List to rdf:Seq: replacing ldh... May 27, 2022 scripts Added empty WHERE {} Jun 9, 2022 src/main Javadoc fixes Jun 22, 2022 .dockerignore Added $ldh:localGraph and $ldh:originalGraph as XSLT param documents,... May 6, 2022 .env_sample Updated Setup instructions in README Feb 9, 2021 .gitattributes Attempt to exclude libraries from programming language statistics Mar 6, 2021 .gitignore setup script aligned with docker-compose.yml and Dockerfile/ entrypoin... Feb 8, 2021 CHANGELOG.md CHANGELOG update Jun 22, 2022 Dockerfile Fuseki upgrade Apr 26, 2022 LICENSE Added LICENSE Feb 8, 2020 README.md Merge branch 'master' of github.com:AtomGraph/LinkedDataHub May 10, 2022 docker-compose.debug.yml Removed Fuseki port mapping from docker-compose.yml Apr 26, 2022 docker-compose.yml Fuseki image bump May 20, 2022 generate-sef.sh Build WAR before generating SEF Aug 2, 2021 pom.xml [maven-release-plugin] prepare for next development iteration Jun 22, 2022 release.sh Changed script interpreter line from "#!/bin/bash" to "#!/usr/bin/ env... Mar 9, 2022 screenshot.png Added screenshot to README Feb 2, 2020 View code [ ] The Knowledge Graph notebook Setup Prerequisites Steps Notes Configuration Base URI Dataspaces Environment Reset Documentation Command line interface Sample applications Third party Demo apps How to get involved Test suite Dependencies Browser Java Docker Support Community README.md The Knowledge Graph notebook LinkedDataHub (LDH) is open source software you can use to manage data, create visualizations and build apps on RDF Knowledge Graphs. What's new in LinkedDataHub v3? Watch this video for a feature overview: What's new in LinkedDataHub v3? Feature overview We started the project with the intention to use it for Linked Data publishing, but gradually realized that we've built a multi-purpose data-driven platform. We are building LinkedDataHub primarily for: * researchers who need an RDF-native notebook that can consume and collect Linked Data and SPARQL documents and follows the FAIR principles * developers who are looking for a declarative full stack framework for Knowledge Graph application development, with out-of-the-box UI and API What makes LinkedDataHub unique is its completely data-driven architecture: applications and documents are defined as data, managed using a single generic HTTP API and presented using declarative technologies. The default application structure and user interface are provided, but they can be completely overridden and customized. Unless a custom server-side processing is required, no imperative code such as Java or JavaScript needs to be involved at all. Follow the Get started guide to LinkedDataHub. The setup and basic configuration sections are provided below and should get you running. Setup Click to expand Prerequisites * bash shell 4.x. It should be included by default on Linux. On Windows you can install the Windows Subsystem for Linux. * Java's keytool available on $PATH. It comes with the JDK. * openssl available on $PATH * uuidgen available on $PATH * Docker installed. At least 8GB of memory dedicated to Docker is recommended. * Docker Compose installed Steps 1. Fork this repository and clone the fork into a folder 2. In the folder, create an .env file and fill out the missing values (you can use .env_sample as a template). For example: COMPOSE_CONVERT_WINDOWS_PATHS=1 COMPOSE_PROJECT_NAME=linkeddatahub PROTOCOL=https PROXY_HTTP_PORT=81 PROXY_HTTPS_PORT=4443 HOST=localhost ABS_PATH=/ OWNER_MBOX=john@doe.com OWNER_GIVEN_NAME=John OWNER_FAMILY_NAME=Doe OWNER_ORG_UNIT=My unit OWNER_ORGANIZATION=My org OWNER_LOCALITY=Copenhagen OWNER_STATE_OR_PROVINCE=Denmark OWNER_COUNTRY_NAME=DK 3. Setup SSL certificates/keys by running this from command line (replace $owner_cert_pwd and $secretary_cert_pwd with your own passwords): ./scripts/setup.sh .env ssl $owner_cert_pwd $secretary_cert_pwd 3650 The script will create an ssl sub-folder where the SSL certificates and/or public keys will be placed. 4. Launch the application services by running this from command line: docker-compose up --build It will build LinkedDataHub's Docker image, start its container and mount the following sub-folders: + data where the triplestore(s) will persist RDF data + uploads where LDH stores content-hashed file uploads The first should take around half a minute as datasets are being loaded into triplestores. After a successful startup, the last line of the Docker log should read something like: linkeddatahub_1 | 09-Feb-2021 14:18:10.536 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [32609] milliseconds 5. Install ssl/owner/keystore.p12 into a web browser of your choice (password is the $owner_cert_pwd value supplied to setup.sh) + Google Chrome: Settings > Advanced > Manage Certificates > Import... + Mozilla Firefox: Options > Privacy > Security > View Certificates... > Import... + Apple Safari: The file is installed directly into the operating system. Open the file and import it using the Keychain Access tool (drag it to the local section). + Microsoft Edge: Does not support certificate management, you need to install the file into Windows. Read more here. 6. Open https://localhost:4443/ in that web browser Notes * You will likely get a browser warning such as Your connection is not private in Chrome or Warning: Potential Security Risk Ahead in Firefox due to the self-signed server certificate. Ignore it: click Advanced and Proceed or Accept the risk to proceed. + If this option does not appear in Chrome (as observed on some MacOS), you can open chrome://flags/# allow-insecure-localhost, switch Allow invalid certificates for resources loaded from localhost to Enabled and restart Chrome * .env_sample and .env files might be invisible in MacOS Finder which hides filenames starting with a dot. You should be able to create it using Terminal however. * On Linux your user may need to be a member of the docker group. Add it using sudo usermod -aG docker ${USER} and re-login with your user. An alternative, but not recommended, is to run sudo docker-compose up Configuration Click to expand Base URI A common case is changing the base URI from the default https:// localhost:4443/ to your own. Lets use https://ec2-54-235-229-141.compute-1.amazonaws.com/ linkeddatahub/ as an example. We need to split the URI into components and set them in the .env file using the following parameters: PROTOCOL=https HTTP_PORT=80 HTTPS_PORT=443 HOST=ec2-54-235-229-141.compute-1.amazonaws.com ABS_PATH=/linkeddatahub/ ABS_PATH is required, even if it's just /. Dataspaces Dataspaces are configured in config/system-varnish.trig. Relative URIs will be resolved against the base URI configured in the .env file. [?][?] Do not use blank nodes to identify applications or services. We recommend using the urn: URI scheme, since LinkedDataHub application resources are not accessible under their own dataspace. Environment LinkedDataHub supports a range of configuration options that can be passed as environment parameters in docker-compose.yml. The most common ones are: CATALINA_OPTS Tomcat's command line options SELF_SIGNED_CERT true if the server certificate is self-signed SIGN_UP_CERT_VALIDITY Validity of the WebID certificates of signed up users (not the owner's) IMPORT_KEEPALIVE The period for which the data import can keep an open HTTP connection before it times out, in ms. The larger files are being imported, the longer it has to be in order for the import to complete. MAX_CONTENT_LENGTH Maximum allowed size of the request body, in bytes MAIL_SMTP_HOST Hostname of the mail server MAIL_SMTP_PORT Port number of the mail server GOOGLE_CLIENT_ID OAuth 2.0 Client ID from Google. When provided, enables the Login with Google authentication method. GOOGLE_CLIENT_SECRET Client secret from Google Reset If you need to start fresh and wipe the existing setup (e.g. after configuring a new base URI), you can do that using sudo rm -rf data uploads && docker-compose down -v [?][?] This will remove the persisted data and files as well as Docker volumes. Documentation * Get started * Reference * User guide Command line interface LinkedDataHub CLI wraps the HTTP API into a set of shell scripts with convenient parameters. The scripts can be used for testing, automation, scheduled execution and such. It is usually much quicker to perform actions using CLI rather than the user interface, as well as easier to reproduce. The scripts can be found in the scripts subfolder. [?][?] The CLI scripts internally use Jena's CLI commands. Set up the Jena environment before running the scripts. An environment variable JENA_HOME is used by all the command line tools to configure the class path automatically for you. You can set this up as follows: On Linux / Mac export JENA_HOME=the directory you downloaded Jena to export PATH="$PATH:$JENA_HOME/bin" Sample applications Third party * NOI OpenDataHub - tourism Knowledge Graph portal powered by LinkedDataHub and @ontop. Source code. Demo apps These demo applications can be installed into a LinkedDataHub instance using the provided CLI scripts. [?][?] Before running app installation scripts that use LinkedDataHub's CLI scripts, set the SCRIPT_ROOT environmental variable to the scripts subfolder of your LinkedDataHub fork or clone. For example: export SCRIPT_ROOT="/c/Users/namedgraph/WebRoot/AtomGraph/LinkedDataHub/scripts" How to get involved * contribute a new LDH application or modify one of ours * work on good first issues * work on the features in our Roadmap * join our community Test suite LinkedDataHub includes an HTTP test suite. The server implementation is also covered by the Processor test suite. HTTP-tests HTTP-tests Dependencies Browser * Saxon-JS * SPARQLMap * Google Maps * Google Charts Java * Jersey * XOM * JavaMail * Guava * java-jwt * ExpiringMap * CSV2RDF * Processor * Web-Client Docker * atomgraph/nginx * atomgraph/fuseki * atomgraph/varnish * namshi/smtp Support Please report issues if you've encountered a bug or have a feature request. Commercial consulting, development, and support are available from AtomGraph. Community * linkeddatahub@groups.io (mailing list) * @atomgraphhq on Twitter * AtomGraph on LinkedIn * W3C Declarative Linked Data Apps Community Group About The Knowledge Graph notebook. Apache license. atomgraph.github.io/linkeddatahub/ Topics platform framework linked-data sparql data-driven rdf xslt declarative semantic-web owl webid knowledge-graph openid-connect data-management triplestore linked-open-data low-code ontology-driven-development Resources Readme License Apache-2.0 license Stars 244 stars Watchers 11 watching Forks 69 forks Releases 63 tags Packages 0 No packages published Contributors 4 * * * * Languages * XSLT 35.4% * Java 31.7% * JavaScript 18.8% * Shell 10.2% * CSS 3.2% * HTML 0.5% * Dockerfile 0.2% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.