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 protocol
- fd: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 APIs
- fd: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 vocabularies
- fd: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 ;
            # ...
        ]
    ] .