The Data Distribution API supports the following distributors.  These can be used in combination in a configuration file to define an action, parameters, and response.

NameDescription
HelloDistributorThe Hello World Demonstration
FileDistributorSends the contents of a file as an HTTP response
SelectingFileDistributorServes the contents of a file. Selects the file by extracting a value from the HTTP request, and using it to construct the file path.
SelectFromContentDistributorExecutes a SPARQL SELECT query against Vitro’s content triple-store, and returns the results in JSON format: application/sparql-results+json.
RdfGraphDistributorExecutes one or more GraphBuilder instances. Merges the results into an internal RDF graph, and returns that graph in Turtle format: text/turtle.
SelectFromGraphDistributorExecutes a SPARQL SELECT query against an internal RDF graph. The graph is created by merging the outputs of one or more GraphBuilder instances. The results are returned in JSON format: application/sparql-results+json.
EmptyGraphBuilderCreates an RDF graph containing no triples. Used for tests, examples, or placeholders.
ConstructQueryGraphBuilderExecutes SPARQL CONSTRUCT query(s) against Vitro’s content triple-store, and returns a model that contains the (merged) results.
IteratingGraphBuilderGraphBuilder decorator that runs one or more “child” builders multiple times, each time providing a different value for a specified request parameter. The results of all queries are merged into a local RDF graph.
DrillDownGraphBuilderGraphBuilder decorator that runs one or more “child” builders multiple times, each time providing a different value for a specified request parameter. The results of all queries are merged into a local RDF graph.
JavaScriptTransformDistributorA wrapper that uses a JavaScript function to transform the output of the wrapped distributor.

Adding Distributors

Additional distributors can be added.  See https://vivo-community.github.io/vivo-data-distribution-api