Basic SPARQLProg example

This basic example walks through querying the Wikidata SPARQL endpoint.

We make use of the wikidata module that is part of sparqlprog, and provides access to predicates such as continent/1 (for instances of continents) and the generic enlabel/2 (which maps an entity to it's English-language label)

In [1]:
from prologterms import TermGenerator, PrologRenderer, Program, Var
from sparqlprog import SPARQLProg
P = TermGenerator()
In [2]:
server = 'http://localhost:9083'
# server = 'https://evening-falls-87315.herokuapp.com'
In [3]:
S = SPARQLProg(server=server,
               endpoint='wd')

setting up a query

In [4]:
# our query will join over two predicates
C = Var('C')
N = Var('N')
query = (P.continent(C), P.enlabel(C, N)) # same as logic program query: continent(C), enlabel(C,N)

running the query

In [5]:
res = S.query(query)

for r in res:
    print(f"{r.C} {r.N}")
http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q18 South America
http://www.wikidata.org/entity/Q46 Europe
http://www.wikidata.org/entity/Q48 Asia
http://www.wikidata.org/entity/Q49 North America
http://www.wikidata.org/entity/Q51 Antarctica
http://www.wikidata.org/entity/Q538 Oceania
http://www.wikidata.org/entity/Q3960 Australia
In [6]:
C = Var('C')
D = Var('D')
CN = Var('CN')
DN = Var('DN')

query = (
     P.country(D),
     P.part_of_continent(D,C),
     P.continent(C),
     P.enlabel(D,DN),
     P.enlabel(C,CN)
    )

res = S.query(query)
for r in list(res)[0:8]:
    print(f"{r.D} {r.DN} part-of {r.C} {r.CN}")
_getActualURL is firing.
_getActualURL is returning http://localhost:9083/pengine/send?format=json&id=f5d0ae73-5420-4d86-9cf9-a6669cffe732
http://www.wikidata.org/entity/Q114 Kenya part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q115 Ethiopia part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q79 Egypt part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q262 Algeria part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q258 South Africa part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q657 Chad part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q117 Ghana part-of http://www.wikidata.org/entity/Q15 Africa
http://www.wikidata.org/entity/Q924 Tanzania part-of http://www.wikidata.org/entity/Q15 Africa
In [7]:
df = S.query_to_dataframe(query)
_getActualURL is firing.
_getActualURL is returning http://localhost:9083/pengine/send?format=json&id=16b08d3a-9cf9-49ee-b19a-64a0acc3b297
In [8]:
df
Out[8]:
C CN D DN
0 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q114 Kenya
1 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q115 Ethiopia
2 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q79 Egypt
3 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q262 Algeria
4 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q258 South Africa
5 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q657 Chad
6 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q117 Ghana
7 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q924 Tanzania
8 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q916 Angola
9 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q912 Mali
10 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q747314 Bechuanaland Protectorate
11 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q929 Central African Republic
12 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q948 Tunisia
13 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q945 Togo
14 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q954 Zimbabwe
15 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q953 Zambia
16 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q958 South Sudan
17 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q962 Benin
18 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q963 Botswana
19 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q967 Burundi
20 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q970 Comoros
21 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q971 Republic of the Congo
22 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q974 Democratic Republic of the Congo
23 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q977 Djibouti
24 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q1005 Gambia
25 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q986 Eritrea
26 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q1006 Guinea
27 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q1007 Guinea-Bissau
28 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q1008 Ivory Coast
29 http://www.wikidata.org/entity/Q15 Africa http://www.wikidata.org/entity/Q1009 Cameroon
... ... ... ... ...
138 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q778 Bahamas
139 http://www.wikidata.org/entity/Q48 Asia http://www.wikidata.org/entity/Q917 Bhutan
140 http://www.wikidata.org/entity/Q48 Asia http://www.wikidata.org/entity/Q921 Brunei
141 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q781 Antigua and Barbuda
142 http://www.wikidata.org/entity/Q48 Asia http://www.wikidata.org/entity/Q928 Philippines
143 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q783 Honduras
144 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q784 Dominica
145 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q790 Haiti
146 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q786 Dominican Republic
147 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q792 El Salvador
148 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q811 Nicaragua
149 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q800 Costa Rica
150 http://www.wikidata.org/entity/Q49 North America http://www.wikidata.org/entity/Q756617 Kingdom of Denmark
151 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q664 New Zealand
152 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q30 United States of America
153 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q408 Australia
154 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q685 Solomon Islands
155 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q672 Tuvalu
156 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q697 Nauru
157 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q686 Vanuatu
158 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q683 Samoa
159 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q709 Marshall Islands
160 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q691 Papua New Guinea
161 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q712 Fiji
162 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q702 Federated States of Micronesia
163 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q695 Palau
164 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q710 Kiribati
165 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q16644 Northern Mariana Islands
166 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q26988 Cook Islands
167 http://www.wikidata.org/entity/Q538 Oceania http://www.wikidata.org/entity/Q34020 Niue

168 rows × 4 columns

In [ ]: