Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

The low-code Knowledge Graph application platform. Apache license.

License

NotificationsYou must be signed in to change notification settings

AtomGraph/LinkedDataHub

 
 

Repository files navigation

LinkedDataHub (LDH) is open source software you can use to manage data, create visualizations and build apps on RDF Knowledge Graphs.

LinkedDataHub screenshots

What's new in LinkedDataHub v5? 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 FAIR data environment that can consume and collect Linked Data and SPARQL documents and follows theFAIR 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 completelydata-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 theGet started guide to LinkedDataHub. The setup and basic configuration sections are provided below and should get you running.

LinkedDataHub is also available as a free AWS Marketplace product!AWS Marketplace
It takes a few clicks and filling out a form to install the product into your own AWS account. No manual setup or configuration necessary!

Setup

Click to expand

Prerequisites

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=1COMPOSE_PROJECT_NAME=linkeddatahubPROTOCOL=httpsHTTP_PORT=81HTTPS_PORT=4443HOST=localhostABS_PATH=/OWNER_MBOX=john@doe.comOWNER_GIVEN_NAME=JohnOWNER_FAMILY_NAME=DoeOWNER_ORG_UNIT=My unitOWNER_ORGANIZATION=My orgOWNER_LOCALITY=CopenhagenOWNER_STATE_OR_PROVINCE=DenmarkOWNER_COUNTRY_NAME=DK
  3. Setup server's SSL certificates by running this from command line:
    ./bin/server-cert-gen.sh .env nginx ssl
    The script will create anssl sub-folder where the SSL certificates and/or public keys will be placed.
  4. Create the following secrets with certificate/truststore passwords:
    • secrets/client_truststore_password.txt
    • secrets/owner_cert_password.txt
    • secrets/secretary_cert_password.txtThe one you will need to remember in order to authenticate with LinkedDataHub using WebID client certificate isowner_cert_password.
  5. 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:
    • ssl
      • owner stores root owner's WebID certificate, keystore, and public key
      • secretary stores root application's WebID certificate, keystore, and public key
      • server stores the server's certificate (also used by nginx)
    • data where the triplestore(s) will persist RDF data
    • datasets where LDH persists agent metadata files
    • uploads where LDH stores content-hashed file uploadsIt should take up to half a minute as datasets are being loaded into triplestores. After a successful startup you should see periodic healtcheck requests being made to thehttps://localhost:4443/ns URL.
  6. Installssl/owner/keystore.p12 into a web browser of your choice (password is theowner_cert_password secret value)
    • 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 theKeychain Access tool (drag it to thelocal section).
    • Microsoft Edge: Does not support certificate management, you need to install the file into Windows.Read more here.
  7. For authenticated API access use thessl/owner/cert.pem HTTPS client certificate.If you are running Linux with user other thanroot, you might need to fix the certificate permissions because Docker bind mounts are owned byroot by default. For example:
    sudo setfacl -m u:$(whoami):r ./ssl/owner/*
  8. Openhttps://localhost:4443/ in the web browser or usecurl for API access, for example:
    curl -k -E ./ssl/owner/cert.pem:<your cert password> -H"Accept: text/turtle"'https://localhost:4443/'

Notes

  • There might go up to a minute before the web server is available because the nginx server depends on healthy LinkedDataHub and the healthcheck is done every 20s
  • You will likely get a browser warning such asYour connection is not private in Chrome orWarning: Potential Security Risk Ahead in Firefox due to the self-signed server certificate. Ignore it: clickAdvanced andProceed orAccept the risk to proceed.
    • If this option does not appear in Chrome (as observed on some MacOS), you can openchrome://flags/#allow-insecure-localhost, switchAllow invalid certificates for resources loaded from localhost toEnabled 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 tocreate it using Terminal however.
  • On Linux your user may need to be a member of thedocker 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 defaulthttps://localhost:4443/ to your own.

Lets usehttps://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=httpsHTTP_PORT=80HTTPS_PORT=443HOST=ec2-54-235-229-141.compute-1.amazonaws.comABS_PATH=/linkeddatahub/

ABS_PATH is required, even if it's just/.

Dataspaces

Dataspaces are configured inconfig/system.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 theurn: URI scheme, since LinkedDataHub application resources are not accessible under their own dataspace.

Secrets

Secrets used indocker-compose.yml:

owner_cert_password
Password of the owner's WebID certificate
secretary_cert_password
Password of the secretary's WebID certificate
client_truststore_password
Password of the client truststore
google_client_id
Google's OAuth client ID
Login with Google authentication is enabled when this value is provided
google_client_secret
Google's OAuth client secret

Environment

LinkedDataHub supports a range of configuration options that can be passed as environment parameters indocker-compose.yml. The most common ones are:

CATALINA_OPTS
Tomcat'scommand 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

The options are described in more detail in theconfiguration documentation.

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 willremove the persisted data and files as well as Docker volumes.

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 thebin subfolder. In order to use them, add thebin folder and its subfolders to the$PATH. For example:

export PATH="$(find bin -type d -exec realpath {}\;| tr'\n'':')$PATH"

If you will be using LinkedDataHub's CLI regurarly, add the above command to your shell profile.

⚠️ The CLI scripts internally useJena's CLI commands. Set up the Jena environment before running the scripts.

The environment variableJENA_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 toexport PATH="$PATH:$JENA_HOME/bin"

Sample applications

These demo applications can be installed into a LinkedDataHub instance usingmake install. You will need to provide the path to your WebID certificate as well as its password.

AI-Powered Automation

Web-Algebra enables AI agents to consume Linked Data and SPARQL as well as control and automate LinkedDataHub operations through natural language instructions.This innovative system translates human language into JSON-formatted RDF operations that can be executed against your LinkedDataHub instance.

Key capabilities:

  • Natural Language to RDF Operations: Translate complex instructions into executable semantic workflows
  • LLM Agent Integration: AI agents can compose and execute complex multi-step operations automatically
  • Atomic Execution: Complex workflows are compiled into optimized JSON "bytecode" that executes as a single unit
  • Model Context Protocol (MCP): Interactive tools for AI assistants to manage LinkedDataHub content

Example use cases:

Business Analytics:

Analyze quarterly sales performance from our Northwind dataset, identify the top 5 customers by revenue, and create an interactive dashboard showing regional sales trends with automated alerts for territories underperforming by more than 15%

FAIR Life Sciences Integration:

Query federated endpoints for protein interaction data from UniProt, gene expression profiles from EBI, and clinical trial outcomes from ClinicalTrials.gov, then integrate these datasets through SPARQL CONSTRUCT queries, create cross-references using shared identifiers, and embed the unified knowledge graph into an interactive research article with live data visualizations

Perfect for:

  • Business intelligence automation and reporting
  • Federated biomedical data integration and analysis
  • AI-assisted research data discovery and linking
  • Natural language interfaces to knowledge graphs
  • Intelligent data processing and monitoring pipelines

See theWeb-Algebra repository for setup instructions and examples of AI agents managing LinkedDataHub instances.

How to get involved

Test suite

LinkedDataHub includes an HTTPtest suite. The server implementation is also covered by theProcessor test suite.

HTTP-testsHTTP-tests

Dependencies

Browser

Java

Docker

Support

Pleasereport issues if you've encountered a bug or have a feature request.

Commercial consulting, development, and support are available fromAtomGraph.

Community

Packages

No packages published

Contributors6


[8]ページ先頭

©2009-2025 Movatter.jp