Silk Link Discovery Framework
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.
Documentation
Community documentation is maintained in the doc folder.
Requirements
Local build
- JDK 8
- Simple Build Tool (sbt)
- Yarn for React/JavaScript build pipeline (>= 1.3)
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 based build
- docker (version >=17.05-xx)
Running the Silk Workbench
- Execute:
sbt "project workbench" run
- In your browser, navigate to 'http://localhost:9000'
Running the Silk Workbench as docker container
- Build or pull the latest docker image:
- Build the docker image with:
docker build -t silkframework/silk-workbench:latest .
(This maybe take some minutes) - Pull the docker image via: docker pull silkframework/silk-workbench
- Build the docker image with:
- Run the docker container with:
docker run -d --name silk-workbench -p 80:80 silkframework/silk-workbench: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 silkframework/silk-workbench:latest
This will start a silk-workbench with a docker container and can be accessed via http port 80.
Packaging the Silk Workbench as archive
- Execute:
sbt "project workbench" universal:package-zip-tarball
- The package should be available in the folder
silk-workbench/target/universal
Packaging the Silk Workbench as WAR
- Execute:
sbt "project workbench" war
- The package should be available in the folder
silk-workbench/target/
Building a Silk Single Machine Jar
- 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