| name | linked-data-skills |
| title | Linked Data Skills |
| description | Generates Knowledge Graphs from two source types: (A) relational database objects via Virtuoso RDF Views, or (B) documents/text transformed to RDF using schema.org terms. PATH RDBMS ā STRICT 5-step workflow: ask local-vs-DSN, enumerate tables, resolve hostname, confirm IRI patterns, generate TBox+ABox+rewrite rules, verify with entity samples. PATH D ā 4-step workflow: collect document + {page_url} + format (JSON-LD or Turtle), generate RDF via prompt template, post- generation review (syntax fix, additional Q&A/entity types), save to user-designated folder. TOOL HIERARCHY: read queries use Demo.demo.execute_spasql_query; writes use EXECUTE_SQL_SCRIPT; RDF generation uses chatPromptComplete.
|
| version | 3.2.0 |
| type | skill |
| created | "2026-03-26T18:30:49.078Z" |
| updated | "2026-04-06T00:00:00.000Z" |
| tools | ["OAI.DBA.getSkillResource","ADM.DBA.database_schema_objects","Demo.demo.execute_spasql_query","OAI.DBA.RDFVIEW_ONTOLOGY_FROM_TABLES","OAI.DBA.RDFVIEW_FROM_TABLES","OAI.DBA.RDFVIEW_GENERATE_DATA_RULES","OAI.DBA.RDFVIEW_SYNC_TO_PHYSICAL_STORE","OAI.DBA.RDFVIEW_DROP_SCRIPT","OAI.DBA.RDF_AUDIT_METADATA","OAI.DBA.sparql_list_ontologies","OAI.DBA.sparqlRemoteQuery","OAI.DBA.sparql_list_entity_types_samples","OAI.DBA.sparql_list_entity_types_detailed","OAI.DBA.sparql_list_entity_types","OAI.DBA.R2RML_FROM_TABLES","OAI.DBA.R2RML_GENERATE_RDFVIEW","DB.DBA.graphqlQuery","OAI.DBA.graphqlEndpointQuery","OAI.DBA.SPONGE_URL","OAI.DBA.getAssistantConfiguration","ADM.DBA.database_remote_datasources","OAI.DBA.EXECUTE_SQL_SCRIPT","OAI.DBA.chatPromptComplete"] |
Linked Data Skills ā Specification (v3.2.0)
MANDATORY PRE-TOOL SEQUENCE ā READ BEFORE CALLING ANY TOOL
This section overrides all default tool-calling behavior. The five steps below must be followed in order. No step may be skipped or reordered.
Gate 1 ā Send announcement and establish scope (NO TOOL CALL YET)
getSkillResource may be called once to load this skill's content. After it returns, the next action must be text only ā send the Opening Announcement and ask the pathway question. Do not call any other tool. Wait for the user's reply.
- If the user says "Document", provides a URL (HTTP, HTTPS, or
file:), or pastes text ā Path D, proceed to Step 1D.
- If the user's message already contains an explicit
qualifier.schema pattern (e.g., postgres.postgres_jdbc_mt) ā record the qualifier and schema, send the announcement, then proceed to Gate 2.
- If the user says "local" or names a local qualifier ā Path B, proceed to Gate 2.
- If the user says "DSN: X" ā Path A, attach DSN, then proceed to Gate 2.
- If ambiguous ā send the Opening Announcement question. Wait. Do not call any tool.
Gate 2 ā Enumerate tables (ADM.DBA.database_schema_objects ONLY)
Call ADM.DBA.database_schema_objects with the confirmed qualifier to enumerate catalogs (a.k.a qualifiers or databases), schemas, then call again with each schema to enumerate tables. Present the full numbered list. Wait for the user's table selection. Typically, you want to list tables for the designated catalog.schema.
The only tool permitted at this gate is ADM.DBA.database_schema_objects. Do not call ADM.DBA.database_remote_datasources, RDFVIEW_FROM_TABLES, EXECUTE_SQL_SCRIPT, or any other tool.
Gate 3 ā Resolve hostname and protocol (BEFORE any IRI is written)
After the user selects tables, call Demo.demo.execute_spasql_query for DefaultHost and SSLPort. Derive {protocol} and {host}. These must be known before any IRI string is constructed.
Do not proceed to Gate 4 without concrete {protocol} and {host} values.
Gate 4 ā Present IRI patterns and await CONFIRM (NO GENERATION TOOL YET)
Present the IRI pattern table (Knowledge Graph IRI, Ontology Namespace, Entity IRI template, rewrite paths) derived from {protocol}, {host}, and iri_path_segment. Wait for the user to reply CONFIRM or OVERRIDE.
This gate is mandatory. It cannot be skipped unless the user has explicitly or implicitly indicated acceptance of defaults. Selecting tables is NOT authorization to generate scripts. The ONLY authorization to call RDFVIEW_FROM_TABLES, RDFVIEW_ONTOLOGY_FROM_TABLES, or RDFVIEW_GENERATE_DATA_RULES is a CONFIRM at this gate.
Gate 5 ā Generate, deploy, verify
Only after Gate 4 CONFIRM: generate Ontology and Knowledge Graph views, deploy rewrite rules, audit, verify with entity samples.
Skill Identity
| Field | Value |
|---|
| Name | linked-data-skills |
| Version | 3.2.0 |
| Purpose | Generate Knowledge Graphs from relational database objects (via Virtuoso RDF Views) or from documents/text (via schema.org RDF generation). |
| Scope | Path RDBMS: determine DB objects ā confirm IRI templates ā generate TBox+ABox views ā deploy via rewrite rules ā verify with entity samples. Path D: collect document + page_url + format ā generate RDF ā post-generation review ā save to folder. |
Tools Reference
Tool Usage Hierarchy
| Tier | When to use | Tools |
|---|
| 1 ā Read queries | Hostname resolution, SPARQL queries, ontology listing, quad map listing, entity sampling | Demo.demo.execute_spasql_query, OAI.DBA.sparql_list_ontologies, OAI.DBA.sparqlRemoteQuery |
| 2 ā Discovery | Schema and table enumeration | ADM.DBA.database_schema_objects |
| 3 ā Generation | Producing TBox/ABox scripts ā no writes | OAI.DBA.RDFVIEW_ONTOLOGY_FROM_TABLES, OAI.DBA.RDFVIEW_FROM_TABLES, OAI.DBA.RDFVIEW_GENERATE_DATA_RULES |
| 4 ā Write operations | Loading TBox/ABox, applying rewrite rules, DSN attachment (Path A only), dropping quad maps | OAI.DBA.EXECUTE_SQL_SCRIPT |
| 5 ā Audit | Integrity check on generation/deployment error; sanity check after successful deployment | OAI.DBA.RDF_AUDIT_METADATA |
| 6 ā Last resort | LLM-mediated fallback when all other tools fail | OAI.DBA.chatPromptComplete |
Execution Routing Order
When tool execution requires protocol selection, use this precedence:
- Native OAI.DBA tool execution ā call
OAI.DBA.* tools directly via the agent tool layer
- URIBurner / Demo REST function execution ā call via the REST API endpoint
- Terminal-owned OAuth flow ā when the endpoint requires OAuth 2.0 authentication, execute the OAuth flow from the terminal (authorization code, client credentials, or device flow), capture the Bearer token, and inject via
Authorization: Bearer {token} header into subsequent REST/OpenAPI calls
- MCP ā via streamable HTTP or SSE
- Authenticated
chatPromptComplete ā LLM-mediated fallback
- OPAL Agent routing ā via canonical OPAL-recognizable function names
If the user explicitly names a protocol, honor that preference. See references/protocol-routing.md for detailed guidance.
OAI.DBA.EXECUTE_SQL_SCRIPT must never be used for read queries or table enumeration. Use Demo.demo.execute_spasql_query for those.
Tool Inventory
| Tool | Role |
|---|
ADM.DBA.database_schema_objects | Primary discovery tool. Enumerate schemas and tables by qualifier. |
Demo.demo.execute_spasql_query | Primary read/query tool. Hostname resolution, SPARQL SELECT, SPASQL, UQ1 quad map listing. |
ADM.DBA.database_remote_datasources | ā Path A (DSN) ONLY. Do not call for local objects. |
OAI.DBA.RDFVIEW_ONTOLOGY_FROM_TABLES | Generate TBox ontology (OWL/Turtle) ā no writes. |
OAI.DBA.RDFVIEW_FROM_TABLES | Generate RDF View (ABox) script ā no writes. |
OAI.DBA.RDFVIEW_GENERATE_DATA_RULES | Generate Linked Data rewrite rules script ā no writes. |
OAI.DBA.R2RML_FROM_TABLES | Generate R2RML mappings ā no writes. |
OAI.DBA.R2RML_GENERATE_RDFVIEW | Generate RDF View from R2RML ā no writes. |
OAI.DBA.RDF_AUDIT_METADATA | Integrity check on error; sanity check after deployment. |
OAI.DBA.RDFVIEW_DROP_SCRIPT | Drop existing RDF View ā collision resolution and rollback. |
OAI.DBA.RDFVIEW_SYNC_TO_PHYSICAL_STORE | Sync RDF View to physical quad store. |
OAI.DBA.sparql_list_ontologies | Verify loaded ontologies in the quad store. |
OAI.DBA.sparqlRemoteQuery | Execute SPARQL against remote endpoints. |
OAI.DBA.sparql_list_entity_types_samples | Sample data from discovered entity types. |
OAI.DBA.sparql_list_entity_types_detailed | Detailed entity type discovery with column metadata. |
OAI.DBA.sparql_list_entity_types | Discover entity types in scope. |
DB.DBA.graphqlQuery | Execute GraphQL queries against Virtuoso. |
OAI.DBA.graphqlEndpointQuery | Execute GraphQL against a specific endpoint. |
OAI.DBA.SPONGE_URL | Fetch and ingest external URLs into the quad store. |
OAI.DBA.getAssistantConfiguration | Retrieve assistant/session configuration. |
OAI.DBA.getSkillResource | Retrieve skill resource files. |
OAI.DBA.EXECUTE_SQL_SCRIPT | ā ļø WRITE OPERATIONS ONLY. DSN attachment, loading TBox via DB.DBA.TTLP(), loading ABox, applying rewrite rules, dropping quad maps. Never for queries. |
OAI.DBA.chatPromptComplete | LLM-mediated fallback ā only when all other tools fail. |
Session Workflow
Opening Announcement
ā The very first action after getSkillResource loads this skill is to send the following announcement. Do not call any tool before this message is sent and the user has replied.
Linked Data Skills activated. I support two Knowledge Graph generation pathways:
Path RDBMS ā Database Tables (5-step workflow)
Step 1 ā Determine the database objects to use
Step 2 ā Confirm IRI templates before any script is generated
Step 3 ā Generate Ontology and Knowledge Graph views
Step 4 ā Deploy Linked Data via rewrite rules
Step 5 ā Verify with hyperlinked entity samples
Path D ā Document (4-step workflow)
Step 1D ā Collect document source, confirm {page_url}, output format, and destination folder
Step 2D ā Generate RDF (JSON-LD or Turtle) using schema.org terms
Step 3D ā Post-generation review: syntax fixes, additional Q&A / entity types
Step 4D ā Save approved RDF to designated folder
Are you working with Database Tables or a Document?
- Reply Database Tables (then: local qualifier or DSN)
- Reply Document (then: provide a URL or paste your text)
Wait for the user's reply. ā NEXT: Step 1.
Step 1 ā Determine DB Objects
ā CHECKPOINT 1 ā Do not call any tool until scope is established.
Database objects use three-part naming: qualifier.schema.object_name.
qualifier = database/catalog (e.g. postgres, Demo)
schema = schema/owner (e.g. postgres_jdbc_mt, demo)
object_name = table or view name
Only these prompt patterns resolve scope without asking:
"using DSN X" / "connect via DSN X" ā Path A (DSN attachment)
"local" / a bare qualifier name / qualifier.schema pattern ā Path B (local)
- Ambiguous ā send the Opening Announcement question and wait
Path A ā External (DSN attachment)
Attach the external database via OAI.DBA.EXECUTE_SQL_SCRIPT. Confirm the qualifier is enumerable before proceeding.
Path B ā Local
Qualifier is already accessible. Proceed directly to enumeration.
Enumeration
Call 1 ā Get schemas under qualifier:
ADM.DBA.database_schema_objects({
type: "TABLES",
qualifier: "{qualifier}",
format: "markdown"
})
Call 2 ā Get tables under each schema:
ADM.DBA.database_schema_objects({
type: "TABLES",
qualifier: "{qualifier}",
schema_filter: "{schema}",
format: "markdown"
})
Collect all results. Present as a numbered table grouped by schema:
# Type Object
āāā āāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
1 TABLE qualifier.schema.table_name_1
2 TABLE qualifier.schema.table_name_2
3 VIEW qualifier.schema.view_name_1
ā¦
Halt and wait for the user to select which objects to include.
"Please select the tables and views to include in the Knowledge Graph (by number, name, or 'all')."
Record the selected set as the working set.
ā After recording the working set, the ONLY permitted next action is to resolve the hostname. Do NOT call RDFVIEW_FROM_TABLES, RDFVIEW_ONTOLOGY_FROM_TABLES, RDFVIEW_GENERATE_DATA_RULES, or any generation tool. Selecting tables is NOT authorization to generate scripts.
Scripted response on table selection ā output this text exactly, then call the hostname query:
"Working set confirmed: [list the selected fully-qualified table names].
Resolving hostname and protocol from Virtuoso configuration."
Then immediately call Demo.demo.execute_spasql_query with:
SELECT cfg_item_value(virtuoso_ini_path(), 'URIQA', 'DefaultHost')
ā NEXT: Step 2.
Step 2 ā Confirm IRI Templates
ā CHECKPOINT 2 ā Do not call any generation tool until the user has replied CONFIRM.
2a ā Resolve hostname and protocol
Execute via Demo.demo.execute_spasql_query:
Hostname:
SELECT cfg_item_value(virtuoso_ini_path(), 'URIQA', 'DefaultHost')
- Bare hostname:
demo.openlinksw.com ā {host} = demo.openlinksw.com
- Host with port:
localhost:8890 ā {host} = localhost:8890
- Full URI with protocol: extract host and protocol separately
Protocol:
SELECT cfg_item_value(virtuoso_ini_path(), 'HTTPServer', 'SSLPort')
SSLPort returns a value ā {protocol} = https
SSLPort null/empty ā {protocol} = http
- If
DefaultHost already contains a protocol prefix, use that and skip this query.
Store {protocol} and {host}. All IRIs from this point must use {protocol}://{host}.
2b ā Collision checks (silent ā run before presenting to user)
- Run UQ1 ā if any proposed quad map IRI exists, offer: drop / rename / abort.
- Call
OAI.DBA.sparql_list_ontologies ā if proposed TBox graph IRI exists, offer: drop / rename / abort.
Resolve all conflicts before presenting to the user.
2c ā Present IRI patterns and await CONFIRM
ā This step is mandatory and must not be skipped. Do not proceed to Step 3 unless the user has explicitly replied CONFIRM, or has explicitly or implicitly indicated acceptance of the defaults (e.g., "use defaults", "proceed", "looks good").
Default iri_path_segment = {qualifier} (single path component, no / characters).
Using the concrete {protocol} and {host} values resolved in 2a, present the following table ā substituting actual values, no unresolved placeholders:
| Artifact | IRI |
|---|
iri_path_segment | {iri_path_segment} |
| Knowledge Graph IRI | {protocol}://{host}/{iri_path_segment}# |
| Ontology Namespace | {protocol}://{host}/schemas/{iri_path_segment}/ |
| Entity IRI template | {protocol}://{host}/{iri_path_segment}/{table}/{pk_col}/{value}#this |
| Knowledge Graph rewrite path | /{iri_path_segment} |
| Ontology rewrite path | /schemas/{iri_path_segment} |
ā ļø No scripts will be generated until you reply.
- Reply CONFIRM to proceed with these IRIs
- Reply OVERRIDE: iri_path_segment = {value} to use a different path segment
Wait for the user's reply. Do not call any tool.
Record the confirmed iri_path_segment. All actual IRIs are extracted from Step 3 tool output ā the table above shows the expected patterns for pre-approval.
ā NEXT: Step 3.
Step 3 ā Generate Ontology and Knowledge Graph Views
ā ļø Load references/workflow-details.md via getSkillResource before executing this step. It contains the exact tool call signatures for Steps 3, 4, and 5.
Generate all three artifacts using the confirmed iri_path_segment and working set:
- 3a ā Call
OAI.DBA.RDFVIEW_ONTOLOGY_FROM_TABLES ā Ontology (OWL/Turtle)
- 3b ā Call
OAI.DBA.RDFVIEW_FROM_TABLES ā Knowledge Graph RDF View script
- 3c ā Call
OAI.DBA.RDFVIEW_GENERATE_DATA_RULES ā Linked Data rewrite rules script
Nothing is written to the database during this step.
On any generation error: call OAI.DBA.RDF_AUDIT_METADATA (audit_level: 1) for an integrity check. See references/workflow-details.md for details.
Present all three generated artifacts to the user for review before proceeding.
ā NEXT: Step 4.
Step 4 ā Deploy Linked Data via Rewrite Rules
See references/workflow-details.md for exact execution signatures and rollback procedures.
Execute in sequence via OAI.DBA.EXECUTE_SQL_SCRIPT:
- 4a ā Validate all scripts (no unresolved placeholders, no empty arguments)
- 4b ā Load TBox ontology via
DB.DBA.TTLP() into the confirmed ontology graph IRI
- 4c ā Execute ABox RDF View script
- 4d ā Apply Linked Data rewrite rules script
- 4e ā Call
OAI.DBA.RDFVIEW_SYNC_TO_PHYSICAL_STORE
On error at any point: call OAI.DBA.RDF_AUDIT_METADATA (audit_level: 1), report findings, offer repair / rollback / abort.
After successful completion: call OAI.DBA.RDF_AUDIT_METADATA (audit_level: 1) as a post-deployment sanity check. Report result before proceeding.
ā NEXT: Step 5.
Step 5 ā Verify: Linked Data Compliance
ā Execute the query below immediately after the post-deployment audit. Do not ask the user, do not display a success message first. This call is mandatory.
Use {actual-abox-graph-iri} extracted from the Step 3b output ā from the graph iri(...) clause, substituting demo.openlinksw.com for ^{URIQADefaultHost}^ and stripping the trailing #.
Call Demo.demo.execute_spasql_query with this exact query (substitute the actual graph IRI before calling):
SPARQL
SELECT ?type
(SAMPLE(?entity) AS ?sampleEntity)
(COUNT(?entity) AS ?entityCount)
FROM <{actual-abox-graph-iri}>
WHERE {
?entity a ?type .
}
GROUP BY ?type
ORDER BY DESC(?entityCount)
If the query returns SR324 (transaction timeout), retry with LIMIT 100 added inside the WHERE clause.
Present results as a formatted table. Every IRI must be a clickable markdown hyperlink:
ā Every IRI in this table must come from query results. Never invent, guess, or construct entity IRIs. If all query attempts fail, report the error ā do not fabricate links.
If any IRI fails to dereference, report as a Linked Data compliance gap and investigate the rewrite rule from Step 4d.
Path D ā Document ā RDF ā Storage
Step 1D ā Collect source, format, and destination
ā No tool call until all four items are confirmed.
Collect from the user:
- Document source ā pasted text, an
http:/https: URL to fetch, or a file: URL to read from local disk
{page_url} ā used as @base in the generated RDF. Rules by source type:
- HTTP/HTTPS URL: default
{page_url} to the source URL and confirm
file: URL: ask the user whether to use the file: URL as-is or supply a canonical HTTP URL as @base. Inform the user that file: IRIs produce non-dereferenceable hash IRIs.
- Pasted text: ask the user to provide
{page_url} explicitly
- Output format ā default options: JSON-LD or Turtle. Honor any other format if explicitly stated.
- Destination folder path ā where the output file will be saved.
Record all four as session variables before proceeding.
ā NEXT: Step 2D.
Step 2D ā Generate RDF
Load references/document-to-knowledge-graph-prompt.md via getSkillResource. Substitute {page_url} and {selected_text} into the template, adjusting the opening line for the chosen format. Call OAI.DBA.chatPromptComplete with the fully substituted prompt.
Present the generated RDF as a code block.
ā NEXT: Step 3D.
Step 3D ā Post-generation review (mandatory)
Execute all four sub-tasks before presenting results to the user:
- Syntax check ā identify and fix all syntax errors in the generated RDF.
- Additional Q&A / defined terms / howtos ā present a list for user approval. Do not add until approved.
- Additional entity types ā present a list for user approval. Do not add until approved.
- Revised final output ā if any additions are approved, return the complete revised RDF incorporating originals plus approved additions.
Wait for user approval at each sub-task before proceeding.
ā NEXT: Step 4D.
Step 4D ā Save to folder
Write the approved RDF to the user-designated folder. Derive the filename from {page_url} by slugifying the path component and appending the appropriate extension:
| Format | Extension |
|---|
| JSON-LD | .jsonld |
| Turtle | .ttl |
| N-Triples | .nt |
| RDF/XML | .rdf |
Confirm the full saved file path to the user.
Optional HTML Infographic Companion For Path D
When the user asks for an HTML infographic companion to Path D RDF output, apply these requirements. For the complete specification see the rdf-infographic-skill SKILL.md.
- Save RDF documents to
{rdf-output-directory} and HTML infographics to {html-output-directory}. Confirm paths before saving.
- Use
{page_url} as the source-grounded namespace. Never use file: scheme IRIs when a canonical HTTPS URL exists.
- Resolver priority: URIBurner (
https://linkeddata.uriburner.com/describe/?uri={entity-iri}) by default; user-designated resolver if specified; or none if opted out.
- Encode
# as %23 exactly once. %2523 is invalid. Entity links open in new tabs.
- FAQ questions, FAQ answers, glossary terms, glossary definitions, HowTo section title, and every HowTo step heading are ALL hyperlinked to their KG entity IRIs.
- Local KG entities route through resolver. LOD Cloud cross-references (DBpedia, Wikidata) link directly.
- POSH link:
<link rel="related" href="../rdf/{rdf-file}" type="text/turtle">
- JSON-LD
relatedLink: {"@id": "../rdf/{rdf-file}"} ā IRI form, never a plain string literal.
- Skills attribution in footer:
Generated using <a href="https://github.com/OpenLinkSoftware/ai-agent-skills/tree/main/{skill-name}">skill-name</a>
- Collapse-to-header-bar floating navigation, draggable, resizable. Never persist collapsed dimensions. Recover from stale localStorage. Page-specific keys.
- Dark mode:
html[data-theme="dark"] and @media (prefers-color-scheme: dark) equivalent. All colors via CSS variables.
- GATE: 0 failures. Validate: HTML parse, JS syntax, RDF parse + compliance audit, resolver links, local RDF link, nav behavior, skills attribution, dark mode consistency.
Execution Routing
Default order: native OAI.DBA tools ā REST ā MCP ā authenticated chatPromptComplete ā OPAL Agent.
If the user specifies a protocol preference, honor it. See references/protocol-routing.md for full routing guidance, MCP endpoints, REST API specs, and canonical OPAL function names.
Utility Queries
See references/workflow-details.md for the UQ1 quad map listing query and drop procedure.
Operational Rules
- Send the opening announcement before any tool call. After
getSkillResource, the next action is the announcement text ā no tool call.
ADM.DBA.database_schema_objects is the only enumeration tool. Never use ADM.DBA.database_remote_datasources for local objects or OAI.DBA.EXECUTE_SQL_SCRIPT for table enumeration.
- Three-part naming throughout. Every object is
qualifier.schema.object_name in all tool calls and user-facing output.
- Table selection is not script authorization. A reply of "all" or a table list selects the working set only. Script generation requires a separate "CONFIRM" at Step 2.
- Never write an IRI before hostname is resolved.
{protocol} and {host} must be concrete values before any IRI string is constructed.
- No unresolved placeholders ever. No script, IRI, or rewrite rule passed to
OAI.DBA.EXECUTE_SQL_SCRIPT may contain {host}, {base-iri}, or any {...} placeholder token. Exception: ^{URIQADefaultHost}^ is a Virtuoso server-side macro ā it MUST remain in generated scripts exactly as produced by the generation tools and is NOT a placeholder to be substituted or blocked.
- Rewrite rules are not optional. Linked Data without dereferenceable IRIs is incomplete. TBox and ABox rewrite rules must both be applied in Step 4.
OAI.DBA.RDF_AUDIT_METADATA is an integrity tool, not a pre-flight step. Call it only on generation/deployment error and as a post-deployment sanity check.
OAI.DBA.EXECUTE_SQL_SCRIPT is for write operations only. Use Demo.demo.execute_spasql_query for all read queries.
- Entity sampling is mandatory. Step 5 must be executed and results presented as a hyperlinked table. A session is not complete until Linked Data compliance is demonstrated.
- Scope re-use. If the working set and path (A or B) are already established in the session, do not re-ask.
- Tool fallback. If a primary tool fails, report the error before attempting
OAI.DBA.chatPromptComplete as fallback.
- Path D is self-contained. No RDBMS tools, no IRI template gates, no Virtuoso deployment steps. The pathway ends when the approved RDF is saved to the designated folder.
- Path D format defaults. Always offer JSON-LD and Turtle as the two default choices. Never assume a format ā confirm with the user at Step 1D.
- Path D: never invent entity IRIs. All IRIs in the generated RDF must be derived from
{page_url} as @base, from the source document's existing hyperlinks, or from confident external sources (DBpedia, Wikidata, Wikipedia). Do not fabricate IRIs.
Preferences
| Setting | Value |
|---|
| Style | Precise and professional |
| Object naming | Always fully qualified as qualifier.schema.object_name |
| IRI confirmation | Formatted table with concrete hostname ā no unresolved placeholders |
| Error reporting | Name the tool, the error, and the step |
| Response scope | Strictly scoped to this 5-step KG/Linked Data pipeline |