Buses and Actors


On this page

    This page gives an overview of all buses and actors that are used in the default Comunica engines, such as Comunica SPARQL and Comunica SPARQL File Other configurations such as Comunica SPARQL HDT contain additional actors and buses.

    This builds upon the core architecture of actors, mediators, and buses. An overview of how these buses and actors are connected can be found in the SPARQL architecture.

    Init

    Package: @comunica/bus-init

    All Comunica engines start here. This is where they accept generic input parameters, such as CLI arguments.

    Subscribed actors need to implement ActorInit.

    Actors

    NamePackageDescription
    Comunica SPARQL@comunica/actor-init-sparqlInitializes SPARQL query execution by parsing the given query, optimizing, executing, and serializing results.

    Context Preprocess

    Package: @comunica/bus-context-preprocess

    A bus in which actors can optionally modify the query context.

    Subscribed actors need to implement ActorContextPreprocess.

    Contains no actors yet.

    SPARQL Parse

    Package: @comunica/bus-sparql-parse

    Parsing an input query into SPARQL algebra.

    Subscribed actors need to implement ActorSparqlParse.

    Actors

    NamePackageDescription
    SPARQL Algebra@comunica/actor-sparql-parse-algebraUses SPARQLAlgebra.js for parsing SPARQL query strings into SPARQL algebra.
    GraphQL@comunica/actor-sparql-parse-graphqlParses GraphQL strings into SPARQL algebra following the GraphQL-LD approach.

    Optimize Query Operation

    Package: @comunica/bus-optimize-query-operation

    Apply optional optimizations to the SPARQL algebra before actual execution.

    Subscribed actors need to implement ActorOptimizeQueryOperation.

    Actors

    NamePackageDescription
    Join BGP@comunica/actor-optimize-query-operation-join-bgpMerges joins of multiple BGPs into a single BGP.

    Query Operation

    Package: @comunica/bus-query-operation

    Evaluates SPARQL algebra operations.

    Subscribed actors need to implement ActorQueryOperation or ActorQueryOperationTyped.

    Actors

    NamePackageDescription
    Ask@comunica/actor-query-operation-askHandles ASK operations.
    BGP empty@comunica/actor-query-operation-bgp-emptyHandles empty BGPs.
    BGP left deep smallest@comunica/actor-query-operation-bgp-left-deep-smallestHandles BGPs in a left-deep manner based on the pattern with the smallest item count.
    BGP left deep smallest sort@comunica/actor-query-operation-bgp-left-deep-smallest-sortHandles BGPs in a left-deep manner based on the pattern with the smallest item count and sorting by variable count in triple patterns.
    BGP single@comunica/actor-query-operation-bgp-singleHandles a BGP with one triple pattern.
    Construct@comunica/actor-query-operation-constructHandles CONSTRUCT operations.
    Describe subject@comunica/actor-query-operation-describe-subjectHandles DESCRIBE operations.
    Distinct hash@comunica/actor-query-operation-distinct-hashHandles DISTINCT operations through hashing.
    Extend@comunica/actor-query-operation-extendHandles EXTEND operations.
    Filter direct@comunica/actor-query-operation-filter-directHandles FILTER operations in a direct, but non-spec-compliant manner.
    Filter Sparqlee@comunica/actor-query-operation-filter-sparqleeHandles FILTER operations using Sparqlee
    From quad@comunica/actor-query-operation-from-quadhandles FROM operations by considering FROM and FROM NAMED as target graph elements in quads.
    Group@comunica/actor-query-operation-groupHandles GROUP BY operations.
    Join@comunica/actor-query-operation-joinHandles join operations by delegating to @comunica/bus-rdf-join.
    Left join left deep@comunica/actor-query-operation-leftjoin-left-deepHandles OPTIONAL operations in a left-deep manner.
    Left join nested loop@comunica/actor-query-operation-leftjoin-nested-loopHandles OPTIONAL operations in a nested loop manner.
    Minus@comunica/actor-query-operation-minusHandles MINUS operations.
    Order by direct@comunica/actor-query-operation-orderby-directHandles ORDER BY operations in a direct, but non-spec-compliant manner.
    Order by Sparqlee@comunica/actor-query-operation-orderby-sparqleeHandles ORDER BY operations using Sparqlee
    Path Alt@comunica/actor-query-operation-path-altHandles alt property path expressions.
    Path Inv@comunica/actor-query-operation-path-invHandles inv property path expressions.
    Path Link@comunica/actor-query-operation-path-linkHandles link property path expressions.
    Path Nps@comunica/actor-query-operation-path-npsHandles nps property path expressions.
    Path One or more@comunica/actor-query-operation-path-one-or-moreHandles one-or-more property path expressions.
    Path Seq@comunica/actor-query-operation-path-seqHandles seq property path expressions.
    Path Zero or more@comunica/actor-query-operation-path-zero-or-moreHandles zero-or-more property path expressions.
    Path Zero or one@comunica/actor-query-operation-path-zero-or-oneHandles zero-or-one property path expressions.
    Project@comunica/actor-query-operation-projectHandles SELECT operations.
    Quad pattern@comunica/actor-query-operation-quadpatternHandles triple/quad patterns.
    Reduced hash@comunica/actor-query-operation-reduced-hashHandles REDUCED operations through hashing.
    Service@comunica/actor-query-operation-serviceHandles SERVICE operations.
    Slice@comunica/actor-query-operation-sliceHandles LIMIT and OFFSET operations.
    SPARQL endpoint@comunica/actor-query-operation-sparql-endpointDelegates a full SPARQL query to a SPARQL endpoint if there is only a single SPARQL endpoint source.
    Union@comunica/actor-query-operation-unionHandles UNION operations.
    Values@comunica/actor-query-operation-valuesHandles VALUES operations.

    SPARQL Serialize

    Package: @comunica/bus-sparql-serialize

    Serializes the query result into a text-based serialization.

    Subscribed actors need to implement ActorSparqlSerialize.

    Actors

    NamePackageDescription
    JSON@comunica/actor-sparql-serialize-jsonSerializes to a simple JSON format.
    RDF@comunica/actor-sparql-serialize-rdfSerializes to an RDF format by delegating to @comunica/bus-rdf-serialize.
    Simple@comunica/actor-sparql-serialize-simpleSerializes to a simple format.
    SPARQL CSV@comunica/actor-sparql-serialize-sparql-csvSerializes to SPARQL/CSV.
    SPARQL JSON@comunica/actor-sparql-serialize-sparql-jsonSerializes to SPARQL/JSON.
    SPARQL TSV@comunica/actor-sparql-serialize-sparql-tsvSerializes to SPARQL/TSV.
    SPARQL XML@comunica/actor-sparql-serialize-sparql-xmlSerializes to SPARQL/XML.
    Stats@comunica/actor-sparql-serialize-statsSerializes basic statistics.
    Table@comunica/actor-sparql-serialize-tableSerializes in a simple table format.
    Tree@comunica/actor-sparql-serialize-treeSerializes to a JSON tree.

    RDF Serialize

    Package: @comunica/bus-rdf-serialize

    Serializes quads to an RDF serialization format.

    Subscribed actors need to implement ActorRdfSerialize.

    Actors

    NamePackageDescription
    JSON-LD@comunica/actor-rdf-serialize-jsonldSerializes to JSON-LD.
    N3@comunica/actor-rdf-serialize-n3Serializes to Turtle, Trig, N-triples, or N-Quads.

    RDF Join

    Package: @comunica/bus-rdf-join

    Handles joining of bindings streams.

    Subscribed actors need to implement ActorRdfJoin.

    Actors

    NamePackageDescription
    Hash@comunica/actor-rdf-join-jsonldHash join.
    Multi sequential@comunica/actor-rdf-join-multi-sequentialMulti-join by just picking the two of them hierarchically.
    Multi smallest@comunica/actor-rdf-join-multi-smallestMulti-join by always picking the first two streams with smallest estimate cardinality.
    Nested loop@comunica/actor-rdf-join-nestedloopNested loop join.
    Symmetric hash@comunica/actor-rdf-join-symmetrichashSymmetric hash join.

    RDF Resolve Quad Pattern

    Package: @comunica/bus-rdf-resolve-quad-pattern

    Translates a quad pattern into a stream of quad.

    Subscribed actors need to implement ActorRdfResolveQuadPattern.

    Actors

    NamePackageDescription
    Federated@comunica/actor-rdf-resolve-quad-pattern-federatedTranslates the array of sources in the query context into the union of quad streams by resolving each source separately in the RDF Resolve Quad Pattern bus.
    Hypermedia@comunica/actor-rdf-resolve-quad-pattern-hypermediaResolves the quad stream of a resource by interpreting hypermedia links and controls.
    RDF/JS Source@comunica/actor-rdf-resolve-quad-pattern-rdfjs-sourceResolves the quad stream from an RDF/JS Source

    RDF Dereference

    Package: @comunica/bus-rdf-dereference

    Dereferences a path or URL into a stream of quads.

    Subscribed actors need to implement ActorRdfDereference.

    Actors

    NamePackageDescription
    File@comunica/actor-rdf-dereference-fileDereferences RDF from a local file. Invokes parsing with @comunica/bus-rdf-parse.
    HTTP@comunica/actor-rdf-dereference-http-parseDereferences RDF from a remote file. Invokes parsing with @comunica/bus-rdf-parse, and HTTP lookups with @comunica/bus-http.

    RDF Parse

    Package: @comunica/bus-rdf-parse

    Parses quads from a serialization format.

    Subscribed actors need to implement ActorRdfParse.

    Actors

    NamePackageDescription
    HTML@comunica/actor-rdf-parse-htmlParses HTML documents by delegating to @comunica/bus-rdf-parse-html.
    JSON-LD@comunica/actor-rdf-parse-jsonldParses JSON-LD.
    N3@comunica/actor-rdf-parse-n3Parses Turtle, Trig, N-triples, or N-Quads.
    RDF/XML@comunica/actor-rdf-parse-rdfxmlParses RDF/XML.
    XML RDFa@comunica/actor-rdf-parse-xml-rdfaParses RDFa in XML.

    RDF Parse HTML

    Package: @comunica/bus-rdf-parse-html

    Parses quads from an HTML document.

    Subscribed actors need to implement ActorRdfParseHtml.

    Actors

    NamePackageDescription
    RDFa@comunica/actor-rdf-parse-html-rdfaParses RDFa.
    Script@comunica/actor-rdf-parse-html-scriptParses script tags and attempts to parse them by delegating to @comunica/bus-rdf-parse.

    HTTP

    Package: @comunica/bus-http

    Performs HTTP(S) requests.

    Subscribed actors need to implement ActorHttp.

    Actors

    NamePackageDescription
    Memento@comunica/actor-http-mementoImplements the Memento protocol.
    Native@comunica/actor-http-nativePerforms requests using Node's request library.
    Fetch@comunica/actor-http-fetchPerforms requests using the fetch API.
    Proxy@comunica/actor-http-proxyRun requests through a proxy.

    RDF Metadata

    Package: @comunica/bus-rdf-metadata

    Extracts the quads relevant for metadata from the stream of data quads.

    Subscribed actors need to implement ActorRdfMetadata.

    Actors

    NamePackageDescription
    All@comunica/actor-rdf-metadata-allConsiders all incoming quads as both data and metadata quads.
    Primary topic@comunica/actor-rdf-metadata-primary-topicSplits off the metadata based on the existence of a foaf:primaryTopic link.
    Triple predicate@comunica/actor-rdf-metadata-triple-predicateSplits off the metadata based on the existence of a preconfigured set of predicates with the page url as subject.

    RDF Metadata Extract

    Package: @comunica/bus-rdf-metadata-extract

    Create an object with metadata for a given metadata quad stream.

    Subscribed actors need to implement ActorRdfMetadataExtract.

    Actors

    NamePackageDescription
    Hydra Controls@comunica/actor-rdf-metadata-extract-hydra-controlsExtract controls using the Hydra vocabulary.
    Hydra Count@comunica/actor-rdf-metadata-extract-hydra-countExtract count estimates using the Hydra vocabulary.
    SPARQL Service@comunica/actor-rdf-metadata-extract-sparql-serviceExtract SPARQL service description metadata.

    Package: @comunica/bus-rdf-resolve-hypermedia-links

    Determines which links should be followed from the metadata of the current source.

    Subscribed actors need to implement ActorRdfResolveHypermediaLinks.

    Actors

    NamePackageDescription
    Next@comunica/actor-rdf-resolve-hypermedia-links-nextFollow next page links.

    RDF Resolve Hypermedia

    Package: @comunica/bus-rdf-resolve-hypermedia

    Handle a source based on the extracted metadata.

    Subscribed actors need to implement ActorRdfResolveHypermedia.

    Actors

    NamePackageDescription
    None@comunica/actor-rdf-resolve-hypermedia-noneThe source is considered a raw RDF file, for which all data quads matching the quad pattern are returned.
    QPF@comunica/actor-rdf-resolve-hypermedia-qpfThe source is considered a Triple/Quad Pattern Fragments interface.
    SPARQL@comunica/actor-rdf-resolve-hypermedia-sparqlThe source is considered a SPARQL endpoint if it has a service description, for which we use the SPARQL protocol.