w3c / sparql-dev

SPARQL dev Community Group
https://w3c.github.io/sparql-dev/
Other
121 stars 19 forks source link

Standard graph name for example queries #61

Open JervenBolleman opened 5 years ago

JervenBolleman commented 5 years ago

Many public sparql endpoints provide example queries as aids for developer users. It would be nice if there was a ".well-known" location for sharing such queries.

Why?

Allows standard tools and frontends to be developed. Database developers can gather them for benchmarking and profiling.

Previous work

Proposed solution

/.well-known/sparql-examples

Considerations for backward compatibility

Some one could have used the IRI for something else.

cygri commented 5 years ago

Wouldn't a link in the SPARQL Service Description document associated with the endpoint be cleaner than using a well-known URL?

VladimirAlexiev commented 5 years ago

I think both .well-known link and a link in SSD could be supported. Eg at http://vocab.getty.edu/doc/#VOID_Deployment we've put a VOID description at 2 predefined URLs, and also inside the repo.

--

@JervenBolleman A more important question is what would be the format of these example queries. It falls neither under SPARQL syntax nor under SPARQL protocol, but I think is worth discussing. GraphGist is a strong competitive advantage of Neo4j compared to SPARQL stores, as it allows you to tell a story with queries, charts and text, and contributes to building strong developer communities.

Examples:

Maybe we need a separate issue for that?

JervenBolleman commented 5 years ago

@VladimirAlexiev issue #4 would be a candidate for the example queries. I was thinking of having them embeddable in jupyther notebooks. To give exactly that kind of getty idea you alread implemented.

VladimirAlexiev commented 5 years ago

@JervenBolleman +1 notebooks. Will notebooks also take care of the following features, some of which are in graphgist ?

  1. sample data
  2. loading it
  3. query parameterization (#57)
  4. running queries
  5. capturing the results and passing (parts of) them around as vars
  6. showing (part of) the result
  7. exploration/stats analysis ala pandas
  8. charting the results
  9. showing the source data and query results as graphs
  10. intermixing with text
  11. some controls over updating calculations, taking into account cell dependencies
  12. preferably being able to run calculations asynchronously

PS: Emacs Org-mode excels in this kind of stuff, especially 3,5,12 (you can pass data tables between snippets written in a mixture of languages). Eg jkitchin (a CMU chemist who's a genius) has built this thing scimax, see https://www.youtube.com/user/jrkitchin/videos https://github.com/jkitchin/scimax http://kitchingroup.cheme.cmu.edu/scimax

It can communicate with various jupyter kernels, has autocompletion and gets help about various python modules and functions, and can export to notebooks if needed. https://kitchingroup.cheme.cmu.edu/blog/category/jupyter/ https://github.com/jkitchin/scimax/blob/master/scimax-ipython.org https://raw.githubusercontent.com/jkitchin/scimax/master/scimax-ipython.org