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

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

More expansive introduction to About page

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