openapi: 3.0.1 info: title: OpenMetadata APIs Agent Executions RDF API description: Common types and API definition for OpenMetadata contact: name: OpenMetadata url: https://open-metadata.org email: openmetadata-dev@googlegroups.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: '1.13' servers: - url: /api description: Current Host - url: http://localhost:8585/api description: Endpoint URL security: - BearerAuth: [] tags: - name: RDF description: APIs for RDF and SPARQL operations paths: /v1/rdf/debug/glossary-relations: get: tags: - RDF summary: Debug glossary term relations in RDF description: Diagnostic endpoint to inspect what predicates are stored between glossary terms in the RDF store operationId: debugGlossaryRelations responses: '200': description: Debug information about glossary term relations content: application/json: {} '503': description: RDF service not enabled /v1/rdf/graph/explore: get: tags: - RDF summary: Explore entity graph description: Get graph data for an entity with relationships up to specified depth operationId: exploreEntityGraph parameters: - name: entityId in: query description: Entity ID required: true schema: type: string format: uuid - name: entityType in: query description: Entity type required: true schema: type: string - name: depth in: query description: Depth of relationships to explore schema: type: integer format: int32 default: 2 - name: entityTypes in: query description: Comma-separated entity types to keep in the graph schema: type: string - name: relationshipTypes in: query description: Comma-separated relationship types to keep in the graph schema: type: string responses: '200': description: Graph data with nodes and edges content: application/json: {} '404': description: Entity not found '503': description: RDF service not enabled /v1/rdf/graph/explore/export: get: tags: - RDF summary: Export explored entity graph description: Export the currently explored entity graph in Turtle or JSON-LD format operationId: exportEntityGraph parameters: - name: entityId in: query description: Entity ID required: true schema: type: string format: uuid - name: entityType in: query description: Entity type required: true schema: type: string - name: depth in: query description: Depth of relationships to explore schema: type: integer format: int32 default: 2 - name: entityTypes in: query description: Comma-separated entity types to keep in the graph schema: type: string - name: relationshipTypes in: query description: Comma-separated relationship types to keep in the graph schema: type: string - name: format in: query description: 'Export format: turtle or jsonld' schema: type: string default: turtle responses: '200': description: Entity graph exported successfully '400': description: Invalid request '503': description: RDF service not enabled /v1/rdf/glossary/{id}/export: get: tags: - RDF summary: Export glossary as ontology description: Export a glossary with all its terms and relationships as an ontology in RDF format (Turtle, RDF/XML, N-Triples, or JSON-LD). Includes SKOS vocabulary for semantic interoperability. operationId: exportGlossaryAsOntology parameters: - name: id in: path description: Glossary ID required: true schema: type: string format: uuid - name: format in: query description: RDF format (turtle, rdfxml, ntriples, jsonld) schema: type: string default: turtle - name: includeRelations in: query description: Include term relations schema: type: boolean default: true responses: '200': description: Glossary exported as ontology content: text/turtle: {} application/rdf+xml: {} application/n-triples: {} application/ld+json: {} '404': description: Glossary not found '503': description: RDF service not enabled /v1/rdf/search/similar/{entityType}/{id}: get: tags: - RDF summary: Find similar entities description: Find entities similar to the given entity using semantic analysis operationId: findSimilarEntities parameters: - name: entityType in: path description: Entity type required: true schema: type: string - name: id in: path description: Entity ID required: true schema: type: string format: uuid - name: limit in: query description: Maximum number of results schema: type: integer format: int32 default: 10 responses: '200': description: Similar entities content: application/json: {} '404': description: Entity not found '503': description: Service unavailable /v1/rdf/entity/{entityType}/{id}: get: tags: - RDF summary: Get entity as RDF description: Retrieve an entity in RDF format (JSON-LD, Turtle, RDF/XML, N-Triples) operationId: getEntityAsRdf parameters: - name: entityType in: path description: Entity type required: true schema: type: string - name: id in: path description: Entity id required: true schema: type: string format: uuid - name: format in: query description: RDF format schema: type: string default: jsonld responses: '200': description: Entity in requested RDF format content: application/ld+json: {} text/turtle: {} application/rdf+xml: {} application/n-triples: {} '404': description: Entity not found '503': description: RDF service not enabled /v1/rdf/inference/lineage/{entityId}: get: tags: - RDF summary: Get full lineage with inference description: Get complete upstream and downstream lineage including transitive relationships operationId: getFullLineage parameters: - name: entityId in: path description: Entity ID required: true schema: type: string format: uuid - name: entityType in: query description: Entity type required: true schema: type: string - name: direction in: query description: Direction (upstream, downstream, both) schema: type: string default: both responses: '200': description: Lineage retrieved successfully '404': description: Entity not found /v1/rdf/glossary/graph: get: tags: - RDF summary: Get glossary term relationship graph description: Get all glossary terms and their relationships as a graph. Supports filtering by glossary and pagination for large datasets. operationId: getGlossaryTermGraph parameters: - name: glossaryId in: query description: Filter by glossary ID (UUID) schema: type: string format: uuid - name: relationTypes in: query description: Filter by relation types (comma-separated) schema: type: string - name: limit in: query description: Maximum number of terms to return schema: type: integer format: int32 default: 500 - name: offset in: query description: Offset for pagination schema: type: integer format: int32 default: 0 - name: includeIsolated in: query description: Include isolated terms (terms without relations) schema: type: boolean default: true responses: '200': description: Graph data with nodes and edges content: application/json: {} '503': description: RDF service not enabled /v1/rdf/status: get: tags: - RDF summary: Get RDF service status description: Check RDF service status including inference configuration operationId: getRdfStatus responses: '200': description: RDF service status with inference information content: application/json: {} /v1/rdf/search/recommendations/{userId}: get: tags: - RDF summary: Get personalized recommendations description: Get entity recommendations based on user's interaction history operationId: getRecommendations parameters: - name: userId in: path description: User ID required: true schema: type: string format: uuid - name: type in: query description: Entity type for recommendations schema: type: string - name: limit in: query description: Maximum number of results schema: type: integer format: int32 default: 10 responses: '200': description: Recommended entities content: application/json: {} '404': description: User not found '503': description: Service unavailable /v1/rdf/sparql: get: tags: - RDF summary: Execute SPARQL query via GET description: Execute a SPARQL query against the RDF store using GET method operationId: querySparqlGet parameters: - name: query in: query description: SPARQL query string required: true schema: type: string - name: format in: query description: Response format (json, xml, csv, tsv) schema: type: string default: json - name: inference in: query description: Enable inference/reasoning (none, rdfs, owl, custom) schema: type: string default: none responses: '200': description: Query executed successfully content: application/json: {} '400': description: Invalid query '500': description: Internal server error post: tags: - RDF summary: Execute SPARQL query via POST description: Execute a SPARQL query against the RDF store using POST method operationId: querySparqlPost requestBody: content: application/json: schema: $ref: '#/components/schemas/SparqlQuery' responses: '200': description: Query executed successfully content: application/json: {} '400': description: Invalid query '500': description: Internal server error /v1/rdf/search/semantic: get: tags: - RDF summary: Semantic search across entities description: Search for entities using semantic understanding and graph relationships operationId: semanticSearch parameters: - name: q in: query description: Search query required: true schema: type: string - name: type in: query description: Entity type to search schema: type: string example: table - name: limit in: query description: Maximum number of results schema: type: integer format: int32 default: 10 responses: '200': description: Search results content: application/json: {} '400': description: Invalid request '503': description: Service unavailable /v1/rdf/sparql/update: post: tags: - RDF summary: Execute SPARQL UPDATE description: Execute a SPARQL UPDATE operation (INSERT, DELETE, etc.) operationId: updateSparql requestBody: description: SPARQL UPDATE query content: application/json: schema: $ref: '#/components/schemas/SparqlQuery' required: true responses: '200': description: Update executed successfully '400': description: Invalid update query '403': description: Forbidden - insufficient permissions '500': description: Internal server error components: schemas: SparqlQuery: required: - query type: object properties: query: type: string format: type: string enum: - json - xml - csv - tsv - turtle - rdfxml - ntriples - jsonld timeout: maximum: 300000 exclusiveMaximum: false minimum: 0 exclusiveMinimum: false type: integer format: int32 defaultGraphUri: type: string format: uri namedGraphUri: type: array items: type: string format: uri inference: type: string enum: - none - rdfs - owl - custom securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: JWT