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

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

Changes after new 'from country' doc added in

  • Property svn:executable set to *
File size: 12.8 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE videocollection [
3 <!ENTITY ndash "&#8211;">
4 <!ENTITY mdash "&#8212;">
5]>
6<xsl:stylesheet version="1.0"
7 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
8 xmlns:java="http://xml.apache.org/xslt/java"
9 xmlns:util="xalan://org.greenstone.gsdl3.util.XSLTUtil"
10 xmlns:gslib="http://www.greenstone.org/skinning"
11 extension-element-prefixes="java util"
12 exclude-result-prefixes="java util">
13
14
15 <xsl:template name="coll-description">
16 <div id="about-desc">
17 <h2>Introduction</h2>
18 <!--
19 <p style="padding-bottom: 10px;">
20 The <a href="https://eurovision.tv">Eurovision Song
21 Content</a> is a live-broadcast televised event that
22 was first held in 1956 featuring artists singing original songs from
23 7 countries. Since then it has grown into an event involving
24 over 40 countries, and streamed all around the world. ...
25
26 </p>
27 -->
28
29 <p style="padding-bottom: 10px;">
30 The <a href="https://eurovision.tv">Eurovision Song
31 Contest</a> is a live-broadcast televised multi-national
32 competition with a collaborative mission, much like the
33 Olympics. <i>A help to shore up a post war Europe in 1956 it
34 all began, where there were only seven countries and one
35 camera man!</i> The contest has grown significantly from
36 there, with 43 countries competing most years—even
37 Australia takes part now, through a specially
38 arranged invitation. It's an annual celebration of
39 European culture and the highlight of many people's
40 year.
41 </p>
42
43 <p>
44 At Eurovision there is no division because wherever
45 you come from Eurovision is home. The Eurovision song
46 contest is widely known as a safe space for LGBTQIA+
47 people and a platform for free expression. For example
48 trans-woman
49 <a href="https://en.wikipedia.org/wiki/Dana_International">Dana International</a>
50 won as far back as 1998.
51 There have been songs in many different languages over the
52 years, although most are in English these days. This
53 doesn't matter, however, because music is a language we all
54 know how to speak.
55 </p>
56 <p>
57 In its latest incarnation, after
58 all the performances are over, artists wait
59 nervously as via the Internet the show's hosts visit each
60 of the 43 countries in turn collecting all points cast
61 by the country appointed juries. This includes
62 the all important top score that can be cast, 12 points
63 (douze points!), a double-increment up from the
64 10 points awarded to the song a country ranks second,
65 followed by 8, 7, 6 
 1 points awarded.
66 Next comes the &quot;the popular vote&quot;
67 where fans, still grouped by country, have
68 the votes they cast by phone, SMS or the Eurovision app
69 tallied and mapped into the same format of 12 points for 1st
70 place, and so on.
71 This all culminates in a new winner being crowned, with
72 the competition typically being hosted the following year
73 by that country.
74 </p>
75
76 <p>
77 This (unoffical) website has been developed by a small
78 team of dedicated Digital Library researchers who also
79 happen to be <i>huge</i> fans of Eurovision. We wish to
80 share our love for the competition, and at the same time
81 demonstrate what is possible when—harnessing some of that
82 passion!—the techniques of
83 <a href="https://en.wikipedia.org/wiki/Linked_data">Linked
84 Open Data</a> are applied
85 to the Open Source
86 <a href="https://www.greenstone.org">Greenstone3</a>
87 Digital Library platform.
88 </p>
89
90 <p>
91 We suggest you initially
92 start by exploring the assembled information through
93 the browsing tabs, such as
94 <a href="{$library_name}/collection/{$collName}/browse/CL3">browser by country</a>
95 or else search the collection for a general term that you sparks
96 interest, such as
97 <a href="{$library_name}/collection/{$collName}/search/TextQuery?qs=1&amp;rt=rd&amp;s1.level=Doc&amp;startPage=1&amp;s1.query=love&amp;s1.index=ZZ">love</a>
98 and
99 <a href="{$library_name}/collection/{$collName}/search/TextQuery?qs=1&amp;rt=rd&amp;s1.level=Doc&amp;startPage=1&amp;s1.query=amore&amp;s1.index=ZZ">amore</a>,
100 or perhaps something more frivolous such as
101 <a href="{$library_name}/collection/{$collName}/search/TextQuery?qs=1&amp;rt=rd&amp;s1.level=Doc&amp;startPage=1&amp;s1.query=la&amp;s1.index=ZZ">la</a>.
102
103 </p>
104
105
106 <script type="text/javascript" src="//www.google.com/jsapi"><xsl:text> </xsl:text></script>
107 <script type="text/javascript" src="//mgskjaeveland.github.io/sgvizler/v/0.6/sgvizler.js"><xsl:text> </xsl:text></script>
108
109 <script type="text/javascript">
110 <xsl:text disable-output-escaping="yes">
111 $(document).ready(
112 function() {
113
114 sgvizler.prefix('dc','http://purl.org/dc/elements/1.1/');
115 sgvizler.prefix('gsextracted','http://greenstone.org/gsextracted#');
116
117 //sgvizler.prefix('gsembedded','http://greenstone.org/gsembedded#');
118 //sgvizler.prefix('greenstonedata','http://bedrock.resnet.cms.waikato.ac.nz:3030/greenstone/data/');
119
120
121 // Exaple triple
122 // "s": { "type": "uri" , "value": "http://127.0.0.1:8383/greenstone3/library/collection/eurovision/document/HASH0191e9cc7bfdf14743472257s10" } ,
123 // "p": { "type": "uri" , "value": "gsextracted:Country" } ,
124 // "o": { "type": "literal" , "value": "United Kingdom" }
125
126 sgvizler.containerDrawAll();
127 }
128 );
129 </xsl:text>
130 </script>
131
132 <div id="sgvzl_example1"
133 data-sgvizler-endpoint="//sowemustthink.space/greenstone3-lod/greenstone/query"
134 data-sgvizler-chart="google.visualization.PieChart"
135 data-sgvizler-loglevel="2"
136 data-sgvizler-chart-options="title=Number of Songs from each Country"
137 style="width:650px; height:500px; margin-left: auto; margin-right: auto">
138 <xsl:attribute name="data-sgvizler-query">
139 SELECT (?country) (COUNT(?country) AS ?freqCount)
140 WHERE {
141 GRAPH &lt;http://localhost:3030/greenstone/data/eurovision&gt; {
142 ?s gsextracted:Country ?country
143 }
144 }
145 GROUP BY ?country ORDER BY asc(?country)
146 </xsl:attribute>
147 <xsl:text> Loading ...</xsl:text>
148 </div>
149
150
151 <div id="technicaldev-turnstyle" style="margin-top: 12px;">
152 <div class="turnstyle-header" style="background-image: none; background-color: hsl(195, 47%, 35%);">
153 DL Technical Development
154 </div>
155
156 <div style="display: none; padding-left: 6px; padding-top: 6px; margin-left: 2px; margin-right: 2px; border-left: white solid 1px; border-right: white solid 1px; border-bottom: white solid 1px;">
157 <p>
158 In terms of how this collection was developed using the
159 Greenstone DL architecture, the starting point is the
160 formulation of a SPARQL query to retrieve from DBpedia
161 entries about all the entrants in the contest over the
162 years:
163 <pre style="background-color: #fff; color: #000; padding: 12px; margin-right: 6px;">
164SELECT ?countries_in_esc_by_year ?country_in_year ?year as ?Year ?country as ?Country ?entrant ?entrant_label as ?Creator ?song ?song_label as ?Title ?was_derived_from as ?WikipediaURL
165WHERE {
166 ?countries_in_esc_by_year skos:broader dbc:Countries_in_the_Eurovision_Song_Contest_by_year.
167
168 ?country_in_year dct:subject ?countries_in_esc_by_year.
169 bind( REPLACE(str(?country_in_year), ".*(\\d{4})", "$1") as ?year).
170 FILTER ( xsd:integer(?year) &lt; 2020).
171
172 ?country_in_year dbp:country ?country.
173
174 ?country_in_year dbp:entrant ?entrant.
175 ?entrant rdfs:label ?entrant_label
176 FILTER (lang(?entrant_label) = 'en').
177
178 ?country_in_year dbp:song ?song.
179 ?song rdfs:label ?song_label
180 FILTER (lang(?song_label) = 'en').
181
182 OPTIONAL {
183 ?song prov:wasDerivedFrom ?was_derived_from
184 }
185}
186ORDER BY DESC(?countries_in_esc_by_year)
187 </pre>
188
189 </p>
190
191 <p>
192 The resulting SPARQL query result set (JSON format
193 selected for output) is then ingested into a Greenstone
194 DL collection, and used in a variety of ways. For now
195 an (admittedly cryptic) list of technical steps that
196 were developed and/or deployed to provide the
197 functionality encountered in interacting with this site.
198
199 <ul>
200 <li>New SPARQL plugin for <i>download_from.pl</i> developed, used in GLI to enter the above query</li>
201 <li>New SPARQL <i>Document Processing</i> plugin developed</li>
202 <li>Greenstone3 Apache Jena Triple Store Extension activated</li>
203 <li>SGVizler used to display Google Visualizations such as the pie-chart above.</li>
204 <li>Metadata in document view enhanced through Greenstone Format Statements micro-data</li>
205 <li>Custom <i>interface</i> developed</li>
206 </ul>
207 </p>
208
209 <p>
210 Bullet points above to be expanded upon!
211 </p>
212
213 <p>
214 Viewing the
215 <a download="collectionConfig.xml"
216 href="sites/{$site_name}/collect/{$collName}/etc/collectionConfig.xml">collection
217 configuration file</a> provides a good insight into how
218 all of these technical aspectcs are brought together.
219 </p>
220
221 <p>
222 Full disclosure as to how the collection all ticks is
223 provided through our Subversion repository. Topping up
224 our
225 <a href="https//trac.greenstone.org/browser/main/trunk/greenstone3">Greenstone3
226 code base</a> we have:
227
228 <ul>
229 <li>The site: <a href="https://trac.greenstone.org/browser/main/trunk/model-sites-dev/eurovision-lod">eurovision-lod</a></li>
230 <li>The interface: <a href="https://trac.greenstone.org/browser/main/trunk/model-interfaces-dev/eurovision-lod">eurovision-lod</a></li>
231 <li>The triplestore extension: <a href="https://trac.greenstone.org/browser/gs2-extensions/apache-jena/trunk/src">apache-jena</a></li>
232 </ul>
233
234 </p>
235 </div>
236 </div>
237
238 <script>
239 <xsl:text disable-output-escaping="yes">
240 $(function(){
241 transformToTurnstyleBlock("technicaldev");
242 });
243 </xsl:text>
244 </script>
245
246 <div id="LOD-turnstyle" style="margin-top: 12px;">
247 <div class="turnstyle-header" style="background-image: none; background-color: hsl(195, 47%, 35%);">
248 Linked Open Data
249 </div>
250
251 <div style="display: none; padding-left: 6px; padding-top: 6px; margin-left: 2px; margin-right: 2px; border-left: white solid 1px; border-right: white solid 1px; border-bottom: white solid 1px;">
252
253
254 <h2>Eurovision LOD SPARQL Endpoints</h2>
255 <p>
256 The source data can be access vis the DBpedia SPARQL endpoint. The ingested,
257 data (with correction) is available through the collection's local
258 SPARQL endpoint:
259 <ul>
260 <li>
261 <a href="https://dbpedia.org/sparql/">DBpedia's SPARQL endpoint</a>
262 </li>
263 <li>
264 <a href="{$library_name}/collection/{$collName}/page/sparql">DL's (local) SPARQL endpoint</a>
265 </li>
266 </ul>
267 </p>
268
269 <h2>Eurovision LOD Errata</h2>
270 <p>
271 Songs titles and Entrants (artists) that do not resolve to URIs:
272 <ul>
273 <li>
274 <a href="sites/{$site_name}/collect/{$collName}/prepare/problem-lod-lists/dbpedia-problem-songs.html">Problem Songs (titles are string literals not IRIs)</a>
275 </li>
276 <li>
277 <a href="sites/{$site_name}/collect/{$collName}/prepare/problem-lod-lists/dbpedia-problem-entrants.html">Problem Entrants (artists are string literals not IRIs)</a>
278 </li>
279 </ul>
280 </p>
281 </div>
282 </div>
283
284 <script>
285 <xsl:text disable-output-escaping="yes">
286 $(function(){
287 transformToTurnstyleBlock("LOD");
288 });
289 </xsl:text>
290 </script>
291
292 <div id="voting-turnstyle" style="margin-top: 12px;">
293 <div class="turnstyle-header" style="background-image: none; background-color: hsl(195, 47%, 35%);">
294 Voting Data
295 </div>
296
297 <div style="display: none; padding-left: 6px; padding-top: 6px; margin-left: 2px; margin-right: 2px; border-left: white solid 1px; border-right: white solid 1px; border-bottom: white solid 1px;">
298 <p>
299 The Voting data used in this collection is sourced from the Kaggle, which in turn
300 is derived from work available through Data Graver:
301 <ul>
302 <li><a href="https://www.kaggle.com/datagraver/eurovision-song-contest-scores-19752019">Kaggle Eurovision Voting dataset 1975-2019</a></li>
303 <li><a href="https://data.world/datagraver/eurovision-song-contest-scores-1975-2019">Data Graver</a></li>
304 <li><a href="https://docs.google.com/spreadsheets/d/1veXpiF54hQGP4OVuf1xjowumIe8HUOhI/edit#gid=528591420">Google Spreadsheet (internal use only)</a></li>
305
306 </ul>
307 </p>
308 </div>
309 </div>
310
311 <script>
312 <xsl:text disable-output-escaping="yes">
313 $(function(){
314 transformToTurnstyleBlock("voting");
315 });
316 </xsl:text>
317 </script>
318
319
320 </div>
321
322 </xsl:template>
323
324
325</xsl:stylesheet>
326
Note: See TracBrowser for help on using the repository browser.