返回 Skill 列表
extension
分类: 数据与分析无需 API Key

Data Twingler Skill for SQL, SPARQL, and GraphQL

通过 OpenLink 符合 OpenAPI 标准的 Web 服务,对实时数据空间和知识图谱执行 SQL、SPARQL、SPASQL、SPARQL-FED 和 GraphQL 查询。

person作者: kidehenhubclawhub

OpenLink Data Twingler (v2.0.83)

Enhances LLM responses with RAG by routing user intent to the right query language and live endpoint. Covers SQL, SPARQL, SPASQL, SPARQL-FED, and GraphQL — all driven by natural language, no imperative programming required.


Defaults & Settings

| Parameter | Value | |---|---| | SPARQL Default Endpoint | https://linkeddata.uriburner.com/sparql | | SPARQL Result Format | text/x-html+tr | | SPARQL / SQL Timeout | 30 seconds | | SPARQL Max Results | 20 (unless overridden) | | GraphQL Default Endpoint | https://linkeddata.uriburner.com/graphql | | GraphQL Query Depth Limit | 10 | | SQL Default | SELECT TOP 20 * FROM Demo.Demo.Customers | | Cache TTL | 3600 seconds | | Parallel Execution | Enabled | | Tabulate All Results | Yes (all query types) |


Query Language Routing

Execution Routing

Default execution order for query execution:

  1. Direct native endpoint calls with curl or the query protocol's simplest direct mechanism
  2. URIBurner REST functions such as sparqlRemoteQuery, sparqlQuery, graphqlEndpointQuery, graphqlQuery, execute_spasql_query, and execute_sql_query
  3. MCP via https://linkeddata.uriburner.com/chat/mcp/messages or https://linkeddata.uriburner.com/chat/mcp/sse
  4. Authenticated LLM-mediated execution via https://linkeddata.uriburner.com/chat/functions/chatPromptComplete
  5. OPAL Agent routing using recognizable OPAL function names

If the user's prompt expresses a protocol preference such as curl, REST, OpenAI, MCP, SSE, streamable HTTP, or OPAL, follow that preference instead of the default order.

Read references/protocol-routing.md when you need exact routing guidance.

SQL

Default: SELECT TOP 20 * FROM Demo.Demo.Customers Apply TOP 20 unless a row limit is specified. Tabulate results.

SPARQL

Use default endpoint. Format text/x-html+tr. Max 20 rows. Tabulate results.

SPARQL-FED

Trigger: User explicitly names a SPARQL endpoint URL in the prompt.

  • Named endpoint → SERVICE block (remote); default endpoint → outer processor.
  • SERVICE block must contain a SELECT with an inner LIMIT.

SPASQL

Wraps SPARQL inside SQL: FROM (SPARQL ... WHERE ...) AS <alias>

GraphQL

Endpoint: https://linkeddata.uriburner.com/graphql. Depth: 10. Introspection on.


Predefined Prompt Templates

Always load references/query-templates.md and match the user's intent to a template before falling back to general LLM knowledge. Substitute {placeholders}, run the index query first (where applicable), similarity-match ?name, then execute the final query.

| # | Trigger | Template in references/ | |---|---|---| | 1 | "Explore this Data Space" | T1 — Entire data space | | 2 | "Explore knowledge graph {G}" | T2 — Specific KG | | 3 | "Explore {G} with reasoning & inference" | T3 — KG + inference | | 4 | "Using endpoint {E}, explore graph {G}" | T4 — SPARQL-FED | | 5 | "How to {X}" | T5 — HowTo (2-step) | | 6 | "{Question}" with article/graph context | T6 — Q&A UNION (2-step) | | 7 | "Define the term {X}" | T7 — DefinedTerm (2-step) |


Functions (External Web Services)

| Function | Signature | Use Case | |---|---|---| | UB.DBA.sparqlQuery | (query, format) | SPARQL | | Demo.demo.execute_spasql_query | (sql, maxrows, timeout) | SPASQL | | UB.DBA.sparqlQuery | (sql, url) | SQL | | DB.DBA.graphqlQuery | (query) | GraphQL |

Call directly, or as fallback when predefined templates yield no match.

Canonical OPAL-recognizable function names from the Smart Agent definition are:

  • UB.DBA.sparqlQuery with signature (query, format) for SPARQL
  • Demo.demo.execute_spasql_query with signature (sql, maxrows, timeout) for SPASQL
  • UB.DBA.sparqlQuery with signature (sql, url) for SQL as documented in the canonical configuration
  • DB.DBA.graphqlQuery with signature (query) for GraphQL

Treat OPAL as an agent routing layer over these named functions, not merely another transport.


Entity Denotation in Results

Hyperlink all entity identifiers using:

http://linkeddata.uriburner.com/describe/?uri={url_encoded_id}
  • All URLs must be percent-encoded.
  • Include a citation section with hyperlinked source entity IDs.
  • Log all hyperlink formatting errors with detailed feedback.

Fallback Strategies

  1. Retry without @en language tags on ?name.
  2. Prompt for missing values: {G}, {Article Title}, ?authorName, etc.
  3. Iterate through additional input values to progressively refine results.
  4. If no protocol preference was stated, fall through in this order: direct native execution -> REST function execution -> MCP -> authenticated chatPromptComplete -> OPAL Agent routing.

Commands

| Command | Syntax | |---|---| | Update a setting | /update_settings [name] [value] | | Show all settings | /show_settings | | Run a test query | /test_query [type] [content] |


Rules (Non-Negotiable)

  1. Use predefined templates before general LLM knowledge.
  2. Optimize every query for performance and accuracy.
  3. Validate setting changes with test queries where possible.
  4. Handle errors gracefully with detailed, actionable feedback.
  5. Leverage caching (TTL 3600s) and parallel execution.
  6. Tabulate all query results by default.