Silk is an open source framework for integrating heterogeneous data sources. The primary uses cases of Silk include:
- Generating links between related data items within different Linked Data sources.
- Linked Data publishers can use Silk to set RDF links from their data sources to other data sources on the Web.
- Applying data transformations to structured data sources.
General information about Silk can be found on the official website.
Community documentation is maintained in the doc folder.
- JDK 17
- Simple Build Tool (sbt)
- Yarn for React/JavaScript build pipeline (e.g. ^1.22.0)
- Node (e.g. ^14.17.0)
Downloading and installing sbt is not necessary as it is available from this directory. Depending on the operating system you may need to adapt the commands below to run it from the local directory, i.e., by using ./sbt
instead of sbt
- docker (version >=17.05-xx)
- Execute:
sbt "project workbench" run
- In your browser, navigate to 'http://localhost:9000'
- Build or pull the latest docker image:
- Build the docker image with:
(This maybe take some minutes) For a production build you can set following ENV variables when building the application artefact, e.g.
sbt universal:packageZipTarball docker build -t silkworkbench/silk-framework:latest .
BUILD_ENV=production GIT_DESCRIBE=$(git describe) sbt universal:packageZipTarball
- Pull the docker image via: docker pull silkworkbench/silk-framework
- Build the docker image with:
- Run the docker container with:
docker run -d --name silk-workbench -p 80:80 silkworkbench/silk-framework:latest
- In your browser, navigate to 'http://DOCKER_HOST:80'
- To make the userdata available from outside the docker container you can add a volume mount, therefore add
-v $PWD:/opt/silk/workspace
to the docker run command.
Example
docker run -d --name silk-workbench -v $PWD:/opt/silk/workspace -p 80:80 silkworkbench/silk-framework:latest
This will start a silk-workbench with a docker container and can be accessed via http port 80.
The default production configuration can be found in conf/defaultProduction.conf
. If you want
to use a different configuration add -v <PATH_TO_OTHER_CONFIG>:/opt/config/production.conf
to the docker run
command.
- Execute:
sbt "project workbench" universal:package-zip-tarball
- The package should be available in the folder
silk-workbench/target/universal
- Execute:
sbt "project workbench" war
- The package should be available in the folder
silk-workbench/target/
- Execute:
sbt "project singlemachine" assembly
- The package should be available in the folder
silk-tools/silk-singlemachine/target/scala-{version}
. - The generated jar can be executed with:
java -DconfigFile=<Silk-LSL file> [-DlinkSpec=<Interlink ID>] [-Dthreads=<threads>] [-DlogQueries=(true/false)] [-Dreload=(true/false)] -jar silk.jar