Re: Demo: Query Language Cheatsheet Generation using ChatGPT 3.5

>>
>>
>> On Tuesday, 2 May 2023 at 09:13:56 UTC+12 kidehen wrote:
>>
>>     All,
>>
>>     ChatGPT 3.5 is less capable that 4.0, but much faster. Here’s a
>>     transcript demonstrating the creation of SQL and SPARQL
>>     cheatsheets – that I just generated (whimsically).
>>
>>
>>       Transcript
>>
>>     Q: Make a simple SQL Cheatsheet.
>>     Q: Redo, but using a Table for enhanced presentation.
>>     Q: Redo the SQL cheatsheet using a Markdown Table in a code-block.
>>     A:
>>     Sure, here is the SQL cheatsheet presented in a markdown table
>>     inside a code block:
>>
>>     Command  Description
>>     SELECT  Retrieves data from one or more tables
>>     |SELECT column1, column2, ... FROM table_name;|  
>>     DISTINCT  Retrieves unique values
>>     |SELECT DISTINCT column_name FROM table_name;|  
>>     WHERE  Filters records based on a condition
>>     |SELECT column1, column2, ... FROM table_name WHERE condition;|  
>>     AND/OR  Combines multiple conditions
>>     |SELECT column1, column2, ... FROM table_name WHERE condition1
>>     AND/OR condition2;|  
>>     ORDER BY  Sorts the result set
>>     |SELECT column1, column2, ... FROM table_name ORDER BY
>>     column_name ASC/DESC;|  
>>     LIMIT  Limits the number of results returned
>>     |SELECT column1, column2, ... FROM table_name LIMIT
>>     number_of_rows;|  
>>     JOIN  Combines rows from two or more tables based on a related
>>     column between them
>>     |SELECT column1, column2, ... FROM table1 JOIN table2 ON
>>     table1.column_name = table2.column_name;|  
>>     GROUP BY  Groups rows based on a column
>>     |SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;|  
>>     HAVING  Filters groups based on a condition
>>     |SELECT column1, COUNT(column2) FROM table_name GROUP BY column1
>>     HAVING COUNT(column2) > value;|  
>>     INSERT INTO  Inserts new records into a table
>>     |INSERT INTO table_name (column1, column2, ...) VALUES (value1,
>>     value2, ...);|  
>>     UPDATE  Modifies existing records in a table
>>     |UPDATE table_name SET column1 = value1, column2 = value2, ...
>>     WHERE condition;|  
>>     DELETE FROM  Deletes records from a table
>>     |DELETE FROM table_name WHERE condition;|  
>>
>>     I hope this presentation is helpful and easy to read.
>>
>>     Q: Redo, with an examples column using Northwind
>>     A:
>>     Sure, here is an updated SQL cheatsheet presented in a markdown
>>     table inside a code block with an additional column for actual
>>     usage examples based on the Northwind database schema:
>>
>>     Command  Description  Example
>>     SELECT  Retrieves data from one or more tables  |SELECT
>>     ProductName, UnitPrice FROM Products;|
>>     DISTINCT  Retrieves unique values  |SELECT DISTINCT CategoryID
>>     FROM Products;|
>>     WHERE  Filters records based on a condition  |SELECT ProductName,
>>     UnitPrice FROM Products WHERE UnitPrice > 20;|
>>     AND/OR  Combines multiple conditions  |SELECT ProductName,
>>     UnitPrice FROM Products WHERE CategoryID = 1 AND Discontinued = 0;|
>>     ORDER BY  Sorts the result set  |SELECT ProductName, UnitPrice
>>     FROM Products ORDER BY UnitPrice DESC;|
>>     LIMIT  Limits the number of results returned  |SELECT
>>     ProductName, UnitPrice FROM Products LIMIT 10;|
>>     JOIN  Combines rows from two or more tables based on a related
>>     column between them  |SELECT Products.ProductName,
>>     Suppliers.CompanyName FROM Products JOIN Suppliers ON
>>     Products.SupplierID = Suppliers.SupplierID;|
>>     GROUP BY  Groups rows based on a column  |SELECT CategoryID,
>>     COUNT(*) FROM Products GROUP BY CategoryID;|
>>     HAVING  Filters groups based on a condition  |SELECT CategoryID,
>>     COUNT(*) FROM Products GROUP BY CategoryID HAVING COUNT(*) > 5;|
>>     INSERT INTO  Inserts new records into a table  |INSERT INTO
>>     Products (ProductName, UnitPrice) VALUES ('Chai', 18.00);|
>>     UPDATE  Modifies existing records in a table  |UPDATE Products
>>     SET UnitPrice = 20 WHERE ProductID = 1;|
>>     DELETE FROM  Deletes records from a table  |DELETE FROM Products
>>     WHERE ProductID = 1;|
>>     I hope this updated version of the SQL cheatsheet with examples
>>     based on the Northwind database schema is helpful for you to
>>     practice with.  
>>      
>>
>>     Q: Repeat, for SPARQL using DBpedia for examples.
>>     A:
>>     Sure, here is the SPARQL cheatsheet presented in a markdown table
>>     inside a code block with an additional column for actual usage
>>     examples using DBpedia for the examples:
>>
>>     Command  Description  Example
>>     SELECT  Retrieves data from one or more RDF graphs  |SELECT
>>     ?person ?birthdate WHERE { ?person dbo:birthDate ?birthdate }
>>     LIMIT 10|
>>     DISTINCT  Retrieves unique values  |SELECT DISTINCT ?category
>>     WHERE { ?product dcterms:subject ?category }|
>>     WHERE  Filters RDF triples based on a condition  |SELECT ?film
>>     WHERE { ?film rdf:type dbo:Film . ?film dbo:starring
>>     dbr:Harrison_Ford . }|
>>     FILTER  Filters query results based on a condition  |SELECT ?film
>>     WHERE { ?film rdf:type dbo:Film . ?film dbo:budget ?budget .
>>     FILTER(?budget > 100000000) }|
>>     UNION  Combines the results of two or more queries  |SELECT ?name
>>     WHERE { { ?person foaf:name ?name } UNION { ?organization
>>     foaf:name ?name } }|
>>     OPTIONAL  Retrieves optional RDF triples  |SELECT ?book ?author
>>     WHERE { ?book rdf:type dbo:Book . OPTIONAL { ?book dbo:author
>>     ?author } }|
>>     ORDER BY  Sorts the query results  |SELECT ?person ?birthdate
>>     WHERE { ?person dbo:birthDate ?birthdate } ORDER BY
>>     DESC(?birthdate) LIMIT 10|
>>     LIMIT  Limits the number of results returned  |SELECT ?person
>>     WHERE { ?person rdf:type dbo:Person } LIMIT 10|
>>     GROUP BY  Groups query results based on a variable  |SELECT
>>     ?category (COUNT(?product) AS ?count) WHERE { ?product
>>     dcterms:subject ?category } GROUP BY ?category|
>>     HAVING  Filters groups based on a condition  |SELECT ?category
>>     (COUNT(?product) AS ?count) WHERE { ?product dcterms:subject
>>     ?category } GROUP BY ?category HAVING (COUNT(?product) > 100)|
>>
>>     Note: The examples above assume the use of the DBpedia SPARQL
>>     endpoint (https://dbpedia.org/sparql). If you want to test these
>>     queries, you can use the DBpedia SPARQL endpoint or install your
>>     own copy of DBpedia.
>>
>>     Q: Redo for SPARQL including DESCRIBE, CONSTRUCT, COPY, and MOVE
>>     commands
>>     A:
>>     Sure, here is the SPARQL cheatsheet presented in a markdown table
>>     inside a code block with additional commands and actual usage
>>     examples using DBpedia for the examples:
>>
>>     Command  Description  Example
>>     SELECT  Retrieves data from one or more RDF graphs  |SELECT
>>     ?person ?birthdate WHERE { ?person dbo:birthDate ?birthdate }
>>     LIMIT 10|
>>     DISTINCT  Retrieves unique values  |SELECT DISTINCT ?category
>>     WHERE { ?product dcterms:subject ?category }|
>>     WHERE  Filters RDF triples based on a condition  |SELECT ?film
>>     WHERE { ?film rdf:type dbo:Film . ?film dbo:starring
>>     dbr:Harrison_Ford . }|
>>     FILTER  Filters query results based on a condition  |SELECT ?film
>>     WHERE { ?film rdf:type dbo:Film . ?film dbo:budget ?budget .
>>     FILTER(?budget > 100000000) }|
>>     UNION  Combines the results of two or more queries  |SELECT ?name
>>     WHERE { { ?person foaf:name ?name } UNION { ?organization
>>     foaf:name ?name } }|
>>     OPTIONAL  Retrieves optional RDF triples  |SELECT ?book ?author
>>     WHERE { ?book rdf:type dbo:Book . OPTIONAL { ?book dbo:author
>>     ?author } }|
>>     ORDER BY  Sorts the query results  |SELECT ?person ?birthdate
>>     WHERE { ?person dbo:birthDate ?birthdate } ORDER BY
>>     DESC(?birthdate) LIMIT 10|
>>     LIMIT  Limits the number of results returned  |SELECT ?person
>>     WHERE { ?person rdf:type dbo:Person } LIMIT 10|
>>     GROUP BY  Groups query results based on a variable  |SELECT
>>     ?category (COUNT(?product) AS ?count) WHERE { ?product
>>     dcterms:subject ?category } GROUP BY ?category|
>>     HAVING  Filters groups based on a condition  |SELECT ?category
>>     (COUNT(?product) AS ?count) WHERE { ?product dcterms:subject
>>     ?category } GROUP BY ?category HAVING (COUNT(?product) > 100)|
>>     DESCRIBE  Retrieves RDF triples that describe a resource
>>     |DESCRIBE <http://dbpedia.org/resource/Barack_Obama>
>>     <http://dbpedia.org/resource/Barack_Obama>|
>>     CONSTRUCT  Generates an RDF graph based on a query pattern
>>     |CONSTRUCT { ?book dbo:author ?author } WHERE { ?book rdf:type
>>     dbo:Book . ?book dbo:author ?author }|
>>     COPY  Copies a named graph from one location to another  |COPY
>>     <http://example.org/graph1> <http://example.org/graph1> TO
>>     <http://example.org/graph2> <http://example.org/graph2>|
>>     MOVE  Moves a named graph from one location to another  |MOVE
>>     <http://example.org/graph1> <http://example.org/graph1> TO
>>     <http://example.org/graph2> <http://example.org/graph2>|
>>
>>     Note: The examples above assume the use of the DBpedia SPARQL
>>     endpoint (https://dbpedia.org/sparql). If you want to test these
>>     queries, you can use the DBpedia SPARQL endpoint or install your
>>     own copy of DBpedia.
>>
All,


      Testing SPARQL Cheatsheet Query Examples, courtesy of ChatGPT 3.5
      & Linked Data Principles


    Create a rendition using these guidelines, for the first 5 rows:

     1. Create a DBpedia SPARQL URL from the Example column values
        within quotations
     2. Use the URL to hyperlink values in the “Command” Column

Command  Description  Example
SELECT 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3Fname%20WHERE%20%7B%20%3Fs%20dbo%3AbirthPlace%20dbr%3AGermany%3B%20foaf%3Aname%20%3Fname%20%7D%20LIMIT%2010&format=text%2Fhtml> 
 Retrieves values by matching a query pattern. Returns a table with 
variables and their bindings.  SELECT ?name WHERE { ?s dbo:birthPlace 
dbr:Germany; foaf:name ?name } LIMIT 10
ASK 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=ASK%20%7B%20dbr%3AAlbert_Einstein%20dbo%3AbirthPlace%20dbr%3AGermany%20%7D&format=text%2Fhtml> 
 Tests whether a query pattern has a solution. Returns a boolean value 
(true or false).  ASK { dbr:Albert_Einstein dbo:birthPlace dbr:Germany }
DESCRIBE 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=DESCRIBE%20dbr%3AAlbert_Einstein&format=text%2Fhtml> 
 Retrieves information about resources in the RDF graph. Returns an RDF 
graph as the result.  DESCRIBE dbr:Albert_Einstein
CONSTRUCT 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=CONSTRUCT%20%7B%20%3Fs%20a%20foaf%3APerson%20%7D%20WHERE%20%7B%20%3Fs%20a%20foaf%3APerson%20%7D%20LIMIT%2010&format=text%2Fhtml> 
 Constructs an RDF graph based on the query pattern. Returns an RDF 
graph as the result.  CONSTRUCT { ?s a foaf:Person } WHERE { ?s a 
foaf:Person } LIMIT 10
SAMPLE() 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20(SAMPLE(%3Fname)%20AS%20%3Fsample_name)%20WHERE%20%7B%20%3Fs%20foaf%3Aname%20%3Fname%20%7D%20GROUP%20BY%20%3Fs&format=text%2Fhtml> 
 Returns an arbitrary value from a group of values. Useful for selecting 
a single value per group.  SELECT (SAMPLE(?name) AS ?sample_name) WHERE 
{ ?s foaf:name ?name } GROUP BY ?s

    Q: Repeat, but for the next 4 rows.

Command  Description  Example
COUNT() 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20(COUNT(%3Fs)%20AS%20%3Fcount)%20WHERE%20%7B%20%3Fs%20a%20dbo%3AScientist%20%7D&format=text%2Fhtml> 
 Counts the number of solutions that match the query pattern. Returns an 
integer value.  SELECT (COUNT(?s) AS ?count) WHERE { ?s a dbo:Scientist }
FILTER 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3Fname%20WHERE%20%7B%20%3Fs%20dbo%3AbirthPlace%20dbr%3AGermany%3B%20foaf%3Aname%20%3Fname%20FILTER%20(lang(%3Fname)%20%3D%20%22en%22)%20%7D&format=text%2Fhtml> 
 Filters query results based on a condition. Excludes solutions that do 
not satisfy the condition.  SELECT ?name WHERE { ?s dbo:birthPlace 
dbr:Germany; foaf:name ?name FILTER (lang(?name) = “en”) }
OPTIONAL 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3Fname%20%3FbirthDate%20WHERE%20%7B%20%3Fs%20foaf%3Aname%20%3Fname%20OPTIONAL%20%7B%20%3Fs%20dbo%3AbirthDate%20%3FbirthDate%20%7D%20%7D%20LIMIT%2010&format=text%2Fhtml> 
 Allows parts of a query to be optional. If the optional part has no 
match, the query still succeeds.  SELECT ?name ?birthDate WHERE { ?s 
foaf:name ?name OPTIONAL { ?s dbo:birthDate ?birthDate } } LIMIT 10
ORDER BY 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3Fname%20%3FbirthDate%20WHERE%20%7B%20%3Fs%20foaf%3Aname%20%3Fname%3B%20dbo%3AbirthDate%20%3FbirthDate%20%7D%20ORDER%20BY%20%3FbirthDate&format=text%2Fhtml> 
 Orders the query results based on the specified variable(s). Can order 
in ascending or descending.  SELECT ?name ?birthDate WHERE { ?s 
foaf:name ?name; dbo:birthDate ?birthDate } ORDER BY ?birthDate

    Q: Repeat, for the next 4 rows.

Command  Description  Example
GROUP BY 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3FbirthPlace%20(COUNT(%3Fs)%20AS%20%3Fcount)%20WHERE%20%7B%20%3Fs%20dbo%3AbirthPlace%20%3FbirthPlace%3B%20a%20dbo%3AScientist%20%7D%20GROUP%20BY%20%3FbirthPlace&format=text%2Fhtml> 
 Groups the query results by one or more variables and applies an 
aggregate function to each group.  SELECT ?birthPlace (COUNT(?s) AS 
?count) WHERE { ?s dbo:birthPlace ?birthPlace; a dbo:Scientist } GROUP 
BY ?birthPlace
HAVING 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=SELECT%20%3FbirthPlace%20(COUNT(%3Fs)%20AS%20%3Fcount)%20WHERE%20%7B%20%3Fs%20dbo%3AbirthPlace%20%3FbirthPlace%3B%20a%20dbo%3AScientist%20%7D%20GROUP%20BY%20%3FbirthPlace%20HAVING%20(COUNT(%3Fs)%20%3E%205)&format=text%2Fhtml> 
 Filters the results of a GROUP BY query based on a condition. Excludes 
groups that do not satisfy the condition.  SELECT ?birthPlace (COUNT(?s) 
AS ?count) WHERE { ?s dbo:birthPlace ?birthPlace; a dbo:Scientist } 
GROUP BY ?birthPlace HAVING (COUNT(?s) > 5)
DESCRIBE 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=DESCRIBE%20dbr%3AAlbert_Einstein&format=text%2Fhtml> 
 Provides an RDF graph that describes the resources found.  DESCRIBE 
dbr:Albert_Einstein
CONSTRUCT 
<http://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=CONSTRUCT%20%7B%20%3Fs%20a%20dbo%3AScientist%20%7D%20WHERE%20%7B%20%3Fs%20a%20dbo%3AScientist%20%7D&format=text%2Fhtml> 
 Constructs an RDF graph based on the query pattern.  CONSTRUCT { ?s a 
dbo:Scientist } WHERE { ?s a dbo:Scientist }

​

-- 
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

Received on Wednesday, 3 May 2023 12:56:27 UTC