HeFQUIN is a query federation engine for heterogeneous federations of graph data sources (e.g, federated knowledge graphs) that is currently under development by the Semantic Web research group at Linköping University.
For detailed information about HeFQUIN, refer to the Website at https://liusemweb.github.io/, where you can find
- a list of the features of HeFQUIN,
- a detailed user documentation,
- a list of related research publications,
- information for contributors, and more.
-
Setup via Docker
- Pull the image for the latest release by executing the following command:
docker pull ghcr.io/LiUSemWeb/hefquin:latest
- Thereafter, execute the following command to start the HeFQUIN service using Docker:
where
docker run \ -p 8080:8080 \ -v MyFedConf.ttl:/usr/local/tomcat/webapps/ROOT/DefaultFedConf.ttl \ hefquin:latest
- the
-p
argument specifies the port at which the service shall listen and - the
-v
argument refers to a file (e.g.,MyFedConf.ttl
) that contains an RDF-based description of your federation.
- the
- Next, continue at the point "Interacting with the HeFQUIN Service" below.
- Our documentation page about running HeFQUIN via Docker provides more details, including a description of how to build your own Docker image of HeFQUIN.
- Pull the image for the latest release by executing the following command:
-
Setup via the Embedded Servlet Container
- Download the ZIP package of the latest release of HeFQUIN, unpack it, enter the resulting directory in a command-line terminal and, then, execute the following command (which assumes that you have a relatively recent version of Java installed).
where
bin/hefquin-server --federationDescription=MyFedConf.ttl
MyFedConf.ttl
may be replaced by any file that contains an RDF-based description of your federation. - Next, continue at the point "Interacting with the HeFQUIN Service" below.
- Our documentation page about running HeFQUIN via the embedded servlet container provides more details, including a description of how to use the current developer version instead of a release.
- Moreover, you can also set up a HeFQUIN service via a separate servlet container.
- Download the ZIP package of the latest release of HeFQUIN, unpack it, enter the resulting directory in a command-line terminal and, then, execute the following command (which assumes that you have a relatively recent version of Java installed).
-
Interacting with the HeFQUIN Service
- After starting up the HeFQUIN service, you can first test it test by opening
http://localhost:8080/
in a Web browser (assuming that you have started the service at port 8080). - You can interact with the service like with a SPARQL endpoint (the endpoint should be exposed at
http://localhost:8080/sparql
). For instance, by using the command-line toolcurl
, you may execute the following command to issue the query in a file calledExampleQuery.rq
.curl -X POST http://localhost:8080/sparql --data-binary @ExampleQuery.rq -H 'Content-Type: application/sparql-query'
- Our documentation page about interacting with a HeFQUIN service provides more details.
- Moreover, you can read more about the queries and query features that you can use.
- After starting up the HeFQUIN service, you can first test it test by opening
- Download the ZIP package of the latest release of HeFQUIN, unpack it, enter the resulting directory in a command-line terminal and, then, execute the following command (which assumes that you have a relatively recent version of Java installed).
where
bin/hefquin --federationDescription=MyFedConf.ttl --query=ExampleQuery.rq
MyFedConf.ttl
may be replaced by any file that contains an RDF-based description of your federation andExampleQuery.rq
is a file that contains your query (see our documentation page about queries and query features that you can use).
- Our documentation page about the HeFQUIN command-line program describes all the possible arguments that you can use for the program.
- Our documentation page about setting up the HeFQUIN command-line programs provides more details on the setup process, including a description of how to use the current developer version instead of a release.
- Moreover, there are additional command-line programs that come with HeFQUIN.
- Assuming you use Maven as the build tool for your Java project, you can specify HeFQUIN as a dependency for your project simply by adding the following snippet to the
dependencies
section of your POM file (make sure to change the given version number to the version number of the HeFQUIN release you want to use).<dependency> <groupId>se.liu.research.hefquin</groupId> <artifactId>hefquin-engine</artifactId> <version>0.0.1</version> <!-- replace this by the version number of the HeFQUIN release to be used --> </dependency>
- After changing the POM file, you can run the following command in your Maven project to compile your project with the new dependency (or you refresh/reimport your Maven project in the IDE that you are using).
mvn clean compile
- Now you can use any of the Java interfaces and classes of HeFQUIN in the Java code of your project. You find information about these interfaces and classes in our Javadoc documentation.
- Our documentation page about integrating HeFQUIN into your Java code provides an overview on how to run queries over a federation from within your Java code.
- Our documentation page about adding HeFQUIN as a dependency to your Maven project provides more details on the setup process, including a description of how to use the current developer version instead of a release.