openapi: 3.0.1 info: title: Stardog HTTP Checkpoints Virtual Graphs API description: "# Overview\nStardog supports the standard SPARQL Protocol HTTP bindings, as well as additional functionality via HTTP.\nStardog also supports SPARQL 1.1’s Service Description format. See the [spec](https://www.w3.org/TR/sparql11-service-description/) if you want details.\n### Generating URLs\nIf you are running the HTTP server at\n\n ```http://localhost:12345```\n\nTo form the URI of a particular Stardog Database, the Database Short Name is the first URL path segment appended to the deployment URI. For example, for the Database called `cytwombly`, deployed in the above example HTTP server, the Database Network Name might be\n\n```http://localhost:12345/cytwombly```\n\nAll the resources related to this database are identified by URL path segments relative to the Database Network Name; hence:\n\n```http://localhost:12345/cytwombly/size```\n# Error Codes\nHere are explanations of what the various error codes mean:\n\nError Code | Category | Meaning\n-----------|----------|---------\n000012 | GENERIC |UNKNOWN\n000IA2 | GENERIC |ILLEGAL_ARGUMENT\n000SD4 | GENERIC |SHUTTING_DOWN\n00PCE2 | GENERIC |PROCESS_CANCELLED\n00PE2 | GENERIC |PROCESS_EXISTS\n00PNE2 | GENERIC |PROCESS_NOT_FOUND\n00UOE2 | GENERIC |UNSUPPORTED_OPERATION\n0D0012 | DATABASE |UNKNOWN_DATABASE_EXCEPTION\n0D0CE3 | DATABASE |DATABASE_CONSISTENCY_EXCEPTION\n0D0DC2 | DATABASE |DATABASE_CONFLICT\n0D0DE2 | DATABASE |DATABASE_EXISTS\n0D0DU2 | DATABASE |DATABASE_UNKNOWN\n0D0TU2 | DATABASE |TRANSACTION_UNKNOWN\n0DICC2 | DATABASE |INVALID_CONFIGURATION\n0DIDN2 | DATABASE |INVALID_DATABASE_NAME\n0DIDS2 | DATABASE |INVALID_DATABASE_STATE\nCLNIC3 | CLUSTER_ERROR |NOT_IN_CLUSTER\nCLOEF3 | CLUSTER_ERROR |EXPEL_FAILED\nHS0012 | HTTP |UNKNOWN_CONNECTION_EXCEPTION\nHSJSE2 | HTTP |JSON_SYNTAX_EXCEPTION\nHSJSO2 | HTTP |JSON_EXCEPTION\nHSSSL3 | HTTP |SSL_EXCEPTION\nQE0012 | QUERY_EXECUTION |UNKNOWN_QUERY_EXCEPTION\nQE0FE2 | QUERY_EXECUTION |FUNCTION_EXISTS\nQE0PE2 | QUERY_EXECUTION |PARSE_EXCEPTION\nQE0QE2 | QUERY_EXECUTION |QUERY_EXISTS\nQECTP2 | QUERY_EXECUTION |CANNOT_TRANSLATE_PLAN\nQEFNF2 | QUERY_EXECUTION |FUNCTION_NOT_FOUND\nQEIQT2 | QUERY_EXECUTION |INVALID_QUERY_TYPE\nQEIVR2 | QUERY_EXECUTION |INVALID_RDF\nQEMAQ2 | QUERY_EXECUTION |MALFORMED_QUERY\nQEONS2 | QUERY_EXECUTION |OPERATION_NOT_SUPPORTED\nQEQNF2 | QUERY_EXECUTION |QUERY_NOT_FOUND\nQEQOE2 | QUERY_EXECUTION |OPERATOR_EXCEPTION\nQEQPE2 | QUERY_EXECUTION |QUERY_PARSE_EXCEPTION\nQEWCE2 | QUERY_EXECUTION |WRITE_CONFLICT_EXCEPTION\nSE0012 | SECURITY |UNKNOWN_SECURITY_EXCEPTION\nSE0IP2 | SECURITY |ILLEGAL_PASSWORD\nSE0RE2 | SECURITY |SECURITY_RESOURCE_EXISTS\nSEAEE2 | SECURITY |AUTHENTICATION_EXCEPTION\nSEAOE2 | SECURITY |AUTHORIZATION_EXCEPTION\nSEIPT2 | SECURITY |INCORRECT_PRINCIPAL_TRANSACTION\nSERIU2 | SECURITY |SECURITY_RESOURCE_IN_USE\nSERNF2 | SECURITY |SECURITY_RESOURCE_NOT_FOUND\nSERNI2 | SECURITY |SECURITY_RESOURCE_NAME_INVALID\nSERTI2 | SECURITY |SECURITY_RESOURCE_TYPE_INVALID\nZK0013 | ZOOKEEPER_ERROR |ZOOKEEPER_UNKNOWN_EXCEPTION\nZK00U3 | ZOOKEEPER_ERROR |UNIMPLEMENTED\nZK0AE3 | ZOOKEEPER_ERROR |API_ERROR\nZK0AF3 | ZOOKEEPER_ERROR |AUTH_FAILED\nZK0BV3 | ZOOKEEPER_ERROR |BAD_VERSION\nZK0CE3 | ZOOKEEPER_ERROR |NO_CHILDREN_FOR_EPHEMERAL\nZK0CL3 | ZOOKEEPER_ERROR |CONNECTION_LOSS\nZK0CR3 | ZOOKEEPER_ERROR |ZOOKEEPER_CONNECTION_REFUSED\nZK0DI3 | ZOOKEEPER_ERROR |DATA_INCONSISTENCY\nZK0IA3 | ZOOKEEPER_ERROR |BAD_ARGUMENTS\nZK0ME3 | ZOOKEEPER_ERROR |MARSHALLING_ERROR\nZK0NA3 | ZOOKEEPER_ERROR |NO_AUTH\nZK0NE3 | ZOOKEEPER_ERROR |NODE_EXISTS\nZK0NN3 | ZOOKEEPER_ERROR |NO_NODE\nZK0OT3 | ZOOKEEPER_ERROR |OPERATION_TIMEOUT\nZK0RI3 | ZOOKEEPER_ERROR |RUNTIME_INCONSISTENCY\nZK0SE3 | ZOOKEEPER_ERROR |SYSTEM_ERROR\nZK0SM3 | ZOOKEEPER_ERROR |SESSION_MOVED\nZKEXS3 | ZOOKEEPER_ERROR |SESSION_EXPIRED\nZKIAL3 | ZOOKEEPER_ERROR |INVALIDACL\nZKICB3 | ZOOKEEPER_ERROR |INVALID_CALLBACK\nZKNEY3 | ZOOKEEPER_ERROR |NOT_EMPTY\nZKNRO3 | ZOOKEEPER_ERROR |NOT_READONLY\n" contact: url: https://stardog.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0 version: 12.0.3 x-logo: url: https://d33wubrfki0l68.cloudfront.net/66e9dcff51317cfc11b9f3d4ce2917a11ba81681/543c1/img/stardog-logo-optimized.svg servers: - url: http://localhost:5820 tags: - name: Virtual Graphs description: Operations for virtualizing structured data paths: /admin/virtual_graphs: get: tags: - Virtual Graphs summary: List virtual graphs operationId: listVGs responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_NAME_LIST' post: tags: - Virtual Graphs summary: Add virtual graph operationId: addVG requestBody: $ref: '#/components/requestBodies/VIRTUAL_GRAPH_CREATE' responses: '201': description: Virtual graph created /admin/virtual_graphs/{name}/database: get: tags: - Virtual Graphs summary: Get database description: Get the database associated with a virtual graph operationId: getVGDatabase parameters: - $ref: '#/components/parameters/name_vg' responses: '200': description: Operation successful content: text/plain: schema: type: string description: The database name, or * if one was not specified '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/{name}/online: post: tags: - Virtual Graphs summary: Online virtual graph operationId: onlineVG parameters: - $ref: '#/components/parameters/name_vg' responses: '204': description: Virtual graph onlined '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/import: post: tags: - Virtual Graphs summary: Import file description: Import a CSV or JSON file as a virtual graph into the knowledge graph operationId: importFileVG requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_IMPORT_FILE' responses: '200': description: File imported successfully /admin/virtual_graphs/{name}: put: tags: - Virtual Graphs summary: Update virtual graph operationId: updateVG parameters: - $ref: '#/components/parameters/name_vg' requestBody: $ref: '#/components/requestBodies/VIRTUAL_GRAPH_UPDATE' responses: '201': description: Virtual graph updated delete: tags: - Virtual Graphs summary: Delete virtual graph operationId: deleteVG parameters: - $ref: '#/components/parameters/name_vg' responses: '204': description: Virtual graph deleted '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/{name}/options: get: tags: - Virtual Graphs summary: Get virtual graph options operationId: getVGOptions parameters: - $ref: '#/components/parameters/name_vg' responses: '200': description: Operation successful content: '*/*': schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_OPTIONS' '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/{name}/mappingsString/{syntax}: get: tags: - Virtual Graphs summary: Get mappings operationId: getVgMappingsForSyntax parameters: - $ref: '#/components/parameters/name_vg' - name: syntax in: path description: The desired RDF syntax of the mappings (R2RML or SMS) required: true schema: type: string responses: '200': description: Virtual graph mappings as RDF content: text/turtle: schema: type: String examples: GENERIC_TURTLE: description: GENERIC_TURTLE value: null $ref: '#/components/examples/GENERIC_TURTLE' application/trig: schema: type: String examples: GENERIC_TRIG: description: GENERIC_TRIG value: null $ref: '#/components/examples/GENERIC_TRIG' application/rdf+xml: schema: type: String examples: GENERIC_RDFXML: description: GENERIC_RDFXML value: null $ref: '#/components/examples/GENERIC_RDFXML' application/n-triples: schema: type: String examples: GENERIC_NTRIPLES: description: GENERIC_NTRIPLES value: null $ref: '#/components/examples/GENERIC_NTRIPLES' application/n-quads: schema: type: String examples: GENERIC_NQUADS: description: GENERIC_NQUADS value: null $ref: '#/components/examples/GENERIC_NQUADS' application/ld+json: schema: $ref: '#/components/schemas/GENERIC_JSONLD' '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/import_db: post: tags: - Virtual Graphs summary: Import virtual graph description: Import (materialize) a virtual graph directly into the local knowledge graph operationId: importDb requestBody: content: application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_IMPORT' required: true responses: '204': description: Virtual graph imported /admin/virtual_graphs/list: get: tags: - Virtual Graphs summary: List virtual graphs' info operationId: virtualGraphInfos responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_LIST' /admin/virtual_graphs/{name}/available: get: tags: - Virtual Graphs summary: Available description: Returns whether or not the virtual graph is available operationId: vgAvailable parameters: - $ref: '#/components/parameters/name_vg' responses: '200': description: Operation successful content: text/plain: {} application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_AVAILABLE' '404': $ref: '#/components/responses/NAME_VG_404' /admin/virtual_graphs/{name}/info: get: tags: - Virtual Graphs summary: Get virtual graph info operationId: virtualGraphInfo parameters: - $ref: '#/components/parameters/name_vg' responses: '200': description: Operation successful content: application/json: schema: $ref: '#/components/schemas/SINGLE_VIRTUAL_GRAPH_INFO' '404': $ref: '#/components/responses/NAME_VG_404' components: schemas: IMPORT_FILE_OPTIONS: properties: csv.separator: type: string description: For CSV import, a single-character separator default: ',' csv.quote: type: string description: For CSV import, a single character used to encapsulate values containing special characters default: '"' csv.header: type: boolean description: For CSV import, should the import process read the header row? default: true csv.skip.empty: type: boolean description: For CSV import, should empty values be skipped? default: true csv.class: type: string description: For CSV import, which class should imported rows be members of? csv.hash.function: type: string description: 'For CSV import, which hash function should be used when the # notation is used?' default: SHA1 unique.key.sets: type: string description: 'For data sources that do not express unique constraints in their metadata, either because unique constraints are not supported or because the data source did not include some or all of the valid constraints for reasons such as performance concerns, this property is used to define additional constraints manually. The property value is a comma-separated list of keys that define unique rows in a table. Each key is itself a comma-separated list of schema-qualified columns, enclosed in parentheses. For example, if table `APP.CUSTOMERS` has an `ID` column that serves as a primary key and a pair of columns, `FNAME` and `LNAME`, that together are a unique key, the value to express that is: `(APP.CUSTOMERS.ID),(APP.CUSTOMERS.FNAME,APP.CUSTOMERS.LNAME)`' externalDocs: url: https://docs.stardog.com/virtual-graphs/virtual-graph-configuration#virtual-graph-properties VIRTUAL_GRAPH: required: - name - available properties: name: type: string database: type: string available: type: boolean VIRTUAL_GRAPH_NAME_LIST: required: - virtual_graphs properties: virtual_graphs: type: array items: type: string example: virtual://myVG GENERIC_JSONLD: properties: '@id': type: string example: urn:example:Entity1 '@type': type: string example: urn:example:Entity urn:example:hasProp: required: - '@id' type: array items: required: - '@value' properties: '@type': type: string example: http://www.w3.org/2001/XMLSchema#integer '@value': type: string example: '42' VIRTUAL_GRAPH_IMPORT: required: - db - mappings - named_graph - remove_all - options properties: db: type: string description: The database into which to import the graph mappings: type: string data_source: type: string named_graph: type: string remove_all: type: boolean description: Should the target named graph be cleared before importing? options: $ref: '#/components/schemas/VIRTUAL_GRAPH_OPTIONS' VIRTUAL_GRAPH_IMPORT_FILE: required: - database - mappings - options - input_file_type - input_file properties: database: type: string description: The database into which to import the file mappings: type: string options: $ref: '#/components/schemas/IMPORT_FILE_OPTIONS' named_graph: type: string format: URI input_file_type: type: string enum: - JSON - DELIMITED input_file: type: string VIRTUAL_GRAPH_AVAILABLE: required: - available properties: available: type: boolean SINGLE_VIRTUAL_GRAPH_INFO: required: - info properties: info: $ref: '#/components/schemas/VIRTUAL_GRAPH' VIRTUAL_GRAPH_OPTIONS: properties: base: type: string description: Base IRI used to resolve relative IRIs from virtual graphs format: URI jdbc.url: type: string description: The URL of the JDBC connection jdbc.username: type: string description: The username used to make the JDBC connection jdbc.password: type: string description: The password used to make the JDBC connection jdbc.driver: type: string description: The driver class name used to make the JDBC connection. If omitted, driver will be taken from registered Service Providers. jdbc.statement.fetch.size: type: integer description: A hint as to the number of rows that should be fetched from the database at a time. Used to balance network traffic with memory use. format: int32 example: 42 mappings.syntax: type: string enum: - R2RML - SMS mappings.format: type: string description: For R2RML, the RDF format of the mappings mongodb.uri: type: string description: The URI for a MongoDB connection elasticsearch.rest.urls: type: string description: Whitespace-delimited list of connection `scheme://host:port` values for Elasticsearch. Scheme defaults to `http`. example: https://server1:9200 http://server2:9200 server3:9200 elasticsearch.indexes: type: string description: Optional comma-delimited list of indexes to make visible to the data source. Defaults to all indexes. example: my_index1,other_index elasticsearch.username: type: string elasticsearch.password: type: string cassandra.contact.point: type: string description: The address of the Cassandra node(s) that the driver uses to discover the cluster topology cassandra.port: type: integer description: The port to use to connect to the Cassandra host. format: int32 example: 42 default: 9042 cassandra.keyspace: type: string description: The Cassandra keyspace to use for this session cassandra.username: type: string description: The username for the Cassandra cluster cassandra.password: type: string description: The password for the Cassandra cluster cassandra.allow.filtering: type: boolean description: Whether to include the `ALLOW FILTERING` clause at the end of Cassandra CQL queries. Not recommended for production use. default: false sparql.url: type: string description: SPARQL query endpoint/connection string with database specified format: URI example: http://myhost:26023/testdb/query sparql.username: type: string description: The username to access the SPARQL endpoint sparql.password: type: string description: The password to access the SPARQL endpoint sparql.graphname: type: string description: The graph name on the SPARQL endpoint to be mapped as virtual graph sparql.statsbasedoptimization: type: boolean description: Whether to enable statistics-based optimization while accessing the SPARQL endpoint default: true parser.sql.quoting: type: string description: DB quoting convention used by the parser example: ANSI sql.functions: type: string description: A comma-separated list of SQL function names to register with the parser percent.encode: type: boolean description: Should IRI template strings be percent-encoded to be valid IRIs? default: true unique.key.sets: type: string description: 'For data sources that do not express unique constraints in their metadata, either because unique constraints are not supported or because the data source did not include some or all of the valid constraints for reasons such as performance concerns, this property is used to define additional constraints manually. The property value is a comma-separated list of keys that define unique rows in a table. Each key is itself a comma-separated list of schema-qualified columns, enclosed in parentheses. For example, if table `APP.CUSTOMERS` has an `ID` column that serves as a primary key and a pair of columns, `FNAME` and `LNAME`, that together are a unique key, the value to express that is: `(APP.CUSTOMERS.ID),(APP.CUSTOMERS.FNAME,APP.CUSTOMERS.LNAME)`' sql.dialect: type: string description: The format of the generated SQL, for use when using an unsupported JDBC driver example: MYSQL sql.schemas: type: string description: A comma-separated list of schemas to append to the schema search path sql.default.schema: type: string description: Override the default schema for the connected user default.mapping.include.tables: type: string description: A comma-separated list of tables to include when generating default mappings. Incompatible with `default.mapping.exclude.tables` default.mapping.exclude.tables: type: string description: A comma-separated list of tables to exclude when generating default mappings. Incompatible with `default.mapping.include.tables` schema.in.generated.mappings: type: boolean description: Whether to include the name of the schema (along with the table name) in the templates for IRIs when automatically generating mappings union.strategy: type: string description: Strategy for translating SPARQL UNION to SQL. For use when using an unsupported JDBC driver. enum: - COALESCED - EMBEDDED charset.handling: type: boolean description: Whether to prefix SQL NVARCHAR string literals with N. The default is dialect-dependent. For use when using an unsupported JDBC driver. additionalProperties: pattern: ext\..+ type: string description: Additional properties to pass directly to the JDBC driver externalDocs: url: https://docs.stardog.com/virtual-graphs/virtual-graph-configuration#virtual-graph-properties VIRTUAL_GRAPH_LIST: required: - virtual_graphs properties: virtual_graphs: type: array items: $ref: '#/components/schemas/VIRTUAL_GRAPH' VIRTUAL_GRAPH_UPDATE: required: - mappings properties: data_source: type: string db: type: string description: The database to associate with the virtual graph mappings: type: string description: The mappings from data source schema to RDF, or an empty string to generate the mappings options: $ref: '#/components/schemas/VIRTUAL_GRAPH_OPTIONS' VIRTUAL_GRAPH_CREATE: required: - name - mappings properties: name: type: string data_source: type: string db: type: string description: The database to associate with the virtual graph mappings: type: string description: The mappings from data source schema to RDF, or an empty string to generate the mappings options: $ref: '#/components/schemas/VIRTUAL_GRAPH_OPTIONS' requestBodies: VIRTUAL_GRAPH_CREATE: content: application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_CREATE' VIRTUAL_GRAPH_UPDATE: content: application/json: schema: $ref: '#/components/schemas/VIRTUAL_GRAPH_UPDATE' responses: NAME_VG_404: description: Virtual Graph does not exist content: text/plain: example: Virtual Graph does not exist examples: GENERIC_TRIG: value: "@prefix : .\n@prefix owl: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix stardog: .\n@prefix xsd: .\n\n{ \t a ;\n\t\t 42 .\n}" GENERIC_NQUADS: value: ' a . 42 .' GENERIC_RDFXML: value: "\n\n\n\n\t\n\t42\n\n\n" GENERIC_TURTLE: value: "@prefix : .\n@prefix owl: .\n@prefix rdf: .\n@prefix rdfs: .\n@prefix stardog: .\n@prefix xsd: .\n\n a ;\n\t 42 ." GENERIC_NTRIPLES: value: ' a . 42 .' parameters: name_vg: name: name in: path description: The name of the virtual graph required: true schema: type: string externalDocs: url: https://docs.stardog.com x-tagGroups: - name: Data Unification tags: - Data Sources - Virtual Graphs - name: Virtual Graphs External Compute tags: - Virtual Graphs External Compute - name: Server tags: - Monitoring - Stored Functions - Server Status/Metrics - Server Admin - Queries - Cluster Admin - name: Database tags: - Checkpoints - DB Admin - Integrity Constraints / SHACL - Data Caching - Graph Store Protocol - Matcher, aligning schemas from various data sources - Reasoning - Transactions - GraphQL - SPARQL - EntityResolution - name: Security tags: - Roles - Permissions - Users - name: Knowledge Catalog tags: - Knowledge Catalog