WolfgangFahl / snapquery

Frontend to Introduce Named Queries and Named Query Middleware to wikidata
Apache License 2.0
4 stars 1 forks source link

command line interface #3

Closed WolfgangFahl closed 2 months ago

WolfgangFahl commented 2 months ago

improve on

sparqlquery -h
usage: sparqlquery [-h] [-d] [-ep ENDPOINTPATH] [-fp FORMATSPATH]
                   [-en ENDPOINTNAME] [--method METHOD]
                   [-f {csv,json,xml,tsv,latex,mediawiki,github}] [-li]
                   [--limit LIMIT] [-le] [-m MIMETYPE] [-p] [-sq]
                   [-qp QUERIESPATH] [-q QUERY] [-qf QUERYFILE]
                   [-qn QUERYNAME] [-raw] [-V]

commandline query of endpoints in diverse languages such as SPARQL/SQL

  Created by Wolfgang Fahl on 2020-09-10.
  Copyright 2020-2023 Wolfgang Fahl. All rights reserved.

  Licensed under the Apache License 2.0
  http://www.apache.org/licenses/LICENSE-2.0

  Distributed on an "AS IS" basis without warranties
  or conditions of any kind, either express or implied.

USAGE

options:
  -h, --help            show this help message and exit
  -d, --debug           set debug [default: False]
  -ep ENDPOINTPATH, --endpointPath ENDPOINTPATH
                        path to yaml file to configure endpoints to use for
                        queries
  -fp FORMATSPATH, --formatsPath FORMATSPATH
                        path to yaml file to configure formats to use for
                        querie result documentation
  -en ENDPOINTNAME, --endpointName ENDPOINTNAME
                        Name of the endpoint to use for queries. Available by
                        default: ['wikidata', 'qlever-wikidata', 'qlever-
                        dblp', 'qlever-dblp-plus', 'wikidata-openlinksw',
                        'blazegraph', 'gnd', 'dblp', 'dbis-jena-wikidata',
                        'sun-qlever', 'stardog', 'dblp-sparql', 'dbis-dblp',
                        'cc', 'es', 'ceurws', 'Fahl', 'Fahl89', 'BITPlan',
                        'BITPlan2022']
  --method METHOD       method to be used for SPARQL queries
  -f {csv,json,xml,tsv,latex,mediawiki,github}, --format {csv,json,xml,tsv,latex,mediawiki,github}
  -li, --list           show the list of available queries
  --limit LIMIT         set limit parameter of query
  -le, --listEndpoints  show the list of available endpoints
  -m MIMETYPE, --mimeType MIMETYPE
                        MIME-type to use for the raw query
  -p, --prefixes        add predefined prefixes for endpoint
  -sq, --showQuery      show the query
  -qp QUERIESPATH, --queriesPath QUERIESPATH
                        path to YAML file with query definitions
  -q QUERY, --query QUERY
                        the query to run
  -qf QUERYFILE, --queryFile QUERYFILE
                        the query file to run
  -qn QUERYNAME, --queryName QUERYNAME
                        run a named query
  -raw                  return the raw query result from the endpoint. (MIME
                        type defined over -f or -m)
  -V, --version         show program's version number and exit

of https://github.com/WolfgangFahl/pyLoDStorage

WolfgangFahl commented 2 months ago
snapquery -qn "10 Largest Cities Of The World" -f github

Ten largest cities of the world

Ten Largest cities of the world see also http://wiki.bitplan.com/index.php/PyLoDStorage#Examples

query

PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
# Ten Largest cities of the world
# WF 2021-08-23
# see also http://wiki.bitplan.com/index.php/PyLoDStorage#Examples
SELECT DISTINCT ?city ?cityLabel ?population ?country ?countryLabel
WHERE {
  VALUES ?cityClass { wd:Q1549591 }. # big city - million city does not work any more
  ?city wdt:P31 ?cityClass .
  ?city wdt:P1082 ?population .
  ?city wdt:P17 ?country .
  ?city rdfs:label ?cityLabel.
  FILTER(LANG(?cityLabel) = "en").
  ?country rdfs:label ?countryLabel.
  FILTER(LANG(?countryLabel) = "en").
}
ORDER BY DESC(?population)
LIMIT 10

try it!

result

city cityLabel population country countryLabel
http://www.wikidata.org/entity/Q8686 Shanghai 24870895 http://www.wikidata.org/entity/Q148 People's Republic of China
http://www.wikidata.org/entity/Q956 Beijing 21893095 http://www.wikidata.org/entity/Q148 People's Republic of China
http://www.wikidata.org/entity/Q16572 Guangzhou 18676605 http://www.wikidata.org/entity/Q148 People's Republic of China
http://www.wikidata.org/entity/Q15174 Shenzhen 17494398 http://www.wikidata.org/entity/Q148 People's Republic of China
http://www.wikidata.org/entity/Q406 Istanbul 15462452 http://www.wikidata.org/entity/Q43 Turkey
http://www.wikidata.org/entity/Q8673 Lagos 15070000 http://www.wikidata.org/entity/Q1033 Nigeria
http://www.wikidata.org/entity/Q8660 Karachi 14910352 http://www.wikidata.org/entity/Q843 Pakistan
http://www.wikidata.org/entity/Q1490 Tokyo 14264798 http://www.wikidata.org/entity/Q17 Japan
http://www.wikidata.org/entity/Q11736 Tianjin 13866009 http://www.wikidata.org/entity/Q148 People's Republic of China
http://www.wikidata.org/entity/Q5826 Xi'an 12952907 http://www.wikidata.org/entity/Q148 People's Republic of China
WolfgangFahl commented 2 months ago
snapquery -d -qn cats -f github

cats

query


SELECT ?item ?itemLabel
WHERE {
  ?item wdt:P31 wd:Q146. # Must be a cat
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

try it!

result

item itemLabel
http://www.wikidata.org/entity/Q378619 CC
http://www.wikidata.org/entity/Q498787 Muezza
http://www.wikidata.org/entity/Q677525 Orangey
http://www.wikidata.org/entity/Q851190 Mrs. Chippy
http://www.wikidata.org/entity/Q893453 Unsinkable Sam
http://www.wikidata.org/entity/Q1050083 Catmando
http://www.wikidata.org/entity/Q1185550 Oscar
http://www.wikidata.org/entity/Q1201902 Tama
http://www.wikidata.org/entity/Q1207136 Dewey Readmore Books
http://www.wikidata.org/entity/Q1371145 Socks
http://www.wikidata.org/entity/Q1386318 F. D. C. Willard
http://www.wikidata.org/entity/Q1413628 Nora
http://www.wikidata.org/entity/Q1622688 Hodge
http://www.wikidata.org/entity/Q1637234 Humphrey
http://www.wikidata.org/entity/Q1750907 Towser
http://www.wikidata.org/entity/Q1759652 Wilberforce
http://www.wikidata.org/entity/Q2060630 India
http://www.wikidata.org/entity/Q2098929 Simon
http://www.wikidata.org/entity/Q2262318 Larry
http://www.wikidata.org/entity/Q2300851 Winnie
http://www.wikidata.org/entity/Q2597104 Creme Puff
http://www.wikidata.org/entity/Q2624688 Sybil
http://www.wikidata.org/entity/Q2634968 Maru
http://www.wikidata.org/entity/Q2909987 Mr. Green Genes
http://www.wikidata.org/entity/Q4421603 Scarlett
http://www.wikidata.org/entity/Q5049074 Casper
http://www.wikidata.org/entity/Q5105465 Choupette
http://www.wikidata.org/entity/Q5317221 Dusty the Klepto Kitty
http://www.wikidata.org/entity/Q5496635 Fred the Undercover Kitty
http://www.wikidata.org/entity/Q5503291 Freya
http://www.wikidata.org/entity/Q5648508 Hank the Cat
http://www.wikidata.org/entity/Q5715272 Henri
http://www.wikidata.org/entity/Q6536227 Lewis
http://www.wikidata.org/entity/Q6651160 Little Nicky
http://www.wikidata.org/entity/Q6703608 Luna the Fashion Kitty
http://www.wikidata.org/entity/Q6817786 Meow
http://www.wikidata.org/entity/Q6845813 Mike
http://www.wikidata.org/entity/Q6913965 Morris the Cat
http://www.wikidata.org/entity/Q6928344 Mr. Nuts
http://www.wikidata.org/entity/Q7105840 Oscar
http://www.wikidata.org/entity/Q7172400 Peter, the Lord's cat
http://www.wikidata.org/entity/Q7243868 Prince Chunk
http://www.wikidata.org/entity/Q7366253 Room 8
http://www.wikidata.org/entity/Q7380911 Rusik
http://www.wikidata.org/entity/Q7430467 Scarlett's Magic
http://www.wikidata.org/entity/Q7553023 Sockington
http://www.wikidata.org/entity/Q7627362 Stubbs
http://www.wikidata.org/entity/Q7714263 Grumpy Cat
http://www.wikidata.org/entity/Q7800822 Tiddles
http://www.wikidata.org/entity/Q8999673 Shironeko
http://www.wikidata.org/entity/Q10344245 Panther
http://www.wikidata.org/entity/Q10393754 Willow
http://www.wikidata.org/entity/Q10813994 Tsim Tung Brother Cream
http://www.wikidata.org/entity/Q11279521 Misuke
http://www.wikidata.org/entity/Q11290753 Emily
http://www.wikidata.org/entity/Q11291938 Nora
http://www.wikidata.org/entity/Q11302267 Kotora
http://www.wikidata.org/entity/Q12165555 Félicette
http://www.wikidata.org/entity/Q14832020 Lil Bub
http://www.wikidata.org/entity/Q14916910 Buurtpoes Bledder
http://www.wikidata.org/entity/Q15835811 Munich Mouser
http://www.wikidata.org/entity/Q15836515 Nelson
http://www.wikidata.org/entity/Q15840011 Peta
http://www.wikidata.org/entity/Q15840080 Peter III
http://www.wikidata.org/entity/Q15851429 Treasury Bill
http://www.wikidata.org/entity/Q15991501 Hamish McHamish
http://www.wikidata.org/entity/Q16605098 Colonel Meow
http://www.wikidata.org/entity/Q16835794 Dorofei
http://www.wikidata.org/entity/Q16950243 Smudge
http://www.wikidata.org/entity/Q16985214 Spangles
http://www.wikidata.org/entity/Q17000472 Poppy
http://www.wikidata.org/entity/Q17022178 Tobermory Cat
http://www.wikidata.org/entity/Q17115860 Lorenzo the cat
http://www.wikidata.org/entity/Q17115877 Tara
http://www.wikidata.org/entity/Q17537171 Pepper the Cat
http://www.wikidata.org/entity/Q17576799 Ketzel
http://www.wikidata.org/entity/Q18535182 Punkin
http://www.wikidata.org/entity/Q18945952 Hana
http://www.wikidata.org/entity/Q19850466 Filuś
http://www.wikidata.org/entity/Q19880492 Frank and Louie
http://www.wikidata.org/entity/Q19906739 FamousNiki
http://www.wikidata.org/entity/Q20080934 Tiffany Two
http://www.wikidata.org/entity/Q21002390 Corduroy
http://www.wikidata.org/entity/Q21041964 Sammy
http://www.wikidata.org/entity/Q21050077 Merlin
http://www.wikidata.org/entity/Q21426728 Bébert
http://www.wikidata.org/entity/Q21641529 Matroska
http://www.wikidata.org/entity/Q21652863 Freddy
http://www.wikidata.org/entity/Q22774485 Think Think
http://www.wikidata.org/entity/Q24084366 Scooter
http://www.wikidata.org/entity/Q24298806 Tibs the Great
http://www.wikidata.org/entity/Q24705153 Ah Tsai
http://www.wikidata.org/entity/Q25171691 Palmerston
http://www.wikidata.org/entity/Q25393350 Tomba
http://www.wikidata.org/entity/Q25471040 Pixel
http://www.wikidata.org/entity/Q27190410 Gladstone
http://www.wikidata.org/entity/Q27739753 Sister Cream
http://www.wikidata.org/entity/Q27744042 Bob
http://www.wikidata.org/entity/Q27745002 Musashi
http://www.wikidata.org/entity/Q27745006 Leo
http://www.wikidata.org/entity/Q120601812 Heliotrope de Guerveur
http://www.wikidata.org/entity/Q120601948 Q120601948
http://www.wikidata.org/entity/Q120602069 Q120602069
http://www.wikidata.org/entity/Q120602737 Q120602737
http://www.wikidata.org/entity/Q120602877 Q120602877
http://www.wikidata.org/entity/Q120603399 Q120603399
http://www.wikidata.org/entity/Q120603552 Q120603552
http://www.wikidata.org/entity/Q120603664 Q120603664
http://www.wikidata.org/entity/Q120753060 Q120753060
http://www.wikidata.org/entity/Q120753069 Q120753069
http://www.wikidata.org/entity/Q120753074 Brownie Still
http://www.wikidata.org/entity/Q120753119 Jerry
http://www.wikidata.org/entity/Q120753135 Q120753135
http://www.wikidata.org/entity/Q120753147 Mr Bett's Tortoise
http://www.wikidata.org/entity/Q120753152 Mr Bett's Tortoise Girl
http://www.wikidata.org/entity/Q120753170 Q120753170
http://www.wikidata.org/entity/Q121545035 Zephyr, the Cat
http://www.wikidata.org/entity/Q123185365 senior cats
http://www.wikidata.org/entity/Q123667991 Tibeert
http://www.wikidata.org/entity/Q123737060 Q123737060
http://www.wikidata.org/entity/Q124611357 Eros
http://www.wikidata.org/entity/Q125251204 Q125251204
http://www.wikidata.org/entity/Q125251453 Luna
http://www.wikidata.org/entity/Q27745008 Luca
http://www.wikidata.org/entity/Q27745009 Seri
http://www.wikidata.org/entity/Q27745011 Marble
http://www.wikidata.org/entity/Q28114532 Nala Cat
http://www.wikidata.org/entity/Q28665865 Myka
http://www.wikidata.org/entity/Q28792126 Gli
http://www.wikidata.org/entity/Q30600575 Orlando
http://www.wikidata.org/entity/Q42442324 Kiisu Miisu
http://www.wikidata.org/entity/Q43260736 Paddles
http://www.wikidata.org/entity/Q48895080 Hamilton
http://www.wikidata.org/entity/Q49581026 Toffee
http://www.wikidata.org/entity/Q50378472 Nutmeg
http://www.wikidata.org/entity/Q50824969 Liv
http://www.wikidata.org/entity/Q51596094 Crimean Tom
http://www.wikidata.org/entity/Q51827254 Peter II
http://www.wikidata.org/entity/Q51841231 Peter
http://www.wikidata.org/entity/Q52150156 Arcturus Aldebaran Powers
http://www.wikidata.org/entity/Q53216650 Nitama
http://www.wikidata.org/entity/Q54087698 Foss
http://www.wikidata.org/entity/Q54257563 Mostik
http://www.wikidata.org/entity/Q55632071 Rubble
http://www.wikidata.org/entity/Q55696984 Q55696984
http://www.wikidata.org/entity/Q56427306 Garfi
http://www.wikidata.org/entity/Q56471556 Brigadier Broccoli
http://www.wikidata.org/entity/Q57251591 Beerbohm
http://www.wikidata.org/entity/Q57623398 Blackie
http://www.wikidata.org/entity/Q58310774 Longcat
http://www.wikidata.org/entity/Q58311218 Sam the Cat has Eyebrows
http://www.wikidata.org/entity/Q58621231 Lóu lóu
http://www.wikidata.org/entity/Q60213636 Trick
http://www.wikidata.org/entity/Q61133276 Şero
http://www.wikidata.org/entity/Q62128317 Naro
http://www.wikidata.org/entity/Q63094726 Embassy Cat
http://www.wikidata.org/entity/Q63928240 Fatso
http://www.wikidata.org/entity/Q64706109 Souris Calle
http://www.wikidata.org/entity/Q65091914 Venus
http://www.wikidata.org/entity/Q65280233 Tito (Cat)
http://www.wikidata.org/entity/Q65769811 Remy
http://www.wikidata.org/entity/Q65967183 Reggie
http://www.wikidata.org/entity/Q65967196 Gonzo
http://www.wikidata.org/entity/Q65967198 Archie
http://www.wikidata.org/entity/Q65967200 Rizzo
http://www.wikidata.org/entity/Q66737405 Mittens
http://www.wikidata.org/entity/Q76974430 Apelmon
http://www.wikidata.org/entity/Q79407468 Abatutu
http://www.wikidata.org/entity/Q94098815 Meredith Grey
http://www.wikidata.org/entity/Q94100602 Olivia Benson
http://www.wikidata.org/entity/Q94990539 Pip
http://www.wikidata.org/entity/Q94993819 Zipper
http://www.wikidata.org/entity/Q99826810 Ebisu
http://www.wikidata.org/entity/Q100451536 Sanjūrō
http://www.wikidata.org/entity/Q100965010 Myōbu no Otodo
http://www.wikidata.org/entity/Q101943970 Noutti
http://www.wikidata.org/entity/Q101947824 Tigrette
http://www.wikidata.org/entity/Q101948600 Miolek
http://www.wikidata.org/entity/Q105330885 Tuna
http://www.wikidata.org/entity/Q105741577 Purrple Cat
http://www.wikidata.org/entity/Q106595460 Curious Zelda
http://www.wikidata.org/entity/Q106828517 Doorkins
http://www.wikidata.org/entity/Q106938943 Order
http://www.wikidata.org/entity/Q107535403 Tuxedo Stan
http://www.wikidata.org/entity/Q108391847 Smudge
http://www.wikidata.org/entity/Q108442825 Mochimaru
http://www.wikidata.org/entity/Q109316363 Takeshi
http://www.wikidata.org/entity/Q109732925 Stepan
http://www.wikidata.org/entity/Q110565455 Jorts
http://www.wikidata.org/entity/Q110727478 Willow
http://www.wikidata.org/entity/Q110727483 Willow
http://www.wikidata.org/entity/Q112152493 the pet from Borodianka
http://www.wikidata.org/entity/Q113512285 11 kitties
http://www.wikidata.org/entity/Q115757163 Mikan
http://www.wikidata.org/entity/Q115856135 Rolf
http://www.wikidata.org/entity/Q116233237 Browser
http://www.wikidata.org/entity/Q116729791 street cat
http://www.wikidata.org/entity/Q117465068 golden cat
http://www.wikidata.org/entity/Q117600369 Benjamin Button
http://www.wikidata.org/entity/Q118410922 Pot Roast
http://www.wikidata.org/entity/Q120061987 famous cats
http://www.wikidata.org/entity/Q120122115 Zaida
http://www.wikidata.org/entity/Q120122198 Silver Laddie
http://www.wikidata.org/entity/Q120122214 Silvie of Lyndhurst
http://www.wikidata.org/entity/Q120122321 Fulmer Pearl
http://www.wikidata.org/entity/Q120122392 Topso of Dingley
http://www.wikidata.org/entity/Q120122481 Lord Southampton
http://www.wikidata.org/entity/Q120127319 Bento
http://www.wikidata.org/entity/Q120169853 Bayard
http://www.wikidata.org/entity/Q120169873 King Vladimir
http://www.wikidata.org/entity/Q120169879 Olga
http://www.wikidata.org/entity/Q120169898 Pierre Bleue
http://www.wikidata.org/entity/Q120169915 Ivanovitch
http://www.wikidata.org/entity/Q120177782 Bete 1
http://www.wikidata.org/entity/Q120181582 Xenophon
http://www.wikidata.org/entity/Q120599761 Mignonne de Guerveur
http://www.wikidata.org/entity/Q120599819 Q120599819
http://www.wikidata.org/entity/Q120599839 Q120599839
http://www.wikidata.org/entity/Q120599900 Q120599900
http://www.wikidata.org/entity/Q120599913 Q120599913
http://www.wikidata.org/entity/Q120601330 Pacha
http://www.wikidata.org/entity/Q120601455 Mirroum
http://www.wikidata.org/entity/Q120601666 Gouerch de Guerveur