- From: adasal <adam.saltiel@gmail.com>
- Date: Tue, 02 May 2023 12:32:44 +0000
- To: Kingsley Idehen <kidehen@openlinksw.com>
- Cc: public-lod@w3.org, semantic-web@w3.org
- Message-Id: <v1-uW3rhGs3xaZrznrfs-34be5778aa21d5fb07390a2b6a9619a6@gmail.com>
Hi Kingsley, This is brilliant.You might have seen my last email about GPT 3.5 compared to 4 going over your last post? I had thought that they would be good for producing SPARQL, though. You have shown my assumption to be correct. Do you have any thoughts about producing the whole life cycle? I'm a non-technical outsider.My understanding is that linked data, in terms of URLs, guarantees origin of documents which it retrieves according to a possibly complex logical request. But the original documents have to be annotated in the first place. So, for instance, Wikidata "..acts as central storage for thestructured data of its Wikimedia sister projects including Wikipedia, Wikivoyage, Wiktionary, Wikisource, and others." There is a life cycle from Wikipedia to a representation in Wikidata. How is this accomplished and could eg ChatGPT, help? Adam Saltiel On Mon, May 1, 2023 at 10:13 PM Kingsley Idehen <kidehen@openlinksw.com> 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> 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> TO <http://example.org/graph2> MOVE Moves a named graph from one location to another MOVE <http://example.org/graph1> TO <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. -- 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 Tuesday, 2 May 2023 12:32:57 UTC