Describing Federations
This page explains how to describe data sources (federation members) and their access interfaces using the HeFQUIN Federation Description Vocabulary. These descriptions are used by the HeFQUIN query engine to understand how to access and integrate the data sources that should be made available to a given engine instance.
1. Basic Concepts
fd:FederationMember
: Represents a federation member (data source) that can be queried.fd:Interface
: Represents the access mechanism used to query a federation member.fd:interface
: A property linking a federation member to its interface.
2. Interface Types
Use one of the concrete subclasses of fd:Interface
to describe how to query the federation
member:
fd:SPARQLEndpointInterface
: For federation members accessible via the SPARQL protocolfd:TPFInterface
: For federation members accessible via Triple Pattern Fragments (TPF)fd:brTPFInterface
: For federation members accessible via Bindings-Restricted TPF (brTPF)fd:GraphQLEndpointInterface
: For federation members accessible via GraphQL APIsfd:BoltInterface
: For federation members accessible via the Bolt protocol (e.g., for Neo4j)
3. Key Properties
fd:endpointAddress
: URI of a federation member that can be accessed via a single HTTP endpoint (e.g., SPARQL and GraphQL endpoints)fd:exampleFragmentAddress
: Example URL of a fragment that can be used to access a specific subset of the dataset of a federation member (e.g., for TPF and brTPF interfaces)fd:vocabularyMappingsFile
: Link to an RDF file aligning different vocabulariesfd:mappingConfiguration
: Resource pointing to a mapping configuration for translating non-RDF data models (e.g., GraphQL, LPG) into RDF
4. Example Descriptions
SPARQL Endpoint
@prefix fd: <http://www.example.org/se/liu/ida/hefquin/fd#> .
@prefix ex: <http://example.org/> .
ex:dbpediaSPARQL
a fd:FederationMember;
fd:interface [
a fd:SPARQLEndpointInterface ;
fd:endpointAddress <http://dbpedia.org/sparql>
] .
TPF Interface
@prefix fd: <http://www.example.org/se/liu/ida/hefquin/fd#> .
@prefix ex: <http://example.org/> .
ex:dbpediaTPF
a fd:FederationMember;
fd:interface [
a fd:TPFInterface ;
fd:exampleFragmentAddress <http://fragments.dbpedia.org/2016-04/en>
] .
Neo4j Interface
@prefix fd: <http://www.example.org/se/liu/ida/hefquin/fd#> .
@prefix lpg2rdf: <http://w3id.org/hefquin/lpg2rdf#> .
@prefix ex: <http://example.org/> .
ex:neo4jTest
a fd:FederationMember ;
fd:interface [
a fd:BoltInterface ;
fd:endpointAddress ;
fd:mappingConfiguration [
a lpg2rdf:LPGToRDFConfiguration ;
# ...
]
] .