- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Fri, 5 May 2023 11:47:23 -0400
- To: 'Kingsley Idehen' via ontolog-forum <ontolog-forum@googlegroups.com>
- Cc: "public-lod@w3.org" <public-lod@w3.org>, "semantic-web@w3.org" <semantic-web@w3.org>
- Message-ID: <5d119bc5-5cde-7954-ea50-2fc68d4dda71@openlinksw.com>
All, Here’s another demonstration of GPT utility with regards to URL construction aided by prompts. SPARQL inside SQL (SPASQL) Example As part of its multi-model data access, integration, virtualization, and management functionality, Virtuoso enables full use of SPARQL from within SQL. This can also be generated using ChatGPT 3.5 (with moderate success on the output front) and ChatGPT4. Benefits This brings the enhanced data connectivity of SPARQL to existing ODBC- and JDBC-compliant apps and services, thanks to the ability to treat SPARQL Queries just like Views (or Derived Tables). Fundamentally, SPARQL offers broader data connectivity than SQL across disparate data sources. It also operates on finer-grained entity relationship types (relations) combined with an ability to leverage finer-grained reasoning and inference. ChatGPT 4 Transcript Q: The following guidelines outline the construction of a Virtuoso SPASQL URL: 1. Set the Virtuoso SPASQL Query Service URL to https: //demo.openlinksw.com/spasqlqb/ 2. Qualify Table Names portion of the quoted values in “Example” column by adding Demo.Demo (representing Database and Schema respectively) 3. Use “Example” column values within quotations as values of for “sql” key in the JSON structure that follows { “v”: 1, “url”: “/XMLA”, “dsn”: “DSN=Local_Instance”, “uid”: “demo”, “pwd”: “demo”, “path”: null, “tab”: “exec”, “idx”: null, “fkey”: null, “ref”: null, “exec”: { “sql”: “SELECT ProductName FROM Demo..Products WHERE CategoryID = 1 UNION SELECT ProductName FROM Demo..Products WHERE CategoryID = 2\n” } } Also note: Virtuoso SPASQL supports the ability to execute SPARQL Queries from within SQL. It achieves that courtesy of the following guidelines: 1. Prepend SPARQL keyword to each SPARQL Query 2. Treat SPARQL Query like a VIEW usable in the SQL FROM clause placed in parenthesis and associated with an alias 3. SELECT list items are qualified using the pattern: alias.sparql-variable Based on the above, generate an clickable Virtuoso SPASQL Query URL using the following guidelines: 1. Create an encoded Virtuoso SPASQL Query Service URL using JSON structure as the value for the ?permlink_e parameter 2. DBpedia SPARQL Query should be simple with one relation in the body e.g., ?city a http://dbpedia.org/ontology/City ; and LIMIT set to 20 3. DBpedia Query should be SPARQL-FED based A: Here’s the SPARQL Query. |SELECT ?city WHERE { SERVICE <http://dbpedia.org/sparql> { ?city a <http://dbpedia.org/ontology/City>. } } LIMIT 20 | Now, let’s convert the SPARQL query into an SPASQL query: |SELECT city.city FROM (SPARQL SELECT ?city WHERE { SERVICE <http://dbpedia.org/sparql> { ?city a <http://dbpedia.org/ontology/City>. } } LIMIT 20) AS city | Next, create the JSON structure with the updated SPASQL query as the value for the “sql” key, for use when creating a Virtuoso SPASQL Query URL: |{ "v": 1, "url": "/XMLA", "dsn": "DSN=Local_Instance", "uid": "demo", "pwd": "demo", "tab": "exec", "exec": { "sql": "SELECT city.city FROM (SPARQL SELECT ?city WHERE { SERVICE <http://dbpedia.org/sparql> { ?city a <http://dbpedia.org/ontology/City>. } } LIMIT 20) AS city" } } | Finally, encode the JSON structure and create the Virtuoso SPASQL Query Service URL that produces: A clickable SPASQL Query Service URL <https://demo.openlinksw.com/spasqlqb/?permlink_e=%7B%22v%22%3A1%2C%22url%22%3A%22%2FXMLA%22%2C%22dsn%22%3A%22DSN%3DLocal_Instance%22%2C%22uid%22%3A%22demo%22%2C%22pwd%22%3A%22demo%22%2C%22tab%22%3A%22exec%22%2C%22exec%22%3A%7B%22sql%22%3A%22SELECT%20city.city%20FROM%20%28SPARQL%20SELECT%20%3Fcity%20WHERE%20%7B%20SERVICE%20%3Chttp%3A%2F%2Fdbpedia.org%2Fsparql%3E%20%7B%20%3Fcity%20a%20%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2FCity%3E.%20%7D%20%7D%20LIMIT%2020%29%20AS%20city%22%7D%7D> *Note:* Authenticate using ‘demo’ for username and password when challenged. -- Regards, Kingsley Idehen Founder & CEO OpenLink Software Home Page:http://www.openlinksw.com Community Support:https://community.openlinksw.com Weblogs (Blogs): Company Blog:https://medium.com/openlink-software-blog Virtuoso Blog:https://medium.com/virtuoso-blog Data Access Drivers Blog:https://medium.com/openlink-odbc-jdbc-ado-net-data-access-drivers Personal Weblogs (Blogs): Medium Blog:https://medium.com/@kidehen Legacy Blogs:http://www.openlinksw.com/blog/~kidehen/ http://kidehen.blogspot.com Profile Pages: Pinterest:https://www.pinterest.com/kidehen/ Quora:https://www.quora.com/profile/Kingsley-Uyi-Idehen Twitter:https://twitter.com/kidehen Google+:https://plus.google.com/+KingsleyIdehen/about LinkedIn:http://www.linkedin.com/in/kidehen Web Identities (WebID): Personal:http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i :http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Friday, 5 May 2023 15:47:36 UTC