HTTP Sparql Out

Ldio:HttpSparqlOut

The HTTP SPARQL Out component can be used to write data to a SPARQL host, with Virtuoso as the most common known one.

Config

Property Description Required Default Example Supported values
endpoint The url of the sparql host Yes N/A http://localhost:8890/sparql URL
graph The graph whereto must be written No N/A http://example.graph.com String
skolemisation.skolemDomain If the skolem domain is set, skolemisation will be triggered before the triples are written to the sparql host No N/A http://example.org Any valid IRI
replacement.enabled Whether the old nodes must be replaced by the new ones No true false Boolean value
replacement.depth How deep the default delete query must delete nested nodes from the existing subject, will be ignored if replacement.deleteFunctionis set No 10 15 Integer
replacement.deleteFunction If this property is set, then the default delete function will be overridden with this delete function No N/A DELETE { ?s ?p ?o} WHERE { ?s ?p ?o } String

LDIO Http Requester properties

Authentication properties

Property Description Required Default Supported values Example
auth.type The type of authentication required by the LDES server No NO_AUTH NO_AUTH, API_KEY or OAUTH2_CLIENT_CREDENTIALS OAUTH2_CLIENT_CREDENTIALS
auth.api-key The api key when using auth.type ‘API_KEY’ No N/A String myKey
auth.api-key-header The header for the api key when using auth.type ‘API_KEY’ No X-API-KEY String X-API-KEY
auth.client-id The client identifier when using auth.type ‘OAUTH2_CLIENT_CREDENTIALS’ No N/A String myId
auth.client-secret The client secret when using auth.type ‘OAUTH2_CLIENT_CREDENTIALS’ No N/A String mySecret
auth.token-endpoint The token endpoint when using auth.type ‘OAUTH2_CLIENT_CREDENTIALS’ No N/A HTTP and HTTPS urls http://localhost:8000/token
auth.scope The Oauth2 scope when using auth.type ‘OAUTH2_CLIENT_CREDENTIALS’ No N/A HTTP and HTTPS urls http://localhost:8000/token

Retry properties

Property Description Required Default Supported values Example
retries.enabled Indicates if the http client should retry http requests when the server cannot be reached. No true Boolean value true
retries.max Max number of retries the http client should do when retries.enabled = true No 5 Integer 100
retries.statuses-to-retry Custom comma seperated list of http status codes that can trigger a retry in the http client. No N/A Comma seperated list of Integers 410,451

When retries are enabled, the following statuses are always retried, regardless of the configured statuses-to-retry:

  • 429
  • 5xx (500 and above)

Rate limit properties

Property Description Required Default Supported values Example
rate-limit.enabled Indicates if the http client should limit http requests when calling the server. No false true or false false
rate-limit.limit Limit of requests per period, which is defined below, that the http client should do when rate-limit.enabled = true No 500 Integer 100
rate-limit.period Period in which the limit of requests, which is defined above, can be reached by the http client when rate-limit.enabled = true No PT1M ISO 8601 Duration PT1H

Http headers

Property Description Required Default Supported values Example
http.headers.[].key/value A list of custom http headers can be added. A key and value has to be provided for every header. No N/A String role
Example Http Requester config
      config:
        http:
          headers:
            - key: role
              value: developer
            - key: alt-role
              value: programmer
        auth:
          type: API_KEY
          api-key: my-secret
          api-key-header: x-api-key
        retries:
          enabled: true
          max: 10
          statuses-to-retry: 410,451
        rate-limit:
          enabled: true
          period: P1D
          limit: 1000

Replacement

Replacement includes that all old nodes from certain subjects must be deleted before the new nodes with the same subject can be inserted.
By default, a delete query is constructed by the service that delete all nodes, including nested nodes to a level, specified by the replacement.depth property, deep. If for some reason, the constructed delete query is not sufficient, or the query is too complex, a custom delete query can be configured. This query will override the default query created by the service, which also mean the replacement.depth property will be ignored.

Skolemisation

Not all sparql hosts can deal that well with blank nodes, therefore, those nodes can first be skolemised. However, to skolemise nodes, a skolem domain is required, which can be set by the skolemisation.skolemDomain property, which directly enables the service. More information about skolemisation can be found on the skolemisation-transformer page