source: main/trunk/model-sites-dev/eurovision-lod/collect/eurovision/transform/pages/sparql.xsl@ 35093

Last change on this file since 35093 was 35093, checked in by davidb, 3 years ago

General text update; auto-focus param added into ssv_execute()

  • Property svn:executable set to *
File size: 22.3 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:java="http://xml.apache.org/xslt/java"
5 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
6 xmlns:gslib="http://www.greenstone.org/skinning"
7 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
8 extension-element-prefixes="java util"
9 exclude-result-prefixes="java util">
10
11
12 <!-- use the 'main' layout -->
13 <xsl:import href="layouts/main.xsl"/>
14
15 <xsl:variable name="groupPath"><xsl:value-of select="/page/pageRequest/paramList/param[@name='group']/@value"/></xsl:variable>
16 <!-- set page title -->
17 <xsl:template name="pageTitle">SPARQL Query</xsl:template>
18
19 <!-- set page breadcrumbs -->
20 <xsl:template name="breadcrumbs"><gslib:siteLink/><gslib:rightArrow/>
21 <xsl:if test="$groupPath != ''">
22 <xsl:for-each select="/page/pageResponse/pathList/group">
23 <xsl:sort data-type="number" select="@position"/>
24 <a>
25 <xsl:attribute name="href"><gslib:groupHref path="{@path}"/></xsl:attribute>
26 <xsl:attribute name="title"><gslib:groupName path="{@path}"/></xsl:attribute>
27 <gslib:groupName path="{@path}"/>
28 </a>
29 <gslib:rightArrow/>
30 </xsl:for-each>
31 </xsl:if>
32 <a href="{$library_name}/collection/{$collName}/page/about"><gslib:collectionName/></a>
33 </xsl:template>
34
35 <!-- the page content -->
36 <xsl:template match="/page">
37 <!--
38 <link rel="stylesheet" href="sites/{$site_name}/collect/{$collName}/style/fuseki.css" type="text/css" />
39 -->
40 <gsf:script src="sites/{$site_name}/collect/{$collName}/js/jquery.show-more.js"/>
41 <gsf:script src="sites/{$site_name}/collect/{$collName}/js/eurovision.js"/>
42 <gsf:script src="sites/{$site_name}/collect/{$collName}/js/dataviz.js"/>
43
44 <!--
45 <link rel="stylesheet" href="sites/{$site_name}/collect/{$collName}/css/eurovision.css" type="text/css" />
46 -->
47 <gsf:style src="sites/{$site_name}/collect/{$collName}/css/eurovision.css" />
48 <gsf:style src="sites/{$site_name}/collect/{$collName}/css/dataviz.css" />
49 <style>
50 #gs_content div { padding-left: 12px; padding-right: 12px; padding-top: 6px; padding-bottom: 6px;}
51 #gs_content div.showmore { padding-left: 0px; padding-right: 0px; padding-top: 0px; padding-bottom: 0px;}
52
53 #gs_content p { padding-top: 6px; padding-bottom: 6px;}
54 #gs_content a { text-decoration: underline; }
55 #gs_content li { padding-bottom: 6px; margin-bottom: 6px; }
56 </style>
57
58 <div>
59 <h2>Query the Linked-Data and let its values Sparkle (aka SPARQL)</h2>
60
61 <p>
62 Using this page you can query the linked-data in the Greenstone3 <i>eurovision</i> triplestore
63 graph using <a href="https://en.wikipedia.org/wiki/SPARQL">SPARQL</a> query syntax.
64 The default query provided in the text box below is effectively issuing a query that
65 returns everything stored (a bit like matching with the wildcard '*' that some text-based search
66 systems have), limited to show just the first 500 entries that matched.
67 </p>
68
69 <p>
70 Use the default query to get a feel for the data that is
71 stored. Feel free to experiment with the syntax to vary
72 what is returned. For example, to view other "slices"
73 of the rows of data returned, change the values of
74 OFFSET and LIMIT. OFFSET controls how many result rows
75 are skipped over before rows are selected. LIMIT
76 controls how many rows are then taken.
77
78 </p>
79
80 <div id="sparql-show-more" class="showmore">
81 <p>
82 Alternatively, you might be interested in experimenting
83 with forms of access to the triplestore through the more powerful, but complex:
84 <ul>
85 <li>
86 <a target="_blank" href="https://so-we-must-think.space/greenstone3-lod3/dataset.html?tab=query&amp;ds=/greenstone">Fuseki interface</a>
87 </li>
88 </ul>
89 </p>
90 <p>
91 Or else export the entire triplestore to work on it with whichever Linked Data tools are your preference:
92 <ul>
93 <li>
94 <a href="/greenstone3-lod3/greenstone/data" download="greenstone3-eurovision-lod.trig">Full Export in TriG Syntax</a>
95 </li>
96 <li>
97 <a href="/greenstone3-lod3/greenstone/data" download="greenstone3-eurovision-lod.ttl">Full Export in Turtle Syntax</a>
98 </li>
99 </ul>
100 </p>
101
102 </div>
103 <gsf:script>
104 $('#sparql-show-more').showMore({
105 minheight: 0,
106 buttontxtmore:"show more ...",
107 buttontxtless:"... show less"
108 });
109 </gsf:script>
110
111 </div>
112 <div>
113 <h2>SPARQL Query</h2>
114 <!--
115 <p>
116 Dataset: /greenstone<br/>
117 Graph: eurovision
118 </p>
119 -->
120
121 </div>
122
123 <xsl:variable name="graphURI">https://so-we-must-think.space<xsl:value-of select="$siteURL"/><xsl:value-of select="$library_name"/>/collection/<xsl:value-of select="$collName"/></xsl:variable>
124
125 <div class="moreindent">
126 <form id="sample-sparql-query-form" action="/greenstone3-lod3/greenstone/query" target="_blank"
127 method="POST" accept-charset="UTF-8">
128
129 <textarea id="sample-sparql-query" name="query" style="width:100%; min-width:100%; max-width: 100%;" rows="14">
130<!-- -->
131<xsl:text>
132PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
133
134SELECT ?subject ?predicate ?object WHERE {
135 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
136 ?subject ?predicate ?object.
137 }
138}
139OFFSET 0 LIMIT 500
140</xsl:text>
141 </textarea>
142
143 <div style="display:none;">
144 <div>
145 Output:
146 <select name="output">
147 <option value="text">Text</option>
148 <option value="json">JSON</option>
149 <option value="xml" selected="selected">XML</option>
150 <option value="csv">CSV</option>
151 <option value="tsv">TSV</option>
152 </select>
153 </div>
154
155 <div>
156 If XML output, add XSLT style sheet (blank for none):
157 <select name="stylesheet">
158 <option value=""></option>
159 <option value="/greenstone3-lod/xml-to-html.xsl">xml-to-html</option>
160 <option value="/greenstone3-lod/xml-to-html-links.xsl" selected="selected">xml-to-html-links</option>
161 <option value="/greenstone3-lod/xml-to-html-plain.xsl">xml-to-html-plain</option>
162 </select>
163 </div>
164
165 <div>
166 <input type="checkbox" name="force-accept" value="text/plain" />
167 Force the accept header to <tt>text/plain</tt> regardless.
168 </div>
169 </div>
170
171 <div>
172 <input type="submit" value="Get Results" />
173 </div>
174
175 </form>
176 </div>
177
178 <div>
179 <h2>Sample Queries</h2>
180
181 <p>
182 The sample queries provided below gradually increase in
183 the query syntax complexity used. They are intended
184 primarily for illustrative purposes, to introduce a user
185 unfamiliar to various aspects of SPARQL query syntax.
186 Click on one of the <i>Load query above</i> buttons to load
187 the relevant query syntax into the SPARQL Query textbox
188 above, then press <i>Get Results</i> to initiate the
189 query.
190 </p>
191
192 <div id="ssq-restrict-year" style="display: none;">
193<!-- -->
194<xsl:text>
195PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
196
197SELECT ?subject ?predicate ?object WHERE {
198 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
199 ?subject ?predicate ?object.
200 ?subject gsdlextracted:Year "2000".
201 }
202}
203OFFSET 0 LIMIT 200
204</xsl:text>
205 </div>
206
207 <div id="ssq-restrict-year-then-filter" style="display: none;">
208<!-- -->
209<xsl:text>
210PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
211
212SELECT ?subject ?predicate ?object WHERE {
213 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
214 ?subject ?predicate ?object.
215 ?subject gsdlextracted:Year "2000".
216
217 # The following removes a triple that stores JSON data that
218 # is voluminous but not very interesting to look at
219 FILTER (?predicate != gsdlextracted:JSON).
220 }
221}
222OFFSET 0 LIMIT 200
223</xsl:text>
224 </div>
225
226
227 <div id="ssq-restrict-country-and-year" style="display: none;">
228<!-- -->
229<xsl:text>
230PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
231PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
232
233SELECT ?subject ?predicate ?object WHERE {
234 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
235 ?subject ?predicate ?object
236
237 # The following removes a triple that stores JSON data that
238 # is voluminous but not very interesting to look at
239 FILTER (?predicate != gsdlextracted:JSON).
240
241 ?subject gsdlextracted:Year ?year.
242 ?subject gsdlextracted:Country ?country.
243 FILTER (?country = "France").
244 FILTER (xsd:integer(?year) >= 1996 &amp;&amp; xsd:integer(?year) &lt;= 2000).
245
246 }
247}
248OFFSET 0 LIMIT 200
249</xsl:text>
250 </div>
251
252
253 <div id="ssq-esc-entrants" style="display: none;">
254<!-- -->
255<xsl:text>
256PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
257PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
258PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
259
260SELECT ?esc_entrant_uri ?country ?year WHERE {
261 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
262 ?esc_entrant_uri dc:Relation.isPartOf &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt;.
263
264 ?esc_entrant_uri gsdlextracted:Year ?year.
265 ?esc_entrant_uri gsdlextracted:Country ?country.
266 }
267}
268ORDER BY ASC(?year) ?country
269</xsl:text>
270 </div>
271
272
273 <div id="ssq-jury-votes-totals-1975" style="display: none;">
274<!-- -->
275<xsl:text>
276PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
277PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
278PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
279
280SELECT ?country ?year ?total WHERE {
281 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
282 ?esc_entrant_uri dc:Relation.isPartOf &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt;.
283
284 ?esc_entrant_uri gsdlextracted:SingVotesTotal ?total.
285 BIND(xsd:integer(?total) AS ?total_int).
286
287 ?esc_entrant_uri gsdlextracted:Year ?year
288 FILTER(xsd:integer(?year) = 1975).
289 ?esc_entrant_uri gsdlextracted:Country ?country.
290 }
291}
292ORDER BY DESC(?total_int)
293</xsl:text>
294 </div>
295
296
297 <div id="ssq-jury-votes-1975" style="display: none;">
298<!-- -->
299<xsl:text>
300PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
301PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
302PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
303
304SELECT ?country ?year ?jury_country ?jury_vote WHERE {
305 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
306 ?esc_entrant_uri dc:Relation.isPartOf &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt;.
307
308 ?esc_entrant_uri ?gsdlextracted_jury_country_uri ?jury_vote.
309 BIND(STRENDS(str(?gsdlextracted_jury_country_uri),"-J") AS ?is_jury_vote)
310 FILTER (?is_jury_vote).
311 BIND(REPLACE(str(?gsdlextracted_jury_country_uri), ".*#(.*?)-J$", "$1") AS ?jury_country).
312
313 ?esc_entrant_uri gsdlextracted:Year ?year
314 FILTER(xsd:integer(?year) = 1975).
315 ?esc_entrant_uri gsdlextracted:Country ?country.
316
317
318 }
319}
320ORDER BY ASC(?year) ?country
321</xsl:text>
322 </div>
323
324
325 <div id="ssq-winning-totals" style="display: none;">
326<!-- -->
327<xsl:text>
328PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
329PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
330PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
331
332SELECT ?year ?country ?total_max WHERE {
333 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
334
335 {
336 SELECT ?year (STR(MAX(?total_int_inner)) as ?total_max) WHERE {
337
338 ?esc_entrant_uri gsdlextracted:VoteGrandTotal ?total.
339 BIND(xsd:integer(?total) AS ?total_int_inner).
340
341 ?esc_entrant_uri gsdlextracted:Year ?year.
342 }
343 GROUP BY ?year
344 }
345
346 ?esc_entrant_uri gsdlextracted:VoteGrandTotal ?total_max.
347 ?esc_entrant_uri gsdlextracted:Year ?year.
348 ?esc_entrant_uri gsdlextracted:Country ?country.
349
350 BIND(xsd:integer(?total_max) as ?total_int).
351 }
352}
353ORDER BY DESC(?total_int)
354</xsl:text>
355 </div>
356
357
358 <div id="ssq-winning-freq-count" style="display: none;">
359<!-- -->
360<xsl:text>
361
362PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
363PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
364PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
365
366
367SELECT ?country (STR(COUNT(?country)) as ?number_of_vote_wins) WHERE {
368 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
369 {
370 SELECT ?year (STR(MAX(?total_int)) as ?total_max) WHERE {
371 ?esc_entrant_uri gsdlextracted:VoteGrandTotal ?total.
372 BIND(xsd:integer(?total) AS ?total_int).
373
374 ?esc_entrant_uri gsdlextracted:Year ?year.
375 }
376 GROUP BY ?year
377 }
378
379 ?esc_entrant_uri gsdlextracted:VoteGrandTotal ?total_max.
380 ?esc_entrant_uri gsdlextracted:Year ?year.
381 ?esc_entrant_uri gsdlextracted:Country ?country.
382 }
383}
384GROUP BY ?country
385ORDER BY DESC(?number_of_vote_wins)
386</xsl:text>
387 </div>
388
389
390
391 <div id="ssq-from-winning-to-losing" style="display: none;">
392<!-- -->
393<xsl:text>
394
395PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
396PREFIX xsd: &lt;http://www.w3.org/2001/XMLSchema#&gt;
397PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
398PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
399
400SELECT (?country as ?Country) (?year AS ?WinningYear) (?total as ?WinningGrandTotal) (?next_year AS ?LosingYear) (?next_total as ?LosingGrandTotal)
401WHERE {
402 GRAPH &lt;</xsl:text><xsl:value-of select="$graphURI"/><xsl:text>&gt; {
403 ?esc_entrant_uri gsdlextracted:Country ?country.
404 ?esc_entrant_uri gsdlextracted:VoteGrandTotal ?total.
405
406 ?esc_entrant_uri gsdlextracted:Place ?place.
407 BIND(xsd:integer(?place) AS ?place_int).
408 FILTER(?place_int = 1).
409
410 ?esc_entrant_uri gsdlextracted:Year ?year.
411 BIND(xsd:integer(?year) AS ?year_int).
412 BIND(?year_int + 1 AS ?next_year_int).
413 BIND(str(?next_year_int) AS ?next_year).
414
415 ?next_esc_entrant_uri gsdlextracted:Country ?country.
416 ?next_esc_entrant_uri gsdlextracted:Year ?next_year.
417
418 ?next_esc_entrant_uri gsdlextracted:VoteGrandTotal ?next_total.
419
420 ?next_esc_entrant_uri gsdlextracted:ReverseFinishingPos ?rev_finishing_pos.
421 BIND(xsd:integer(?rev_finishing_pos) AS ?rev_finishing_pos_int).
422 FILTER(?rev_finishing_pos_int = 1).
423
424
425 }
426}
427ORDER BY ?country
428</xsl:text>
429 </div>
430
431 <div id="ssq-country-info" style="display: none;">
432<!--
433 Adapted from:
434 https://stackoverflow.com/questions/40069644/retrieve-information-about-all-european-countries
435-->
436<xsl:text>
437
438PREFIX gsdlextracted: &lt;http://greenstone.org/gsdlextracted#&gt;
439
440PREFIX dbo: &lt;http://dbpedia.org/ontology/&gt;
441PREFIX dbp: &lt;http://dbpedia.org/property/&gt;
442PREFIX dct: &lt;http://purl.org/dc/terms/&gt;
443#PREFIX geo: &lt;http://www.opengis.net/ont/geosparql#&gt;
444
445PREFIX geo: &lt;http://www.w3.org/2003/01/geo/wgs84_pos#&gt;
446
447SELECT DISTINCT ?country_uri ?capital ?area ?populationTotal ?lat ?long
448 ?currency ?gdpPppPerCapita ?giniCoefficient WHERE {
449
450 SERVICE &lt;https://dbpedia.org/sparql&gt; {
451
452 ?db_country_uri dbo:capital ?db_capital.
453
454 BIND(?db_country_uri AS ?country_uri).
455 BIND(str(?db_country_uri) AS ?country_uri_str).
456 BIND(?db_capital AS ?capital).
457
458# OPTIONAL {
459# ?country_uri dbp:areaKm ?area.
460# ?country_uri dbo:populationTotal ?populationTotal.
461# ?country_uri geo:lat ?lat.
462# ?country_uri geo:long ?long.
463# }
464
465 OPTIONAL { ?country_uri dbp:areaKm ?area. }
466 OPTIONAL { ?country_uri dbo:populationTotal ?populationTotal. }
467 OPTIONAL { ?capital geo:lat ?lat. }
468 OPTIONAL { ?capital geo:long ?long. }
469
470 OPTIONAL { ?country_uri dbp:currencyCode ?currency. }
471 OPTIONAL { ?country_uri dbp:gdpPppPerCapita ?gdpPppPerCapita. }
472
473 OPTIONAL { ?country_uri dbo:giniCoefficient ?giniCoefficient. }
474 }
475
476 ?esc_entrant_uri gsdlextracted:CountryDBURI ?country_uri_str.
477
478}
479ORDER BY ASC(?country_uri)
480</xsl:text>
481 </div>
482
483
484
485 <ul class="ssq">
486 <li>
487 <b>Year Restricted (raw data rows):</b><br />
488 <button type="button" class="load-ssq" id="load-ssq-restrict-year" onclick="ssq_load('ssq-restrict-year')">Load query above</button>
489 <button type="button" class="exec-ssq" id="exec-ssq-restrict-year" onclick="ssq_execute()">Get Results</button><br />
490 <p>Similar to the default query (all results returned) but restricted to entries associated with the year 2000.</p>
491 </li>
492
493 <div id="raw-sparql-show-more" class="showmore">
494 <style>
495 #showmore-button-raw-sparql-show-more { width: 260px; }
496 </style>
497
498 <li>
499 <b>Year Restricted (raw data rows) then filter out <i>gsdlextracted:JSON</i> entries:</b><br/>
500 <button type="button" class="load-ssq" id="load-ssq-restrict-year-then-filter" onclick="ssq_load('ssq-restrict-year-then-filter')">Load query above</button>
501 <button type="button" class="exec-ssq" id="exec-ssq-restrict-year-then-filter" onclick="ssq_execute()">Get Results</button><br/>
502 <p>
503 Similar to the previous query (restricted to results from 2000) but filtering out the voluminous, but not very interesting to look at,
504 <i>gsdlextracted:JSON</i>.
505 </p>
506 <p>
507 This field is formed by Greenstone at ingest-time: it represents all the metadata fields for a particular country
508 stored in the JSON format. It is a handy item for the Greenstone3 runtime-system to access, but in the context of viewing the output
509 of SPARQL queries at HTML only serves to pollute the generated result set with large text items.
510 </p>
511 </li>
512
513 <li>
514 <b>Country and Year Restricted (raw data rows):</b><br/>
515 <button type="button" class="load-ssq" id="load-ssq-restrict-country-and-year" onclick="ssq_load('ssq-restrict-country-and-year')">Load query above</button>
516 <button type="button" class="exec-ssq" id="exec-ssq-restrict-country-and-year" onclick="ssq_execute()">Get Results</button><br/>
517
518 <p>Similar to the previous query, but restricted to entries about the country France, in the years 1996-2000.</p>
519 </li>
520 </div>
521 <gsf:script>
522 $('#raw-sparql-show-more').showMore({
523 minheight: 0,
524 buttontxtmore:"show further raw-data queries ...",
525 buttontxtless:"... show less"
526 });
527 </gsf:script>
528
529 <li>
530 <b>Eurovision Song Contest (ESC) entrants:</b><br/>
531 <button type="button" class="load-ssq" id="load-ssq-esc-entrants" onclick="ssq_load('ssq-esc-entrants')">Load query above</button>
532 <button type="button" class="exec-ssq" id="exec-ssq-esc-entrants" onclick="ssq_execute()">Get Results</button><br/>
533
534 <p>List all the entrants (country and year) sorted by year, then by country.</p>
535 </li>
536
537 <li>
538 <b>Voting Totals in 1975:</b><br/>
539 <button type="button" class="load-ssq" id="load-ssq-jury-votes-totals-1975" onclick="ssq_load('ssq-jury-votes-totals-1975')">Load query above</button>
540 <button type="button" class="exec-ssq" id="exec-ssq-jury-votes-totals-1975" onclick="ssq_execute()">Get Results</button><br/>
541
542 <p>In 1975 all voting was done exclusively by jury. This query retrieves the
543 totals of this Single voting format, and orders them by that score.</p>
544 </li>
545
546 <li>
547 <b>Jury Votes Cast by Country in 1975:</b><br/>
548 <button type="button" class="load-ssq" id="load-ssq-jury-votes-1975" onclick="ssq_load('ssq-jury-votes-1975')">Load query above</button>
549 <button type="button" class="exec-ssq" id="exec-ssq-jury-votes-1975" onclick="ssq_execute()">Get Results</button><br/>
550
551 <p>List all votes case in the 1975 competition.</p>
552 </li>
553
554
555 <li>
556 <b>Most points won:</b><br/>
557 <button type="button" class="load-ssq" id="load-ssq-winning-totals" onclick="ssq_load('ssq-winning-totals')">Load query above</button>
558 <button type="button" class="exec-ssq" id="exec-ssq-winning-totals" onclick="ssq_execute()">Get Results</button><br/>
559
560 <p>List the countries which won and their voting totals, sorted by total score.</p>
561 </li>
562
563 <li>
564 <b>Number of Times Countries Have Won:</b><br/>
565 <button type="button" class="load-ssq" id="load-ssq-winning-freq-count" onclick="ssq_load('ssq-winning-freq-count')">Load query above</button>
566 <button type="button" class="exec-ssq" id="exec-ssq-winning-freq-count" onclick="ssq_execute()">Get Results</button><br/>
567
568 <p>
569 The number of times a country has won Eurovision
570 across the years. The includes the years when only
571 Juries voted (1956-2000) through to the introduction
572 of Televotes, where a variety of forms have been
573 used such as only Televotes, a pre-combined score
574 based on Televotes and Jury votes, to (from 2016
575 onwards) where the Jury and Tele votes are
576 explicitly given individually per country, then
577 combined.
578 </p>
579 </li>
580
581
582
583 <li>
584 <b>From Hero to Zero!</b><br/>
585 <button type="button" class="load-ssq" id="load-ssq-from-winning-to-losing" onclick="ssq_load('ssq-from-winning-to-losing')">Load query above</button>
586 <button type="button" class="exec-ssq" id="exec-ssq-from-winning-to-losing" onclick="ssq_execute()">Get Results</button><br/>
587
588 <p>
589 List countries where, having won in one year, they
590 have gone on to lose with the lowest score of the
591 contest the following year. Note this definition
592 doesn't quite meet the given heading of <i>From Here
593 to Zero</i>. There is in fact only one country, to
594 date, where this has happened (nul-point the
595 following year). View the table to see who it is
596 ... then why not test out your SPARQL querying
597 skills and see if you can modify the query used so
598 it only returns the Hero to Zero case?
599 </p>
600 </li>
601
602 <li>
603 <b>Facts and Figures About Competing Countries:</b><br/>
604 <button type="button" class="load-ssq" id="load-ssq-country-info" onclick="ssq_load('ssq-country-info')">Load query above</button>
605 <button type="button" class="exec-ssq" id="exec-ssq-country-info" onclick="ssq_execute()">Get Results</button><br/>
606
607 <p>
608 Demographics about other related information about the countries the song contest entries are from.
609 Query takes a bit longer to run than the previous ones.
610 </p>
611 </li>
612
613 </ul>
614
615 <p>
616 Looking for something a bit more visual? Why not head over to our
617 <a href="{$library_name}/collection/{$collName}/page/sgvizler"><i>SGVizler page</i></a> and try the SPARQL-based visualization samples there.
618 </p>
619
620 </div>
621 </xsl:template>
622
623
624</xsl:stylesheet>
625
Note: See TracBrowser for help on using the repository browser.