Interface MultiFunction

All Known Implementing Classes:
AbstractMultiFunction, AbstractMultiFunction1, AbstractNativeMultiFunction, SPARQLMultiFunction, TargetContainsMultiFunction

public interface MultiFunction
The base interface of (DASH) multi-functions. Multi-functions are procedures that take zero or more input variable bindings ("left hand side") and return zero or more output variable bindings, potentially with multiple variables per binding. They are similar to SPIN magic properties, yet more focused, see TBS-4117. In particular they only support the case where the values on the right hand side are computed from the values of the left hand side, not any other direction. The MultiFunction interface also defines functions to access metadata about the multi-function, for example for documentation generation purposes.
Author:
Holger Knublauch
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.jena.sparql.engine.QueryIterator
    execute(List<org.apache.jena.graph.Node> args, org.apache.jena.graph.Graph activeGraph, org.apache.jena.sparql.core.DatasetGraph dataset)
    Executes the multi-function for a given list of arguments.
    org.apache.jena.graph.Node
    Gets the API status.
    Gets human-readable documentation for the MultiFunction, e.g.
    Gets metadata about the declared parameters (based on sh:parameter).
    Gets metadata about the variables that will be produced for each solution (based on dash:resultVariable).
    Gets the URI of this MultiFunction, which can also be used for the SPARQL property function.
  • Method Details

    • execute

      org.apache.jena.sparql.engine.QueryIterator execute(List<org.apache.jena.graph.Node> args, org.apache.jena.graph.Graph activeGraph, org.apache.jena.sparql.core.DatasetGraph dataset)
      Executes the multi-function for a given list of arguments.
      Parameters:
      args - the argument values, matching the declared parameters from left to right
      activeGraph - the currently active query graph
      dataset - the DatasetGraph to operate on
      Returns:
      a QueryIterator with name-value pairs
    • getAPIStatus

      org.apache.jena.graph.Node getAPIStatus()
      Gets the API status.
      Returns:
      one of the instances of dash:APIStatus or null if this should not be used outside.
    • getDescription

      String getDescription()
      Gets human-readable documentation for the MultiFunction, e.g. for code generation.
      Returns:
      the description or null
    • getParameters

      List<MultiFunctionParameter> getParameters()
      Gets metadata about the declared parameters (based on sh:parameter).
      Returns:
      the parameters
    • getResultVars

      List<MultiFunctionParameter> getResultVars()
      Gets metadata about the variables that will be produced for each solution (based on dash:resultVariable).
      Returns:
      the result variables
    • getURI

      String getURI()
      Gets the URI of this MultiFunction, which can also be used for the SPARQL property function.
      Returns:
      the URI string