https://lingualibre.org/api.php?action=feedcontributions&user=VIGNERON&feedformat=atom
Lingua Libre - User contributions [en]
2024-03-28T20:47:15Z
User contributions
MediaWiki 1.35.2
https://lingualibre.org/index.php?title=MediaWiki:Bluell-record/br&diff=1339274
MediaWiki:Bluell-record/br
2024-03-27T15:17:02Z
<p>VIGNERON: + br</p>
<hr />
<div>Enrollañ</div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Main_Page/text/br&diff=1339273
LinguaLibre:Main Page/text/br
2024-03-27T15:15:50Z
<p>VIGNERON: </p>
<hr />
<div><div class="section section-wmbg-right gap-m"><br />
<div class="columns gap-m"><br />
<div><br />
== Degemer mat e Lingua Libre, mediaoueg yezhel kenlabourat Wikimedia Frañs. ==<br />
</div><br />
<div></div><br />
</div><br />
<br />
<div class="columns v-center"><br />
<div class="mainpage-last-records"><br />
Enrolladennoù diwezhañ<br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
</div><br />
<div><br />
<div class="mainpage-crop-1 shadow"><br />
[[File:Georges Fodouop Wiki Indaba 2017.jpg|frameless|450px]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-white gap-l"><br />
<div class="columns v-center"><br />
<div class="mainpage-center"><br />
<div class="mainpage-crop-2"><br />
[[File:Young girls reading - Government primary school in Amman, Jordan.jpg|frameless|700px]]<br />
</div><br />
</div><br />
<div><br />
=== Lakait da vevañ liested ar yezhoù dre enrollañ gerioù, frazennoù ha krennlavaroù en ho yezh. ===<br />
Kemeret a reoc'h perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reoc'h skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.<br />
<br />
Eskemm a reoc'h gant tud eus ar bed a-bezh a zo kizidik ouzh ar pouez-mouezhioù lec'hel, yezhoù ar sinoù, ar yezhoù minorelaet hag o skignadur.<br />
<br />
Ar gerioù, al lavarennoù, hag ar c'hanaouennoù dastumet ganeoc'h a wellay raktresoù Wikimedia (evel Wikipedia ha Wikeriadur) hag a sikouray an arbennigourien/ezed en o labour.<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section gap-l"><br />
<div class="columns v-center"><br />
<div><br />
<div class="citation">“Dre ar yezh a gomzomp e tasson mouezhioù ar pobloù o deus aet da goll”</div><br />
– Vassilis Alexakis<br />
</div><br />
<div id="languages-overview" class="columns columns-nowrap"><br />
<ul><br />
<li>Atikamekweg</li><br />
<li>Katalaneg</li><br />
<li>Galleg</li><br />
<li>Swahilieg</li><br />
</ul><br />
<ul><br />
<li>Afrikaans</li><br />
<li>Koreaneg</li><br />
<li>Oriyeg</li><br />
<li>Hag en tu all da 100 yezh all</li><br />
</ul><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-letters"><br />
<div class="columns v-center"><br />
<div class="mainpage-shifted hide-s"><br />
<div class="mainpage-shifted-1">[[File:3 sine waves artistic representation.svg|frameless|400px]]</div><br />
<div class="mainpage-shifted-2">[[File:Lingua libre illustration - audio record.svg|frameless|445px]]</div><br />
</div><br />
<div style="text-align: center;"><br />
[[Special:RecordWizard|<span style="font-size: 22px; color: #222222;">Enrollañ mouezhioù</span>]]<br />
[[Special:RecordWizard|<div style="margin: auto; margin-top: 23px;" class="mainpage-record-button"></div>]]<br />
<div style="text-align: right;"><br />
<small>'''[https://lingualibre.org/index.php?title=Special:Translate&group=page-LinguaLibre%3AMain+Page%2Ftext&action=page&filter= Treiñ ar bajenn-mañ]'''</small><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
__NOTOC__<br />
__NOEDITSECTION__</div>
VIGNERON
https://lingualibre.org/index.php?title=Translations:LinguaLibre:Main_Page/text/4/br&diff=1339272
Translations:LinguaLibre:Main Page/text/4/br
2024-03-27T15:15:50Z
<p>VIGNERON: </p>
<hr />
<div>Kemeret a reoc'h perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reoc'h skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.</div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Main_Page/text/br&diff=1339271
LinguaLibre:Main Page/text/br
2024-03-27T15:15:40Z
<p>VIGNERON: cohérence avec le reste de la page</p>
<hr />
<div><div class="section section-wmbg-right gap-m"><br />
<div class="columns gap-m"><br />
<div><br />
== Degemer mat e Lingua Libre, mediaoueg yezhel kenlabourat Wikimedia Frañs. ==<br />
</div><br />
<div></div><br />
</div><br />
<br />
<div class="columns v-center"><br />
<div class="mainpage-last-records"><br />
Enrolladennoù diwezhañ<br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
</div><br />
<div><br />
<div class="mainpage-crop-1 shadow"><br />
[[File:Georges Fodouop Wiki Indaba 2017.jpg|frameless|450px]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-white gap-l"><br />
<div class="columns v-center"><br />
<div class="mainpage-center"><br />
<div class="mainpage-crop-2"><br />
[[File:Young girls reading - Government primary school in Amman, Jordan.jpg|frameless|700px]]<br />
</div><br />
</div><br />
<div><br />
=== Lakait da vevañ liested ar yezhoù dre enrollañ gerioù, frazennoù ha krennlavaroù en ho yezh. ===<br />
Kemeret a reoc'h perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reot skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.<br />
<br />
Eskemm a reoc'h gant tud eus ar bed a-bezh a zo kizidik ouzh ar pouez-mouezhioù lec'hel, yezhoù ar sinoù, ar yezhoù minorelaet hag o skignadur.<br />
<br />
Ar gerioù, al lavarennoù, hag ar c'hanaouennoù dastumet ganeoc'h a wellay raktresoù Wikimedia (evel Wikipedia ha Wikeriadur) hag a sikouray an arbennigourien/ezed en o labour.<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section gap-l"><br />
<div class="columns v-center"><br />
<div><br />
<div class="citation">“Dre ar yezh a gomzomp e tasson mouezhioù ar pobloù o deus aet da goll”</div><br />
– Vassilis Alexakis<br />
</div><br />
<div id="languages-overview" class="columns columns-nowrap"><br />
<ul><br />
<li>Atikamekweg</li><br />
<li>Katalaneg</li><br />
<li>Galleg</li><br />
<li>Swahilieg</li><br />
</ul><br />
<ul><br />
<li>Afrikaans</li><br />
<li>Koreaneg</li><br />
<li>Oriyeg</li><br />
<li>Hag en tu all da 100 yezh all</li><br />
</ul><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-letters"><br />
<div class="columns v-center"><br />
<div class="mainpage-shifted hide-s"><br />
<div class="mainpage-shifted-1">[[File:3 sine waves artistic representation.svg|frameless|400px]]</div><br />
<div class="mainpage-shifted-2">[[File:Lingua libre illustration - audio record.svg|frameless|445px]]</div><br />
</div><br />
<div style="text-align: center;"><br />
[[Special:RecordWizard|<span style="font-size: 22px; color: #222222;">Enrollañ mouezhioù</span>]]<br />
[[Special:RecordWizard|<div style="margin: auto; margin-top: 23px;" class="mainpage-record-button"></div>]]<br />
<div style="text-align: right;"><br />
<small>'''[https://lingualibre.org/index.php?title=Special:Translate&group=page-LinguaLibre%3AMain+Page%2Ftext&action=page&filter= Treiñ ar bajenn-mañ]'''</small><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
__NOTOC__<br />
__NOEDITSECTION__</div>
VIGNERON
https://lingualibre.org/index.php?title=Translations:LinguaLibre:Main_Page/text/4/br&diff=1339270
Translations:LinguaLibre:Main Page/text/4/br
2024-03-27T15:15:39Z
<p>VIGNERON: cohérence avec le reste de la page</p>
<hr />
<div>Kemeret a reoc'h perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reot skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.</div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Main_Page/text/br&diff=1339269
LinguaLibre:Main Page/text/br
2024-03-27T15:13:27Z
<p>VIGNERON: (ping User:Adriendelucca)</p>
<hr />
<div><div class="section section-wmbg-right gap-m"><br />
<div class="columns gap-m"><br />
<div><br />
== Degemer mat e Lingua Libre, mediaoueg yezhel kenlabourat Wikimedia Frañs. ==<br />
</div><br />
<div></div><br />
</div><br />
<br />
<div class="columns v-center"><br />
<div class="mainpage-last-records"><br />
Enrolladennoù diwezhañ<br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
<div class="audiobox"><br />
<div class="ab-playbutton"><i></i></div><br />
<div><br />
<div class="ab-title">...</div><br />
<div class="ab-metadata">...</div><br />
</div><br />
</div><br />
</div><br />
<div><br />
<div class="mainpage-crop-1 shadow"><br />
[[File:Georges Fodouop Wiki Indaba 2017.jpg|frameless|450px]]<br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-white gap-l"><br />
<div class="columns v-center"><br />
<div class="mainpage-center"><br />
<div class="mainpage-crop-2"><br />
[[File:Young girls reading - Government primary school in Amman, Jordan.jpg|frameless|700px]]<br />
</div><br />
</div><br />
<div><br />
=== Lakait da vevañ liested ar yezhoù dre enrollañ gerioù, frazennoù ha krennlavaroù en ho yezh. ===<br />
Kemeret a reot perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reot skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.<br />
<br />
Eskemm a reoc'h gant tud eus ar bed a-bezh a zo kizidik ouzh ar pouez-mouezhioù lec'hel, yezhoù ar sinoù, ar yezhoù minorelaet hag o skignadur.<br />
<br />
Ar gerioù, al lavarennoù, hag ar c'hanaouennoù dastumet ganeoc'h a wellay raktresoù Wikimedia (evel Wikipedia ha Wikeriadur) hag a sikouray an arbennigourien/ezed en o labour.<br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section gap-l"><br />
<div class="columns v-center"><br />
<div><br />
<div class="citation">“Dre ar yezh a gomzomp e tasson mouezhioù ar pobloù o deus aet da goll”</div><br />
– Vassilis Alexakis<br />
</div><br />
<div id="languages-overview" class="columns columns-nowrap"><br />
<ul><br />
<li>Atikamekweg</li><br />
<li>Katalaneg</li><br />
<li>Galleg</li><br />
<li>Swahilieg</li><br />
</ul><br />
<ul><br />
<li>Afrikaans</li><br />
<li>Koreaneg</li><br />
<li>Oriyeg</li><br />
<li>Hag en tu all da 100 yezh all</li><br />
</ul><br />
</div><br />
</div><br />
</div><br />
<br />
<div class="section section-letters"><br />
<div class="columns v-center"><br />
<div class="mainpage-shifted hide-s"><br />
<div class="mainpage-shifted-1">[[File:3 sine waves artistic representation.svg|frameless|400px]]</div><br />
<div class="mainpage-shifted-2">[[File:Lingua libre illustration - audio record.svg|frameless|445px]]</div><br />
</div><br />
<div style="text-align: center;"><br />
[[Special:RecordWizard|<span style="font-size: 22px; color: #222222;">Enrollañ mouezhioù</span>]]<br />
[[Special:RecordWizard|<div style="margin: auto; margin-top: 23px;" class="mainpage-record-button"></div>]]<br />
<div style="text-align: right;"><br />
<small>'''[https://lingualibre.org/index.php?title=Special:Translate&group=page-LinguaLibre%3AMain+Page%2Ftext&action=page&filter= Treiñ ar bajenn-mañ]'''</small><br />
</div><br />
</div><br />
</div><br />
</div><br />
<br />
__NOTOC__<br />
__NOEDITSECTION__</div>
VIGNERON
https://lingualibre.org/index.php?title=Translations:LinguaLibre:Main_Page/text/4/br&diff=1339268
Translations:LinguaLibre:Main Page/text/4/br
2024-03-27T15:13:26Z
<p>VIGNERON: (ping User:Adriendelucca)</p>
<hr />
<div>Kemeret a reot perzh da sevel ur c'horpus kleweled liesyezhek ha gwellaat a reot skedusted ha buhez ho yezh evel m'emaoc'h o komz pe sinañ.</div>
VIGNERON
https://lingualibre.org/index.php?title=MediaWiki:Menu-datasets/br&diff=1332824
MediaWiki:Menu-datasets/br
2024-03-19T13:19:35Z
<p>VIGNERON: </p>
<hr />
<div>Rummadoù roadennoù</div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Explore_the_sound_library/br&diff=1332820
LinguaLibre:Explore the sound library/br
2024-03-19T11:00:48Z
<p>VIGNERON: </p>
<hr />
<div><languages /><br />
<div id="sndlib-datasetsButton"></div><br />
<div id="sndlib-totalContainer"><br />
<div id="sndlib-filterContainer" style="background-color: #206ae2; color: white; height:500px; width: 300px"><br />
<span style="color: white;">👤 Komzer·ez<span id="sndlib-filteruser"></span></span><br />
<span style="color: white;">♀️ ♂️ Reizh ar c'homzer/gomzerez<span id="sndlib-filtergender"></span></span><br />
<span style="color: white;">🏳️ Yezh<span id="sndlib-filterlanguage"></span></span><br />
<span style="color: white;">🥇 Live barregezh<span id="sndlib-filterlevelofproficiency"></span></span><br />
<div id="sndlib-buttonsContainer"><br />
<div id="sndlib-buttonsContainer1"><br />
<span id="sndlib-gosearch" style="color: white;"></span> <br />
<span id="sndlib-resetsearch" style="color: white;"></span><br />
</div><br />
<div id="sndlib-buttonsContainer2"><br />
<span id="sndlib-gosearch-last-records" style="color: white;"></span> <br />
</div><br />
</div><br />
<span id="sndlib-savefiltersearch"> 💾 Ezporzhiañ ar reked-mañ e csv</span> <br />
</div><br />
<div id="sndlib-results"><br />
==Disoc'hoù==<br />
<div id="sndlib-messages"></div><br />
<div id="sndlib-audioresults"></div><br />
<div id="sndlib-audioPages"></div><br />
</div><div style="display:none"><br />
<span id="placeholder">Diuzit pe skrivit</span><br />
<span id="button-gosearch">Klask</span><br />
<span id="button-gosearch-last-records">Enrolladennoù diwezhañ</span><br />
<span id="button-resetsearch">Skarzhañ</span><br />
<span id="button-datasets">Bankoù roadennoù</span><br />
<span id="msg-no-results">Disoc'h ebet.</span><br />
<span id="msg-error">Fazi</span><br />
<span id="msg-other-records">&nbsp;(ha meur a zisoc'h all)</span><br />
<span id="msg-no-record-in-language">N'hon eus enrolladenn ebet er yezh-mañ c'hoazh. Ma komzit anezhi, [[$1|krogit da enrollañ amañ mar plij]] !</span></div>__NOEDITSECTION__<br />
[[Category:Tool]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Translations:LinguaLibre:Explore_the_sound_library/15/br&diff=1332819
Translations:LinguaLibre:Explore the sound library/15/br
2024-03-19T11:00:48Z
<p>VIGNERON: </p>
<hr />
<div>N'hon eus enrolladenn ebet er yezh-mañ c'hoazh. Ma komzit anezhi, [[$1|krogit da enrollañ amañ mar plij]] !</div>
VIGNERON
https://lingualibre.org/index.php?title=MediaWiki:Menu-library/br&diff=1332818
MediaWiki:Menu-library/br
2024-03-19T11:00:07Z
<p>VIGNERON: Created page with "Sonaoueg"</p>
<hr />
<div>Sonaoueg</div>
VIGNERON
https://lingualibre.org/index.php?title=MediaWiki:Menu-datasets/br&diff=1332817
MediaWiki:Menu-datasets/br
2024-03-19T10:57:59Z
<p>VIGNERON: plural</p>
<hr />
<div>Spletadoù roadennoù</div>
VIGNERON
https://lingualibre.org/index.php?title=MediaWiki:Menu-datasets/br&diff=1332816
MediaWiki:Menu-datasets/br
2024-03-19T10:56:38Z
<p>VIGNERON: Created page with "Spletad roadennoù"</p>
<hr />
<div>Spletad roadennoù</div>
VIGNERON
https://lingualibre.org/index.php?title=MediaWiki:Menu-statistics/br&diff=1325674
MediaWiki:Menu-statistics/br
2024-03-07T16:32:21Z
<p>VIGNERON: krouiñ</p>
<hr />
<div>Stadegoù</div>
VIGNERON
https://lingualibre.org/index.php?title=List:Bre/Most_frequent_words&diff=1312184
List:Bre/Most frequent words
2024-02-16T15:47:32Z
<p>VIGNERON: ménage, suite</p>
<hr />
<div># ket<br />
# ar<br />
# eo<br />
# da<br />
# a<br />
# an<br />
# e<br />
# ur<br />
# ma<br />
# eus<br />
# o<br />
# ha<br />
# gant<br />
# din<br />
# un<br />
# en<br />
# petra<br />
# ne<br />
# bet<br />
# zo<br />
# se<br />
# mat<br />
# war<br />
# amañ<br />
# hag<br />
# deus<br />
# ho<br />
# bezañ<br />
# evit<br />
# er<br />
# mont<br />
# on<br />
# ya<br />
# met<br />
# dit<br />
# ken<br />
# ober<br />
# out<br />
# hon<br />
# all<br />
# graet<br />
# neuze<br />
# deomp<br />
# c'hoant<br />
# oa<br />
# re<br />
# ebet<br />
# na<br />
# ret<br />
# me<br />
# gwelet<br />
# anezhañ<br />
# em<br />
# ac'hanon<br />
# gwir<br />
# pa<br />
# al<br />
# oc'h<br />
# ra<br />
# perak<br />
# pep<br />
# te<br />
# tu<br />
# unan<br />
# piv<br />
# vo<br />
# anezho<br />
# hini<br />
# lâret<br />
# holl<br />
# chom<br />
# pe<br />
# traoù<br />
# soñj<br />
# deoc'h<br />
# omp<br />
# tra<br />
# netra<br />
# lâr<br />
# paotr<br />
# setu<br />
# kuit<br />
# vont<br />
# ganit<br />
# penaos<br />
# ouzh<br />
# goût<br />
# letanant<br />
# ivez<br />
# he<br />
# ganin<br />
# pelec'h<br />
# dezhi<br />
# c'hoazh<br />
# hor<br />
# dezhañ<br />
# bennak<br />
# ac'hanout<br />
# nemet<br />
# lazhet<br />
# kaout<br />
# ez<br />
# marteze<br />
# pezh<br />
# dra<br />
# bremañ<br />
# dre<br />
# digarez<br />
# deuet<br />
# vezañ<br />
# vez<br />
# en-dro<br />
# gantañ<br />
# dezho<br />
# den<br />
# paotred<br />
# gwelloc'h<br />
# vat<br />
# fall<br />
# buan<br />
# tamm<br />
# ran<br />
# amzer<br />
# kaoc'h<br />
# int<br />
# hep<br />
# tud<br />
# sikour<br />
# welet<br />
# dont<br />
# anezhi<br />
# aet<br />
# ac'hanomp<br />
# tout<br />
# ezhomm<br />
# a-raok<br />
# war-raok<br />
# anv<br />
# prest<br />
# lec'h<br />
# komz<br />
# echu<br />
# ale<br />
# sell<br />
# dav<br />
# marv<br />
# laouen<br />
# daou<br />
# kaset<br />
# dud<br />
# ul<br />
# kit<br />
# fell<br />
# betek<br />
# penn<br />
# ok<br />
# sur<br />
# soudard<br />
# peus<br />
# c'hoarvezet<br />
# c'hast<br />
# brezel<br />
# paouez<br />
# klask<br />
# kas<br />
# Doue<br />
# aon<br />
# a-benn<br />
# trugarez<br />
# ouzhin<br />
# dija<br />
# zoken<br />
# soudarded<br />
# lakaat<br />
# tont<br />
# lazhañ<br />
# klevet<br />
# gentañ<br />
# fouzhañ<br />
# aze<br />
# atav<br />
# iskis<br />
# ac'hanoc'h<br />
# kabiten<br />
# revr<br />
# goude<br />
# gast<br />
# ganeoc'h<br />
# lakaet<br />
# kae<br />
# eil<br />
# baotred<br />
# arc'hant<br />
# sot<br />
# ro<br />
# gloazet<br />
# doa<br />
# distreiñ<br />
# c'hwi<br />
# aotrou<br />
# stourm<br />
# banne<br />
# raio<br />
# peogwir<br />
# arabat<br />
# wech<br />
# veg<br />
# rit<br />
# ganti<br />
# ganeomp<br />
# c'hoari<br />
# tapet<br />
# roet<br />
# gortoz<br />
# sellet<br />
# plijet<br />
# peseurt<br />
# labour<br />
# deuit<br />
# brein<br />
# nevez<br />
# kavet<br />
# evel<br />
# dreist<br />
# chomit<br />
# brav<br />
# abaoe<br />
# vefe<br />
# rin<br />
# eno<br />
# emañ<br />
# belec'h<br />
# mamm<br />
# kevrenn<br />
# kalz<br />
# gêr<br />
# serjant<br />
# plac'h<br />
# mignon<br />
# merc'hed<br />
# forzh<br />
# soñjal<br />
# paourkaezh<br />
# morse<br />
# marplij<br />
# gudenn<br />
# edukatour<br />
# c'hell<br />
# chef<br />
# tan<br />
# hoc'h<br />
# ganto<br />
# dirak<br />
# bed<br />
# reiñ<br />
# poent<br />
# nann<br />
# fin<br />
# du-se<br />
# dra-se<br />
# buhez<br />
# a-dreñv<br />
# sioul<br />
# krediñ<br />
# kompren<br />
# kentañ<br />
# goulenn<br />
# fenoz<br />
# cheñchet<br />
# cheñch<br />
# asambles<br />
# nebeut<br />
# kollet<br />
# gouest<br />
# goap<br />
# bras<br />
# skarzh<br />
# selaou<br />
# rez<br />
# peoc'h<br />
# pell<br />
# lerc'h<br />
# kemer<br />
# faot<br />
# eñ<br />
# di<br />
# ofiser<br />
# oar<br />
# bez<br />
# galloud<br />
# dindan<br />
# devezh<br />
# c'halloud<br />
# vloaz<br />
# seurt<br />
# plijus<br />
# gouzout<br />
# goudor<br />
# c'hortoz<br />
# a-walc'h<br />
# vuhez<br />
# tapit<br />
# sapre<br />
# putenn<br />
# pich<br />
# dare<br />
# a-du<br />
# toull<br />
# sañset<br />
# oan<br />
# lak<br />
# klasket<br />
# kavout<br />
# jeu<br />
# hent<br />
# div<br />
# dispar<br />
# bev<br />
# tri<br />
# sevel<br />
# serr<br />
# rank<br />
# plijadur<br />
# pebezh<br />
# oh<br />
# mervel<br />
# maez<br />
# lez<br />
# deiz<br />
# a-sav<br />
# arme<br />
# tennañ<br />
# laeret<br />
# koant<br />
# gwellañ<br />
# bloaz<br />
# trawalc'h<br />
# salud<br />
# plijout<br />
# noz<br />
# nor<br />
# ni<br />
# mignoned<br />
# memes<br />
# marvet<br />
# jentil<br />
# diouzhtu<br />
# reomp<br />
# ouzhit<br />
# outañ<br />
# munisionoù<br />
# hepken<br />
# dec'h<br />
# bern<br />
# armoù<br />
# vamm<br />
# tenn<br />
# selaouit<br />
# muioc'h<br />
# labourioù-kastiz<br />
# kleiz<br />
# kerzh<br />
# glask<br />
# demat<br />
# c'harr<br />
# chañs<br />
# war-gil<br />
# viz<br />
# soñjet<br />
# sellit<br />
# ranket<br />
# kozh<br />
# hi<br />
# hañ<br />
# dremenet<br />
# dok<br />
# boued<br />
# anavezout<br />
# war-sav<br />
# voc'h<br />
# spontus<br />
# skuizh<br />
# polis<br />
# plas<br />
# paket<br />
# lavaret<br />
# kroget<br />
# koronal<br />
# grit<br />
# gevier<br />
# geo<br />
# emaon<br />
# emaomp<br />
# dehoù<br />
# breur<br />
# bevañ<br />
# azen<br />
# a-enep<br />
# adarre<br />
# ti<br />
# disoñjet<br />
# dazont<br />
# dalc'h<br />
# c'hoarvezout<br />
# c'hellan<br />
# bihan<br />
# afo<br />
# warc'hoazh<br />
# touchañ<br />
# tomm<br />
# tad<br />
# sutal<br />
# start<br />
# miz<br />
# mersi<br />
# lod<br />
# linenn<br />
# lâran<br />
# kudenn<br />
# istor<br />
# gorventenn<br />
# gortozit<br />
# gomz<br />
# doare<br />
# distroet<br />
# dilhad<br />
# digarezit<br />
# babig<br />
# arm<br />
# urzhioù<br />
# talbenn<br />
# ouzhpenn<br />
# lous<br />
# lârit<br />
# kuzhet<br />
# kement<br />
# kasit<br />
# just<br />
# Jezuz<br />
# gra<br />
# er-maez<br />
# enebourien<br />
# emaint<br />
# eget<br />
# e-barzh<br />
# diouzh<br />
# chalet<br />
# batailhon<br />
# aes<br />
# zad<br />
# warnañ<br />
# vro<br />
# tremen<br />
# takad<br />
# sirius<br />
# saveteiñ<br />
# sav<br />
# munutenn<br />
# mab<br />
# kentoc'h<br />
# hiziv<br />
# greizenn<br />
# goulennet<br />
# fiziañs<br />
# faskourien<br />
# eur<br />
# du<br />
# dramm<br />
# douar<br />
# diwar<br />
# c'horfoù<br />
# alemañ<br />
# warnon<br />
# trec'h<br />
# tost<br />
# tadig<br />
# santan<br />
# sac'h<br />
# poan<br />
# pegoulz<br />
# nozvezh<br />
# mui<br />
# moal<br />
# milis<br />
# mare<br />
# lezel<br />
# lenn<br />
# laerezh<br />
# kontañ<br />
# komzet<br />
# hast<br />
# gellet<br />
# galloudoù<br />
# fazi<br />
# farsal<br />
# drol<br />
# dour<br />
# diwezhatoc'h<br />
# diwezhañ<br />
# dad<br />
# c'horonal<br />
# c'hellez<br />
# bugel<br />
# bep<br />
# a-seblant<br />
# war-dro<br />
# skarzhit<br />
# skarzhet<br />
# reont<br />
# moarvat<br />
# mezeg<br />
# memestra<br />
# mat-tre<br />
# lezit<br />
# leur<br />
# komprenet<br />
# klevout<br />
# kaer<br />
# jeneral<br />
# Izelvroioù<br />
# gompagnunezh<br />
# etre<br />
# dro<br />
# dispac'h<br />
# bobl<br />
# batrouilhenn<br />
# Alamaned<br />
# yaouank<br />
# vervel<br />
# spered<br />
# skeiñ<br />
# roit<br />
# respont<br />
# plij<br />
# pelloc'h<br />
# neuz<br />
# nemetañ<br />
# labourat<br />
# krog<br />
# kredapl<br />
# hol<br />
# hey<br />
# harzet<br />
# gwashañ<br />
# digorit<br />
# digor<br />
# dieub<br />
# chomet<br />
# bugale<br />
# benn<br />
# alaman<br />
# afer<br />
# a-bezh<br />
# welan<br />
# vignonez<br />
# tro<br />
# tennit<br />
# strollad<br />
# stêr<br />
# skoet<br />
# santout<br />
# rankout<br />
# rae<br />
# prizonidi<br />
# pichoù<br />
# pellgomz<br />
# pegen<br />
# paotrig<br />
# noazh<br />
# nemetken<br />
# naon<br />
# mod<br />
# mignonez<br />
# medisin<br />
# major<br />
# lammat<br />
# kredet<br />
# krakoù<br />
# kemeret<br />
# hir<br />
# hennezh<br />
# ger<br />
# frankiz<br />
# fouzhet<br />
# evezh<br />
# evañ<br />
# erru<br />
# egile<br />
# doue<br />
# distro<br />
# c'harr-nij<br />
# c'habiten<br />
# buanoc'h<br />
# bewech<br />
# aotrounez<br />
# teu<br />
# sklaer<br />
# seblant<br />
# re-se<br />
# pevar<br />
# ospital<br />
# oamp<br />
# Normandi<br />
# nebeutañ<br />
# kuzh<br />
# koulskoude<br />
# kont<br />
# heul<br />
# gwech<br />
# gwall<br />
# gourc'hemennoù<br />
# gevrenn<br />
# get<br />
# fliked<br />
# fas<br />
# evidon<br />
# eurvezh<br />
# ennout<br />
# ennon<br />
# enebour<br />
# emgann<br />
# emaoc'h<br />
# dres<br />
# do<br />
# diwelus<br />
# diskouezh<br />
# c'hwitet<br />
# c'homandant<br />
# blij<br />
# bezit<br />
# betra<br />
# a-wechoù<br />
# zont<br />
# voe<br />
# varv<br />
# troet<br />
# tizhet<br />
# tennoù<br />
# tennet<br />
# tapout<br />
# stal<br />
# skol<br />
# sed<br />
# reoù<br />
# rejimant<br />
# redek<br />
# prenet<br />
# pet<br />
# pegement<br />
# nebeud<br />
# mestr<br />
# lezet<br />
# lakait<br />
# kwelet<br />
# karout<br />
# harz<br />
# hanter<br />
# hag-eñ<br />
# gas<br />
# farsadenn<br />
# estreget<br />
# drouk<br />
# divarvel<br />
# dibabet<br />
# diaes<br />
# dennañ<br />
# dedennet<br />
# c'hoarvez<br />
# blev<br />
# bastard<br />
# barver<br />
# bagad<br />
# vunutenn<br />
# vrav<br />
# veze<br />
# van<br />
# tro-dro<br />
# soñjan<br />
# skoazell<br />
# sigaretenn<br />
# renket<br />
# ranndi<br />
# rak<br />
# raimp<br />
# prof<br />
# pemp<br />
# pal<br />
# outo<br />
# oant<br />
# neketa<br />
# kuzhit<br />
# kuitaat<br />
# kudennoù<br />
# kendalc'hit<br />
# kalon<br />
# kablus<br />
# hastit<br />
# gwaz<br />
# grevus<br />
# gellout<br />
# foutre<br />
# familh<br />
# e-pad<br />
# diwall<br />
# debret<br />
# davet<br />
# c'har<br />
# brudet<br />
# biskoazh<br />
# biken<br />
# bec'h<br />
# ziwezhat<br />
# war-lerc'h<br />
# vras<br />
# urzh<br />
# tremenet<br />
# torret<br />
# taget<br />
# spi<br />
# skarzhañ<br />
# sizhunvezh<br />
# sizhun<br />
# sikouret<br />
# ri<br />
# rediet<br />
# posubl<br />
# perzh<br />
# on-me<br />
# nullet<br />
# null<br />
# mankout<br />
# madigoù<br />
# lorc'h<br />
# loen<br />
# leñvañ<br />
# kenderc'hel<br />
# kaoz<br />
# hervez<br />
# gwareziñ<br />
# gwarezet<br />
# greunadennoù<br />
# goulennoù<br />
# gac'hat<br />
# fuzuilh<br />
# fiñval<br />
# fiñv<br />
# evidomp<br />
# emzalc'h<br />
# el<br />
# dorn<br />
# diwar-benn<br />
# distruj<br />
# derc'hel<br />
# dal<br />
# c'houlenn<br />
# bil<br />
# Alamagn<br />
# abeg<br />
# zen<br />
# zebriñ<br />
# wir<br />
# warnomp<br />
# vimp<br />
# vi<br />
# vazh<br />
# torr-revr<br />
# tec'het<br />
# taol<br />
# stourmet<br />
# stanket<br />
# skrivet<br />
# rentañ-kont<br />
# renkañ<br />
# renk<br />
# pouezus<br />
# politikel<br />
# ouzhoc'h<br />
# nag<br />
# mezh<br />
# masklet<br />
# louskenn<br />
# lizhiri<br />
# labourerien<br />
# kousket<br />
# komandant<br />
# kennebeut<br />
# gwisket<br />
# gouarnamant<br />
# galon<br />
# farsus<br />
# e-unan<br />
# erruiñ<br />
# emgav<br />
# echuiñ<br />
# ec'h<br />
# droch<br />
# doenn<br />
# disheñvel<br />
# dilezel<br />
# dibab<br />
# desket<br />
# davarn<br />
# da-unan<br />
# daouarn<br />
# c'hwezh<br />
# c'hwec'h<br />
# c'hi<br />
# c'hello<br />
# c'hamp<br />
# chaflutenn<br />
# butun<br />
# bronnoù<br />
# blas<br />
# azezañ<br />
# alkol<br />
# abalamour<br />
# zevezh<br />
# yuzevien<br />
# wirionez<br />
# warnout<br />
# vreur<br />
# vrallañ<br />
# volotenn<br />
# vint<br />
# vije<br />
# treuziñ<br />
# toulloù<br />
# tiez<br />
# tap<br />
# tammig<br />
# stad<br />
# soñjoù<br />
# sinañ<br />
# seven<br />
# servij<br />
# saoz<br />
# rik<br />
# radio<br />
# peurrest<br />
# pennoù<br />
# pareañ<br />
# pakad<br />
# ofiserien<br />
# morfin<br />
# ma-unan<br />
# mare-mañ<br />
# mar<br />
# mammig<br />
# leusket<br />
# leun<br />
# lamm<br />
# kreñv<br />
# kregiñ<br />
# kompagnunezh<br />
# kinnig<br />
# kemerit<br />
# kavit<br />
# kafe<br />
# jeep<br />
# gwad<br />
# gouloù<br />
# gell<br />
# forn<br />
# fenn<br />
# felle<br />
# faotr<br />
# Europa<br />
# erruet<br />
# empenn<br />
# doujet<br />
# dit-te<br />
# disoñjal<br />
# diskoulm<br />
# din-me<br />
# dihun<br />
# difennet<br />
# darzhañ<br />
# daoust<br />
# daol<br />
# c'houfr<br />
# c'hanol<br />
# bremaik<br />
# biloù<br />
# bevet<br />
# beleg<br />
# barrek<br />
# azez<br />
# aotre<br />
# ankeniet<br />
# aio<br />
# adkavout<br />
# yen<br />
# yelo<br />
# welez<br />
# vignoned<br />
# vevañ<br />
# vaouez<br />
# va<br />
# unvezh<br />
# troc'het<br />
# trist<br />
# treiñ<br />
# traoñ<br />
# tankoù<br />
# skouer<br />
# skarzhomp<br />
# savet<br />
# red<br />
# rannet<br />
# rankomp<br />
# ranko<br />
# rafe<br />
# puten<br />
# privezioù<br />
# prenañ<br />
# pourveziñ<br />
# penn-adjudant<br />
# paotr-se<br />
# nac'hañ<br />
# muntr<br />
# mirout<br />
# ment<br />
# luz<br />
# lârez<br />
# kreñvoc'h<br />
# kontet<br />
# implijout<br />
# implij<br />
# hudur<br />
# hezoug<br />
# gwallzarvoud<br />
# gomprenan<br />
# goantenn<br />
# gerig<br />
# gemer<br />
# gar<br />
# gaout<br />
# ganet<br />
# foll<br />
# fiñvit<br />
# evidout<br />
# evidoc'h<br />
# evezhiañ<br />
# etrezomp<br />
# emglev<br />
# e-leizh<br />
# e-kreiz<br />
# edukatourez<br />
# du-mañ<br />
# dilezet<br />
# diktatour<br />
# dije<br />
# digant<br />
# deskiñ<br />
# debriñ<br />
# darvoud<br />
# dalc'hit<br />
# c'horf<br />
# c'hompagnunezh<br />
# c'hloazet<br />
# c'hentañ<br />
# c'hellit<br />
# c'heller<br />
# Bro-Saoz<br />
# brasañ<br />
# bragoù<br />
# boa<br />
# blijadur<br />
# bich<br />
# Berlin<br />
# bepred<br />
# adkavet<br />
# zro<br />
# zibab<br />
# zaoulagad<br />
# yuzev<br />
# youl<br />
# wellañ<br />
# welit<br />
# warni<br />
# vrein<br />
# vlev<br />
# vijemp<br />
# vezomp<br />
# vezit<br />
# vezer<br />
# vezan<br />
# trede<br />
# trankil<br />
# toye<br />
# tout-se<br />
# touellañ<br />
# terriñ<br />
# talvoudus<br />
# su<br />
# straed<br />
# spont<br />
# speredek<br />
# souezhet<br />
# sigaretennoù<br />
# seizh<br />
# santet<br />
# ruz<br />
# rener<br />
# ren<br />
# reizh<br />
# raen<br />
# post<br />
# pennoù-bras<br />
# penn-kentañ<br />
# pegeit<br />
# peadra<br />
# paotr-mañ<br />
# paeañ<br />
# obuz<br />
# oas<br />
# oad<br />
# normal<br />
# niverenn<br />
# nijal<br />
# mod-se<br />
# mod-all<br />
# meur<br />
# maout<br />
# mailh<br />
# laezh<br />
# kouezhet<br />
# korf<br />
# klañv<br />
# keuz<br />
# kêr<br />
# keleier<br />
# kejet<br />
# kasoni<br />
# kanol<br />
# kac'het<br />
# istorioù<br />
# ispisial<br />
# in<br />
# imp<br />
# harzoù<br />
# harz-debriñ<br />
# haroz<br />
# gwirionez<br />
# gwerc'h<br />
# gwer<br />
# gwashoc'h<br />
# greunadenn<br />
# gozh<br />
# glas<br />
# ghetto<br />
# gêriadenn<br />
# gay<br />
# gartenn<br />
# fouzher<br />
# fich<br />
# faskouriezh<br />
# evel-se<br />
# evel-just<br />
# enno<br />
# ennañ<br />
# dud-se<br />
# drailhet<br />
# drailhañ<br />
# dousig<br />
# dougen<br />
# douaret<br />
# diwar-wel<br />
# divalav<br />
# diskouez<br />
# dioutañ<br />
# dilojeiz<br />
# dieubiñ<br />
# c'hwitañ<br />
# chomo<br />
# c'hoarzhin<br />
# c'hanodoù<br />
# c'halon<br />
# buhezioù<br />
# bro<br />
# brein-se<br />
# bodet<br />
# befe<br />
# baradoz<br />
# a-us<br />
# a-stroll<br />
# anvet<br />
# amzer-vak<br />
# ambulañs<br />
# alies<br />
# ali<br />
# aferioù<br />
# ac'hann<br />
# a-bouez<br />
# zisoñjit<br />
# zeu<br />
# zerc'hel<br />
# zaouarn<br />
# youl-vat<br />
# war-droad<br />
# vugale<br />
# vrasañ<br />
# voger<br />
# vin<br />
# vank<br />
# uhel<br />
# treuzet<br />
# touchet<br />
# tistreiñ<br />
# tev<br />
# tatouadurioù<br />
# super-haroz<br />
# strollenniñ<br />
# stourmomp<br />
# startijenn<br />
# souezhus<br />
# soñjit<br />
# soñje<br />
# sonerezh<br />
# skeudenn<br />
# seks<br />
# seblantout<br />
# sal<br />
# sachit<br />
# prouiñ<br />
# prometiñ<br />
# prometet<br />
# prevez<br />
# poa<br />
# po<br />
# plasma<br />
# pign<br />
# ouzhomp<br />
# out-te<br />
# ouiez<br />
# oac'h<br />
# oabl<br />
# norzh<br />
# niverus<br />
# nerzh<br />
# naetaet<br />
# muiañ<br />
# miret<br />
# micher<br />
# mezv<br />
# mennozhioù<br />
# mall<br />
# lizher<br />
# livañ<br />
# lip<br />
# linennoù<br />
# lezin<br />
# lakaomp<br />
# keloù<br />
# kelloù<br />
# keit<br />
# karantez<br />
# kaozeal<br />
# kanolioù<br />
# kalonek<br />
# heuliañ<br />
# heñvel<br />
# hemañ<br />
# gwiskva<br />
# gwerzhet<br />
# gwenn<br />
# gwelout<br />
# gwarizius<br />
# gwarezit<br />
# gousket<br />
# gevredigezh<br />
# gannañ<br />
# fri<br />
# feuls<br />
# e-tal<br />
# embann<br />
# e-kichen<br />
# draoù<br />
# douch<br />
# diwallit<br />
# diouzhin<br />
# dieubet<br />
# diaoul<br />
# degemeret<br />
# degemer<br />
# defe<br />
# dedennus<br />
# darbet<br />
# dañsal<br />
# dale<br />
# dalc'het<br />
# dafar<br />
# c'houzout<br />
# chokolad<br />
# c'hoarvezo<br />
# c'hirri-nij<br />
# c'hellomp<br />
# c'hellfe<br />
# chatal<br />
# chaseal<br />
# chañsus<br />
# burev<br />
# brizonidi<br />
# bodit<br />
# bo<br />
# berr<br />
# bemdez<br />
# beg<br />
# banneoù<br />
# banjo<br />
# argadenn<br />
# argad<br />
# arc'hoazh<br />
# am<br />
# alc'hwezioù<br />
# zizober<br />
# yec'hed<br />
# yac'h<br />
# war-zu<br />
# Vro-Saoz<br />
# voest<br />
# vioù<br />
# vignon<br />
# vezez<br />
# vamm-gozh<br />
# tudoù<br />
# trañchennoù<br />
# toull-bac'h<br />
# tizh<br />
# tenner<br />
# teir<br />
# tamallet<br />
# super-harozed<br />
# strinkell<br />
# strinkadenn<br />
# straniñ<br />
# stouit<br />
# spontet<br />
# sotonioù<br />
# skoaz<br />
# skinwel<br />
# skiant-prenet<br />
# skiant<br />
# sinet<br />
# seul<br />
# serriñ<br />
# seblantez<br />
# savetet<br />
# Saozon<br />
# sam<br />
# respontet<br />
# resevet<br />
# renerien<br />
# redit<br />
# rann-arme<br />
# rankan<br />
# raktreset<br />
# raint<br />
# rafen<br />
# profet<br />
# prizoniad<br />
# prenestr<br />
# pred<br />
# post-yec'hed<br />
# pont<br />
# poliser<br />
# pok<br />
# pignat<br />
# penn-da-benn<br />
# peg<br />
# pakout<br />
# ouien<br />
# ouie<br />
# oto<br />
# orin<br />
# oberadenn<br />
# nec'h<br />
# nazi<br />
# nac'het<br />
# morter<br />
# mintin-mañ<br />
# mindrailherez<br />
# milion<br />
# martin<br />
# marmouz<br />
# mann<br />
# lonkañ<br />
# Londrez<br />
# lodenn<br />
# lipat<br />
# lifre<br />
# lezenn<br />
# lavar<br />
# lañfreed<br />
# kuitaet<br />
# krad<br />
# komzoù<br />
# koantig<br />
# kerzhet<br />
# kement-se<br />
# kaz<br />
# kamaraded<br />
# kac'hat<br />
# jahinerezh<br />
# it<br />
# implijet<br />
# ibil<br />
# hip<br />
# gwin<br />
# gwez<br />
# gwel<br />
# gwazed<br />
# guzhat<br />
# gouiet<br />
# glav<br />
# gav<br />
# garan<br />
# galvit<br />
# galvet<br />
# gall<br />
# frouezh<br />
# Frañs<br />
# frank<br />
# foutr<br />
# flas<br />
# feulster<br />
# feuket<br />
# fentus<br />
# faziet<br />
# familhoù<br />
# eürus<br />
# ensellañ<br />
# ennomp<br />
# emichañs<br />
# emgannoù<br />
# emaout<br />
# eilenn<br />
# efedus<br />
# doujañs<br />
# douaroù<br />
# dost<br />
# diviz<br />
# divent<br />
# disoñj<br />
# diskennet<br />
# diskenn<br />
# digeriñ<br />
# difiñv<br />
# difenn<br />
# dibar<br />
# devezhioù<br />
# dennit<br />
# daoulagad<br />
# damm<br />
# dachenn<br />
# c'hoadoù<br />
# c'helloù<br />
# c'helli<br />
# c'hamaraded<br />
# breudeur<br />
# boaz<br />
# bilhed<br />
# bigi<br />
# bier<br />
# bezomp<br />
# beuzet<br />
# bastarded<br />
# barachutisted<br />
# baotr<br />
# bakad<br />
# a-zehoù<br />
# a-viskoazh<br />
# aotreet<br />
# Aostria<br />
# anvioù<br />
# anavezez<br />
# anat<br />
# anarkourien<br />
# Alamanted<br />
# a-drugarez<br />
# adarme<br />
# adalek<br />
# zistruj<br />
# zeiz<br />
# zastum<br />
# wel<br />
# wech-mañ<br />
# warnoc'h<br />
# warlene<br />
# vrec'h<br />
# voutailhad<br />
# vod<br />
# viken<br />
# vezont<br />
# vefes<br />
# vefen<br />
# vann<br />
# vale<br />
# vag<br />
# unanet<br />
# trugarekaat<br />
# tren<br />
# tremenit<br />
# toull-revr<br />
# tostaat<br />
# torfedourien<br />
# ti-mañ<br />
# teuont<br />
# teufen<br />
# test<br />
# tarzhet<br />
# tapis<br />
# taou<br />
# surjian<br />
# sunet<br />
# stlabez<br />
# staotañ<br />
# staotaat<br />
# stankañ<br />
# stag<br />
# speredoù<br />
# sotoni<br />
# soñjez<br />
# slipoù<br />
# skipailh<br />
# skasoù<br />
# siwazh<br />
# sioulaat<br />
# sikourit<br />
# saveteet<br />
# savadur<br />
# santimantoù<br />
# ribl<br />
# reter<br />
# reder<br />
# puhez<br />
# prientiñ<br />
# prantad<br />
# pourmen<br />
# posupl<br />
# pokat<br />
# pleustriñ<br />
# plac'h-se<br />
# pinvidik<br />
# personel<br />
# penn-pich<br />
# pennad<br />
# pellgomzit<br />
# pediñ<br />
# paset<br />
# park<br />
# pareet<br />
# omp-ni<br />
# noz-mañ<br />
# netaat<br />
# neblec'h<br />
# nebeutoc'h<br />
# naetaat<br />
# mizioù<br />
# milisian<br />
# mennozh<br />
# menez<br />
# mekanikoù<br />
# medalennoù<br />
# marichal<br />
# marc'hata<br />
# maouezed<br />
# loudourenn<br />
# loeroù<br />
# loa<br />
# livet<br />
# lezomp<br />
# levr<br />
# lavarit<br />
# lâr-se<br />
# lârout<br />
# lakomp<br />
# laeroñsi<br />
# kribet<br />
# kreskiñ<br />
# koulourd<br />
# kouezhañ<br />
# kirri-nij<br />
# kig<br />
# kenô<br />
# kengred<br />
# kendalc'homp<br />
# kav<br />
# kakaouetez<br />
# kac'her<br />
# itron<br />
# istrogell<br />
# istor-se<br />
# ingal<br />
# heñvelreviad<br />
# harzañ<br />
# harozed<br />
# gwiskamant<br />
# gwele<br />
# gwarez<br />
# grik<br />
# greomp<br />
# gregiñ<br />
# grediñ<br />
# gounit<br />
# goullo<br />
# gouezhañ<br />
# gouel<br />
# gortozet<br />
# gorilh<br />
# gorf<br />
# gont<br />
# goll<br />
# glaskan<br />
# ger-mañ<br />
# gerioù<br />
# gejadenn<br />
# gegin<br />
# gavout<br />
# gavan<br />
# gaso<br />
# gartenn-vank<br />
# garout<br />
# gaou<br />
# galv<br />
# gaer<br />
# fiñvet<br />
# fidamdoue<br />
# fellout<br />
# fello<br />
# fed<br />
# evitañ<br />
# eveldout<br />
# eveldon<br />
# ev<br />
# e-touez<br />
# entanet<br />
# enep<br />
# eizh<br />
# eeun<br />
# edukatourien<br />
# drugar<br />
# dremen<br />
# dreistordinal<br />
# dreistholl<br />
# doull<br />
# dleout<br />
# divizet<br />
# distrujet<br />
# distroit<br />
# displegañ<br />
# dirazon<br />
# dilabour<br />
# diganin<br />
# digablus<br />
# dibaouez<br />
# dez<br />
# deñvalijenn<br />
# den-bleiz<br />
# darvoudoù<br />
# darempredoù<br />
# daonet<br />
# dall<br />
# c'hroazhent<br />
# c'hozh<br />
# chomomp<br />
# chome<br />
# cheuc'h<br />
# c'hellimp<br />
# c'hellfemp<br />
# c'hazetennoù<br />
# chav<br />
# c'haoc'h<br />
# brouenn<br />
# Bro-Alamagn<br />
# brezel-mañ<br />
# brezegenn<br />
# bravañ<br />
# bloavezhioù<br />
# bistolenn<br />
# bije<br />
# benniget<br />
# bell<br />
# bandennad<br />
# bailhonetez<br />
# atant<br />
# arvar<br />
# arouez<br />
# argadiñ<br />
# aloubiñ<br />
# aloubadeg<br />
# alese<br />
# alc'hwez<br />
# a-gleiz<br />
# Afrika<br />
# afen<br />
# adkemer<br />
# zud<br />
# zreuzkas<br />
# zoull<br />
# zorn<br />
# zokarn<br />
# zistroas<br />
# zistreiñ<br />
# zigeriñ<br />
# zi<br />
# zeuio<br />
# zegas<br />
# welout<br />
# welo<br />
# wellaat<br />
# welin<br />
# wazhienn-gas<br />
# wastell<br />
# war-bouez<br />
# vragoù<br />
# vousc'hoarzh<br />
# votet<br />
# vleud<br />
# vleniañ<br />
# vijen<br />
# vihan<br />
# vev<br />
# Verlin<br />
# vefent<br />
# vefemp<br />
# varvo<br />
# trumm<br />
# trubuilhoù<br />
# trouz<br />
# treitour<br />
# trec'het<br />
# trapet<br />
# toullet<br />
# touiñ<br />
# titouroù<br />
# ti-gar<br />
# tatouadur<br />
# tarzhañ<br />
# taouarn<br />
# taer<br />
# sunañ<br />
# stumm<br />
# strivoù<br />
# straner<br />
# straedoù<br />
# stou<br />
# steuziet<br />
# ster<br />
# statud<br />
# stank<br />
# staget<br />
# Stadoù-Unanet<br />
# spaghetti<br />
# skrabañ<br />
# skoaz-ouzh-skoaz<br />
# skarzhin<br />
# sizhunvezhioù<br />
# sivi<br />
# sin<br />
# servijout<br />
# serrit<br />
# serret<br />
# sentit<br />
# selaouet<br />
# seblante<br />
# savlec'h<br />
# sandwich<br />
# sachañ<br />
# roio<br />
# roched<br />
# riskloù<br />
# rimp<br />
# rentañ<br />
# renet<br />
# redadeg<br />
# rankit<br />
# rankfen<br />
# ramzel<br />
# raemp<br />
# psikopat<br />
# prop<br />
# prederiet<br />
# politikerezh<br />
# poanius<br />
# pleustret<br />
# plantet<br />
# pignit<br />
# pich-kaoc'h<br />
# pezh-mell<br />
# pennigo<br />
# pennadig<br />
# pemzek<br />
# pellgomzet<br />
# ped<br />
# pec'hed<br />
# pech<br />
# pas<br />
# parkeier<br />
# Pariz<br />
# parachutisted<br />
# paour<br />
# paeet<br />
# outi<br />
# o-unan<br />
# nemeti<br />
# naet<br />
# mut<br />
# muntroù<br />
# ministr<br />
# mindrailherezioù<br />
# merzhet<br />
# meritet<br />
# meno<br />
# mekanik<br />
# marc'h<br />
# maouez<br />
# machin-se<br />
# louzañ<br />
# lol<br />
# loened<br />
# loc'hañ<br />
# liv<br />
# lipet<br />
# lidañ<br />
# liammet<br />
# liamm<br />
# leuskel<br />
# leti<br />
# lazh<br />
# latar<br />
# lâromp<br />
# lârin<br />
# lâret-se<br />
# laou<br />
# laoskit<br />
# laosk<br />
# lammet<br />
# krec'h<br />
# kourvez<br />
# koulz<br />
# kornôg<br />
# komunour<br />
# koll<br />
# koadoù<br />
# kilit<br />
# ki<br />
# kenkas<br />
# kendalc'h<br />
# kenavo<br />
# kemenn<br />
# kejañ<br />
# kazi<br />
# kastizet<br />
# karr-nij<br />
# karedig<br />
# kaoc'haj<br />
# kamp<br />
# kamarad<br />
# jodi<br />
# istitloù<br />
# huchal<br />
# houmañ<br />
# heuliet<br />
# Here<br />
# hentoù<br />
# hent-houarn<br />
# hec'h<br />
# harzoù-lamm<br />
# harz-lamm<br />
# harzit<br />
# hall<br />
# gwiskañ<br />
# Gwengolo<br />
# gwell<br />
# gwan<br />
# gwallet<br />
# greden<br />
# grede<br />
# gred<br />
# gomprenez<br />
# glann<br />
# ginnig<br />
# gervel<br />
# ger-kuzh<br />
# Genver<br />
# genaoueg<br />
# garez<br />
# garantez<br />
# gaozeadenn<br />
# gannont<br />
# gambr<br />
# fuloret<br />
# foz<br />
# fotoioù<br />
# foll-mik<br />
# fobl<br />
# flastret<br />
# flapiñ<br />
# fier<br />
# fentus-tre<br />
# feiz<br />
# fegement<br />
# faotred<br />
# fal<br />
# ezvezant<br />
# ezel<br />
# eus-se<br />
# erruout<br />
# erlec'hiet<br />
# eontred<br />
# eomp<br />
# enor<br />
# ennoc'h<br />
# enni<br />
# enep-argadenn<br />
# eneoù<br />
# emzalc'h-se<br />
# emsav<br />
# emgar<br />
# embannet<br />
# ehanet<br />
# e-bourzh<br />
# duarded<br />
# droad<br />
# dreid<br />
# dousik<br />
# douarenn<br />
# dorifored<br />
# dont-tre<br />
# dommañ<br />
# domaj<br />
# dle<br />
# dispartiet<br />
# diskuliet<br />
# diskouezet<br />
# direnket<br />
# diouzhit<br />
# dimeziñ<br />
# deomp-ni<br />
# demokratelezh<br />
# dek<br />
# deiz-ha-bloaz<br />
# degouezhet<br />
# degas<br />
# debr<br />
# david<br />
# dastum<br />
# darn<br />
# dapout<br />
# chupenn<br />
# c'houde<br />
# c'hontrol<br />
# chomlec'h<br />
# chomfen<br />
# chomfe<br />
# c'hoarvezhet<br />
# c'hoarvezfe<br />
# c'hichen<br />
# c'heuz<br />
# cheñchamant<br />
# c'hempenn<br />
# c'hellin<br />
# c'harter<br />
# c'harr-samm<br />
# c'harrdi<br />
# chaoser<br />
# c'hamion<br />
# c'halloudoù<br />
# butuniñ<br />
# Bro-Spagn<br />
# broioù<br />
# Bro-C'hall<br />
# broad<br />
# brenañ<br />
# breinet<br />
# brederiañ<br />
# braller<br />
# botoù<br />
# borrodus<br />
# bolotennoù<br />
# boan<br />
# blijus<br />
# bleniañ<br />
# bellgomz<br />
# bazh<br />
# barrekoc'h<br />
# bannet<br />
# bandennoù<br />
# bado<br />
# babiged<br />
# azezet<br />
# atizet<br />
# asantiñ<br />
# armet<br />
# aozet<br />
# aozañ<br />
# aner<br />
# anavezan<br />
# amprestiñ<br />
# amezeg<br />
# alamaneg<br />
# a-hend-all<br />
# a-gostez<br />
# a-feson<br />
# a-dreuz<br />
# adlakaat<br />
# adjudant<br />
# ac'hubadeg<br />
# abred<br />
# a-berzh<br />
# abegoù<br />
# abadenn<br />
# zrailhañ<br />
# zouez<br />
# zivc'harr<br />
# zistroi<br />
# zisplegañ<br />
# zisoñj<br />
# zindan<br />
# zilhad<br />
# zigor<br />
# zigareziñ<br />
# zent<br />
# yec'hederezh<br />
# yarig<br />
# yae<br />
# wreg<br />
# west<br />
# welimp<br />
# wele<br />
# war-wel<br />
# warno<br />
# wareziñ<br />
# war-eeun<br />
# vunisionoù<br />
# vronnoù<br />
# vrezeliñ<br />
# vreudeur<br />
# vragez<br />
# vir<br />
# vintin<br />
# vil<br />
# vevomp<br />
# vefec'h<br />
# varrek<br />
# vare<br />
# vantell<br />
# vanne<br />
# vanke<br />
# vakañsoù<br />
# vab<br />
# uzin<br />
# urzhiet<br />
# uheloc'h<br />
# ugent<br />
# tuch<br />
# truez<br />
# troc'hañ<br />
# triad<br />
# tres<br />
# tre<br />
# tour<br />
# toullañ<br />
# touellet<br />
# tortad<br />
# torfedus<br />
# ti-bank<br />
# teviñ<br />
# teurel<br />
# teufe<br />
# tech<br />
# tapomp<br />
# taol-sikour<br />
# tañva<br />
# tank<br />
# tammoù<br />
# takad-mañ<br />
# tagomp<br />
# tafar<br />
# susped<br />
# surentez<br />
# superharozed<br />
# sukr<br />
# strolladoù<br />
# strinkelloù<br />
# strinkadennoù<br />
# strikt<br />
# stourmerien<br />
# stankit<br />
# stalinianed<br />
# Stad<br />
# spiañ<br />
# speredekoc'h<br />
# souezhadenn<br />
# soudardel<br />
# sot-nay<br />
# sokialouriezh<br />
# skubañ<br />
# skrivañ<br />
# skeudennoù<br />
# skeudennaouet<br />
# skañv<br />
# sizhun-mañ<br />
# sizailhoù<br />
# sinit<br />
# sinin<br />
# sindikad<br />
# simpl<br />
# simon<br />
# servijoù<br />
# servijet<br />
# sentiñ<br />
# seier<br />
# savit<br />
# Saoz<br />
# saout<br />
# santimant<br />
# sant<br />
# saludiñ<br />
# sachomp<br />
# sac'hadig<br />
# sac'had<br />
# roomp<br />
# roll<br />
# roez<br />
# reuz<br />
# responter<br />
# resis<br />
# reolennoù<br />
# reoc'h<br />
# rentet<br />
# renkit<br />
# renkad<br />
# rebechet<br />
# reas<br />
# razhed<br />
# rannañ<br />
# rann<br />
# rankimp<br />
# rankfemp<br />
# rankfe<br />
# ranke<br />
# raktres<br />
# prouenn<br />
# profitit<br />
# pro<br />
# privilajoù<br />
# prezegenn<br />
# prennet<br />
# prederiañ<br />
# pourvezet<br />
# pounner<br />
# pouezusañ<br />
# pontoù<br />
# pokañ<br />
# poellek<br />
# pizza<br />
# pik<br />
# pigniit<br />
# pezhioù-kanol<br />
# pesked<br />
# pennoù-meur<br />
# pennfolliñ<br />
# pellgomzerioù<br />
# pellaat<br />
# patrouilhenn<br />
# patatez<br />
# pase<br />
# parkva<br />
# paperioù<br />
# paperachoù<br />
# paouezit<br />
# palez<br />
# pak<br />
# ouzon<br />
# ouio<br />
# ouife<br />
# ouient<br />
# ouiemp<br />
# ofisiel<br />
# och<br />
# oberenn<br />
# oberadenn-mañ<br />
# noz-se<br />
# nompas<br />
# neuial<br />
# nemedout<br />
# nedeleg<br />
# nec'het<br />
# nav<br />
# nammet<br />
# naer<br />
# munut<br />
# muntrerien<br />
# moutig<br />
# mortieroù<br />
# morteroù<br />
# morian<br />
# mor<br />
# mogerioù<br />
# mintin<br />
# milisoù<br />
# milisianed<br />
# milionoù<br />
# mibien<br />
# mezviañ<br />
# meurvor<br />
# metrad<br />
# mess<br />
# merkoù<br />
# merglet<br />
# merc'hig<br />
# menezioù<br />
# melegan<br />
# mein<br />
# medalenn<br />
# mat-kaer<br />
# mañ<br />
# mamm-gozh<br />
# magañ<br />
# mabig<br />
# lusk<br />
# luchañ<br />
# louzoù<br />
# lorc'hus<br />
# logodenn<br />
# loer<br />
# live<br />
# lipañ<br />
# liammoù<br />
# lezo<br />
# leuskit<br />
# lesanvet<br />
# leñvet<br />
# lennet<br />
# lec'h-mañ<br />
# lazhomp<br />
# lazho<br />
# lazhit<br />
# lastez<br />
# lâro<br />
# lârfen<br />
# lagad<br />
# kuzhat<br />
# kurun<br />
# kroaz<br />
# kresket<br />
# kred<br />
# kouilhoù<br />
# komzomp<br />
# komzit<br />
# komzez<br />
# koantenn<br />
# klaskit<br />
# klasel<br />
# klañvdiourez<br />
# kiriek<br />
# kilfouzhañ<br />
# kilañ</div>
VIGNERON
https://lingualibre.org/index.php?title=List:Bre/Most_frequent_words&diff=1312173
List:Bre/Most frequent words
2024-02-16T12:12:25Z
<p>VIGNERON: ménage manuel (ping User:Yug)</p>
<hr />
<div># ket<br />
# ar<br />
# eo<br />
# da<br />
# a<br />
# an<br />
# e<br />
# ur<br />
# ma<br />
# eus<br />
# o<br />
# ha<br />
# gant<br />
# din<br />
# un<br />
# en<br />
# petra<br />
# ne<br />
# bet<br />
# zo<br />
# se<br />
# mat<br />
# war<br />
# amañ<br />
# hag<br />
# deus<br />
# ho<br />
# bezañ<br />
# evit<br />
# er<br />
# mont<br />
# on<br />
# ya<br />
# met<br />
# dit<br />
# ken<br />
# ober<br />
# out<br />
# hon<br />
# all<br />
# graet<br />
# neuze<br />
# deomp<br />
# c'hoant<br />
# oa<br />
# re<br />
# ebet<br />
# na<br />
# ret<br />
# me<br />
# gwelet<br />
# anezhañ<br />
# em<br />
# ac'hanon<br />
# gwir<br />
# pa<br />
# al<br />
# oc'h<br />
# ra<br />
# perak<br />
# pep<br />
# te<br />
# tu<br />
# unan<br />
# piv<br />
# vo<br />
# anezho<br />
# hini<br />
# lâret<br />
# holl<br />
# chom<br />
# pe<br />
# traoù<br />
# soñj<br />
# deoc'h<br />
# omp<br />
# tra<br />
# netra<br />
# lâr<br />
# paotr<br />
# setu<br />
# kuit<br />
# vont<br />
# ganit<br />
# penaos<br />
# ouzh<br />
# goût<br />
# letanant<br />
# ivez<br />
# he<br />
# ganin<br />
# pelec'h<br />
# dezhi<br />
# c'hoazh<br />
# hor<br />
# dezhañ<br />
# bennak<br />
# ac'hanout<br />
# nemet<br />
# lazhet<br />
# kaout<br />
# ez<br />
# marteze<br />
# pezh<br />
# dra<br />
# bremañ<br />
# dre<br />
# digarez<br />
# deuet<br />
# vezañ<br />
# vez<br />
# en-dro<br />
# gantañ<br />
# dezho<br />
# den<br />
# paotred<br />
# gwelloc'h<br />
# vat<br />
# fall<br />
# buan<br />
# tamm<br />
# ran<br />
# amzer<br />
# kaoc'h<br />
# int<br />
# hep<br />
# tud<br />
# sikour<br />
# welet<br />
# dont<br />
# anezhi<br />
# aet<br />
# ac'hanomp<br />
# tout<br />
# ezhomm<br />
# a-raok<br />
# war-raok<br />
# anv<br />
# prest<br />
# lec'h<br />
# komz<br />
# echu<br />
# ale<br />
# sell<br />
# dav<br />
# marv<br />
# laouen<br />
# daou<br />
# kaset<br />
# dud<br />
# ul<br />
# kit<br />
# fell<br />
# betek<br />
# penn<br />
# ok<br />
# sur<br />
# soudard<br />
# peus<br />
# c'hoarvezet<br />
# c'hast<br />
# brezel<br />
# paouez<br />
# klask<br />
# kas<br />
# Doue<br />
# aon<br />
# a-benn<br />
# trugarez<br />
# ouzhin<br />
# dija<br />
# zoken<br />
# soudarded<br />
# lakaat<br />
# tont<br />
# lazhañ<br />
# klevet<br />
# gentañ<br />
# fouzhañ<br />
# aze<br />
# atav<br />
# iskis<br />
# ac'hanoc'h<br />
# kabiten<br />
# revr<br />
# goude<br />
# gast<br />
# ganeoc'h<br />
# lakaet<br />
# kae<br />
# eil<br />
# baotred<br />
# arc'hant<br />
# sot<br />
# ro<br />
# gloazet<br />
# doa<br />
# distreiñ<br />
# c'hwi<br />
# aotrou<br />
# stourm<br />
# banne<br />
# raio<br />
# peogwir<br />
# arabat<br />
# wech<br />
# veg<br />
# rit<br />
# ganti<br />
# ganeomp<br />
# c'hoari<br />
# tapet<br />
# roet<br />
# gortoz<br />
# sellet<br />
# plijet<br />
# peseurt<br />
# labour<br />
# deuit<br />
# brein<br />
# nevez<br />
# kavet<br />
# evel<br />
# dreist<br />
# chomit<br />
# brav<br />
# abaoe<br />
# vefe<br />
# rin<br />
# eno<br />
# emañ<br />
# belec'h<br />
# mamm<br />
# kevrenn<br />
# kalz<br />
# gêr<br />
# serjant<br />
# plac'h<br />
# mignon<br />
# merc'hed<br />
# forzh<br />
# soñjal<br />
# paourkaezh<br />
# morse<br />
# marplij<br />
# gudenn<br />
# edukatour<br />
# c'hell<br />
# chef<br />
# tan<br />
# hoc'h<br />
# ganto<br />
# dirak<br />
# bed<br />
# reiñ<br />
# poent<br />
# nann<br />
# fin<br />
# du-se<br />
# dra-se<br />
# buhez<br />
# a-dreñv<br />
# sioul<br />
# krediñ<br />
# kompren<br />
# kentañ<br />
# goulenn<br />
# fenoz<br />
# cheñchet<br />
# cheñch<br />
# asambles<br />
# nebeut<br />
# kollet<br />
# gouest<br />
# goap<br />
# bras<br />
# skarzh<br />
# selaou<br />
# rez<br />
# peoc'h<br />
# pell<br />
# lerc'h<br />
# kemer<br />
# faot<br />
# eñ<br />
# di<br />
# ofiser<br />
# oar<br />
# bez<br />
# galloud<br />
# dindan<br />
# devezh<br />
# c'halloud<br />
# vloaz<br />
# seurt<br />
# plijus<br />
# gouzout<br />
# goudor<br />
# c'hortoz<br />
# a-walc'h<br />
# vuhez<br />
# tapit<br />
# sapre<br />
# putenn<br />
# pich<br />
# dare<br />
# a-du<br />
# toull<br />
# sañset<br />
# oan<br />
# lak<br />
# klasket<br />
# kavout<br />
# jeu<br />
# hent<br />
# div<br />
# dispar<br />
# bev<br />
# tri<br />
# sevel<br />
# serr<br />
# rank<br />
# plijadur<br />
# pebezh<br />
# oh<br />
# mervel<br />
# maez<br />
# lez<br />
# deiz<br />
# a-sav<br />
# arme<br />
# tennañ<br />
# laeret<br />
# koant<br />
# gwellañ<br />
# bloaz<br />
# trawalc'h<br />
# salud<br />
# plijout<br />
# noz<br />
# nor<br />
# ni<br />
# mignoned<br />
# memes<br />
# marvet<br />
# jentil<br />
# diouzhtu<br />
# reomp<br />
# ouzhit<br />
# outañ<br />
# munisionoù<br />
# hepken<br />
# dec'h<br />
# bern<br />
# armoù<br />
# vamm<br />
# tenn<br />
# selaouit<br />
# muioc'h<br />
# labourioù-kastiz<br />
# kleiz<br />
# kerzh<br />
# glask<br />
# demat<br />
# c'harr<br />
# chañs<br />
# war-gil<br />
# viz<br />
# soñjet<br />
# sellit<br />
# ranket<br />
# kozh<br />
# hi<br />
# hañ<br />
# dremenet<br />
# dok<br />
# boued<br />
# anavezout<br />
# war-sav<br />
# voc'h<br />
# spontus<br />
# skuizh<br />
# polis<br />
# plas<br />
# paket<br />
# lavaret<br />
# kroget<br />
# koronal<br />
# grit<br />
# gevier<br />
# geo<br />
# emaon<br />
# emaomp<br />
# dehoù<br />
# breur<br />
# bevañ<br />
# azen<br />
# a-enep<br />
# adarre<br />
# ti<br />
# disoñjet<br />
# dazont<br />
# dalc'h<br />
# c'hoarvezout<br />
# c'hellan<br />
# bihan<br />
# afo<br />
# warc'hoazh<br />
# touchañ<br />
# tomm<br />
# tad<br />
# sutal<br />
# start<br />
# miz<br />
# mersi<br />
# lod<br />
# linenn<br />
# lâran<br />
# kudenn<br />
# istor<br />
# gorventenn<br />
# gortozit<br />
# gomz<br />
# doare<br />
# distroet<br />
# dilhad<br />
# digarezit<br />
# babig<br />
# arm<br />
# urzhioù<br />
# talbenn<br />
# ouzhpenn<br />
# lous<br />
# lârit<br />
# kuzhet<br />
# kement<br />
# kasit<br />
# just<br />
# Jezuz<br />
# gra<br />
# er-maez<br />
# enebourien<br />
# emaint<br />
# eget<br />
# e-barzh<br />
# diouzh<br />
# chalet<br />
# batailhon<br />
# aes<br />
# zad<br />
# warnañ<br />
# vro<br />
# tremen<br />
# takad<br />
# sirius<br />
# saveteiñ<br />
# sav<br />
# munutenn<br />
# mab<br />
# kentoc'h<br />
# hiziv<br />
# greizenn<br />
# goulennet<br />
# fiziañs<br />
# faskourien<br />
# eur<br />
# du<br />
# dramm<br />
# douar<br />
# diwar<br />
# c'horfoù<br />
# alemañ<br />
# warnon<br />
# trec'h<br />
# tost<br />
# tadig<br />
# santan<br />
# sac'h<br />
# poan<br />
# pegoulz<br />
# nozvezh<br />
# mui<br />
# moal<br />
# milis<br />
# mare<br />
# lezel<br />
# lenn<br />
# laerezh<br />
# kontañ<br />
# komzet<br />
# hast<br />
# gellet<br />
# galloudoù<br />
# fazi<br />
# farsal<br />
# drol<br />
# dour<br />
# diwezhatoc'h<br />
# diwezhañ<br />
# dad<br />
# c'horonal<br />
# c'hellez<br />
# bugel<br />
# bep<br />
# a-seblant<br />
# war-dro<br />
# skarzhit<br />
# skarzhet<br />
# reont<br />
# moarvat<br />
# mezeg<br />
# memestra<br />
# mat-tre<br />
# lezit<br />
# leur<br />
# komprenet<br />
# klevout<br />
# kaer<br />
# jeneral<br />
# Izelvroioù<br />
# gompagnunezh<br />
# etre<br />
# dro<br />
# dispac'h<br />
# bobl<br />
# batrouilhenn<br />
# Alamaned<br />
# yaouank<br />
# vervel<br />
# spered<br />
# skeiñ<br />
# roit<br />
# respont<br />
# plij<br />
# pelloc'h<br />
# neuz<br />
# nemetañ<br />
# labourat<br />
# krog<br />
# kredapl<br />
# hol<br />
# hey<br />
# harzet<br />
# gwashañ<br />
# digorit<br />
# digor<br />
# dieub<br />
# chomet<br />
# bugale<br />
# benn<br />
# alaman<br />
# afer<br />
# a-bezh<br />
# welan<br />
# vignonez<br />
# tro<br />
# tennit<br />
# strollad<br />
# stêr<br />
# skoet<br />
# santout<br />
# rankout<br />
# rae<br />
# prizonidi<br />
# pichoù<br />
# pellgomz<br />
# pegen<br />
# paotrig<br />
# noazh<br />
# nemetken<br />
# naon<br />
# mod<br />
# mignonez<br />
# medisin<br />
# malarkey<br />
# major<br />
# lammat<br />
# kredet<br />
# krakoù<br />
# kemeret<br />
# hir<br />
# hennezh<br />
# ger<br />
# frankiz<br />
# fouzhet<br />
# evezh<br />
# evañ<br />
# erru<br />
# egile<br />
# doue<br />
# distro<br />
# c'harr-nij<br />
# c'habiten<br />
# buanoc'h<br />
# bewech<br />
# aotrounez<br />
# teu<br />
# sklaer<br />
# seblant<br />
# re-se<br />
# pevar<br />
# ospital<br />
# oamp<br />
# Normandi<br />
# nebeutañ<br />
# kuzh<br />
# koulskoude<br />
# kont<br />
# heul<br />
# gwech<br />
# gwall<br />
# gourc'hemennoù<br />
# gevrenn<br />
# get<br />
# fliked<br />
# fas<br />
# evidon<br />
# eurvezh<br />
# ennout<br />
# ennon<br />
# enebour<br />
# emgann<br />
# emaoc'h<br />
# dres<br />
# do<br />
# diwelus<br />
# diskouezh<br />
# c'hwitet<br />
# c'homandant<br />
# blij<br />
# bezit<br />
# betra<br />
# a-wechoù<br />
# zont<br />
# voe<br />
# varv<br />
# troet<br />
# tizhet<br />
# tennoù<br />
# tennet<br />
# tapout<br />
# stal<br />
# skol<br />
# sed<br />
# reoù<br />
# rejimant<br />
# redek<br />
# prenet<br />
# pet<br />
# pegement<br />
# nebeud<br />
# mestr<br />
# lezet<br />
# lakait<br />
# kwelet<br />
# karout<br />
# harz<br />
# hanter<br />
# hag-eñ<br />
# gas<br />
# farsadenn<br />
# estreget<br />
# easy<br />
# drouk<br />
# divarvel<br />
# dibabet<br />
# diaes<br />
# dennañ<br />
# dedennet<br />
# c'hoarvez<br />
# blev<br />
# bastard<br />
# barver<br />
# bagad<br />
# vunutenn<br />
# vrav<br />
# veze<br />
# van<br />
# tro-dro<br />
# soñjan<br />
# skoazell<br />
# sigaretenn<br />
# renket<br />
# ranndi<br />
# rak<br />
# raimp<br />
# prof<br />
# pemp<br />
# pal<br />
# outo<br />
# oant<br />
# neketa<br />
# kuzhit<br />
# kuitaat<br />
# kudennoù<br />
# kendalc'hit<br />
# kalon<br />
# kablus<br />
# hastit<br />
# gwaz<br />
# grevus<br />
# gellout<br />
# foutre<br />
# familh<br />
# e-pad<br />
# diwall<br />
# debret<br />
# davet<br />
# c'har<br />
# brudet<br />
# biskoazh<br />
# biken<br />
# bec'h<br />
# ziwezhat<br />
# war-lerc'h<br />
# vras<br />
# urzh<br />
# tremenet<br />
# torret<br />
# taget<br />
# spi<br />
# skarzhañ<br />
# sizhunvezh<br />
# sizhun<br />
# sikouret<br />
# ri<br />
# rediet<br />
# posubl<br />
# perzh<br />
# on-me<br />
# nullet<br />
# null<br />
# mankout<br />
# madigoù<br />
# lorc'h<br />
# loen<br />
# leñvañ<br />
# kenderc'hel<br />
# kelly<br />
# kaoz<br />
# hervez<br />
# gwareziñ<br />
# gwarezet<br />
# greunadennoù<br />
# goulennoù<br />
# gac'hat<br />
# fuzuilh<br />
# fiñval<br />
# fiñv<br />
# evidomp<br />
# emzalc'h<br />
# el<br />
# dorn<br />
# diwar-benn<br />
# distruj<br />
# derc'hel<br />
# dal<br />
# c'houlenn<br />
# bil<br />
# Alamagn<br />
# abeg<br />
# zen<br />
# zebriñ<br />
# wir<br />
# webster<br />
# warnomp<br />
# vimp<br />
# vi<br />
# vazh<br />
# torr-revr<br />
# tec'het<br />
# taol<br />
# stourmet<br />
# stanket<br />
# skrivet<br />
# rentañ-kont<br />
# renkañ<br />
# renk<br />
# pouezus<br />
# politikel<br />
# ouzhoc'h<br />
# nag<br />
# mezh<br />
# masklet<br />
# louskenn<br />
# lizhiri<br />
# labourerien<br />
# kousket<br />
# komandant<br />
# kennebeut<br />
# gwisket<br />
# gouarnamant<br />
# galon<br />
# farsus<br />
# e-unan<br />
# erruiñ<br />
# emgav<br />
# echuiñ<br />
# ec'h<br />
# droch<br />
# doenn<br />
# disheñvel<br />
# dilezel<br />
# dibab<br />
# desket<br />
# davarn<br />
# da-unan<br />
# daouarn<br />
# c'hwezh<br />
# c'hwec'h<br />
# c'hi<br />
# c'hello<br />
# c'hamp<br />
# chaflutenn<br />
# butun<br />
# bronnoù<br />
# blas<br />
# azezañ<br />
# alkol<br />
# abalamour<br />
# zevezh<br />
# yuzevien<br />
# wirionez<br />
# warnout<br />
# vreur<br />
# vrallañ<br />
# volotenn<br />
# vint<br />
# vije<br />
# treuziñ<br />
# toulloù<br />
# tiez<br />
# tap<br />
# tammig<br />
# stad<br />
# soñjoù<br />
# sinañ<br />
# seven<br />
# servij<br />
# saoz<br />
# rik<br />
# radio<br />
# peurrest<br />
# pennoù<br />
# pareañ<br />
# pakad<br />
# ofiserien<br />
# morfin<br />
# ma-unan<br />
# mare-mañ<br />
# mar<br />
# mammig<br />
# leusket<br />
# leun<br />
# lamm<br />
# kreñv<br />
# kregiñ<br />
# kompagnunezh<br />
# kinnig<br />
# kemerit<br />
# kavit<br />
# kafe<br />
# jeep<br />
# gwad<br />
# gouloù<br />
# gell<br />
# forn<br />
# fenn<br />
# felle<br />
# faotr<br />
# Europa<br />
# erruet<br />
# empenn<br />
# doujet<br />
# dit-te<br />
# disoñjal<br />
# diskoulm<br />
# din-me<br />
# dihun<br />
# difennet<br />
# darzhañ<br />
# daoust<br />
# daol<br />
# c'houfr<br />
# c'hanol<br />
# bremaik<br />
# biloù<br />
# bevet<br />
# beleg<br />
# barrek<br />
# azez<br />
# aotre<br />
# ankeniet<br />
# aio<br />
# adkavout<br />
# yen<br />
# yelo<br />
# welez<br />
# vignoned<br />
# vevañ<br />
# vaouez<br />
# va<br />
# unvezh<br />
# troc'het<br />
# trist<br />
# treiñ<br />
# traoñ<br />
# tankoù<br />
# skouer<br />
# skarzhomp<br />
# savet<br />
# red<br />
# rannet<br />
# rankomp<br />
# ranko<br />
# rafe<br />
# puten<br />
# privezioù<br />
# prenañ<br />
# pourveziñ<br />
# penn-adjudant<br />
# paotr-se<br />
# nac'hañ<br />
# muntr<br />
# mirout<br />
# ment<br />
# luz<br />
# lârez<br />
# kreñvoc'h<br />
# kontet<br />
# implijout<br />
# implij<br />
# hudur<br />
# hezoug<br />
# gwallzarvoud<br />
# gomprenan<br />
# goantenn<br />
# gerig<br />
# gemer<br />
# gar<br />
# gaout<br />
# ganet<br />
# foll<br />
# fiñvit<br />
# evidout<br />
# evidoc'h<br />
# evezhiañ<br />
# etrezomp<br />
# emglev<br />
# e-leizh<br />
# e-kreiz<br />
# edukatourez<br />
# du-mañ<br />
# dilezet<br />
# diktatour<br />
# dije<br />
# digant<br />
# deskiñ<br />
# debriñ<br />
# darvoud<br />
# dalc'hit<br />
# c'horf<br />
# c'hompagnunezh<br />
# c'hloazet<br />
# c'hentañ<br />
# c'hellit<br />
# c'heller<br />
# Bro-Saoz<br />
# brasañ<br />
# bragoù<br />
# boa<br />
# blijadur<br />
# bich<br />
# Berlin<br />
# bepred<br />
# adkavet<br />
# zro<br />
# zibab<br />
# zaoulagad<br />
# yuzev<br />
# youl<br />
# woody<br />
# wellañ<br />
# welit<br />
# warni<br />
# vrein<br />
# vlev<br />
# vijemp<br />
# vezomp<br />
# vezit<br />
# vezer<br />
# vezan<br />
# trede<br />
# trankil<br />
# toye<br />
# tout-se<br />
# touellañ<br />
# terriñ<br />
# talvoudus<br />
# su<br />
# straed<br />
# spont<br />
# speredek<br />
# souezhet<br />
# sigaretennoù<br />
# seizh<br />
# santet<br />
# ruz<br />
# rener<br />
# ren<br />
# reizh<br />
# raen<br />
# post<br />
# pennoù-bras<br />
# penn-kentañ<br />
# pegeit<br />
# peadra<br />
# paotr-mañ<br />
# paeañ<br />
# obuz<br />
# oas<br />
# oad<br />
# normal<br />
# niverenn<br />
# nijal<br />
# mod-se<br />
# mod-all<br />
# meur<br />
# maout<br />
# mailh<br />
# laezh<br />
# kouezhet<br />
# korf<br />
# klañv<br />
# keuz<br />
# kêr<br />
# keleier<br />
# kejet<br />
# kasoni<br />
# kanol<br />
# kac'het<br />
# istorioù<br />
# ispisial<br />
# in<br />
# imp<br />
# harzoù<br />
# harz-debriñ<br />
# haroz<br />
# gwirionez<br />
# gwerc'h<br />
# gwer<br />
# gwashoc'h<br />
# guarnere<br />
# greunadenn<br />
# gozh<br />
# glas<br />
# ghetto<br />
# gêriadenn<br />
# gay<br />
# gartenn<br />
# fouzher<br />
# fich<br />
# faskouriezh<br />
# evel-se<br />
# evel-just<br />
# eugene<br />
# enno<br />
# ennañ<br />
# dud-se<br />
# drailhet<br />
# drailhañ<br />
# dousig<br />
# dougen<br />
# douaret<br />
# diwar-wel<br />
# divalav<br />
# diskouez<br />
# dioutañ<br />
# dilojeiz<br />
# dieubiñ<br />
# curtis<br />
# c'hwitañ<br />
# chomo<br />
# c'hoarzhin<br />
# c'hanodoù<br />
# c'halon<br />
# buhezioù<br />
# bro<br />
# brein-se<br />
# bodet<br />
# befe<br />
# baradoz<br />
# a-us<br />
# a-stroll<br />
# anvet<br />
# amzer-vak<br />
# ambulañs<br />
# alies<br />
# ali<br />
# aferioù<br />
# ac'hann<br />
# a-bouez<br />
# zisoñjit<br />
# zeu<br />
# zerc'hel<br />
# zaouarn<br />
# youl-vat<br />
# war-droad<br />
# vugale<br />
# vrasañ<br />
# voger<br />
# vin<br />
# vank<br />
# uhel<br />
# treuzet<br />
# touchet<br />
# tistreiñ<br />
# tev<br />
# tatouadurioù<br />
# super-haroz<br />
# strollenniñ<br />
# stourmomp<br />
# startijenn<br />
# souezhus<br />
# soñjit<br />
# soñje<br />
# sonerezh<br />
# skeudenn<br />
# seks<br />
# seblantout<br />
# sal<br />
# sachit<br />
# prouiñ<br />
# prometiñ<br />
# prometet<br />
# prevez<br />
# poa<br />
# po<br />
# plasma<br />
# pign<br />
# perconte<br />
# ouzhomp<br />
# out-te<br />
# ouiez<br />
# oac'h<br />
# oabl<br />
# norzh<br />
# niverus<br />
# nerzh<br />
# naetaet<br />
# muiañ<br />
# miret<br />
# micher<br />
# mezv<br />
# mennozhioù<br />
# mall<br />
# lizher<br />
# livañ<br />
# lip<br />
# linennoù<br />
# liebgott<br />
# lezin<br />
# lakaomp<br />
# keloù<br />
# kelloù<br />
# keit<br />
# karantez<br />
# kaozeal<br />
# kanolioù<br />
# kalonek<br />
# heuliañ<br />
# heñvel<br />
# hemañ<br />
# heffron<br />
# gwiskva<br />
# gwerzhet<br />
# gwenn<br />
# gwelout<br />
# gwarizius<br />
# gwarezit<br />
# gousket<br />
# gevredigezh<br />
# gannañ<br />
# fri<br />
# feuls<br />
# e-tal<br />
# embann<br />
# e-kichen<br />
# draoù<br />
# douch<br />
# diwallit<br />
# diouzhin<br />
# dieubet<br />
# diaoul<br />
# degemeret<br />
# degemer<br />
# defe<br />
# dedennus<br />
# darbet<br />
# dañsal<br />
# dale<br />
# dalc'het<br />
# dafar<br />
# c'houzout<br />
# chokolad<br />
# c'hoarvezo<br />
# c'hirri-nij<br />
# c'hellomp<br />
# c'hellfe<br />
# chatal<br />
# chaseal<br />
# chañsus<br />
# burev<br />
# buck<br />
# brizonidi<br />
# bodit<br />
# bo<br />
# blithe<br />
# berr<br />
# bemdez<br />
# beg<br />
# banneoù<br />
# banjo<br />
# argadenn<br />
# argad<br />
# arc'hoazh<br />
# am<br />
# alc'hwezioù<br />
# zizober<br />
# yec'hed<br />
# yac'h<br />
# war-zu<br />
# Vro-Saoz<br />
# voest<br />
# vioù<br />
# vignon<br />
# vezez<br />
# vamm-gozh<br />
# tudoù<br />
# trañchennoù<br />
# toull-bac'h<br />
# tizh<br />
# tenner<br />
# teir<br />
# tamallet<br />
# super-harozed<br />
# strinkell<br />
# strinkadenn<br />
# straniñ<br />
# stouit<br />
# spontet<br />
# speirs<br />
# sotonioù<br />
# skoaz<br />
# skinwel<br />
# skiant-prenet<br />
# skiant<br />
# sinet<br />
# shaun<br />
# seul<br />
# serriñ<br />
# seblantez<br />
# savetet<br />
# Saozon<br />
# sam<br />
# respontet<br />
# resevet<br />
# renerien<br />
# redit<br />
# rann-arme<br />
# rankan<br />
# raktreset<br />
# raint<br />
# rafen<br />
# profet<br />
# prizoniad<br />
# prenestr<br />
# pred<br />
# post-yec'hed<br />
# pont<br />
# poliser<br />
# pok<br />
# pignat<br />
# penn-da-benn<br />
# peg<br />
# pakout<br />
# ouien<br />
# ouie<br />
# oto<br />
# orin<br />
# oberadenn<br />
# nec'h<br />
# nazi<br />
# nac'het<br />
# morter<br />
# mintin-mañ<br />
# mindrailherez<br />
# milion<br />
# martin<br />
# marmouz<br />
# mann<br />
# lonkañ<br />
# Londrez<br />
# lodenn<br />
# lipat<br />
# lifre<br />
# lezenn<br />
# lavar<br />
# lañfreed<br />
# kuitaet<br />
# krad<br />
# komzoù<br />
# koantig<br />
# kerzhet<br />
# kement-se<br />
# kaz<br />
# kamaraded<br />
# kac'hat<br />
# jahinerezh<br />
# it<br />
# implijet<br />
# ibil<br />
# hip<br />
# gwin<br />
# gwez<br />
# gwel<br />
# gwazed<br />
# guzhat<br />
# gouiet<br />
# glav<br />
# gav<br />
# garan<br />
# galvit<br />
# galvet<br />
# gall<br />
# frouezh<br />
# Frañs<br />
# frank<br />
# foutr<br />
# flas<br />
# feulster<br />
# feuket<br />
# fentus<br />
# faziet<br />
# familhoù<br />
# eürus<br />
# ensellañ<br />
# ennomp<br />
# emichañs<br />
# emgannoù<br />
# emaout<br />
# eilenn<br />
# efedus<br />
# doujañs<br />
# douaroù<br />
# dost<br />
# diviz<br />
# divent<br />
# disoñj<br />
# diskennet<br />
# diskenn<br />
# digeriñ<br />
# difiñv<br />
# difenn<br />
# dibar<br />
# devezhioù<br />
# dennit<br />
# daoulagad<br />
# damm<br />
# dachenn<br />
# c'hoadoù<br />
# c'helloù<br />
# c'helli<br />
# c'hamaraded<br />
# breudeur<br />
# boaz<br />
# bilhed<br />
# bigi<br />
# bier<br />
# bezomp<br />
# beuzet<br />
# bastarded<br />
# barachutisted<br />
# baotr<br />
# bakad<br />
# a-zehoù<br />
# a-viskoazh<br />
# aotreet<br />
# Aostria<br />
# anvioù<br />
# anavezez<br />
# anat<br />
# anarkourien<br />
# Alamanted<br />
# a-drugarez<br />
# adarme<br />
# adalek<br />
# zistruj<br />
# zeiz<br />
# zastum<br />
# wel<br />
# wech-mañ<br />
# warnoc'h<br />
# warlene<br />
# vrec'h<br />
# voutailhad<br />
# vod<br />
# viken<br />
# vezont<br />
# vefes<br />
# vefen<br />
# vann<br />
# vale<br />
# vag<br />
# unanet<br />
# trugarekaat<br />
# tren<br />
# tremenit<br />
# toull-revr<br />
# tostaat<br />
# torfedourien<br />
# ti-mañ<br />
# teuont<br />
# teufen<br />
# test<br />
# tarzhet<br />
# tapis<br />
# taou<br />
# surjian<br />
# sunet<br />
# stlabez<br />
# staotañ<br />
# staotaat<br />
# stankañ<br />
# stag<br />
# speredoù<br />
# sotoni<br />
# soñjez<br />
# slipoù<br />
# skipailh<br />
# skasoù<br />
# siwazh<br />
# sioulaat<br />
# sikourit<br />
# saveteet<br />
# savadur<br />
# santimantoù<br />
# ribl<br />
# reter<br />
# reder<br />
# puhez<br />
# prientiñ<br />
# prantad<br />
# pourmen<br />
# pound<br />
# posupl<br />
# pokat<br />
# pleustriñ<br />
# plac'h-se<br />
# pinvidik<br />
# personel<br />
# penn-pich<br />
# pennad<br />
# pellgomzit<br />
# pediñ<br />
# paset<br />
# park<br />
# pareet<br />
# omp-ni<br />
# noz-mañ<br />
# nixon<br />
# netaat<br />
# neblec'h<br />
# nebeutoc'h<br />
# naetaat<br />
# mizioù<br />
# milisian<br />
# mennozh<br />
# menez<br />
# mekanikoù<br />
# medalennoù<br />
# marichal<br />
# marc'hata<br />
# maouezed<br />
# loudourenn<br />
# lorraine<br />
# loeroù<br />
# loa<br />
# livet<br />
# lezomp<br />
# levr<br />
# lavarit<br />
# lâr-se<br />
# lârout<br />
# lakomp<br />
# laeroñsi<br />
# kribet<br />
# kreskiñ<br />
# koulourd<br />
# kouezhañ<br />
# kirri-nij<br />
# kig<br />
# kenô<br />
# kengred<br />
# kendalc'homp<br />
# kav<br />
# kakaouetez<br />
# kac'her<br />
# itron<br />
# istrogell<br />
# istor-se<br />
# ingal<br />
# hynkie<br />
# hitler<br />
# heñvelreviad<br />
# harzañ<br />
# harozed<br />
# gwiskamant<br />
# gwele<br />
# gwarez<br />
# grik<br />
# greomp<br />
# gregiñ<br />
# grediñ<br />
# gounit<br />
# goullo<br />
# gouezhañ<br />
# gouel<br />
# gortozet<br />
# gorilh<br />
# gorf<br />
# gont<br />
# goll<br />
# glaskan<br />
# ger-mañ<br />
# gerioù<br />
# gejadenn<br />
# gegin<br />
# gavout<br />
# gavan<br />
# gaso<br />
# gartenn-vank<br />
# garout<br />
# gaou<br />
# galv<br />
# gaer<br />
# fiñvet<br />
# fidamdoue<br />
# fellout<br />
# fello<br />
# fed<br />
# evitañ<br />
# eveldout<br />
# eveldon<br />
# ev<br />
# e-touez<br />
# entanet<br />
# enep<br />
# eizh<br />
# eeun<br />
# edukatourien<br />
# drugar<br />
# dremen<br />
# dreistordinal<br />
# dreistholl<br />
# doull<br />
# dleout<br />
# divizet<br />
# distrujet<br />
# distroit<br />
# displegañ<br />
# dirazon<br />
# dilabour<br />
# diganin<br />
# digablus<br />
# dick<br />
# dibaouez<br />
# dez<br />
# deñvalijenn<br />
# den-bleiz<br />
# darvoudoù<br />
# darempredoù<br />
# daonet<br />
# dall<br />
# c'hroazhent<br />
# c'hozh<br />
# chomomp<br />
# chome<br />
# cheuc'h<br />
# c'hellimp<br />
# c'hellfemp<br />
# c'hazetennoù<br />
# chav<br />
# c'haoc'h<br />
# brouenn<br />
# Bro-Alamagn<br />
# brezel-mañ<br />
# brezegenn<br />
# bravañ<br />
# bloavezhioù<br />
# bistolenn<br />
# bije<br />
# benniget<br />
# bell<br />
# bandennad<br />
# bailhonetez<br />
# babe<br />
# atant<br />
# arvar<br />
# arouez<br />
# argadiñ<br />
# aloubiñ<br />
# aloubadeg<br />
# alese<br />
# alc'hwez<br />
# a-gleiz<br />
# Afrika<br />
# afen<br />
# adkemer<br />
# zud<br />
# zreuzkas<br />
# zoull<br />
# zorn<br />
# zokarn<br />
# zistroas<br />
# zistreiñ<br />
# zigeriñ<br />
# zi<br />
# zeuio<br />
# zegas<br />
# welout<br />
# welo<br />
# wellaat<br />
# welin<br />
# wazhienn-gas<br />
# wastell<br />
# war-bouez<br />
# vragoù<br />
# vousc'hoarzh<br />
# votet<br />
# vleud<br />
# vleniañ<br />
# vijen<br />
# vihan<br />
# vev<br />
# Verlin<br />
# vefent<br />
# vefemp<br />
# varvo<br />
# trumm<br />
# trubuilhoù<br />
# trouz<br />
# treitour<br />
# trec'het<br />
# trapet<br />
# toullet<br />
# touiñ<br />
# titouroù<br />
# ti-gar<br />
# tatouadur<br />
# tarzhañ<br />
# taouarn<br />
# taer<br />
# sunañ<br />
# stumm<br />
# strivoù<br />
# straner<br />
# straedoù<br />
# stou<br />
# steuziet<br />
# ster<br />
# statud<br />
# stank<br />
# staget<br />
# Stadoù-Unanet<br />
# spaghetti<br />
# skrabañ<br />
# skoaz-ouzh-skoaz<br />
# skarzhin<br />
# sizhunvezhioù<br />
# sivi<br />
# sin<br />
# servijout<br />
# serrit<br />
# serret<br />
# sentit<br />
# selaouet<br />
# seblante<br />
# savlec'h<br />
# sandwich<br />
# sachañ<br />
# roio<br />
# roched<br />
# riskloù<br />
# rimp<br />
# rentañ<br />
# renet<br />
# redadeg<br />
# rankit<br />
# rankfen<br />
# ramzel<br />
# ramirez<br />
# raemp<br />
# psikopat<br />
# prop<br />
# prederiet<br />
# popeye<br />
# politikerezh<br />
# poanius<br />
# pleustret<br />
# plantet<br />
# pignit<br />
# pich-kaoc'h<br />
# pezh-mell<br />
# pennigo<br />
# pennadig<br />
# pemzek<br />
# pellgomzet<br />
# ped<br />
# pec'hed<br />
# pech<br />
# pC<br />
# pas<br />
# parkeier<br />
# Pariz<br />
# parachutisted<br />
# paour<br />
# paeet<br />
# outi<br />
# o-unan<br />
# nemeti<br />
# naet<br />
# mut<br />
# muntroù<br />
# ministr<br />
# mindrailherezioù<br />
# milky<br />
# milk<br />
# merzhet<br />
# meritet<br />
# meno<br />
# mekanik<br />
# marc'h<br />
# maouez<br />
# machin-se<br />
# louzañ<br />
# lol<br />
# loened<br />
# loc'hañ<br />
# liv<br />
# lipet<br />
# lidañ<br />
# liammet<br />
# liamm<br />
# leuskel<br />
# leti<br />
# lazh<br />
# latar<br />
# lâromp<br />
# lârin<br />
# lâret-se<br />
# laou<br />
# laoskit<br />
# laosk<br />
# lammet<br />
# krec'h<br />
# kourvez<br />
# koulz<br />
# kornôg<br />
# komunour<br />
# koll<br />
# koadoù<br />
# kilit<br />
# ki<br />
# kenkas<br />
# kendalc'h<br />
# kenavo<br />
# kemenn<br />
# kejañ<br />
# kazi<br />
# kastizet<br />
# karr-nij<br />
# karedig<br />
# kaoc'haj<br />
# kamp<br />
# kamarad<br />
# jodi<br />
# istitloù<br />
# huchal<br />
# houmañ<br />
# heuliet<br />
# Here<br />
# hentoù<br />
# hent-houarn<br />
# hec'h<br />
# harzoù-lamm<br />
# harz-lamm<br />
# harzit<br />
# hall<br />
# gwiskañ<br />
# Gwengolo<br />
# gwell<br />
# gwan<br />
# gwallet<br />
# greden<br />
# grede<br />
# gred<br />
# grant<br />
# gomprenez<br />
# glann<br />
# ginnig<br />
# gervel<br />
# ger-kuzh<br />
# Genver<br />
# genaoueg<br />
# garez<br />
# garantez<br />
# gaozeadenn<br />
# gannont<br />
# gambr<br />
# fuloret<br />
# fudding<br />
# foz<br />
# fotoioù<br />
# foll-mik<br />
# fobl<br />
# flastret<br />
# flapiñ<br />
# fier<br />
# fentus-tre<br />
# feiz<br />
# fegement<br />
# faotred<br />
# fal<br />
# ezvezant<br />
# ezel<br />
# eus-se<br />
# erruout<br />
# erlec'hiet<br />
# eontred<br />
# eomp<br />
# enor<br />
# ennoc'h<br />
# enni<br />
# enep-argadenn<br />
# eneoù<br />
# emzalc'h-se<br />
# emsav<br />
# emgar<br />
# embannet<br />
# ehanet<br />
# e-bourzh<br />
# duarded<br />
# droad<br />
# dreid<br />
# dousik<br />
# douarenn<br />
# dorifored<br />
# dont-tre<br />
# dommañ<br />
# domaj<br />
# dle<br />
# dispartiet<br />
# diskuliet<br />
# diskouezet<br />
# direnket<br />
# diouzhit<br />
# dimeziñ<br />
# deomp-ni<br />
# demokratelezh<br />
# dek<br />
# deiz-ha-bloaz<br />
# degouezhet<br />
# degas<br />
# debr<br />
# david<br />
# dastum<br />
# darn<br />
# dapout<br />
# chupenn<br />
# c'houde<br />
# c'hontrol<br />
# chomlec'h<br />
# chomfen<br />
# chomfe<br />
# c'hoarvezhet<br />
# c'hoarvezfe<br />
# c'hichen<br />
# c'heuz<br />
# cheñchamant<br />
# c'hempenn<br />
# c'hellin<br />
# c'harter<br />
# c'harr-samm<br />
# c'harrdi<br />
# chaoser<br />
# c'hamion<br />
# c'halloudoù<br />
# butuniñ<br />
# Bro-Spagn<br />
# broioù<br />
# Bro-C'hall<br />
# broad<br />
# briefing<br />
# brenañ<br />
# breinet<br />
# brederiañ<br />
# braller<br />
# botoù<br />
# borrodus<br />
# bolotennoù<br />
# boan<br />
# blijus<br />
# bleniañ<br />
# blanca<br />
# bellgomz<br />
# bazh<br />
# barrekoc'h<br />
# bannet<br />
# bandennoù<br />
# bado<br />
# babiged<br />
# azezet<br />
# atizet<br />
# asantiñ<br />
# armet<br />
# aozet<br />
# aozañ<br />
# aner<br />
# anavezan<br />
# amprestiñ<br />
# amezeg<br />
# alamaneg<br />
# a-hend-all<br />
# a-gostez<br />
# a-feson<br />
# a-dreuz<br />
# adlakaat<br />
# adjudant<br />
# ac'hubadeg<br />
# abred<br />
# a-berzh<br />
# abegoù<br />
# abadenn<br />
# zrailhañ<br />
# zouez<br />
# zivc'harr<br />
# zistroi<br />
# zisplegañ<br />
# zisoñj<br />
# zindan<br />
# zilhad<br />
# zigor<br />
# zigareziñ<br />
# zent<br />
# yec'hederezh<br />
# yarig<br />
# yae<br />
# wreg<br />
# west<br />
# welimp<br />
# wele<br />
# war-wel<br />
# warno<br />
# wareziñ<br />
# war-eeun<br />
# vunisionoù<br />
# vronnoù<br />
# vrezeliñ<br />
# vreudeur<br />
# vragez<br />
# vir<br />
# vintin<br />
# vil<br />
# vevomp<br />
# vefec'h<br />
# varrek<br />
# vare<br />
# vantell<br />
# vanne<br />
# vanke<br />
# vakañsoù<br />
# vab<br />
# uzin<br />
# urzhiet<br />
# uheloc'h<br />
# ugent<br />
# tuch<br />
# truez<br />
# troc'hañ<br />
# triad<br />
# tres<br />
# tre<br />
# tour<br />
# toullañ<br />
# touellet<br />
# tortad<br />
# torfedus<br />
# ti-bank<br />
# teviñ<br />
# teurel<br />
# teufe<br />
# tech<br />
# tapomp<br />
# taol-sikour<br />
# tañva<br />
# tank<br />
# tammoù<br />
# talbert<br />
# takad-mañ<br />
# tagomp<br />
# tafar<br />
# susped<br />
# surentez<br />
# superharozed<br />
# sukr<br />
# strolladoù<br />
# strinkelloù<br />
# strinkadennoù<br />
# strikt<br />
# stourmerien<br />
# stankit<br />
# stalinianed<br />
# Stad<br />
# spiañ<br />
# speredekoc'h<br />
# souezhadenn<br />
# soudardel<br />
# sot-nay<br />
# sokialouriezh<br />
# sniper<br />
# skubañ<br />
# skrivañ<br />
# skinhead<br />
# skeudennoù<br />
# skeudennaouet<br />
# skañv<br />
# sizhun-mañ<br />
# sizailhoù<br />
# sinit<br />
# sinin<br />
# sindikad<br />
# simpl<br />
# simon<br />
# servijoù<br />
# servijet<br />
# sentiñ<br />
# seier<br />
# schultz<br />
# savit<br />
# Saoz<br />
# saout<br />
# santimant<br />
# sant<br />
# saludiñ<br />
# sachomp<br />
# sac'hadig<br />
# sac'had<br />
# roomp<br />
# roll<br />
# roez<br />
# reuz<br />
# responter<br />
# resis<br />
# reolennoù<br />
# reoc'h<br />
# rentet<br />
# renkit<br />
# renkad<br />
# rebechet<br />
# reas<br />
# razhed<br />
# rannañ<br />
# rann<br />
# rankimp<br />
# rankfemp<br />
# rankfe<br />
# ranke<br />
# raktres<br />
# pudding<br />
# prouenn<br />
# profitit<br />
# pro<br />
# privilajoù<br />
# prezegenn<br />
# prennet<br />
# prederiañ<br />
# powers<br />
# pourvezet<br />
# pounner<br />
# pouezusañ<br />
# pontoù<br />
# pokañ<br />
# poellek<br />
# pizza<br />
# pik<br />
# pigniit<br />
# pezhioù-kanol<br />
# pesked<br />
# pennoù-meur<br />
# pennfolliñ<br />
# pellgomzerioù<br />
# pellaat<br />
# patrouilhenn<br />
# patatez<br />
# pase<br />
# parkva<br />
# paperioù<br />
# paperachoù<br />
# paouezit<br />
# palez<br />
# pak<br />
# ouzon<br />
# ouio<br />
# ouife<br />
# ouient<br />
# ouiemp<br />
# ofisiel<br />
# och<br />
# oberenn<br />
# oberadenn-mañ<br />
# noz-se<br />
# nompas<br />
# neuial<br />
# nemedout<br />
# nedeleg<br />
# nec'het<br />
# nav<br />
# napaloni<br />
# nammet<br />
# naer<br />
# munut<br />
# muntrerien<br />
# muck<br />
# moutig<br />
# mortieroù<br />
# morteroù<br />
# morian<br />
# mor<br />
# mogerioù<br />
# mintin<br />
# milisoù<br />
# milisianed<br />
# milionoù<br />
# miguel<br />
# mibien<br />
# mezviañ<br />
# meurvor<br />
# metrad<br />
# mess<br />
# merkoù<br />
# merglet<br />
# merc'hig<br />
# menezioù<br />
# melegan<br />
# mein<br />
# meggy<br />
# medalenn<br />
# mat-kaer<br />
# mañ<br />
# mamm-gozh<br />
# magañ<br />
# mabig<br />
# lusk<br />
# luchañ<br />
# louzoù<br />
# lorc'hus<br />
# logodenn<br />
# loer<br />
# live<br />
# lipañ<br />
# liammoù<br />
# lezo<br />
# leuskit<br />
# lesanvet<br />
# leñvet<br />
# lennet<br />
# lec'h-mañ<br />
# lazhomp<br />
# lazho<br />
# lazhit<br />
# lastez<br />
# lâro<br />
# lârfen<br />
# lagad<br />
# kuzhat<br />
# kurun<br />
# kroaz<br />
# kresket<br />
# kred<br />
# kouilhoù<br />
# komzomp<br />
# komzit<br />
# komzez<br />
# koantenn<br />
# klaskit<br />
# klasel<br />
# klañvdiourez<br />
# kiriek<br />
# kilfouzhañ<br />
# kilañ</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL&diff=890897
Help:SPARQL
2023-03-26T11:21:04Z
<p>VIGNERON: /* Files on Commons about records in Punjabi with transcription and LinguaLibre identifier */ +</p>
<hr />
<div>{{#Subtitle:'''Help:SPARQL''' gathers a list of SPARQL queries in the context of Lingua Libre, ready to use, alongside with beginner-friendly inline-comments, introductions to concepts, code snippets and a few tools. To dive into it, first check the content's structure visible in the outline. This page allows users not familiar with SPARQL to easily query the LinguaLibre knowledge graph, and to download or directly feed that data into an application. To fit with most frequent uses, the page focuses towards web development.}}<br />
<br />
{{Draft|December 2021 rewriting : '''work in progress, '''please do not translate yet'''.<br />
<div style{{=}}"text-align:left;"><br />
# '''NOW/Opened:''' General content review. You may help by: a) reading and copy-editing the page's English, b) testing queries on [https://lingualibre.org/bigdata/#query LLQS], edit in or [[Help talk:SPARQL|discuss improvements]], <s>3) increase comments' concistency</s>. <br />
# Legend: 🇶 minor aspects to improve, see hidden comment ; ❌ query too heavy to run in this page.<br />
# '''Later/not yet:''' translations.<br />
<!-- # '''Later:''' Improve Base section with core SPARQL concepts ? --><br />
Help welcome.<br />
</div><br />
}}<br />
<br />
== Base ==<br />
=== Useful elements ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: auto 3em auto auto;width:60%"|<br />
* [[Special:ListProperties]] – exhaustive list of LinguaLibre's Wikibase properties.<br />
* [[LinguaLibre:List of languages]] – exhaustive list of LinguaLibre's languages<br />
||<br />
<query _pagination="4" ><br />
#All properties with descriptions and aliases and types<br />
SELECT ?property ?propertyLabel ?propertyDescription<br />
# ?propertyType<br />
# ?propertyAltLabel<br />
WHERE {<br />
?property wikibase:propertyType ?propertyType .<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }<br />
}<br />
ORDER BY ASC(xsd:integer(STRAFTER(STR(?property), 'P')))<br />
</query><br />
|}<br />
<br />
=== Tools ===<br />
[[File:Wikidata_Query_-_Query_Helper_-_Build_query_from_scratch.webm|thumb|450px|On Wikidata, the WDQS allows to practice SPARQL queries creation in an intuitive way.]]<br />
* [{{SERVER}}/bigdata/#query <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint LinguaLibre</span>] [{{SERVER}}/bigdata/#query LinguaLibre Query Service (LLQS)] – run SPARQL Queries upon LinguaLibre. Run, test, download the data as json, csv or tsv.<br />
* [https://query.wikidata.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikidata</span>] [https://query.wikidata.org Wikidata Query Service (WDQS)] – run SPARQL Queries upon Wikidata. Run, test, download the data as json, csv or tsv. Has advanced user-friendly features such as : word hovering too see a term's meaning, code optimization, etc.<br />
* [https://commons-query.wikimedia.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikimedia Commons</span>] [https://commons-query.wikimedia.org Wikimedia Commons Query Service (WCQS)] run SPARQL Queries upon Wikimedia Commons wikibase (need to log in).<br />
* [https://sinaahmadi.github.io/posts/sparql-query-generator-for-lexicographical-data.html Wikidata Lexeme Queries generators] ([https://jsfiddle.net/hugolpz/rygo9s5b/ hack me]) by @sina_ahm – helps to create queries for Wikidata's Lexeme.<br />
* [[Special:ApiSandbox]] – API queries generator for Lingualibre wikipage and wikibase contents. An alternative to SPARQL queries.<br />
<br />
=== References ===<br />
* [https://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]<br />
* [https://www.iro.umontreal.ca/~lapalme/ift6281/sparql-1_1-cheat-sheet.pdf SPARQL Cheatsheet]<br />
<br />
== Code snippets ==<br />
=== Fetch data using SPARQL ===<br />
LinguaLibre data can be fetched using various coding languages such as Python, Javascript, R and others, returning JSON or other formats.<br />
* For code snippet in your language : open [https://query.wikidata.org query.wikidata.org] (WikiData Query Service, aka WDQS), run your SPARQL query, click "Code" : a pop up window appears with various implementations.<br />
* For downloading data, click "Download".<br />
<br />
'''Javascript:'''<br><br />
At least 3 methods exists ([https://jsfiddle.net/hugolpz/tsg9ewa7/ code snippet]), example: <br />
{| style="width:100%" <br />
|-<br />
! Query || Result's basic unit<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"| '''SPARQL:'''<br><br />
<syntaxhighlight lang="sparql" style="width:100%"><br />
SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10<br />
</syntaxhighlight><br />
|rowspan="2"|<br />
<syntaxhighlight lang="javascript"><br />
{ … },<br />
{<br />
"item": {<br />
"type": "uri",<br />
"value": "https://lingualibre.org/entity/Q12"<br />
},<br />
"itemLabel": {<br />
"xml:lang": "en",<br />
"type": "literal",<br />
"value": "beginner"<br />
}<br />
},<br />
{ … }<br />
</syntaxhighlight><br />
|-<br />
| '''Javascript:'''<br />
<syntaxhighlight lang="javascript"><br />
var endpoint = 'https://lingualibre.org/sparql';<br />
var sparql = 'SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10';<br />
$.getJSON(endpoint,<br />
{ query: sparql, format: 'json' },<br />
function(data){ console.log('JQuery: ',data)}<br />
);<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Merging data ===<br />
Advanced SPARQL queries with <code>COUNT()</code> and others are often slow (>3secs, sometime >100secs). You are encouraged to do multiple smaller SPARQL queries to then merge their responded data. By example, the complementary Javascript snippet below would help web developers to do so.<br />
<br />
<syntaxhighlight lang="javascript"><br />
// Data from 3 sparql queries.<br />
// Important: One key must be similar in all datasets, here: 'qid'<br />
const langs = [{ qid: 'Q209', label: 'Breton', iso:'bre' }, { qid: 'Q34', label: 'Marathi', iso: 'mar' }],<br />
speakersFemales = [{ qid: 'Q209', genderF: 3, recordsF: 60 }, { qid: 'Q34', genderF: 21, recordsF:5046 }],<br />
speakersMales = [{ qid: 'Q209', genderM: 7, recordsM: 218 }, { qid: 'Q34', genderM: 85, recordsM:32964 }];<br />
// Toolbox for merging data by same id<br />
var merge2ArraysBySameId = function(arr1,arr2,id1){<br />
return arr1.map( item1 => { <br />
var identical = arr2.find(obj => obj[id1] === item1[id1]); <br />
return Object.assign(identical, item1) <br />
} );<br />
}<br />
// Mergings<br />
var step1 = merge2ArraysBySameId(langs,speakersFemales,'qid');<br />
var step2 = merge2ArraysBySameId(step1,speakersMales,'qid');<br />
alert(JSON.stringify(step2))<br />
</syntaxhighlight><br />
<br />
== Lingualibre's ground ==<br />
=== Is Language ([[d:Q34770]]) → List existing languages with: LL Qid, ISO 639-3, Name ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List existing speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" speaker="Item" speakerLabel="Speaker" langLabel="Language"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Language level ([[Q5]]) → List existing levels ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Sex or Gender ([[Q7]]) → List existing sexes or genders ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Speaker ==<br />
=== 🇶 Speaker name(s) → Speaker Qid(s) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REVIEW REQUIRED --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" } # Assign value: one or multiple values<br />
# note: need to comment BIND<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
# Grammatical note: ';' allows to chain actions <br />
?speakerId prop:P2 entity:Q3 ; # Filter: P2 'instance of' is Q3 'speaker'.<br />
rdfs:label ?speakerLabel . # Filter by value: label equal ?speakerLabel's value<br />
} <br />
</syntaxhighlight><br />
||<br />
<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" }<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
?speakerId prop:P2 entity:Q3 ;<br />
rdfs:label ?speakerLabel .<br />
} <br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker data, all ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: alternative words for "predicate" and "object". "property" and "value" ?--><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
# Get Q445757 (User:SangeetaRH)'s data<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker languages ([[Property:P4|P4]]) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Count speaker gender ([[Property:P8|P8]]) ===<br />
<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → List records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → Count records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language, e.g. Q1571 or others<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language.<br />
# E.g. Q1571 or others<br />
<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List of accounts and associated speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</query><br />
|}<br />
<br />
== Languages ==<br />
=== 🇶 Language name(s) in English → Language LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint. ''<br />
<!-- Q: Change exact match by CONTAINS() --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ISO-639-3 → Language LL Qid(s), Wikidata Qid, Label ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count records ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34 or others)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language LL All Languages → Count unique words, audios, ratio ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
<!-- Use smaller language for higher speed --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
# Uncomment the below line to filter languages (e.g Q34 or others)<br />
# VALUES ?language { wd:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
<br />
# VALUES ?language { entity:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count speakers ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid (Q209) → List speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, Literals ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Property P220 (ISO 639-3) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Languages → List existing languages' iso-639-3 ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language WD Qid → Language data, core ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REQUIRE REVIEW FOR BETTER INLINE COMMENTS --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" . # Filter: P12 'Wikidata id' is Wikidata's "Q12107"<br />
?lang ?predicate ?object . # <br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" .<br />
?lang ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
== Records ==<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, core ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q1860]]) + String → Record LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
} <br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q12107]]) + Speaker (/speakers/1 ??) + String (ni) → Record LL Qid ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
<br />
'''Case:''' Search in Breton language, with speaker 'ThonyVezbe', <br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q150]]) + Speaker (/speakers/1 ??) + String → URL pointer, filename ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</query><br />
|}<br />
<br />
=== Files on Commons about records in Punjabi with transcription and LinguaLibre identifier ===<br />
<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
?m wdt:P31 wd:Q108167708 ; #record<br />
wdt:P407 wd:Q58635 ; #in Punjabi<br />
wdt:P9533 ?transcription ; #with transcription<br />
wdt:P10369 ?idLili . #with LinguaLibre identifier<br />
}<br />
LIMIT 100<br />
</syntaxhighlight><br />
<br />
=== 🇶 Count records by gender of the speaker ([[Property:P8|P8]]) ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?genderLabel (count(?record) AS ?nb)<br />
WHERE {<br />
?record prop:P2 entity:Q2 ;<br />
prop:P5 ?speaker .<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
}<br />
GROUP BY ?genderLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?genderLabel (count(?record) AS ?nb)<br />
WHERE {<br />
?record prop:P2 entity:Q2 ;<br />
prop:P5 ?speaker .<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
}<br />
GROUP BY ?genderLabel<br />
GROUP BY ?genderLabel<br />
</query><br />
|}<br />
<br />
== Heavy queries ==<br />
Queries below are too large to run on LinguaLibre's wikipages, or even on [https://lingualibre.org/bigdata/#query Lingualibre Query Service]).<br><br />
To do: do smaller sub-queries, with one <code>COUNT()</code> function.<br />
<br />
=== ❌ Languages → Name, Wikidata Qid, LLQid, Iso-639-3, and genders ===<br />
{| style="width:100%" <br />
|-<br />
! Query || Result<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageQidLabel ?wdQid ?languageQid ?isoCode <br />
(COUNT(DISTINCT(?record)) AS ?recordCount)<br />
(COUNT(DISTINCT(?speakerLangM)) AS ?speakerM) <br />
(COUNT(DISTINCT(?speakerLangF)) AS ?speakerF)<br />
wWHERE{<br />
?record prop:P2 entity:Q2 . # Filter: items where P2 'instance of' is Q2 'record'<br />
?record prop:P4 ?languageQid . # Assign value: P4 'language' into variable ?language<br />
?languageQid prop:P12 ?wdQid . # Assign value: P12 'wikidata id' into variable ?WD<br />
?languageQid prop:P13 ?isoCode. # Assign value: P13 'iso639-3' into ?isoCode<br />
<br />
#?record prop:P5 ?speakerQidM . # Assign value: P5 'speaker' into variable ?speakerQidM<br />
#?speakerQidM prop:P8 entity:Q16 . # Filter: P8 'sex or gender' is Q16 'male<br />
#?speakerQidM prop:P4 ?speakerLangM . # Assign value: P4 'language' into variable ?spakerLangM<br />
<br />
?record prop:P5 ?speakerQidF . # Assign value: P5 'speaker' into variable ?speakerQidF<br />
?speakerQidF prop:P8 entity:Q17 . # Filter: P8 'sex or gender' is Q17 'female<br />
?speakerQidF prop:P4 ?speakerLangF . # Assign value: P4 'language' into variable ?spakerLangF<br />
<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } <br />
}<br />
GROUP BY ?languageQidLabel ?languageQid ?wdQid ?isoCode<br />
ORDER BY DESC(?recordCount)<br />
</syntaxhighlight><br />
||<br />
<pre><br />
languageQidLabel wdQid languageQid isoCode recordCount speakerM speakerF<br />
French Q150 Q21 fra 16761 0 18<br />
Marathi Q1571 Q34 mar 13153 0 5<br />
Polish Q809 Q298 pol 11686 0 1<br />
…<br />
</pre><br />
|}<br />
<br />
=== ❌ Is Language ([[Q3]]) → list all languages with number of unique words and speakers ===<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?nbAudio) (COUNT(?speaker) AS ?nbSpeaker) WHERE {<br />
?language prop:P2 entity:Q4 .<br />
?audio prop:P4 ?language .<br />
?speaker prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
<br />
== Others ==<br />
''(These old queries are not assessed yet.)''<br />
=== Language ([[Q209]]) → Record, speaker's language level ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</query><br />
|}<br />
<br />
=== Language ([[Q34]]) → Records of Wikidata concepts with WD Qid ([[Property:P12|P12]]) ===<br />
:''Those items were proposed to Lingualibre's recorder at step 3 via a SPARQL query upon Wikidata, so those words have WD's Qids.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Records → Filter by date: late 2018 ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</syntaxhighlight><br />
||<br />
<query><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
* [[Help:SPARQL 2]] — next tutorial with focus on federate queries and Wikidata Lexemes.<br />
** [[d:Wikidata:Lexicographical data/Ideas of queries|Lexicographical data/Ideas of queries]]<br />
** [[LinguaLibre:Wikidata]] — stub, help write it !<br />
* [[Help:Querying Lingua Libre]] — general review, redirecting users to rightful place.<br />
* [[Help:APIs]] — API queries over Wikimedia Commons or other Wikimedia wikis.<br />
* [[:mw:Manual:Developing extensions]] — PHP-based modules enhancing wikis, can pull data via SPARQL queries.<br />
<br />
{{Lingua Libre scripts}}<br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL&diff=890896
Help:SPARQL
2023-03-26T11:15:45Z
<p>VIGNERON: /* Language (wd:Q12107) + Speaker (/speakers/1 ??) + String (ni) → Record LL Qid */ erreur de préfixe</p>
<hr />
<div>{{#Subtitle:'''Help:SPARQL''' gathers a list of SPARQL queries in the context of Lingua Libre, ready to use, alongside with beginner-friendly inline-comments, introductions to concepts, code snippets and a few tools. To dive into it, first check the content's structure visible in the outline. This page allows users not familiar with SPARQL to easily query the LinguaLibre knowledge graph, and to download or directly feed that data into an application. To fit with most frequent uses, the page focuses towards web development.}}<br />
<br />
{{Draft|December 2021 rewriting : '''work in progress, '''please do not translate yet'''.<br />
<div style{{=}}"text-align:left;"><br />
# '''NOW/Opened:''' General content review. You may help by: a) reading and copy-editing the page's English, b) testing queries on [https://lingualibre.org/bigdata/#query LLQS], edit in or [[Help talk:SPARQL|discuss improvements]], <s>3) increase comments' concistency</s>. <br />
# Legend: 🇶 minor aspects to improve, see hidden comment ; ❌ query too heavy to run in this page.<br />
# '''Later/not yet:''' translations.<br />
<!-- # '''Later:''' Improve Base section with core SPARQL concepts ? --><br />
Help welcome.<br />
</div><br />
}}<br />
<br />
== Base ==<br />
=== Useful elements ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: auto 3em auto auto;width:60%"|<br />
* [[Special:ListProperties]] – exhaustive list of LinguaLibre's Wikibase properties.<br />
* [[LinguaLibre:List of languages]] – exhaustive list of LinguaLibre's languages<br />
||<br />
<query _pagination="4" ><br />
#All properties with descriptions and aliases and types<br />
SELECT ?property ?propertyLabel ?propertyDescription<br />
# ?propertyType<br />
# ?propertyAltLabel<br />
WHERE {<br />
?property wikibase:propertyType ?propertyType .<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }<br />
}<br />
ORDER BY ASC(xsd:integer(STRAFTER(STR(?property), 'P')))<br />
</query><br />
|}<br />
<br />
=== Tools ===<br />
[[File:Wikidata_Query_-_Query_Helper_-_Build_query_from_scratch.webm|thumb|450px|On Wikidata, the WDQS allows to practice SPARQL queries creation in an intuitive way.]]<br />
* [{{SERVER}}/bigdata/#query <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint LinguaLibre</span>] [{{SERVER}}/bigdata/#query LinguaLibre Query Service (LLQS)] – run SPARQL Queries upon LinguaLibre. Run, test, download the data as json, csv or tsv.<br />
* [https://query.wikidata.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikidata</span>] [https://query.wikidata.org Wikidata Query Service (WDQS)] – run SPARQL Queries upon Wikidata. Run, test, download the data as json, csv or tsv. Has advanced user-friendly features such as : word hovering too see a term's meaning, code optimization, etc.<br />
* [https://commons-query.wikimedia.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikimedia Commons</span>] [https://commons-query.wikimedia.org Wikimedia Commons Query Service (WCQS)] run SPARQL Queries upon Wikimedia Commons wikibase (need to log in).<br />
* [https://sinaahmadi.github.io/posts/sparql-query-generator-for-lexicographical-data.html Wikidata Lexeme Queries generators] ([https://jsfiddle.net/hugolpz/rygo9s5b/ hack me]) by @sina_ahm – helps to create queries for Wikidata's Lexeme.<br />
* [[Special:ApiSandbox]] – API queries generator for Lingualibre wikipage and wikibase contents. An alternative to SPARQL queries.<br />
<br />
=== References ===<br />
* [https://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]<br />
* [https://www.iro.umontreal.ca/~lapalme/ift6281/sparql-1_1-cheat-sheet.pdf SPARQL Cheatsheet]<br />
<br />
== Code snippets ==<br />
=== Fetch data using SPARQL ===<br />
LinguaLibre data can be fetched using various coding languages such as Python, Javascript, R and others, returning JSON or other formats.<br />
* For code snippet in your language : open [https://query.wikidata.org query.wikidata.org] (WikiData Query Service, aka WDQS), run your SPARQL query, click "Code" : a pop up window appears with various implementations.<br />
* For downloading data, click "Download".<br />
<br />
'''Javascript:'''<br><br />
At least 3 methods exists ([https://jsfiddle.net/hugolpz/tsg9ewa7/ code snippet]), example: <br />
{| style="width:100%" <br />
|-<br />
! Query || Result's basic unit<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"| '''SPARQL:'''<br><br />
<syntaxhighlight lang="sparql" style="width:100%"><br />
SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10<br />
</syntaxhighlight><br />
|rowspan="2"|<br />
<syntaxhighlight lang="javascript"><br />
{ … },<br />
{<br />
"item": {<br />
"type": "uri",<br />
"value": "https://lingualibre.org/entity/Q12"<br />
},<br />
"itemLabel": {<br />
"xml:lang": "en",<br />
"type": "literal",<br />
"value": "beginner"<br />
}<br />
},<br />
{ … }<br />
</syntaxhighlight><br />
|-<br />
| '''Javascript:'''<br />
<syntaxhighlight lang="javascript"><br />
var endpoint = 'https://lingualibre.org/sparql';<br />
var sparql = 'SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10';<br />
$.getJSON(endpoint,<br />
{ query: sparql, format: 'json' },<br />
function(data){ console.log('JQuery: ',data)}<br />
);<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Merging data ===<br />
Advanced SPARQL queries with <code>COUNT()</code> and others are often slow (>3secs, sometime >100secs). You are encouraged to do multiple smaller SPARQL queries to then merge their responded data. By example, the complementary Javascript snippet below would help web developers to do so.<br />
<br />
<syntaxhighlight lang="javascript"><br />
// Data from 3 sparql queries.<br />
// Important: One key must be similar in all datasets, here: 'qid'<br />
const langs = [{ qid: 'Q209', label: 'Breton', iso:'bre' }, { qid: 'Q34', label: 'Marathi', iso: 'mar' }],<br />
speakersFemales = [{ qid: 'Q209', genderF: 3, recordsF: 60 }, { qid: 'Q34', genderF: 21, recordsF:5046 }],<br />
speakersMales = [{ qid: 'Q209', genderM: 7, recordsM: 218 }, { qid: 'Q34', genderM: 85, recordsM:32964 }];<br />
// Toolbox for merging data by same id<br />
var merge2ArraysBySameId = function(arr1,arr2,id1){<br />
return arr1.map( item1 => { <br />
var identical = arr2.find(obj => obj[id1] === item1[id1]); <br />
return Object.assign(identical, item1) <br />
} );<br />
}<br />
// Mergings<br />
var step1 = merge2ArraysBySameId(langs,speakersFemales,'qid');<br />
var step2 = merge2ArraysBySameId(step1,speakersMales,'qid');<br />
alert(JSON.stringify(step2))<br />
</syntaxhighlight><br />
<br />
== Lingualibre's ground ==<br />
=== Is Language ([[d:Q34770]]) → List existing languages with: LL Qid, ISO 639-3, Name ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List existing speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" speaker="Item" speakerLabel="Speaker" langLabel="Language"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Language level ([[Q5]]) → List existing levels ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Sex or Gender ([[Q7]]) → List existing sexes or genders ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Speaker ==<br />
=== 🇶 Speaker name(s) → Speaker Qid(s) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REVIEW REQUIRED --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" } # Assign value: one or multiple values<br />
# note: need to comment BIND<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
# Grammatical note: ';' allows to chain actions <br />
?speakerId prop:P2 entity:Q3 ; # Filter: P2 'instance of' is Q3 'speaker'.<br />
rdfs:label ?speakerLabel . # Filter by value: label equal ?speakerLabel's value<br />
} <br />
</syntaxhighlight><br />
||<br />
<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" }<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
?speakerId prop:P2 entity:Q3 ;<br />
rdfs:label ?speakerLabel .<br />
} <br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker data, all ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: alternative words for "predicate" and "object". "property" and "value" ?--><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
# Get Q445757 (User:SangeetaRH)'s data<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker languages ([[Property:P4|P4]]) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Count speaker gender ([[Property:P8|P8]]) ===<br />
<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → List records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → Count records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language, e.g. Q1571 or others<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language.<br />
# E.g. Q1571 or others<br />
<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List of accounts and associated speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</query><br />
|}<br />
<br />
== Languages ==<br />
=== 🇶 Language name(s) in English → Language LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint. ''<br />
<!-- Q: Change exact match by CONTAINS() --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ISO-639-3 → Language LL Qid(s), Wikidata Qid, Label ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count records ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34 or others)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language LL All Languages → Count unique words, audios, ratio ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
<!-- Use smaller language for higher speed --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
# Uncomment the below line to filter languages (e.g Q34 or others)<br />
# VALUES ?language { wd:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
<br />
# VALUES ?language { entity:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count speakers ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid (Q209) → List speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, Literals ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Property P220 (ISO 639-3) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Languages → List existing languages' iso-639-3 ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language WD Qid → Language data, core ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REQUIRE REVIEW FOR BETTER INLINE COMMENTS --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" . # Filter: P12 'Wikidata id' is Wikidata's "Q12107"<br />
?lang ?predicate ?object . # <br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" .<br />
?lang ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
== Records ==<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, core ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q1860]]) + String → Record LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
} <br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q12107]]) + Speaker (/speakers/1 ??) + String (ni) → Record LL Qid ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
<br />
'''Case:''' Search in Breton language, with speaker 'ThonyVezbe', <br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q150]]) + Speaker (/speakers/1 ??) + String → URL pointer, filename ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</query><br />
|}<br />
<br />
=== Files on Commons about records in Punjabi with transcription and LinguaLibre identifier ===<br />
<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
?m wdt:P31 wd:Q108167708 ; #record<br />
wdt:P407 wd:Q58635 ; #in Punjabi<br />
wdt:P9533 ?transcription ; #with transcription<br />
wdt:P10369 ?idLili . #with LinguaLibre identifier<br />
}<br />
LIMIT 100<br />
</syntaxhighlight><br />
<br />
== Heavy queries ==<br />
Queries below are too large to run on LinguaLibre's wikipages, or even on [https://lingualibre.org/bigdata/#query Lingualibre Query Service]).<br><br />
To do: do smaller sub-queries, with one <code>COUNT()</code> function.<br />
<br />
=== ❌ Languages → Name, Wikidata Qid, LLQid, Iso-639-3, and genders ===<br />
{| style="width:100%" <br />
|-<br />
! Query || Result<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageQidLabel ?wdQid ?languageQid ?isoCode <br />
(COUNT(DISTINCT(?record)) AS ?recordCount)<br />
(COUNT(DISTINCT(?speakerLangM)) AS ?speakerM) <br />
(COUNT(DISTINCT(?speakerLangF)) AS ?speakerF)<br />
wWHERE{<br />
?record prop:P2 entity:Q2 . # Filter: items where P2 'instance of' is Q2 'record'<br />
?record prop:P4 ?languageQid . # Assign value: P4 'language' into variable ?language<br />
?languageQid prop:P12 ?wdQid . # Assign value: P12 'wikidata id' into variable ?WD<br />
?languageQid prop:P13 ?isoCode. # Assign value: P13 'iso639-3' into ?isoCode<br />
<br />
#?record prop:P5 ?speakerQidM . # Assign value: P5 'speaker' into variable ?speakerQidM<br />
#?speakerQidM prop:P8 entity:Q16 . # Filter: P8 'sex or gender' is Q16 'male<br />
#?speakerQidM prop:P4 ?speakerLangM . # Assign value: P4 'language' into variable ?spakerLangM<br />
<br />
?record prop:P5 ?speakerQidF . # Assign value: P5 'speaker' into variable ?speakerQidF<br />
?speakerQidF prop:P8 entity:Q17 . # Filter: P8 'sex or gender' is Q17 'female<br />
?speakerQidF prop:P4 ?speakerLangF . # Assign value: P4 'language' into variable ?spakerLangF<br />
<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } <br />
}<br />
GROUP BY ?languageQidLabel ?languageQid ?wdQid ?isoCode<br />
ORDER BY DESC(?recordCount)<br />
</syntaxhighlight><br />
||<br />
<pre><br />
languageQidLabel wdQid languageQid isoCode recordCount speakerM speakerF<br />
French Q150 Q21 fra 16761 0 18<br />
Marathi Q1571 Q34 mar 13153 0 5<br />
Polish Q809 Q298 pol 11686 0 1<br />
…<br />
</pre><br />
|}<br />
<br />
=== ❌ Is Language ([[Q3]]) → list all languages with number of unique words and speakers ===<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?nbAudio) (COUNT(?speaker) AS ?nbSpeaker) WHERE {<br />
?language prop:P2 entity:Q4 .<br />
?audio prop:P4 ?language .<br />
?speaker prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
<br />
== Others ==<br />
''(These old queries are not assessed yet.)''<br />
=== Language ([[Q209]]) → Record, speaker's language level ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</query><br />
|}<br />
<br />
=== Language ([[Q34]]) → Records of Wikidata concepts with WD Qid ([[Property:P12|P12]]) ===<br />
:''Those items were proposed to Lingualibre's recorder at step 3 via a SPARQL query upon Wikidata, so those words have WD's Qids.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Records → Filter by date: late 2018 ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</syntaxhighlight><br />
||<br />
<query><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
* [[Help:SPARQL 2]] — next tutorial with focus on federate queries and Wikidata Lexemes.<br />
** [[d:Wikidata:Lexicographical data/Ideas of queries|Lexicographical data/Ideas of queries]]<br />
** [[LinguaLibre:Wikidata]] — stub, help write it !<br />
* [[Help:Querying Lingua Libre]] — general review, redirecting users to rightful place.<br />
* [[Help:APIs]] — API queries over Wikimedia Commons or other Wikimedia wikis.<br />
* [[:mw:Manual:Developing extensions]] — PHP-based modules enhancing wikis, can pull data via SPARQL queries.<br />
<br />
{{Lingua Libre scripts}}<br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL&diff=890895
Help:SPARQL
2023-03-26T11:11:53Z
<p>VIGNERON: /* 🇶 Speaker Qid (Q445757) → Speaker languages (P4) */ + gender</p>
<hr />
<div>{{#Subtitle:'''Help:SPARQL''' gathers a list of SPARQL queries in the context of Lingua Libre, ready to use, alongside with beginner-friendly inline-comments, introductions to concepts, code snippets and a few tools. To dive into it, first check the content's structure visible in the outline. This page allows users not familiar with SPARQL to easily query the LinguaLibre knowledge graph, and to download or directly feed that data into an application. To fit with most frequent uses, the page focuses towards web development.}}<br />
<br />
{{Draft|December 2021 rewriting : '''work in progress, '''please do not translate yet'''.<br />
<div style{{=}}"text-align:left;"><br />
# '''NOW/Opened:''' General content review. You may help by: a) reading and copy-editing the page's English, b) testing queries on [https://lingualibre.org/bigdata/#query LLQS], edit in or [[Help talk:SPARQL|discuss improvements]], <s>3) increase comments' concistency</s>. <br />
# Legend: 🇶 minor aspects to improve, see hidden comment ; ❌ query too heavy to run in this page.<br />
# '''Later/not yet:''' translations.<br />
<!-- # '''Later:''' Improve Base section with core SPARQL concepts ? --><br />
Help welcome.<br />
</div><br />
}}<br />
<br />
== Base ==<br />
=== Useful elements ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: auto 3em auto auto;width:60%"|<br />
* [[Special:ListProperties]] – exhaustive list of LinguaLibre's Wikibase properties.<br />
* [[LinguaLibre:List of languages]] – exhaustive list of LinguaLibre's languages<br />
||<br />
<query _pagination="4" ><br />
#All properties with descriptions and aliases and types<br />
SELECT ?property ?propertyLabel ?propertyDescription<br />
# ?propertyType<br />
# ?propertyAltLabel<br />
WHERE {<br />
?property wikibase:propertyType ?propertyType .<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }<br />
}<br />
ORDER BY ASC(xsd:integer(STRAFTER(STR(?property), 'P')))<br />
</query><br />
|}<br />
<br />
=== Tools ===<br />
[[File:Wikidata_Query_-_Query_Helper_-_Build_query_from_scratch.webm|thumb|450px|On Wikidata, the WDQS allows to practice SPARQL queries creation in an intuitive way.]]<br />
* [{{SERVER}}/bigdata/#query <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint LinguaLibre</span>] [{{SERVER}}/bigdata/#query LinguaLibre Query Service (LLQS)] – run SPARQL Queries upon LinguaLibre. Run, test, download the data as json, csv or tsv.<br />
* [https://query.wikidata.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikidata</span>] [https://query.wikidata.org Wikidata Query Service (WDQS)] – run SPARQL Queries upon Wikidata. Run, test, download the data as json, csv or tsv. Has advanced user-friendly features such as : word hovering too see a term's meaning, code optimization, etc.<br />
* [https://commons-query.wikimedia.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikimedia Commons</span>] [https://commons-query.wikimedia.org Wikimedia Commons Query Service (WCQS)] run SPARQL Queries upon Wikimedia Commons wikibase (need to log in).<br />
* [https://sinaahmadi.github.io/posts/sparql-query-generator-for-lexicographical-data.html Wikidata Lexeme Queries generators] ([https://jsfiddle.net/hugolpz/rygo9s5b/ hack me]) by @sina_ahm – helps to create queries for Wikidata's Lexeme.<br />
* [[Special:ApiSandbox]] – API queries generator for Lingualibre wikipage and wikibase contents. An alternative to SPARQL queries.<br />
<br />
=== References ===<br />
* [https://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]<br />
* [https://www.iro.umontreal.ca/~lapalme/ift6281/sparql-1_1-cheat-sheet.pdf SPARQL Cheatsheet]<br />
<br />
== Code snippets ==<br />
=== Fetch data using SPARQL ===<br />
LinguaLibre data can be fetched using various coding languages such as Python, Javascript, R and others, returning JSON or other formats.<br />
* For code snippet in your language : open [https://query.wikidata.org query.wikidata.org] (WikiData Query Service, aka WDQS), run your SPARQL query, click "Code" : a pop up window appears with various implementations.<br />
* For downloading data, click "Download".<br />
<br />
'''Javascript:'''<br><br />
At least 3 methods exists ([https://jsfiddle.net/hugolpz/tsg9ewa7/ code snippet]), example: <br />
{| style="width:100%" <br />
|-<br />
! Query || Result's basic unit<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"| '''SPARQL:'''<br><br />
<syntaxhighlight lang="sparql" style="width:100%"><br />
SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10<br />
</syntaxhighlight><br />
|rowspan="2"|<br />
<syntaxhighlight lang="javascript"><br />
{ … },<br />
{<br />
"item": {<br />
"type": "uri",<br />
"value": "https://lingualibre.org/entity/Q12"<br />
},<br />
"itemLabel": {<br />
"xml:lang": "en",<br />
"type": "literal",<br />
"value": "beginner"<br />
}<br />
},<br />
{ … }<br />
</syntaxhighlight><br />
|-<br />
| '''Javascript:'''<br />
<syntaxhighlight lang="javascript"><br />
var endpoint = 'https://lingualibre.org/sparql';<br />
var sparql = 'SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10';<br />
$.getJSON(endpoint,<br />
{ query: sparql, format: 'json' },<br />
function(data){ console.log('JQuery: ',data)}<br />
);<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Merging data ===<br />
Advanced SPARQL queries with <code>COUNT()</code> and others are often slow (>3secs, sometime >100secs). You are encouraged to do multiple smaller SPARQL queries to then merge their responded data. By example, the complementary Javascript snippet below would help web developers to do so.<br />
<br />
<syntaxhighlight lang="javascript"><br />
// Data from 3 sparql queries.<br />
// Important: One key must be similar in all datasets, here: 'qid'<br />
const langs = [{ qid: 'Q209', label: 'Breton', iso:'bre' }, { qid: 'Q34', label: 'Marathi', iso: 'mar' }],<br />
speakersFemales = [{ qid: 'Q209', genderF: 3, recordsF: 60 }, { qid: 'Q34', genderF: 21, recordsF:5046 }],<br />
speakersMales = [{ qid: 'Q209', genderM: 7, recordsM: 218 }, { qid: 'Q34', genderM: 85, recordsM:32964 }];<br />
// Toolbox for merging data by same id<br />
var merge2ArraysBySameId = function(arr1,arr2,id1){<br />
return arr1.map( item1 => { <br />
var identical = arr2.find(obj => obj[id1] === item1[id1]); <br />
return Object.assign(identical, item1) <br />
} );<br />
}<br />
// Mergings<br />
var step1 = merge2ArraysBySameId(langs,speakersFemales,'qid');<br />
var step2 = merge2ArraysBySameId(step1,speakersMales,'qid');<br />
alert(JSON.stringify(step2))<br />
</syntaxhighlight><br />
<br />
== Lingualibre's ground ==<br />
=== Is Language ([[d:Q34770]]) → List existing languages with: LL Qid, ISO 639-3, Name ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
# First get the relevant languages by first looking up all records<br />
{<br />
SELECT DISTINCT ?lang WHERE {<br />
_:record wdt:P31 wd:Q108167708 ; # Filter to get wd:Q108167708 (pronunciation file)<br />
wdt:P407 ?lang . # For each pronunciation file, fetch the language<br />
}<br />
}<br />
<br />
# From this point on, ?lang is bound. Get the label and ISO code on Wikidata<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P31 wd:Q34770 . # Filter: P31 'instance of' is Q1193409 'language or dialect'.<br />
?lang wdt:P220 ?iso . # Assign value: P220 'ISO-639-3' into ?iso.<br />
}<br />
<br />
SERVICE wikibase:label {<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List existing speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" speaker="Item" speakerLabel="Speaker" langLabel="Language"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Language level ([[Q5]]) → List existing levels ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Is Sex or Gender ([[Q7]]) → List existing sexes or genders ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Speaker ==<br />
=== 🇶 Speaker name(s) → Speaker Qid(s) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REVIEW REQUIRED --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" } # Assign value: one or multiple values<br />
# note: need to comment BIND<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
# Grammatical note: ';' allows to chain actions <br />
?speakerId prop:P2 entity:Q3 ; # Filter: P2 'instance of' is Q3 'speaker'.<br />
rdfs:label ?speakerLabel . # Filter by value: label equal ?speakerLabel's value<br />
} <br />
</syntaxhighlight><br />
||<br />
<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" }<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
?speakerId prop:P2 entity:Q3 ;<br />
rdfs:label ?speakerLabel .<br />
} <br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker data, all ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: alternative words for "predicate" and "object". "property" and "value" ?--><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
# Get Q445757 (User:SangeetaRH)'s data<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Speaker Qid ([[Q445757]]) → Speaker languages ([[Property:P4|P4]]) ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Count speaker gender ([[Property:P8|P8]]) ===<br />
<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?genderLabel (count(?speaker) AS ?nb)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 ;<br />
prop:P8 ?gender .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
GROUP BY ?genderLabel<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → List records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio wdt:SPEAKER_PROPERTY_MISSING <http://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' P5 Speaker is User:SangeetaRH<br />
wdt:P407 wd:Q1571 . # Filter: P407 'language' is Q1571 'Marathi'<br />
<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Speaker Qid (speakers/1 ???) + Language LL Qid ([[d:Q1571]]) → Count records ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language, e.g. Q1571 or others<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?speaker (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
# Comment out the below pattern to filter by language.<br />
# E.g. Q1571 or others<br />
<br />
# VALUES ?language { wd:Q1571 } # Bind value: Q1571 'Marathi' into ?language<br />
VALUES ?speaker { <http://lingualibre.org/speakers/1> } # Assign value: ll.org/speakers/1 (for 'SangeetaRH') into ?speaker<br />
<br />
?audio wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Filter: ??? 'speaker' is ?speaker<br />
wdt:P407 ?language ; # Filter: P407 'language' bound to ?language<br />
wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' is Q108167708 'pronunciation file'<br />
}<br />
GROUP BY ?language ?speaker # Sorting first groups per language and speaker<br />
</query><br />
|}<br />
<br />
=== Is Speaker ([[Q3]]) → List of accounts and associated speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</query><br />
|}<br />
<br />
== Languages ==<br />
=== 🇶 Language name(s) in English → Language LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint. ''<br />
<!-- Q: Change exact match by CONTAINS() --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
<br />
?languageId rdfs:label ?languageLabel ; # Assign value label into ?languageLabel<br />
wdt:P31 wd:Q34770 . # Filter: P2 'instance of' is Q4 'language' AND<br />
<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ISO-639-3 → Language LL Qid(s), Wikidata Qid, Label ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT ?langIso ?langId ?langIdLabel<br />
WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
wdt:P220 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
wdt:P31 wd:Q34770 ; # Filter: P2 'instance of' is Q4 'language' <br />
<br />
}<br />
<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count records ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34 or others)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?audios WHERE {<br />
{ <br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
# Comment out the below statement to filter to only certain languages (e.g. Q34)<br />
# VALUES ?language { entity:Q34 }<br />
<br />
?audio wdt:P31 wd:Q108167708 ; # Filter: P2 'instance of' is Q2 'record'<br />
wdt:P407 ?language .<br />
}<br />
GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language LL All Languages → Count unique words, audios, ratio ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
<!-- Use smaller language for higher speed --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
# Uncomment the below line to filter languages (e.g Q34 or others)<br />
# VALUES ?language { wd:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?words ?audios ?percent<br />
WHERE {<br />
{<br />
SELECT ?language<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
<br />
# VALUES ?language { entity:Q34 }<br />
?audio wdt:P407 ?language ; # Bind property P407 'language' to ?language<br />
wdt:P31 wd:Q108167708 ; # Filter: P31 'instance of' Q108167708 (pronunciation file)<br />
wdt:P9533 ?itemLabel . # Bind P9533 'transcription' to ?itemLabel.<br />
}<br />
GROUP BY ?language ?languageLabel<br />
}<br />
<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".<br />
?language rdfs:label ?languageLabel .<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL All Languages → Count speakers ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Commons<br />
SELECT ?language ?languageLabel ?speakers WHERE {<br />
{<br />
SELECT ?language (COUNT(?speaker) AS ?speakers) WHERE {<br />
<br />
# Uncomment the below line to filter to specific languages<br />
# E.g Q34 and others<br />
# VALUES ?language { wd:Q34 }<br />
<br />
?record wdt:P407 ?language ; # Bind P407 'language' to ?language (if unbound)<br />
wdt:P31 wd:Q108167708 ; # P31 'instance of' Q108167708 'pronunciation file'<br />
wdt:SPEAKER_PROPERTY_MISSING ?speaker ; # Bind ??? 'speaker' to ?speaker<br />
} GROUP BY ?language<br />
}<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
SERVICE wikibase:label { <br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". <br />
?language rdfs:label ?languageLabel<br />
}<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid (Q209) → List speakers ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT ?predicate ?object WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 language, get all properties and values<br />
wd:Q12107 ?predicate ?object .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Language data, Literals ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
# Given Q12107 'Breton language', get only literals<br />
wd:Q12107 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Language LL Qid ([[d:Q12107]]) → Property P220 (ISO 639-3) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
wd:Q12107 wdt:P220 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== Languages → List existing languages' iso-639-3 ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?lang wdt:P220 ?code .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== 🇶 Language WD Qid → Language data, core ===<br />
''This query is going to be DEPRECATED as the queried data will no longer be available.''<br />
<!-- REQUIRE REVIEW FOR BETTER INLINE COMMENTS --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" . # Filter: P12 'Wikidata id' is Wikidata's "Q12107"<br />
?lang ?predicate ?object . # <br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Lingualibre<br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" .<br />
?lang ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
== Records ==<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, all ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== Record LL Qid ([[sdc:M69288741]]) → Record data, core ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
sdc:M69288741 ?predicate ?object .<br />
<br />
SERVICE <https://query.wikidata.org/sparql> {<br />
?predicate rdf:type owl:DatatypeProperty . <br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q1860]]) + String → Record LL Qid(s) ===<br />
''This query has been UPDATED to work on Commons SPARQL Endpoint.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Commons<br />
SELECT ?item<br />
WHERE { <br />
?item wdt:P31 wd:Q108167708 . # Filter: P31 'instance of' Q108167708 'record'<br />
?item wdt:P407 wd:Q1860 . # Filter: P407 'language' is Q1860 'English'<br />
?item wdt:P9533 "apple"@en. # Filter: P9533 'transcription' is "apple"<br />
} <br />
</query><br />
|}<br />
<br />
=== Language ([[wd:Q12107]]) + Speaker (/speakers/1 ??) + String (ni) → Record LL Qid ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
<br />
'''Case:''' Search in Breton language, with speaker 'ThonyVezbe', <br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio wdt:P407 wd:Q12107 ; # P407 'language' is Q12107 'Breton'<br />
wdt:SPEAKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # ??? 'speaker' is ll.org/speakers/1 'ThonyVezbe'<br />
wdt:P9533 "ni"@br ;<br />
schema:url ?urlPointer .<br />
}<br />
</query><br />
|}<br />
<br />
=== Language ([[d:Q150]]) + Speaker (/speakers/1 ??) + String → URL pointer, filename ===<br />
''This query is IN WORK for Commons SPARQL Endpoint. One Wikidata property is missing; please update this query with the right property URI.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
(REPLACE(REPLACE(REPLACE(SUBSTR(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio wdt:P407 wd:Q150 ; # Filter: P407 'language' is Q150 'French'<br />
wdt:SPEARKER_PROPERTY_MISSING <https://lingualibre.org/speakers/1> ; # Filter: ??? 'speaker' is ll.org/speakers/1 'Aemines1'<br />
wdt:P9533 "pomme"@fr ; # Filter: P9533 'audio transcription' of "pomme" in French<br />
schema:url ?urlPointer # Bind the URI to the file to ?urlPointer<br />
}<br />
</query><br />
|}<br />
<br />
=== Files on Commons about records in Punjabi with transcription and LinguaLibre identifier ===<br />
<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Commons<br />
SELECT * WHERE {<br />
?m wdt:P31 wd:Q108167708 ; #record<br />
wdt:P407 wd:Q58635 ; #in Punjabi<br />
wdt:P9533 ?transcription ; #with transcription<br />
wdt:P10369 ?idLili . #with LinguaLibre identifier<br />
}<br />
LIMIT 100<br />
</syntaxhighlight><br />
<br />
== Heavy queries ==<br />
Queries below are too large to run on LinguaLibre's wikipages, or even on [https://lingualibre.org/bigdata/#query Lingualibre Query Service]).<br><br />
To do: do smaller sub-queries, with one <code>COUNT()</code> function.<br />
<br />
=== ❌ Languages → Name, Wikidata Qid, LLQid, Iso-639-3, and genders ===<br />
{| style="width:100%" <br />
|-<br />
! Query || Result<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageQidLabel ?wdQid ?languageQid ?isoCode <br />
(COUNT(DISTINCT(?record)) AS ?recordCount)<br />
(COUNT(DISTINCT(?speakerLangM)) AS ?speakerM) <br />
(COUNT(DISTINCT(?speakerLangF)) AS ?speakerF)<br />
wWHERE{<br />
?record prop:P2 entity:Q2 . # Filter: items where P2 'instance of' is Q2 'record'<br />
?record prop:P4 ?languageQid . # Assign value: P4 'language' into variable ?language<br />
?languageQid prop:P12 ?wdQid . # Assign value: P12 'wikidata id' into variable ?WD<br />
?languageQid prop:P13 ?isoCode. # Assign value: P13 'iso639-3' into ?isoCode<br />
<br />
#?record prop:P5 ?speakerQidM . # Assign value: P5 'speaker' into variable ?speakerQidM<br />
#?speakerQidM prop:P8 entity:Q16 . # Filter: P8 'sex or gender' is Q16 'male<br />
#?speakerQidM prop:P4 ?speakerLangM . # Assign value: P4 'language' into variable ?spakerLangM<br />
<br />
?record prop:P5 ?speakerQidF . # Assign value: P5 'speaker' into variable ?speakerQidF<br />
?speakerQidF prop:P8 entity:Q17 . # Filter: P8 'sex or gender' is Q17 'female<br />
?speakerQidF prop:P4 ?speakerLangF . # Assign value: P4 'language' into variable ?spakerLangF<br />
<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } <br />
}<br />
GROUP BY ?languageQidLabel ?languageQid ?wdQid ?isoCode<br />
ORDER BY DESC(?recordCount)<br />
</syntaxhighlight><br />
||<br />
<pre><br />
languageQidLabel wdQid languageQid isoCode recordCount speakerM speakerF<br />
French Q150 Q21 fra 16761 0 18<br />
Marathi Q1571 Q34 mar 13153 0 5<br />
Polish Q809 Q298 pol 11686 0 1<br />
…<br />
</pre><br />
|}<br />
<br />
=== ❌ Is Language ([[Q3]]) → list all languages with number of unique words and speakers ===<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?nbAudio) (COUNT(?speaker) AS ?nbSpeaker) WHERE {<br />
?language prop:P2 entity:Q4 .<br />
?audio prop:P4 ?language .<br />
?speaker prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
<br />
== Others ==<br />
''(These old queries are not assessed yet.)''<br />
=== Language ([[Q209]]) → Record, speaker's language level ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</query><br />
|}<br />
<br />
=== Language ([[Q34]]) → Records of Wikidata concepts with WD Qid ([[Property:P12|P12]]) ===<br />
:''Those items were proposed to Lingualibre's recorder at step 3 via a SPARQL query upon Wikidata, so those words have WD's Qids.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
#defaultEndpoint:Lingualibre<br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== Records → Filter by date: late 2018 ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</syntaxhighlight><br />
||<br />
<query><br />
#defaultEndpoint:Lingualibre<br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
* [[Help:SPARQL 2]] — next tutorial with focus on federate queries and Wikidata Lexemes.<br />
** [[d:Wikidata:Lexicographical data/Ideas of queries|Lexicographical data/Ideas of queries]]<br />
** [[LinguaLibre:Wikidata]] — stub, help write it !<br />
* [[Help:Querying Lingua Libre]] — general review, redirecting users to rightful place.<br />
* [[Help:APIs]] — API queries over Wikimedia Commons or other Wikimedia wikis.<br />
* [[:mw:Manual:Developing extensions]] — PHP-based modules enhancing wikis, can pull data via SPARQL queries.<br />
<br />
{{Lingua Libre scripts}}<br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL_for_maintenance&diff=775934
Help:SPARQL for maintenance
2022-07-14T12:20:57Z
<p>VIGNERON: /* ✅ Languages → languages by type */ stockage</p>
<hr />
<div>{{#Subtitle:'''SPARQL for maintenance''' gather some SPARQL queries which help to monitors errors and bring fix to our resources.}}<br />
<br />
== Speakers ==<br />
=== ✅ Speakers → Username containing reserved sign `<code>-</code>` ===<br />
:''See also [[:phabricator:T297635|T297635]]''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT *<br />
WHERE {<br />
?id prop:P2 entity:Q3 .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
?id rdfs:label ?name .<br />
}<br />
BIND (regex(STR(?name),"-") AS ?has_separator)<br />
}<br />
ORDER BY DESC (?has_separator)<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT *<br />
WHERE {<br />
?id prop:P2 entity:Q3 .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
?id rdfs:label ?name .<br />
}<br />
BIND (regex(STR(?name),"-") AS ?has_separator)<br />
}<br />
ORDER BY DESC (?has_separator)<br />
</query><br />
|}<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?has_separator (COUNT(?has_separator) AS ?found)<br />
WHERE {<br />
?id prop:P2 entity:Q3 .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
?id rdfs:label ?name .<br />
}<br />
<br />
BIND (regex(STR(?name),"-") AS ?has_separator)<br />
# filter( regex(?name, "-" ))<br />
}<br />
#ORDER BY DESC (?has_separator)<br />
GROUP BY (?has_separator)<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?has_separator (COUNT(?has_separator) AS ?found)<br />
WHERE {<br />
?id prop:P2 entity:Q3 .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
?id rdfs:label ?name .<br />
}<br />
<br />
BIND (regex(STR(?name),"-") AS ?has_separator)<br />
# filter( regex(?name, "-" ))<br />
}<br />
#ORDER BY DESC (?has_separator)<br />
GROUP BY (?has_separator)<br />
</query><br />
|}<br />
<br />
=== ✅ Speakers → Speakers of `<code>zho</code>` to change to `<code>cmn</code>` ===<br />
:''Should be maintained to 0.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?langLabel ?isoLabel (SUBSTR(STR(?speaker),32) AS ?speaker) ?speakerLabel<br />
WHERE {<br />
?speaker prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?speaker prop:P2 entity:Q3 . # Filter: speakers<br />
?speaker prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} ORDER BY ASC(?isoLabel)<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 .<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?langLabel ?isoLabel (SUBSTR(STR(?speaker),32) AS ?Speaker) ?speakerLabel<br />
WHERE {<br />
?speaker prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?speaker prop:P2 entity:Q3 . # Filter: speakers<br />
?speaker prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} ORDER BY ASC(?isoLabel)<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 .<br />
</query><br />
|}<br />
<br />
=== ✅ Speakers → Undefined place of residence ===<br />
:''The following may need precision.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel ?filledGenderLabel<br />
WHERE {<br />
?item prop:P2 entity:Q3 . # Filter: is Q3 `speaker`<br />
?item prop:P14 . # Filter: missing P14 `place of residence` <-------------------------------------<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel ?filledGenderLabel<br />
WHERE {<br />
?item prop:P2 entity:Q3 . # Filter: is Q3 `speaker`<br />
?item prop:P14 . # Filter: missing P14 `place of residence` <-------------------------------------<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
<br />
=== ✅ Speakers → Undefined gender ===<br />
:''The following may need a merge''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel ?filledGenderLabel<br />
WHERE {<br />
?item prop:P2 entity:Q3 .<br />
{ ?item prop:P8 entity:Q608982 . } # Filter: 'gender' is 'agender'<br />
UNION <br />
{ ?item prop:P8 entity:Q710460 . } # Filter: 'gender' is 'not documented'<br />
# UNION <br />
# { ?item prop:P8 entity:? . } # Filter: 'gender' is missing<br />
?item prop:P8 ?filledGender .<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel ?filledGenderLabel<br />
WHERE {<br />
{ ?item prop:P8 entity:Q608982 . } # Filter: 'gender' is 'agender'<br />
UNION <br />
{ ?item prop:P8 entity:Q710460 . } # Filter: 'gender' is 'not documented'<br />
?item prop:P8 ?filledGender .<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Recordings ==<br />
=== ✅ Recordings → With ISO-639-3 `<code>zho</code>` to change to `<code>cmn</code>` ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?langLabel ?isoLabel (SUBSTR(STR(?audio),32) AS ?Audio) ?audioLabel<br />
WHERE {<br />
?audio prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?audio prop:P2 entity:Q2 . # Filter: audios<br />
?audio prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} ORDER BY ASC(?isoLabel)<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 .<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?langLabel ?isoLabel (SUBSTR(STR(?audio),32) AS ?Audio) ?audioLabel<br />
WHERE {<br />
?audio prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?audio prop:P2 entity:Q2 . # Filter: audios<br />
?audio prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} ORDER BY ASC(?isoLabel)<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 .<br />
</query><br />
|}<br />
<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?isoLabel (COUNT(?iso) AS ?found)<br />
WHERE {<br />
?audio prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?audio prop:P2 entity:Q2 . # Filter: audios<br />
?audio prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} GROUP BY ?isoLabel<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 <br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?isoLabel (COUNT(?iso) AS ?found)<br />
WHERE {<br />
?audio prop:P4 entity:Q130 . # Filter: P4 language is Q130 zho ;<br />
?audio prop:P2 entity:Q2 . # Filter: audios<br />
?audio prop:P4 ?lang .<br />
?lang prop:P13 ?iso .<br />
# Add Labels<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" . } <br />
} GROUP BY ?isoLabel<br />
# Helper: Chinese writing zho:Q130/wd:Q7850 ; Chinese mandarin cmn:Q113/wd:Q9192 <br />
</query><br />
|}<br />
<br />
<br />
== Languages ==<br />
<br />
=== ✅ Languages → duplicata by Wikidata ID ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?idWD (COUNT(?item) AS ?count) (GROUP_CONCAT(?item) AS ?items)<br />
WHERE {<br />
?item prop:P2 entity:Q4 ;<br />
prop:P12 ?idWD .<br />
}<br />
GROUP BY ?idWD<br />
HAVING ( ?count > 1 )<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?idWD (COUNT(?item) AS ?count) (GROUP_CONCAT(?item) AS ?items)<br />
WHERE {<br />
?item prop:P2 entity:Q4 ;<br />
prop:P12 ?idWD .<br />
}<br />
GROUP BY ?idWD<br />
HAVING ( ?count > 1 )<br />
</query><br />
|}<br />
<br />
<br />
=== ✅ Languages → languages by type (if it exists) ===<br />
:''Note: query to improve.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language ?languageLabel ?code ?typeLabel<br />
WHERE {<br />
?language prop:P2 entity:Q4 .<br />
OPTIONAL { ?language prop:P13 ?code } .<br />
OPTIONAL { <br />
?language rdfs:label ?languageLabel .<br />
FILTER( lang(?languageLabel) = "en" ) } .<br />
OPTIONAL { ?language prop:P24 ?type } .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?language ?languageLabel ?code ?typeLabel<br />
WHERE {<br />
?language prop:P2 entity:Q4 .<br />
OPTIONAL { ?language prop:P13 ?code } .<br />
OPTIONAL { <br />
?language rdfs:label ?languageLabel .<br />
FILTER( lang(?languageLabel) = "en" ) } .<br />
OPTIONAL { ?language prop:P24 ?type } .<br />
#?language prop:P24 ?type .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Other ==<br />
<br />
== All properties with their Wikidata equivalent (if it exists) ==<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
{ ?propLili rdf:type owl:ObjectProperty } UNION { ?propLili rdf:type owl:DatatypeProperty }<br />
OPTIONAL { ?propLiliClaim <http://wikiba.se/ontology#directClaim> ?propLili ; prop:P12 ?propWD }<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT * WHERE {<br />
{ ?propLili rdf:type owl:ObjectProperty } UNION { ?propLili rdf:type owl:DatatypeProperty }<br />
OPTIONAL { ?propLiliClaim <http://wikiba.se/ontology#directClaim> ?propLili ; prop:P12 ?propWD }<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
{{Lingua Libre scripts}}</div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P7&diff=775926
Property:P7
2022-07-14T12:00:59Z
<p>VIGNERON: /* wbsetclaim-create:2||1 */ Property:P12: P:P9533</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P6&diff=775925
Property:P6
2022-07-14T11:59:54Z
<p>VIGNERON: /* wbsetclaim-create:2||1 */ Property:P12: P:P10135</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P9&diff=775924
Property:P9
2022-07-14T11:58:37Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: P:P279</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P8&diff=775923
Property:P8
2022-07-14T11:58:30Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: P:P21</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P2&diff=775922
Property:P2
2022-07-14T11:58:20Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: P:P31</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P13&diff=775921
Property:P13
2022-07-14T11:54:44Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: P:P220</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P10&diff=775920
Property:P10
2022-07-14T11:54:34Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: P:P1630</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P4&diff=775918
Property:P4
2022-07-14T11:45:52Z
<p>VIGNERON: /* wbsetclaim-create:2||1 */ Property:P12: P:P407</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Technical_board&diff=773007
LinguaLibre:Technical board
2022-06-25T10:30:18Z
<p>VIGNERON: /* Language duplicata */ +</p>
<hr />
<div>{{#SUBTITLE:{{/Header}}}}<indicator name="talk"></indicator><br />
{{LinguaLibre:Technical_board/intro}}<br />
__TOC__<br />
<br />
== Migration of technical contents ==<br />
Hello all, Please help migrate technical contents from the main [[LinguaLibre:Chat room]] to here. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:49, 12 February 2021 (UTC)<br />
<br />
== 2021 Github refreshing : call for volunteers and discussion ==<br />
:''See also [https://github.com/lingua-libre Github.com/lingua-libre]''<br />
Hello all,<br><br />
Since November 2020 there is an ongoing effort to clean up, document, fix the 11 github repositories upon which LinguaLibre.org stands. A summary is available on [[LinguaLibre:Chat_room|the main forum]] and will be migrated here shortly. This section will focus on gathering users with development skills and discuss about possible fields of action (repositories). We especially look for '''Bot Masters (Python, NodeJS)''', '''Sparql expert''', '''VueJS''' developpers, issues coordinators. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:57, 12 February 2021 (UTC)<br />
<br />
== Early 2021 codings : Wikivalley & volunteers communication board !==<br />
WikiValley have been selected to make a notable technical push on the LinguaLibre Suite where volunteer developers are not enough. They will coordinate with volunteers developers in order to smooth everyone's work, avoid duplicate efforts and git conflicts. The ''Start'', ''End'', and '''Repositories''' columns below are especially important, please keep them up to date, respect them, or change them whenever required. If you need to work on a repository under work, contact the developer listed there and organize as needed. Our objective here is to keep clarity and to progress smoothly. Please avoid emails and prefer communicating here within subsections so we can all be somehow aware of how are things going. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:56, 12 February 2021 (UTC)<br />
:Note: Volunteers started working around in December. WikiValley around Feb. 11th. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:56, 12 February 2021 (UTC)<br />
<br />
{| class="wikitable"<br />
!colspan=6| Past developments<br />
|-<br />
! Start || End || Contacts/dev || Team || Repository || Advancement & result so far.<br />
|-<br />
| 2021/02/01 || 2021/02/10 || [[USer:Yug|Yug]] || Volunteers || SignIt || Get back control (access right) ; fix video query ; test locally ; publish new version on Mozilla store<br>→ Fixed Firefox extension<br />
|-<br />
| 2021/02/01 || 2021/02/16? || Yug<br>Michael || Volunteers<br>WM-France || /operations<br>/CommonDownloadTool || Explore possible breakpoints ; identify likely cause ; fix ; deploy ; run <br>→ Fixed https://lingualibre.org/datasets/<br />
|-<br />
| 2021/02/11 || 2021/02/11 || [[User:VIGNERON|VIGNERON]]<br>Wiki Valley || Wiki Valley || Blazegraph (updater) || Explore possible breakpoints ; identify cause ; fix ; deploy ; inquire on numbers differences<br>→ Fixed [[LinguaLibre:Stats]]<br />
|-<br />
!colspan=6| Current developments<br />
|-<br />
| 2021/02/01 || 2022/01/01 || [[User:Poslovitch|Poslovitch]] || Volunteers || Lingua-Libre-Bot || Maintain, update and operate the bot.<br/>2021 Q1 [WIP]: Refactor the bot to ease implementations of additional Wiktionaries.<br />
|-<br />
!colspan=6| Planned developments<br />
|-<br />
| 2021/02/01 || 2021/03/?? || [[User:Poslovitch|Poslovitch]] || Volunteers || /operations<br>/CommonDownloadTool || Project: Explore datasets scripts and queries. May require SPARQL assistance.<br />
|-<br />
| 2021/02/? || 2021/02/? || [[User:WikiLucas00|WikiLucas00]]<br>Yug || Volunteers || CustomSubtitle<br>BlueLL || Explore Subtitle's ribbon's bug ; identify cause.<br />
|-<br />
| 2021/02/19 || 2021/02/? || [[User:VIGNERON|VIGNERON]]<br>Wiki Valley || Wiki Valley<br>[[User:VIGNERON|VIGNERON]] || custom extensions + operations || Update to MediaWiki 1.35<br />
|}<br />
<br />
{{ping|VIGNERON}} please keep us informed a bit on what your team is touching. Just edit above and ping us to notify us of an update. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 16:25, 15 February 2021 (UTC)<br />
<br />
== User box ? ==<br />
{{#babel:records-mar|mar-N|cmn-1}}<br />
It may be cool to create an userbox "dev" {{tl|userbox-dev}}, on the model of {{tl|userbox-records}}, with Python, Javascript, PHP, VueJS, Wikimedia Bot as specific sub-categorization ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:59, 12 February 2021 (UTC)<br />
: I kinda disagree with that. Lingua Libre is not meant to become a hub for techies. Sure, we need all the help that comes, yet the only usecase I foresee for these userboxes would be in the event something goes bad and we need someone with the good skills to take care of that. But, since it has to be added by oneself on one's user page, the same can be said of the page where we list who does what (I don't recall how it's called). Which one of these two 'systems" should be kept? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 21:53, 13 February 2021 (UTC)<br />
::In term of community I see ourselves as somewhere inbetween Wikipedia and Wikidata communities. We mainly deal with singleton : audio files, which are data units. People come, do a more or less powerful recording contributions, then sharply reduce their involvement and leave thousands files units here.<br />
::And like Wikidata, we need people giving life to these data units. This is done via reuse, bots, webapps, text-to-speech. Developers' creations.<br />
::So yes, developers have to become an important piece of our community. And we would gain to create some active dynamic gathered around languages and projects (repositories). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:30, 13 February 2021 (UTC)<br />
<br />
== Datasets has become super slow ? ==<br />
I try to interpret and understand how /datasets are generate.<br />
* On April 2020, French dataset of about 100,000 audios is processed in '''51 minutes'''.<br />
* On February 2021, Bengali dataset of about 50,000 audios is processed in '''18 hours'''.<br />
<br />
What do I miss ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 00:09, 13 February 2021 (UTC)<br />
<br />
<br />
{| class="wikitable sortable"<br />
! Zip file || Date || Bits<br />
|-<br />
| lingualibre_full.zip || 2019-May-17:01:18 || 1989664440<br />
|-<br />
| Q101-srr-Serer.zip || 2019-Nov-05:03:09 || 14967<br />
|-<br />
| Q113-cmn-Mandarin_Chinese.zip || 2019-Nov-05:03:09 || 112613<br />
|-<br />
| Q115107-bcl-Central_Bikol.zip || 2019-Nov-05:03:09 || 166323<br />
|-<br />
| Q127-tam-Tamil.zip || 2019-Nov-05:03:09 || 154352<br />
|-<br />
| Q130-zho-Chinese.zip || 2019-Nov-05:03:10 || 2724328<br />
|-<br />
| Q131-hye-Armenian.zip || 2019-Nov-05:03:10 || 824117<br />
|-<br />
| Q141-cym-Welsh.zip || 2019-Nov-05:03:10 || 12905993<br />
|-<br />
| Q154-amh-Amharic.zip || 2019-Nov-05:03:11 || 2653977<br />
|-<br />
| Q165-hat-Haitian_Creole.zip || 2019-Nov-05:03:11 || 233588<br />
|-<br />
| Q169-tgl-Tagalog.zip || 2019-Nov-05:03:11 || 77198<br />
|-<br />
| Q170137-mos-Mossi.zip || 2019-Nov-05:03:11 || 1158142<br />
|-<br />
| Q205-gre-Greek.zip || 2019-Nov-05:03:11 || 239390<br />
|-<br />
| Q231-myv-Erzya.zip || 2019-Nov-05:03:21 || 205878<br />
|-<br />
| Q242-fon-Fon.zip || 2019-Nov-05:03:21 || 1538614<br />
|-<br />
| Q258-nso-Northern_Sotho.zip || 2019-Nov-05:03:24 || 774299<br />
|-<br />
| Q311-oci-Occitan.zip || 2019-Nov-05:03:33 || 511332485<br />
|-<br />
| Q318-bam-Bambara.zip || 2019-Nov-05:03:33 || 277786<br />
|-<br />
| Q321-gaa-Ga.zip || 2019-Nov-05:03:33 || 3247380<br />
|-<br />
| Q336-ori-Odia.zip || 2019-Nov-05:03:34 || 38697693<br />
|-<br />
| Q339-sat-Santali.zip || 2019-Nov-05:03:34 || 128941<br />
|-<br />
| Q34-mar-Marathi.zip || 2019-Nov-05:03:34 || 2274397<br />
|-<br />
| Q35-nld-Dutch.zip || 2019-Nov-05:03:34 || 36279372<br />
|-<br />
| Q385-ita-Italian.zip || 2019-Nov-05:03:34 || 3440247<br />
|-<br />
| Q388-que-Quechua.zip || 2019-Nov-05:03:35 || 397476<br />
|-<br />
| Q39-tel-Telugu.zip || 2019-Nov-05:03:35 || 85571<br />
|-<br />
| Q397-heb-Hebrew.zip || 2019-Nov-05:03:35 || 1657223<br />
|-<br />
| Q405-bas-Basaa_language.zip || 2019-Nov-05:03:35 || 1515700<br />
|-<br />
| Q437-mal-Malayalam.zip || 2019-Nov-05:03:35 || 138601<br />
|-<br />
| Q446-pan-Punjabi.zip || 2019-Nov-05:03:35 || 11004<br />
|-<br />
| Q4465-mis-Teochew_dialect.zip || 2019-Nov-05:03:35 || 69734<br />
|-<br />
| Q45-nor-Norwegian.zip || 2019-Nov-05:03:35 || 431566<br />
|-<br />
| Q46-ltz-Luxembourgish.zip || 2019-Nov-05:03:35 || 1679618<br />
|-<br />
| Q51299-hav-Havu.zip || 2019-Nov-05:03:37 || 56823<br />
|-<br />
| Q51302-tay-Atayal.zip || 2019-Nov-05:03:37 || 65533<br />
|-<br />
| Q52067-bbj-Ghomala'_language.zip || 2019-Nov-05:03:37 || 1765823<br />
|-<br />
| Q52068-bum-Bulu_language.zip || 2019-Nov-05:03:37 || 1382789<br />
|-<br />
| Q52071-dua-Duala.zip || 2019-Nov-05:03:37 || 1206427<br />
|-<br />
| Q52073-bdu-Oroko.zip || 2019-Nov-05:03:37 || 1723960<br />
|-<br />
| Q52074-bzm-Londo.zip || 2019-Nov-05:03:37 || 1750380<br />
|-<br />
| Q52295-atj-Atikamekw.zip || 2019-Nov-05:03:37 || 7315215<br />
|-<br />
| Q74905-mis-Sursilvan.zip || 2019-Nov-05:03:37 || 14618<br />
|-<br />
| Q83641-gcf-Guadeloupean_Creole_French.zip || 2019-Nov-05:03:38 || 7412512<br />
|-<br />
| Q930-mis-Gascon_dialect.zip || 2019-Nov-05:03:39 || 179656450<br />
|-<br />
| Q931-mis-Languedocien_dialect.zip || 2019-Nov-05:03:40 || 191575650<br />
|-<br />
| Q123-hin-Hindi.zip || 2020-Apr-25:03:30 || 1704401<br />
|-<br />
| Q126-por-Portuguese.zip || 2020-Apr-25:03:31 || 43732966<br />
|-<br />
| Q129-rus-Russian.zip || 2020-Apr-25:03:32 || 60844464<br />
|-<br />
| Q150-afr-Afrikaans.zip || 2020-Apr-25:04:18 || 42363003<br />
|-<br />
| Q159-dyu-Dioula_language.zip || 2020-Apr-25:04:18 || 784432<br />
|-<br />
| Q19858-bci-Baoulé.zip || 2020-Apr-25:04:18 || 1268304<br />
|-<br />
| Q203-cat-Catalan.zip || 2020-Apr-25:04:18 || 9738365<br />
|-<br />
| Q204940-ken-Nyang_language.zip || 2020-Apr-25:04:18 || 483396<br />
|-<br />
| Q208-vie-Vietnamese.zip || 2020-Apr-25:04:18 || 8822067<br />
|-<br />
| Q219-ara-Arabic.zip || 2020-Apr-25:04:19 || 85373129<br />
|-<br />
| Q21-fra-French.zip || 2020-Apr-25:05:10 || 2112950650<br />
|-<br />
| Q221062-mis-Cantonese.zip || 2020-Apr-25:05:10 || 3895600<br />
|-<br />
| Q22-eng-English.zip || 2020-Apr-25:05:12 || 131688602<br />
|-<br />
| Q25-epo-Esperanto.zip || 2020-Apr-25:05:19 || 445662713<br />
|-<br />
| Q264201-ary-Moroccan_Arabic.zip || 2020-Apr-25:05:19 || 1371064<br />
|-<br />
| Q273-kab-Kabyle.zip || 2020-Apr-25:05:19 || 370876<br />
|-<br />
| Q298-pol-Polish.zip || 2020-Apr-25:05:21 || 145009958<br />
|-<br />
| Q299-eus-Basque.zip || 2020-Apr-25:05:21 || 46035866<br />
|-<br />
| Q33-fin-Finnish.zip || 2020-Apr-25:05:46 || 19473062<br />
|-<br />
| Q386-spa-Spanish.zip || 2020-Apr-25:05:46 || 28434220<br />
|-<br />
| Q389-jpn-Japanese.zip || 2020-Apr-25:05:46 || 145688<br />
|-<br />
| Q392-ces-Czech.zip || 2020-Apr-25:05:46 || 96844<br />
|-<br />
| Q44-swe-Swedish.zip || 2020-Apr-25:05:46 || 166237<br />
|-<br />
| Q4901-shy-Shawiya_language.zip || 2020-Apr-25:05:47 || 15804835<br />
|-<br />
| Q6714-arq-Algerian_Arabic.zip || 2020-Apr-25:05:47 || 3420182<br />
|-<br />
| Q80-kan-Kannada.zip || 2020-Apr-25:05:47 || 3662223<br />
|-<br />
| Q24-deu-German.zip || 2021-Feb-11:15:32 || 258363332<br />
|-<br />
| Q307-ben-Bengali.zip || 2021-Feb-12:07:28 || 1079637723<br />
|}<br />
<br />
: IMO, this can only be investigated through the logs. Maybe the requests to Commons are taking a longer time than they used to? Maybe the datasets server is under higher load (thus slowing it)? We need you, Michaël! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 21:41, 13 February 2021 (UTC)<br />
::{{Ping|Poslovitch}} could it be that the script upload the "never uploaded yet" ? If so, the April 2020 French dataset was just the 3000 recent French audios whereas Feb 2021 Bengali dataset was like "Yo, there are the 50,000 bengali audio, deal with it B)" [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:24, 13 February 2021 (UTC)<br />
:::{{Ping|Yug}} that might be it. I still don't fully understand what the script does and, well, we can say the documentation is clearly lacking there. I'm working on that too - but yeah, that might be why it's taking more time. We should let it run for a first time, and then force another dataset update a few days later so we can compare both. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:38, 13 February 2021 (UTC)<br />
::::{{ping|Michael Barbereau WMFr}} Seems the script has finished running, right ? Any idea why it's so slow in 2021, is there some known overload or hardware issue ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 12:07, 15 February 2021 (UTC)<br />
:::::Some of the root causes have been unearthed in this comment on GitHub: https://github.com/lingua-libre/CommonsDownloadTool/issues/2#issuecomment-780177124. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 23:16, 16 February 2021 (UTC)<br />
<br />
== Using Magic Word {#language:} and Extension:CLDR (?) ==<br />
:''For general awareness. No real question asked.''<br />
I found out LL [https://github.com/lingua-libre/operations/blob/master/mediawiki-config/LocalSettings.php#L325 uses] the [[:mw:Extension:CLDR|MediaWiki Extension CLDR]]. Its data comes from the [[:w:Common Locale Data Repository]] Project (CLDR), part of the Unicode Consortium. This extension automatizes translations from iso-639 codes to target languages name words, ex: <code>{#language:it|en}</code> → Italian. Coverage range is [https://github.com/wikimedia/mediawiki-extensions-cldr/blob/master/CldrNames/CldrNamesHi.php#L3-L520 ~500 names in ~166 languages]. Translate wiki has [https://translatewiki.net/wiki/CLDR#Contribute_to_an_existing_locale a tutorial] on how to contribute to this CLDR website.<br />
* [[:mw:Help:Magic_words#Miscellaneous]] > <nowiki>{{#language:language code|target language code}}</nowiki> <br />
*:→ <nowiki>{{#language:ar|en}}</nowiki> → {{#language:ar|en}}<br />
*:→ <nowiki>{{#language:ar|hi}}</nowiki> → {{#language:ar|hi}}<br />
*:→ <nowiki>{{#language:ja|hi}}</nowiki> → {{#language:ja|hi}}<br />
*:→ <nowiki>{{#language:fr|he}}</nowiki> → {{#language:fr|he}} <br />
*:→ <nowiki>{{#language:fra|he}}</nowiki> → {{#language:fra|he}} (not available)<br />
*:→ <nowiki>{{#language:fr-ca|he}}</nowiki> → {{#language:fr-ca|he}} (falls back on English)<br />
*:→ <nowiki>{{#language:mar|hi}}</nowiki> → {{#language:mar|hi}} (n.a) <br />
*:→ <nowiki>{{#language:en|mar}}</nowiki> → {{#language:en|mar}} (falls back on English)<br />
*:→ <nowiki>{{#language:mar|en}}</nowiki> → {{#language:mar|en}} (n.a)<br />
*:→ <nowiki>{{#language:mr|en}}</nowiki> → {{#language:mr|en}}<br />
*:→ <nowiki>{{#language:mr|mr}}</nowiki> → {{#language:mr|mr}}<br />
** [[:mw:Extension:CLDR]] MediaWiki Extension : "Provides functions to localize the names of languages, countries, currencies, and time units based on their language code."<br />
*** Github mirror > key folder : [https://github.com/wikimedia/mediawiki-extensions-cldr/tree/master/CldrNames /CldrNames] & Wikimedia corrections [https://github.com/wikimedia/mediawiki-extensions-cldr/tree/master/LocalNames here].<br />
<br />
While we would gain to stay focus on our own recording mission, it stays interesting to be aware of this project. cc {{ping|Poslovitch}}, for the Magic Word. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 12:07, 15 February 2021 (UTC)<br />
: Good to know, but I don't think we're going to use that in the foreseeable future. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:41, 16 February 2021 (UTC)<br />
<br />
== BlueLL theme might break when updating to MW 1.35 ==<br />
:{{done}}- close. A fix have been merged on github. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:58, 21 February 2021 (UTC)<br />
Hi {{ping|VIGNERON}}. According to this pending PR on GitHub (https://github.com/lingua-libre/BlueLL/pull/3), the BlueLL theme might not be compatible with MW 1.35. I have limited knowledge in MW themes, but I can merge the PR if needed. What's your opinion about it? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 10:49, 16 February 2021 (UTC)<br />
:Hi there, I also don't have the technical understanding of mediawiki themes to say much, but I encourage you to talk with jdlrobson to see what he think about his fix & 1.35. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:30, 16 February 2021 (UTC)<br />
::{{ping|VIGNERON}} I resumed the conversation with jdlrobson [https://github.com/lingua-libre/BlueLL/pull/3 on his pull request]. But I admit I don't have the technical capability to properly review his code submission. Also, I believe upgrading to MW 1,35 and checking on skin compatibility is within WikiValley's mission. Please clarify, and feel free to slow down this PR discussion if required. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 12:01, 17 February 2021 (UTC)<br />
:::I did a preliminary test of BlueLL on 1.35 and did similar changes, although these complete as a first try; I didn’t see this PR. So I will test more extensivelly the PR and will accept it after review. [[User:Seb35|Seb35]] ([[User talk:Seb35|talk]]) 10:41, 19 February 2021 (UTC)<br />
<br />
== Generate a summary.csv alongside the datasets ? ==<br />
:To migrate to phabricator. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:58, 21 February 2021 (UTC)<br />
This idea just crossed my mind. Would it be interesting to generated a summary.csv file containing the list of available datasets, their generation date, their size in bytes '''with''' additional information such as amount of recordings, amount of speakers, total length of audio files... Any opinions? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 11:15, 16 February 2021 (UTC)<br />
:(Then why not a minimalist HTML5 webpage with a single table ? Would be more elegant. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:35, 16 February 2021 (UTC))<br />
:Also, only 13 zip have been updated. More languages have been active in the past month alone. The /datasets/ also doesn't display the 100+ language he should. So I suspect <code>create_datasets.sh</code> is still not doing the full thing.<br />
:Poslovitch, you see it too ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:35, 16 February 2021 (UTC)<br />
<br />
== Where is LinguaImporter's code (admins only) ==<br />
:{{Done}} can be closed. Found the place. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:59, 21 February 2021 (UTC)<br />
Hello, we have [[:phabricator:T233917#6835408|T233917]] which request to edit the ''language importer tool''. I checked [[Mediawiki:Common.js]] and github/lingua-libre with the UI's string [https://github.com/search?q=org%3Alingua-libre+LinguaImporter search:LinguaImporter] and [https://github.com/search?q=org%3Alingua-libre+Import+a+language&type=code search:Import a language], but nothing. Any idea where is this LanguageImporter tool coded ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:48, 16 February 2021 (UTC)<br />
:Found it. It's a Gadget.<br />
:* [[MediaWiki:Gadget-LinguaImporter]]<br />
:* [[MediaWiki:Gadget-LinguaImporter.js]]<br />
:* [[MediaWiki_talk:Gadget-LinguaImporter.js]]<br />
:[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:13, 16 February 2021 (UTC)<br />
::{{Ping|WikiLucas00|Pamputt}} I just want to know WHO know how to create a <code>Property</code> on lL's language Q-items ? It's still under discussion on phabricator, a possible language's <code>Property</code> qui aurait pour valeur <code>Category:Lingua_Libre_pronunciation-</code> + <code>ISO639-3</code>. Ex: <code>Category:Lingua_Libre_pronunciation-yue</code> or <code>https://commons.wikimedia.org/wiki/Category:Lingua_Libre_pronunciation-yue</code>. You are invited on [[:phabricator:T233917]] to give your input on this issue. [[User:Yug|Yug]] ([[User talk:Yug|talk]])<br />
:::To have a property "Commons category" (language) AND/OR "Commons category"(speaker) giving a link to the Commons category on each file is interesting.<br/> [[Special:NewProperty|Here]] is the link to create a new property, but unfortunately I never used it, maybe {{ping|VIGNERON}} or Pamputt will know better. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 23:34, 16 February 2021 (UTC)<br />
<br />
== Phabricator task priority ==<br />
Hi {{u|Poslovitch}} and {{u|Yug}}. I saw you set priority levels to some Phabricator tasks ([[phab:T264117|T264117]], [[phab:T251866|T251866]], etc.). As already discussed quickly with Yug, I tink we should not decide by ourselves what is the priority of a bug report except if you claimed the report. The priority of the task should be discussed during Lingua Libre meeting gathering several people because what is you think is important may be less to me (and vice-versa). This is highly subjective and I do not see the benefits to set some priority if it has not been discussed collectively before. In addition, IMHO, it cannot be used to drive the WikiValley & VIGNERON's job because they are linked by their contract with WMFr, so if they want to work on additional bug report (not listed in the scope statement), then they will choose by themselves. So please, stop to change the priority or at least let us discuss that collectively before. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:14, 17 February 2021 (UTC)<br />
:Hi Pamputt, there is no will to dictate what WikiValley & VIGNERON have to do, we are two parallel teams, with different relations to the project. It would help if WikiValley or Wikimedia FR clarifies on phabricator via a tag which tasks WikiValley will take on so we, volunteers, may focus on OTHERS tasks. Be it code or community organization (Wiki Meet India coming).<br />
:Still, we volunteers are active ''now'' and we need to sort these tasks better <u>for ourselves</u>, so we see better, and act where we can.<br />
:Volunteers should not have to decipher and enter dozens tasks to understand what they are about, the task feasibility and importance. With lack of assessment we loose clarity, time and reduce our impact. We are volunteers. Volunteering, yes. But we must make the tasks easier to jump in and ''CODE/ACT''. No assessment is perfect, and any assessment can be bypassed. So since Poslovitch, myself, and other are diving into these tasks, let's share our assessments if we have any view on it, reword the 1/3 not-so-transparent task titles and descriptions, group them as needed, and improve as we can. Common wiki clean up as we go. And each adult takes the task(s) he wants following his need, naturally.<br />
:As for myself, I made a push to organize task by column, then group by scope-and-repositories, and put most feasible scopes up, less feasible down. I will stop my cleaning today to focus on other things shortly. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:28, 17 February 2021 (UTC)<br />
::Hi. I understand that you can be worried by the fact this triage '''seems''' sudden. And it actually is. Most tasks were left untriaged for months, while common project management practices (at least the ones I follow for years now) call for a preliminary triage based on the "Urgent/Not urgent" & "Important/Not important" criteria (I think it's called the "Decision Matrix"). A task is deemed "'''Urgent'''" if it is a task, if left uncompleted, which is or would severely impede or even block the fulfilling of '''the project's ''main goal''''' ; it is deemed "'''Important'''" if its completion contributes to improve or complete '''the project's ''capabilities'' to fulfil its ''mission(s)'''''. These are simple "Yes/No" questions that help provide a quick assessment of the priority of the task. And in most cases (out of my own experiences), this method gives the right priority. The slight "difference" between "main goal" and "mission(s)" is well defined for Lingua Libre; which is why I could do that assessment.<br />
::However, I think you're wrong on the fact that the guy who assigned ''himself'' to the task should evaluate its priority. Unless he's applying the decision matrix, he would obviously be biased about it, don't you think?<br />
::Yet, I personally kept myself from triaging issues on which I was not knowledgeable enough yet. But these issues should be triaged ASAP.<br />
::Finally: no, triaging is not a way to "force" Vigneron and WikiValley to work on stuff they aren't contractually meant to. That is, unless a specific task actually blocks them in their work, or is somehow linked to what they're doing or whatever. As Yug put it, triaging is one the first steps to help us '''and''' other volunteers to finally grasp the work that's to be done - without getting lost at the first glance.<br />
::It's not meant to be perfect, and it must be refined. But that would only be the case of a handful of tasks. Not all of them. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 12:07, 17 February 2021 (UTC)<br />
<br />
== Ratelimit still an issue for our users ==<br />
Following review of Phabricator tasks, Pamputt & myself discussed <code>ratelimit</code>. It came back to me that we do have to warn our new users of this 380 upload/72mins issues. I wanted to see if our new users bumped into this wall without us knowing, so I examined closely the stream of Olaf, who made 1000+ recording today.<br />
:23:10-23:11: 23 <br />
:22:54-23:08: 280<br />
:22:19-22:25: 61<br />
:[13mins pause here]<br />
:20:52-21:06: 222 Note: 222+158=380<br />
:[17mins pause here]<br />
:20:26-20:35: 158<br />
:[16mins pause here]<br />
:20:09-20-10: 18 Note: 361+18=379<br />
:19:14-19:58: 361<br />
I find those numbers suspiciously close to the ratelimit. So I'am pretty confident Olaf runs into this upload fails, just found a workaround : he make pauses. Point is, we must notice our emerging active users better about this issue. I now inform users who made at at least one session with 100+ recordings with :<br />
{| class="wikitable"<br />
! Code || Result || Comment<br />
|-<br />
|<br />
<nowiki>{{subst:user ratelimit|user=Olaf}}</nowiki><br />
|<br />
Hello Olaf, your [https://commons.wikimedia.org/w/api.php?action=query&list=users&ususers=Olaf&usprop=groups%7Ceditcount%7Cregistration current userrights on Commons] limits you to [[LinguaLibre:User_rights#User_rights_on_Commons|380 recordings per 72mins]]. We can upgrade you rapidly via a request on [[:Commons:Commons:Requests for rights|Commons:Requests for rights]]. Interested ?<br />
| Template is '''a work in progress''' and still unstable. Be sure to always use <code>subst:</code> and to check the end result.<br />
|}<br />
I just asked autopatrol userright for Olaf. Let's monitor this issue closely and ask faster for autopatrol userrights on Commons for emerging users. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 00:06, 18 February 2021 (UTC)<br />
{| class="wikitable sortable"<br />
! User || Relevant timespan || Recording done || Forced pause ? || Hit ratelimit ? || Commons userrights<br />
|-<br />
| Olaf || n.a. || 380 recordings || yes || yes || autoconfirmed → request autopatrol : granted<br />
|-<br />
| Poemat || n.a. || 380 recordings || yes || yes || autoconfirmed → [https://commons.wikimedia.org/w/index.php?title=Commons:Requests_for_rights&oldid=534472116#Poemat request autopatrol : granted]<br />
|-<br />
| VictorDtmtc || 14:25-15:14 16 February 2021 || 380 recordings || 30mins || yes || autoconfirmed → [https://commons.wikimedia.org/w/index.php?title=Commons:Requests_for_rights&oldid=534472116#VictorDtmtc request autopatrol : granted]<br />
|-<br />
| Webfil || 19:54-20:51 19 February 2021 || 380 recordings || 17mins || yes || autoconfirmed → Recommend message to user, request autopatrol soon<br />
|-<br />
| KlaudiuMihaila || || 340 recording in 40mins || no || Got near ratelimit wall || autoconfirmed → [https://commons.wikimedia.org/w/index.php?title=Commons:Requests_for_rights&oldid=535032779#KlaudiuMihaila request autopatrol : granted]<br />
|-<br />
| Eihel || 11:04-11:24 1 March 2021 || 380 recordings (20mins) || n.a. || yes || autoconfirmed → [https://commons.wikimedia.org/wiki/Commons:Requests_for_rights#Eihel request autopatrol : under review]<br />
|-<br />
| Gaurav Jhammat || 25 February 2021 || 957 recordings (4hours) || no || Passed it || autopatroller already.<br />
|-<br />
| SangeetaRH || 7 March 2021 || 380 recordings (?) || n.a. || yes || autoconfirmed → Recommend message to user, request autopatrol asap.<br />
|-<br />
| Unjoanqualsevol || 7 March 2021 || 380 recordings (?) || n.a. || yes || autoconfirmed → Recommend message to user ({{done}}), request autopatrol when 2000 audios uploaded. <br />
|}<br />
:I misinterpreted API contributions data for 2 other users, then removed my message to them.<br />
:The 4 users above didn't have autopatrol rights, were limited to 380 audios per 72 minutes, and developed by their own "pause then click upload again" strategy, if lucky. Audios not uploaded may also get lost if the tab is closed in between.<br />
:We can assume the ratelimit wall to limit a good part of our active contributors rights now. I did not investigated the Marathi community.<br />
:I asked for autopatrol rights for Olaf, Poemat and VictorDtmtc. I think we must ask the same useright for KlaudiuMihaila before s.he hits the wall.<br />
:Reminder: In June 2020, Luilui6666 lost few hundreds audios recordings by thinking the web browser tab had crash and required reboot, that's how we first investigated this issue. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 02:26, 18 February 2021 (UTC)<br />
::Table above got updated on 19:17, 20 February 2021 (UTC). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:17, 20 February 2021 (UTC)<br />
<br />
== Poslovitch is now Lingua Libre Bot's operator ==<br />
Thanks to Michaël, I now have access to the bot's account and will be able to test any changes made to its code. However, I'm wondering whether I have to "redo" the various bot agreements on the wikis or not. They were approved when 0x010C was the bot's operator, and now it's me - at least for a year, but it's definitely going to change again at some point -. So... What should be done ? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 16:42, 19 February 2021 (UTC)<br />
:@[[User:Poslovitch|Poslovitch]] Would love to have the bot implemented on ku.wiktionary. I have already discussed it with other users. How can I help? :) --[[User:Balyozxane|Balyozxane]]<br />
::Welcome [[user:Balyozxane|Balyozxane]], We are building a page ([[LinguaLibre:Bot]]) to make such request. We will need you to provide us "best practice" examples of audio integration on ku.wiktionary. The form will be as 1) a link to some correctly formatted ku.wiktionary pages, and to : some explication of the template used, which field is what (because we don't read kurdish). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:23, 20 February 2021 (UTC)<br />
:::{{ping|Balyozxane}} hello, I moved your content on the dedicated page, [[LinguaLibre:Bot]]. We process such demands there. It's the first request, so bare with us. We improve our process on the go. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:47, 21 February 2021 (UTC)<br />
<br />
== CSS : [[Mediawiki:Common.css]] and [https://github.com/lingua-libre/BlueLL/tree/master/assets/stylesheets BlueLL stylesheets] ==<br />
More I dig, more I find tiny CSS bugs all around. Today I noticed the ''Table of Content'' (TOC) of each page has its bullets too far on the left. I think the original designer's intent was to have no bullet. I also found out [[:File:2018-11_Lingua_Libre_meeting.jpg#Summary|images' description content]] is screwed. Tables there also did not have border, because a css rule affecting both classes <code>.toc</code> and <code>.commons-file-information-table</code> had been netralized to remove the border on TOCs. I fixed it a bit, restoring border on <code>.commons-file-information-table</code>. We likely have more CSS bugs on various pages and sections. Please watchout and report on [https://phabricator.wikimedia.org/tag/lingua_libre/ phabricator]. You can login using your wikimedia account.<br />
<br />
PS: I'am starting a wikislow for some time in order to push IRL, non-wikimedia issues. This past months I joined others to push on Github general cleanup, SignIt fix, Wiki Meet India, Lingualibre:Events, the Technical board creation, [[LinguaLibre:Bot]], the ratelimit investigation above and a phabricator medium clean up. Most are stable by now but LinguaLibre:Bot page and the ratelimit issue are still to monitor closely. Help therefore welcome on these 2. I wish to focus on lighter Github coordination and event coordination with Eavq, Adelaide and Taiwan Universities. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 20:50, 21 February 2021 (UTC)<br />
<br />
== Testing the bot in "live" conditions ==<br />
Yesterday, from 8 PM to midnight (UTC+1), I ran a test. The bot has this feature called "live mode": it adds the recordings in near-real time to Wikidata and Wiktionaries. And I must say it was both impressive and efficient. From what I can see now, it only missed a handful (~15) of recordings out of 899 recordings that were/could be added to either Wikidata or Wiktionaries. And, in all, it handled 2407 recordings. It crashed 4 times, each one of them being caused by Windows and not by an issue in the bot's code. What a satisfying sight seeing all of that happen!<br />
<br />
While I would like to use the bot in this "live mode" from now on, we must weigh the pros and cons of this feature. The fact it was not used so far indicates that either 0x010C or the LL community was not ready for it at that time. I'm especially interested in knowing if this has caused an increased load on the BlazeGraph (it shouldn't have). With the bot's (planned) expanding capabilities, it might become more practical to us to have it run all the time in the background.<br />
<br />
Finally, since I'm working on [[phab:T274511]], I believe we could run the bot on this "live mode", and, each month, we could setup the bot to go through all the recordings, starting from the very beginning of LL. Alongside catching any "left-overs", this would have plenty of benefits:<br />
1. put the recordings (even the oldest ones) on the Wiktionaries that will become served by the bot in the following months (e.g. the Kurdish Wiktionary)<br />
2. put the oldest recordings on pages that maybe didn't exist at that time on the Wiktionaries/Wikidata<br />
3. force contributors to report erroneous recordings, so that we can remove them. If they fail to do that, the recordings will be added again at the bot's next pass.<br />
<br />
In the meantime, I'll keep doing tests with the bot. <br />
<br />
This is probably something that I should've put on the Chat room - tell me if should. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 11:05, 24 February 2021 (UTC)<br />
:Hahahah. That's impressive. This level of activity changes from December 2020 ! Please note that Olaf has create [[user:Olafbot]], to do some tests as well I guess. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:32, 24 February 2021 (UTC)<br />
<br />
== Lists : via Bot or RecordWizard implementation ?==<br />
:''This conversation follows the creation of [[User:Olafbot]], the first user-created boot account. It inits both technical and bot policy questions.''<br />
Yes, it was me :-) I'm trying to use the OAuth authentication in my code to be able to generate lists I wrote about, and refresh them automatically in Lingua Libre. I hope using a bot for this is not against the rules here. The lists, generated for 50 languages, will consist of words without recorded pronunciation (including pronunciation from other sources in Commons, not only LiLi), and will be sorted by the number of wiktionaries with a corresponding language section describing this word (not just a number of interwikis). From my experience, this approach produces long stable lists of lemmas, more useful in Wiktionary context than the classic frequency lists, which tend to cover 20k lemmas at most, usually include inflected forms, and are of poor quality or non-existing for most of the languages. <br />
<br />
BTW, there are as many as 185000 recordings in French, but still many basic words have no French recording at all, for example, "centreuropéen" or "Grégoire", because everybody records "eau" and "chien". It looks like a waste of time of many people. In fact, only 2/3 of French lemmas in Polish Wiktionary have the pronunciation recorded, even if we have just 26000 French lemmas. It's much worse in the case of less covered languages. I believe the lack of regularly refreshed lists of needed audio is a major block. Let me fix this first.<br />
<br />
In general, I'm not good at Python. I use Java, JavaScript, and TypeScript every day at work, but I tried Python only once or twice in AI competitions on Kaggle.com. I would need probably a lot of learning to be able to contribute to your bot. Maybe in the future... [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 01:14, 25 February 2021 (UTC)<br />
:Hello {{ping|Olaf}},<br />
:'''Missing recordings:''' Thank you for attacking this "missing gaps" issues. It's indeed a topic of concern for us all, Wikt and LL. While we have 109 languages, only 22 have 2000 audios or more. Most languages approach recording sessions on a easy-peasy ''by topics of interest'' approach, more pleasant to the speaker. This cause very irregular coverage and leaves numerous gaps hard to fill. Leveraging frequency lists such UNILEX is a first response : it adds relevant priority for general usages, assessed by ''« online corpora's frequency »''. Having lists of missing audios would be an other spot-on response. Your priority assessment ''« sorted by the number of wiktionaries with a corresponding language section describing this word »'' is likely of similar general relevance and higher wikt's relevance.<br />
:'''Bots policy ?:''' We currently have no policy on bots, we are leading by practice (Poslovitch, you) and building on the way. As long as you test respectfully it's ok I guess. Tips: Administrators have some batch revert tool if the need arises. :) There is also a [https://github.com/kanasimi/wikiapi WikiAPI JS bot] raising, which could be interesting for you to explore if you like JS more. The maintainer is highly active and added a suggested new function within 24hours, [https://github.com/kanasimi/wikiapi/issues/7 was impressive].<br />
:'''Lists types:''' If you want to propose recording lists to users, there are two different approach :<br />
:* Canonical lists : Japanese JLPT, Chinese HSK, SWADESH, UNILEX frequency lists. → create a List:{iso}/{list name}. Referent: Yug<br />
:* Dynamic lists : Places near your, Category:Fruit on English wikipedia, etc. → create a Sparql query. Referents: VIGNERON (Sparql) then Poslovich (implementation on github).<br />
:'''RecordWizard queries button ?:''' I'am not sure, but your project may be more in line with dynamic lists fetched via Sparql queries. It would take few months but we can head toward adding a <code style="background-color:#FFAA0066;">Record words without pronunciation</code> button to the RecordingWizard ([https://github.com/lingua-libre/RecordWizard github]), when we load a list.<br />
:'''Lists policies ?:''' ''Canonical lists'' vs ''Dynamic lists'' have been a long de facto complementarity duo within RecordWizard's list system. This distinction now emerges as a needed policy, to be honest. As I'am keeping an eyes on Marathi lists (62and growing, mainly mini-lists and likely one-shoots), it becomes clear that we will have to put in place some better practices, guidelines, and mentoring of new users for lists creation. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:45, 25 February 2021 (UTC)<br />
::Does the dynamic list require a category in some wiki? Then I'm afraid they are not suitable for my purpose, because there is probably no single wiki that would contain all the words from the list. I planned to just set the bot to rebuild a static list every night, just like I do in the case of [https://pl.wiktionary.org/wiki/Kategoria:Rankingi_brakuj%C4%85cych_s%C5%82%C3%B3w_wed%C5%82ug_wyst%C4%85pie%C5%84_w_innych_wikis%C5%82ownikach lists of missing lemmas in Polish Wiktionary], I must only succeed with the untypical authentication used by the LiLi wiki. Yes, the new button would be a good thing. Currently, there is a button "Remove words already recorded" in the Record Wizard, but it removes only words recorded by the current speaker. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 12:04, 25 February 2021 (UTC)<br />
::: If the button were in place, I would just produce the lists once (all lemmas sorted with non-LiLi recordings removed) and would rely on the new mechanics to remove automatically audios recorded in LiLi. The lists could be refreshed once a month or never. From my perspective, it would be a better solution, because the data would be more up-to-date. So, I believe the question in the header of this section is mock - the two solutions are not opposite, they complement each other. Moreover, the "button" solution alone won't provide good sorting and a good corpus of lemmas. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 12:35, 25 February 2021 (UTC)<br />
::::Note that there is a [[phab:T231559|feature request]] to ask for a button not to record words already recorded by any speaker (not only you).<br />
::::About the list you want to generate, it is indeed very interesting, even if they are "dynamic". I remember that Lingua Libre has several goals. One of them is to provide missing recordings for Wiktionaries or Wikidata lexeme. Another one is to provide several recordings for a same word in order to show the diversity of pronunciation depending of locutor location. So whatever the lists you produce, they will be useful to deserve one of this goal. So go ahead :) [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:48, 25 February 2021 (UTC)<br />
::::: Yes, the button for removing already recorded words would be a big step ahead for the project. What about the existing recordings in Commons, that were created with other tools than LiLi? Perhaps you could update your database with those recordings? I don't need it, because my bot adds them anyway in Polish Wiktionary, but perhaps your bot, and anybody who downloads the LiLi datasets, would have a larger base of recordings? [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 20:46, 25 February 2021 (UTC)<br />
So I created a few lists just to gather the feedback:<br />
* [[List:Ben/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Deu/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Eng/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Epo/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Fra/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Hin/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Spa/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
* [[List:Ukr/Lemmas-without-audio-sorted-by-number-of-wiktionaries]]<br />
Enjoy! Any opinions are welcome. However, the lists are not refreshed daily yet, I must still work out the authentication. In the end, there should be at least 30 lists. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 03:20, 26 February 2021 (UTC)<br />
:Thanks {{u|Olaf}} for these lists. I looked at the French list and I did not see any typo, so the quality and the value is high. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:01, 26 February 2021 (UTC)<br />
::Saw your list in [[Special:RecentChanges]] ! This is good. Nice ! We can wait a week or so to think about the side effects, but seems good. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:14, 26 February 2021 (UTC)<br />
Finally, I implemented the authentication. Apparently, bots don't need to use OAuth and log via Commons here (in contrast to normal users).<br />
<br />
Lists for 72 languages have been generated: [https://lingualibre.org/index.php?title=Special:Contributions&offset=20210227235959&limit=100&contribs=user&target=Olafbot&namespace=142&tagfilter=&newOnly=1&start=2021-02-26&end=2021-02-27] ('''afr, ang, ara, ast, aze, bel, ben, bul, cat, ces, cmn, cym, dan, deu, ekk, ell, eng, epo, eus, fao, fas, fin, fra, gla, gle, glg, grc, heb, hin, hrv, hun, hye, ina, ind, isl, ita, jav, jpn, kan, kat, kaz, kor, lat, lit, ltz, lvs, mar, mkd, mlg, nld, nor, oci, pan, pol, por, ron, rus, san, slk, slv, spa, sqi, swa, swe, tam, tel, tha, tur, ukr, vie, yid, yue'''). The lists will be updated every night. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 00:39, 27 February 2021 (UTC)<br />
:Hi there! There's a planned feature that I will be working on in May with [[User:WikiLucas00]]. The goal is kinda similar to what you're achieving, except that it's going to be implemented ''in'' the RecordWizard (as a dedicated button). I expected to use Petscan queries, but the idea of having a bot updating lists would be kinda interesting. Petscan is fine to do queries on Wikimedia projects, but having a bot that would scrape something else and generate lists out of that would be great too. And both "methods" could be fed into the new "generate word lists" mode. Keep me in touch, Olaf! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 10:29, 27 February 2021 (UTC)<br />
:: Perfect. It would be nice to have the list feature integrated with RecordWizard. I'm not sure what exactly are you going to implement, however, if you plan to do something similar, it takes a considerable amount of time to scan 150 wiktionaries for lemmas, so I believe the lists should be at least partially prepared before the user clicks the button. For example, the existing recordings might be removed at this point from the prepared list. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 17:54, 27 February 2021 (UTC)<br />
<br />
=== LLBot and Wiktionary ===<br />
* If I record the words from [[:List:Ben/Lemmas-without-audio-sorted-by-number-of-wiktionaries]], will the LinguaLibre bot add those audios automatically? --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 16:11, 27 February 2021 (UTC)<br />
** I'm not the operator, but I believe eventually the LiLi bot will add them. It has added some of my recordings in Polish to French Wiktionary and Occitan Wiktionary, so it works at least in those wikis. And I promise your recordings will be added by Olafbot to the corresponding Bengali articles on Polish Wiktionary this night, just like any pronunciation recording appearing in Commons. And of course, the words should disappear from the list. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 17:10, 27 February 2021 (UTC)<br />
:::The LLBot is not able to add recordings on the bengali Wiktionary (1° it's not coded to do so, 2° it does not have the bot status on it). If the entries exist on the French or the Occitan Wiktionaries, then the recordings will be there, of course. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 20:35, 27 February 2021 (UTC)<br />
::::{{ping|Titodutta}} to complete what {{u|Poslovitch}} said, LLBot is not able '''yet''' to add recordings on the Bengali Wiktionary. That's said, it is possible to do it in the future. I think we should create [[LinguaLibre:LinguaLibreBot]] as a place to request a support for a new Wiktionary or to report issue on a given Wiktionary. What do you think? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:03, 28 February 2021 (UTC)<br />
:::::{{ping|Pamputt}} It already exists: [[LinguaLibre:Bot]] ;) ! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 10:46, 28 February 2021 (UTC)<br />
::::::{{Ping|Titodutta}} you can create a request on [[LinguaLibre:Bot]] based on the form example. The pages guides you to provide the needed informations so we can walk toward authorizing User:LinguaLibre bot on your target wiktionary. Poslovitch (and myself) will be your guides. Olaf may join us too since he started to run a bot and may be interested by this field. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:29, 28 February 2021 (UTC)<br />
:::::::{{Ping|Yug}} IMHO, only LLBot should be adding recordings to wiktionaries. It acts like a display - you record on LL, then LLBot comes to your Wikt and adds the recordings. Moreover, this would help with code maintenance. If we have a dozen of bots dedicated to each Wikt, and each one of them maintained by someone else, we will fall into the same issues as we did when we took over Lingua Libre's code. It's better to keep everything that's related to "add recordings on Wiktionaries" on the LLBot. Same repository. Same maintainer(s). No duplication issues. And easily recoverable. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 12:13, 1 March 2021 (UTC)<br />
::::::::All bot-related conversations could be gathered on LinguaLibre:Bot(s). Various bots can co-exists, preferably with distinct tasks indeed. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:04, 1 March 2021 (UTC)<br />
<br />
== Stabilization, Communication & outreach ==<br />
{{draft|type=section}}<br />
<!-- I will come back later on this one !<br />
With Olaf's Wikt lists, my UNILEX lists, and existing Sparql queries we start to have very solid, systematic, relevant and widely multilingual list support. Some maturation still on the way as well as a mediawiki update. But after that which can be used as a resting period of several weeks we could think about a coordinated outreach campaign. To share and radiate the news. To let various wikipedia know we exist. Onboard new wave of diverse speakers. Would you like such coordinated operation ? Do you have ideas on it ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:51, 27 February 2021 (UTC)<br />
:{{ping|Yug}} <small>I guess this message would be better on the Chat room (it has no matter with the technical part of Lingua Libre) [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:05, 28 February 2021 (UTC)</small><br />
::<small>It poses the question of current active developments to be somewhat paused or cooler, i will expand my question later today when i get my hand on my pc. (Currently away and on phone). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:36, 28 February 2021 (UTC)</small>I<br />
--><br />
<br />
== Remove duplicates bug ==<br />
Hi, I already mentioned that the Remove duplicates feature has a bug. For some records, they are not removed. For example, I recorded [https://commons.wikimedia.org/wiki/File:LL-Q143_(epo)-Lepticed7-aprilo.wav aprilo] four times. And I just found why : just before recording this word for the fourth time, I checked if it existed. There was no Q-element with this name, and the Blazegraph request doesn’t find anything. I recorded ''aprilo''. And by checking again, the item is now foundable. But it was not created today, only updated. So I checked why : [https://lingualibre.org/index.php?title=Q71505&diff=458373&oldid=356456 check the diff]. The record wizard is case sensitive, but somehow, if an element already existed with a different case, this element is updated, instead of creating a new one. [[User:Lepticed7|Lepticed7]] ([[User talk:Lepticed7|talk]]) 11:27, 28 February 2021 (UTC)<br />
:FYI, the ticket tracking this issue is [[phab:T267876|T267876]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 13:11, 28 February 2021 (UTC)<br />
::Pamputt, in the phabricator ticket, it's better to save the list toward the history of the source, [https://lingualibre.org/index.php?title=LinguaLibre:Technical_board&oldid=464156#Remove_duplicates_bug like so]. The discussion page are changing too fast while Phabricator tickets stay for a long time. I plan to update those links on phabricator as I bump into them ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:29, 1 March 2021 (UTC)<br />
<br />
== List size ? ==<br />
How do we handle very large lists ? Some sources we are starting to use are 50,000 or 100,000 items. How large can the Record Wizard handle the load ? In term of UX, human well being, shouldn't we limit recording session to max=1000 or max=2000 ? I worry loading and displaying 2000+ or 10,000+ items contains an annoying "infinite scroll", "you are drowning under water" effect. Whereas smaller, max=1000 items contains a positive "you can do it boss" dimension which plays fully on gamification and "current level+1" motivational concepts. The same way the record wizard avoids already recorded it could be wise to limit how many words we load. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:43, 28 February 2021 (UTC)<br />
* It handles badly. I have got a few lists with 50,000 or more words now. Not only infinite scroll, the record wizard also hangs if a list has more than 5,000 or so words (of course it depends on one's computer RAM etc also), however I won't even try to load a 50,000 or 60,000 word's list on the RecordWizard. "max=1000" is an option for sure. What I'd be really happy to see is "&from" ([https://commons.wikimedia.org/w/index.php?title=Category:Lingua_Libre_pronunciation_by_WikiLucas00&from=Li example]) and similar filters. Think of a large list of 60,000 words, alphabetically sorted, if we can limit loading only those words starting with/ending with specific letters that will make things easier (however this loading should be slow also). Another option is employ Olafbot and keep on updating such lists, what Olafbot is doing at this moment. Regards. --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 18:09, 28 February 2021 (UTC)<br />
::Others and myself frequenly split lists in smaller chunks and pages but it's not ideal on the maintenance side. I wonder if adding sections to the list couldn't be a solution. So we pick a list, then if any we see all and pick a section. It would present interesting benefices (editability). I dont have easy implementation solution, but visibly we have an aspect to improve. As of now it seems wise to keep lists at max=5000 ?<br />
::In any case, the questiin of Lists maintenance, curayion and merging is growing. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:46, 28 February 2021 (UTC)<br />
:::Ok, I'm gonna trim my generated lists to 1000 entries, if there is a problem (technical or psychological) with larger chunks. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 22:08, 28 February 2021 (UTC)<br />
:::* I think as Yug told 5,000 is fine for now, let's see how it goes. How often Olafbot refreshes the list? Is it once in a day? --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 22:16, 28 February 2021 (UTC)<br />
::::* Yes, every night (Warsaw time). 1000 may be too small, sometimes people make more in 24 hours. 1500? BTW, I'm thinking about adding new regularly updated lists. For example, the frequency lists with the recorded audio removed probably also could be useful. In Polish, I personally use lists based on the number of internal links in Polish Wiktionary, but it works only for this language - in Polish Wiktionary we link every word in a definition or an example to its lemma, so there's quite a large corpus of words. In Polish, and probably in a few other languages with simple phonology, I can create lists without /r/ for people with [[w:Rhotacism_(speech_impediment)|rhotacism]] (like at least three Polish speakers of pronunciation in Commons, including myself). If you have any further ideas, how to enhance Olafbot's activity, please let me know. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 00:18, 1 March 2021 (UTC)<br />
:::::* {{ping|Olaf}} hi. On my side I approach it this way : 1000 = '''1h+''' for moderately experienced users. I would therefore put 2000 words / day as a ''maximum, solidly ambitious yet still healthy size'' (doable happily when motivated). Given your list is updated daily, that's the max I recommend. But 1500 and 1000 daily are more gentle and likely an healthier choice if we want to encourage long-run contributions. Our experienced contributors may come to like this habit of 1000 words / 45~60minutes daily recordings. You see the idea.<br>For non daily-updated lists, we can go to max 5000.... with the understanding and assumption it suit a 3-days recording sprint followed by a resting period.<br>My personal observation is that >1000 words/day becomes cognitively exhausting. Generally speaking, we can also see from [[Special:RecentChanges]] and on-the-ground's practices that the 1,000+ threshold is largely avoided by our existing users. Most session are between 30 and 400 recordings (between 2 to 30 mins active recording). There is crowd wisdom in that ! [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:19, 1 March 2021 (UTC)<br />
::::::* Ok, I limited the generated lists to 1000 - they will be trimmed this night. I think Yug is right, and rarely anybody will need more, and the lists shouldn't overwhelm people. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 22:58, 1 March 2021 (UTC)<br />
:::::::{{ping|Olaf|Yug}} That's a good decision. We should never load too many elements in the Record Wizard. @Yug, I saw that some of your lists are still 5000 elements-long, should we also trim them?<br/>I tried recording a part of [[List:Fra/Lemmas-without-audio-sorted-by-number-of-wiktionaries]] back when it was still 5000 words-long, and almost all of my 300 audios were corrupted (I had to dump a lot of them before uploading to Commons), probably due to my browser's memory overloaded by the long list (I have a pretty strong internet connection and used a PC with 16GB of RAM).<br/> In relation to this topic, I opened a [[phabricator:T276014|Feature request on Phabricator (T276014)]], to be able to load only a part of a list in the record wizard. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 02:07, 9 March 2021 (UTC)<br />
<br />
== Exclusion lists? ==<br />
There could be another problem with the generated lists - although the lists are usually self-correcting (any typo would have to appear on many wiktionaries at the same time to make it to the top), at least for less popular languages the lists contain errors. The errors are going to accumulate at the beginning of each list because all the good words around them from the top are eventually recorded, and the errors persist. I had this problem in lists generated for Polish Wiktionary, and the solution was to allow users to remove the errors from the list. Each generated list on pl-wikt ([[:pl:wikt:Wikisłownik:Ranking brakujących słów według wystąpień w innych wikisłownikach/francuski|example]]) has its own "exclusion list" ([[:pl:wikt:Wikisłownik:Ranking brakujących słów według wystąpień w innych wikisłownikach/francuski/usuwane|example]]). Words added by users to the exclusion list are automatically removed by the bot from the main list every time it is updated. The system works fine on pl-wikt because it is described in the header of each list, and people got used to it, but I have no idea how to do it in Lingua Libre where no explanatory comments can be included in a list. Or maybe the bot could monitor any deletion of words from the lists done by users and maintain the exclusion lists on his own? But still, people would have to know there is such a possibility and care about it. Or maybe it's too early to think about it? What do you think? [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 12:04, 1 March 2021 (UTC)<br />
: Is there any way to put a comment on the list, visible to the user? Except for its title of course... [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 12:18, 1 March 2021 (UTC)<br />
:: IIRC, the "noinclude" tag is not ignored by the RecordWizard (ie. it shows as a "word" in the RW). So I guess there's no way to add a comment. That'd be an interesting feature request to be honest. To have something like a "description" of the list in the RecordWizard, something like what we can see on Wikidata. Let's discuss that, and maybe open a Phab ticket too. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 12:21, 1 March 2021 (UTC)<br />
:::I don't know where, but I think we have a feature request on RecordWizard for more advanced list loading, including ignoring (License|warning|info) templates and/or <code><nowiki><noinclude></noinclude></nowiki></code> balises. ({{ping|Pamputt}}) I also mentioned in the section above the possibility of wiki sections within list pages. We lack active VueJS developer to maintain and integrate features requests safely to the RecordWizard. Setting up a team of 1~2 VueJS devs should be part of our external outreach objectives. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:00, 1 March 2021 (UTC)<br />
::::I can be one of these VueJS devs. But the thing I'm lacking is a test environment. And, there's also a thing that should be noted: the RecordWizard is developed in VueJS 2.x. It's not compatible with any of the Vue's development tools: ''Vue Devtools'' does not even "see" that the RecordWizard uses Vue! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 18:59, 1 March 2021 (UTC)<br />
<br />
== Keyboard control ==<br />
Can we control the Record Wizard with a keyboard? My mouse makes rather loud sound when clicked, and the first word is always replaced with this sound. I have to add a dummy word at the beginning of the list. I would like to use a keyboard instead. It would be even more interesting if I could repeat recording of the last word with one key pressed. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 23:11, 2 March 2021 (UTC)<br />
:Yes, during the recording, you can use keyboard. You can click on the keyboard icon (at the top right) to see all of them). That's said, we should improve [[Help:RecordWizard_manual#Keyboard_shortcuts]] because it is not complete. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 06:13, 3 March 2021 (UTC)<br />
:: Thank you very much. It's very helpful. I wonder only why this help dialog in Record Wizard is displayed always in French, and why I can't find it in TranslteWiki? [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 01:47, 4 March 2021 (UTC)<br />
:::I did not know it was only displayed in French. I added these strings to [[phab:T215055#6881548|the list]] of strings that need to be translatable. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 06:30, 4 March 2021 (UTC)<br />
::{{ping|Pamputt}} {{Support}} For example, we would need keyboard shortcuts to unselect or re-select elements while listening to the recordings. Also, I think using arrows to go from an element to another doesn't work for this step of the Record Wizard (it only works in the recording step). — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 01:56, 9 March 2021 (UTC)<br />
<br />
== Properties for languages : import on lili Qitem or fetch from wikidata ? ==<br />
Hello all, hello [[User:VIGNERON|VIGNERON]]. As I progress toward importing the UNILEX lists I'am examining [[:LinguaLibre:List_of_languages|the languages we have]], how many audio we have. For each language I would like to see the native population size of speakers. Coupling our current reach (the list of our language and the number of audios) together with populations sizes, we will be able to see how is our biases on major vs minor languages. There are some rare language in the list. So maybe, maybe, we are actually good on this side. Or maybe not. But we need to have some vision o this.<br />
<br />
As for the implementation let's take Cantonese ([[:wikidata:Q9186|Q9186]])'s "number of speakers" ([[:wikidata:Property:P1098|Property:P1098]]) = <code>72,893,210</code>. '''Is there a way in Query:Viz to make a Sparql query fetching both most data from LinguaLibre (as now) but also one value from wikidata ?''' [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:55, 4 March 2021 (UTC)<br />
<br />
== [[:en:Natural Language Toolkit|Natural Language ToolKit (nltk)]] ==<br />
Greetings all,<br><br />
Do we have anyone with knowledge on NLTK and its ecosystem ? I'am in communication with Google/corpuscrawler and Unicode-org/UNILEX, examining their data, and I still find notable holes. Esperanto <code>epo</code>, Catalan <code>cat</code>, Afrikaans <code>afr</code>, Korean <code>kor</code> and [https://github.com/unicode-org/unilex/issues/14 others] have no corpora, therefore no wordlist. (I suspect UNILEX was a complementary project, exploring the [[:en:long tail]] so some major language were not cared for. According to the code, they also crawled only few websites via human-defined targets. They identified few language-specific words, ex "currently" and "first", googled it (maybe +wordpress), and thefore identified targets matching their crawlers.) I'am making a new review of online corpus mainly using [https://opus.nlpl.eu/ OPUS.nlpl.eu] ([[:en:Corpus Linguistic]] research center) as my entry point. They are specialized in parallel corpus but also provide their monolingual corpus in raw text and tokenized formats. I noticed their data for Wikipedias ([https://opus.nlpl.eu/wikipedia.php /wikipedia.php]: 20 languages), Wikipedia Content Translations ([https://opus.nlpl.eu/wikimedia.php /wikimedia.php]: 288), Tatoeba ([https://opus.nlpl.eu/tatoeba.php /tatoeba.php]: 359), TED ([https://opus.nlpl.eu/TED2020.php /TED2020.php]: 108), Bible ([https://opus.nlpl.eu/bible-uedin.php /bible-uedin.php]: 102). More I dive into Wikipedia corpus and more I'am uncomfortable with it: it's really noisy, the clean up is hard. But what are the other options ? Do NLTK community and professional have built-in and maintained corpora per languages ? Do we know what they are doing on their side for corpora and wordlist ? Do you have any NLTK contacts to share these questions with ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:32, 5 March 2021 (UTC)<br />
:Ok, this may be a bit too ahead of current challenge. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:15, 7 March 2021 (UTC)<br />
::{{ping|Yug}} As far as I know, it seems that NLTK is mostly used for learning purposes, and that there is no strong professional community around it. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 01:53, 9 March 2021 (UTC)<br />
:::Thanks [[user:WikiLucas00|WikiLucas00]], too bad. But that's interesting to know. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:58, 9 March 2021 (UTC)<br />
<br />
== Bug in Record Wizard ==<br />
:''Closed. See [[phab:T276724|T276724]].''<br />
I found a bug in the Record Wizard:<br />
# Click "Local list"<br />
# Remove all text from the "Title" field<br />
# Click "Done"<br />
Now, there is no chance to exit this dialog window forever and ever. You can only reload the page or close the browser window. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 20:58, 7 March 2021 (UTC)<br />
:This is definitely a bug. I remember I already experienced it and I though I had opened a Phabricator ticket but I cannot find it, so I probably did not create it... Done, see [[phab:T276724|T276724]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:27, 7 March 2021 (UTC)<br />
::I found it back, [[phab:T266921|T266921]]. I will close T276724 as duplicate. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:35, 7 March 2021 (UTC)<br />
:Will be easy to fix. There is already a built-in error message when you type an erroneous pagename. Something to the effect of ''if inputString==null then return error. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:46, 7 March 2021 (UTC)<br />
:: But we would have no way to test the fix. So until the fix can be tested, it must not be merged in the code. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:36, 7 March 2021 (UTC)<br />
<br />
== Ratelimite update ==<br />
:''See: [[:phab:T260649]] « Ratelimit : improve handling of upload ratelimits via local JS », [[:phab:T276992]] « Ratelimit : Lingualibre-Commons require better integration via whitelisting or else. »''<br />
Greetings,<br><br />
A short summary of past weeks monitoring the ratelimit bug and its impact. Since I noticed our users were indeed bumping into this 380/h wall, I monitor daily the recent changes and investigate upload patterns. Most users rights now (Marathi!) actually keep sessions under 380, and don't reach their ratelimit. I would say 80% of our actively-recording users don't reach their ratelimit in despite 5+ medium sessions per months. Their activity range between 20 and 200+ audios per session. Then, there are few more ambitious users, who display a "growth" pattern : their sessions increases, get to ~350, then bump into the wall. I tried my best to catch those and get them more user-rights on Commons as they neared the limit. Mostly succeeded. Few jumped up and bumped into the ratelimit before I could mentor for userirghts. Last but not least, I did some light [[:ca:Tema:W4oh9xw4ndkefh91|catalan]] [[LinguaLibre:Chat_room#Outreach|outreach]] this week. One of the users who answered the call and came over jumped ''straight'' to record Olaf's <code>cat</code> 1,000 words list, as I recommended in my call. Impressive and fully what we want. I noticed his '''380''' uploads (''« 380 = Warning! User bumped into ratelimit! »'') and therefore made contact. This user has since confirmed to me that '''s.he lost 620 of its recordings'''. Very, very embarrassing for us and for me, who called this user over.<br />
<br />
We handled this loss the most elegantly and supportively as possible and thanks to this users positive will, it went ok. But it gives a sense of the impact this ratelimite can have, why hand monitoring of upload followed by proactive Commons userrights requests is direly necessary.<br />
<br />
On the solution side we have a medium strategy short term solution –create a warning ribbon with user's ratelimit if = 380, current edit count on commons, and message–, see [[:phabricator:T260649|T260649]]; but also could explore a high strategy long term solution asking commons is more tolerant with our users uploads. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 12:56, 9 March 2021 (UTC)<br />
: I start to think the lists should be limited to 380. It looks like a trap, when we invite people to contribute, give them a list of words, and then throw away most of they work. The warning ribbon is the minimum. I could write it as a gadget myself, but I can't test it (see the section below). :-/ [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 13:56, 9 March 2021 (UTC)<br />
::Gadget is pure js (ex: [[MediaWiki:Gadget-RecentNonAudio.js]]), you test it in your browser. Could work ! [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:57, 9 March 2021 (UTC)<br />
::: I know, I used to write gadgets in other wikis. But here I can't edit the MediaWiki namespace, and I can't even use my personal Common.js. So where am I supposed to put the code of the gadget and how can I test it? Ok, perhaps I can develop it somewhere else and present it here when it's ready, but the other wikis have no Record Wizard and they look different. I believe, there are too many restrictions here. I can't understand why anybody would like to block using personal common.js. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 14:20, 9 March 2021 (UTC)<br />
::::Oooh...... You know what ? I used site-wide common.js and my admin right to dev [[MediaWiki:Gadget-RecentNonAudio.js]] if I remember well. Also, this week, we granted temporary admin rights to Eihel due to specific technical need. If you want to attack this you can ask temporary admin rights on the Admin board. Part of the code could be later (late Spring/Summer) fully integrated to the Record wizard. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:29, 9 March 2021 (UTC)<br />
::::: Ok, I [https://lingualibre.org/index.php?title=LinguaLibre:Administrators%27_noticeboard&diff=477849&oldid=473470 applied] for the rights. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 15:30, 9 March 2021 (UTC)<br />
*{{ping|Yug|Olaf|VIGNERON}} Do you think that it would be conceivable to implement a new user right on Commons, dedicated to (every) Lingua Libre users? This way, users could use their ratelimit exemption on Commons only when using Lingua Libre, and not from elsewhere. Which other long-term solution could we bring for when we decide to start a discussion with Commons community? — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 18:38, 9 March 2021 (UTC)<br />
::If the right were to be added automatically, it would require MediaWiki extension, I'm afraid. And politically, it might be hard to swallow for Commons admins. When I got the autoconfirmed right to break the 380 recordings barrier, I was reminded "[https://commons.wikimedia.org/w/index.php?title=Commons:Requests_for_rights&diff=prev&oldid=533816162 not to go too fast]", and remember I'm not a bot. Whatever that means. :-) [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 18:50, 9 March 2021 (UTC) <br />
::{{ping|WikiLucas00}}I'm skeptical on a long term fix. <br />
::* [[LinguaLibre:User_rights#Commons_ratelimits_in_code]] shows that 380 is an hard-coded limit. Together with other ratelimits.<br />
::* Users are uploading audio files via their web-browser and Commons.wikimedia.org accounts. I'am not sure we have any tag in the request.<br />
::* Someone talked about an "app whitelist", but again, this may be different than our current situation. See the point above.<br />
::So I'am very skeptical or unaware at this point for an already built-in solution. We may, tho, find the right place to raise this issue on phabricator, then ask for a solution. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:25, 9 March 2021 (UTC) <br />
*{{ping|Olaf}} I think that limiting the lists to 380 or 400 (assuming that we lose/the user discards 20 elements), and updating them more frequently (twice a day for example) is a good idea. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 18:38, 9 March 2021 (UTC)<br />
:: Ok, I will change it today or tomorrow. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 18:49, 9 March 2021 (UTC)<br />
::: Trimmed to 380. Now I'm testing updating the lists every three hours, concurrently with other bot activities. I hope there will be enough memory available for two heavy bot processes. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 22:35, 9 March 2021 (UTC)<br />
<br />
<hr><br />
I requested SangeetaRH today (she bumped into the ratelimit in past days) and will request Unjuan's new userrights as soon as 2000 contributions are reached. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:36, 9 March 2021 (UTC)<br />
<br />
NB: looking for something else, I stumble upon this task [[phab:T110249]] which is old and may not be solved soon but, if solved, may be relevant for this situation. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 12:45, 23 April 2021 (UTC)<br />
<br />
== Generators ==<br />
I wanted to see what the generator is. I copied the demo generator as described on [[Help:Create a new generator]], reloaded the page (clearing the cache), logged out, logged in, and still can't see any change in the Record Wizard. How can I start the generator? [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 11:17, 9 March 2021 (UTC)<br />
: Apparently, it's not allowed: [https://phabricator.wikimedia.org/T273709]. This help page doesn't make any sense. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 13:23, 9 March 2021 (UTC)<br />
::Just to understand why it does not work and why at the same time this help page exists. The help page has been written on October 2018. In June 2020, Lingua Libre has been largely revamped and I think common.js has been disabled at that time. So it was maybe working in 2018 but not anymore in 2020. Let us hope it comes back soon. Or maybe it never worked here :( [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 18:56, 9 March 2021 (UTC)<br />
:::{{ping|Olaf|Pamputt}} It should be working now! (See [[phab:T273709]] and my [[User:Poslovitch/common.css|custom CSS file]], which should mean that custom JS is now available). --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:56, 22 May 2021 (UTC)<br />
<br />
=== Documentation update? ===<br />
We are progressing on so many sides these days. But at some point we may gain from turning back and doing some "old pages" clean up. Help:Lists (3~4 pages) need care and merging. [[Help:Create a new generator]] too. How many others ? Some recent pages and forums (ex: [[Lingualibre:Grants]], [[LinguaLibre:Workshops]], [[LinguaLibre:Jargon]], Technical board, Bot) and even the main forum needs some love. Meanwhile I will have to reduce my activity in coming months due to research deadlines and other Grant requests to write, including for Lingualibre. On the bright side that will reduce the flow of news sections ^^. One small task we can do as of now its to tag the dead forum sections as "closed". We need fresh users and fresh eyes to be honest. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:19, 9 March 2021 (UTC)<br />
:[[Help:Create a new generator]] is ok. We just need to add that currently only sysop can do it. All the rest remains valid. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 19:27, 9 March 2021 (UTC)<br />
::Now I have the admin rights, I have the demo generator copied to my common.js and still it doesn't work for me (or I don't know how to start it). [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 22:43, 9 March 2021 (UTC)<br />
:::A quick technical note: when updating the generator "External Tools" for MediaWiki 1.35, it worked partially as a gadget: the button was shown but the window did not open, except when using the mode debug of the ResourceLoader (by adding the parameter "?debug=true" in the URL). It worked fully when I copied the code on the server in the RecordWizard extension next to other generators (currently only on the server, I will do soon Pull Requests to Github). It is probably due to side effects in loading order. [[User:Seb35|Seb35]] ([[User talk:Seb35|talk]]) 10:57, 23 April 2021 (UTC)<br />
<br />
== Bot login ==<br />
Something changed, and page [https://lingualibre.org/w/api.php?&maxlag=10&meta=tokens&format=xml&action=query&type=login] doesn't exist anymore. This page exists on any other wiki ([https://fr.wikipedia.org/w/api.php?&maxlag=10&meta=tokens&format=xml&action=query&type=login example]) and Olafbot used to log in in this way before the fire - AFAIK only in this way bots can log with bot passwords obtained on [[Special:BotPasswords]]. So currently Olafbot's list generation is disabled. Could you switch this feature on again? [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 08:32, 23 April 2021 (UTC)<br />
: Addendum: The whole API seems to be gone. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 08:33, 23 April 2021 (UTC)<br />
::Hi {{u|Olaf}} no idea how to solve this issue but I have created a ticket on [[phab:T280964|Phabricator]] to track it. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:22, 23 April 2021 (UTC)<br />
::: Ok, I found the problem. The script path changed - before the fire, and on all other Mediawiki projects script path is /w (for example lingualibre.org/w/api.php) Now it's lingualibre.org/api.php. Compare entry points in [[Special:Version]] and [[:fr:Special:Version]]. The bot is now working, problem solved, but I believe the change may affect some other scripts. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 10:52, 23 April 2021 (UTC)<br />
<br />
{{ping|Olaf}} oh, thanks for letting us know. This is strange, indeed some pages were using the /w/ path and most were using the / path, I'm not sure why or how. It created some issues and broke some tools, so all pages should now be in / to avoid inconsistencies. Ping {{ping|Seb35}} who probably could tell us more about it. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 11:24, 23 April 2021 (UTC)<br />
: Yes, I just checked in [https://github.com/hugolpz/lilidown/blob/main/olaf/lingualibre.org/wiki/Special_Version/Special_Version.htm archived Special:Version] from before the fire, that the entry points didn't change. There must have been a redirection from lingualibre.org/w to lingualibre.org which is not in place now. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 11:28, 23 April 2021 (UTC)<br />
::Before the fire, I was using <code>/</code> successfully. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:03, 25 April 2021 (UTC)<br />
<br />
== Translating ==<br />
Translate extension is not configured properly. When I click the "Tanslate this page" link on the main page, it's not working as expected. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 11:35, 23 April 2021 (UTC)<br />
:Yes, I also experience the same. I have opened a [[phab:T280972|ticket on Phabricator]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 11:41, 23 April 2021 (UTC)<br />
<br />
== CSS & Indentation ==<br />
:''Identified issues : indentations, tables border, images.''<br />
It seems that the use of ":" does not work anymore tor indent messages. Probably a problem of CSS somewhere. So if someone knows how to fix that, please do not hesitate. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 11:45, 23 April 2021 (UTC)<br />
:It appears images suffer the same issue. See for example the image at the top of [[Help:Configure_your_microphone]] which has « right » parameter; but image is place on the left. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:22, 24 April 2021 (UTC)<br />
::{{ping|VIGNERON|Seb35}} 0x010C had neutralized and removed some native mediawiki css, and added some custom css.<br />
::His css selectors were designed for the old mediawiki html structure and classes. Selectors may be non-functioning now that new structures and classes are in place. (You already know this I gess)<br />
::When inspecting the code, the <code>dl</code> element are still correctly nested.<br />
::There is also a [https://github.com/lingua-libre/BlueLL/blob/5aa7c3022f32e7b1f4a30ad9632b1898d6745758/assets/stylesheets/main.css#L12-L16 BlueLL css rule] which appears to mess many things, including bullets indentations. Removing the margin and padding allows to fall back on default mw css and fix a bunch of issues, inclyding the <code>dl</code> indentations.<br />
::(The dirty hack is to add superior fixes into [[MediaWiki:Common.css]] such as <code>*{margin:none;padding:none;}</code> for now, then to migrate to github, then to redeploy on server)<br />
::VIGNERON, is this within WikiValley's mission scope ? Note: Updating the CSS ourselve is an important process we need to know how to do after you finish the mission. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:28, 25 April 2021 (UTC)<br />
:::{{ping|Yug}} yes, we noticed that. This is partly in our mission scope but this is also a good opportunity for the community to empower itself and rediscuss some formatting choice. For instance, the « right » parameter being broken is clearly for us but things very specific to BlueLL is maybe for the community. We should work together on this. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 07:50, 26 April 2021 (UTC)<br />
::::{{ping|VIGNERON|Seb35}} I made a Pull Request on github with the relevant changes for indentation.<br />
::::According to 0x010C, BlueLL's CSS update is done via a simple git clone. See [https://github.com/lingua-libre/BlueLL#download README.md]<br />
::::# Should I contact Mickael or Seb35 for that ?<br />
::::# Is the process different for non BlueLL css ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:59, 26 April 2021 (UTC)<br />
<br />
== Click on $1 below, then read the word aloud ==<br />
In the Record Wizard, at the Studio step, this sentence is displayed ("Click on $1 below, then read the word aloud"). I guess "$1" should be replaced by something bu I do not remember why. Anyway, something is broken here. I have opened a [[phab:T281038|Phabricator ticket]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:32, 24 April 2021 (UTC)<br />
:{{ping|Pamputt}} thanks for the warning (and don't hesitate to add me on this kind of phab task whe you create hem). The $1 is the mic icon (which is just below) but not sure how the icon was inserted exactly (and why it's not hardcoded). We will look into it. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 07:25, 26 April 2021 (UTC)<br />
::mic-blue.svg (not mic-white) —[[User:Eihel-LiLi|Eihel-LiLi]] ([[User talk:Eihel-LiLi|talk]]) 16:01, 10 May 2021 (UTC)<br />
<br />
== Display the namespace in the top banner (id=contentHeading) ==<br />
Hi, am I the only one that do not like the fact no to see the namespace displayed in the blue banner at the top of each page et in which we see the name of the page. For this page, it displays "Technical board" and not "LinguaLibre:Technical board". The main problem is I am often confused to know if I am on the main page or on the talk page; I always need to look at the URL. On the other end, this display does not confuse users that do not care about namespace. So maybe only display the fact that it is a talk page (without display the rest of the namespace (user, lingualibre, help, etc.) would be a good compromise. What do you think?<br />
<br />
PS: I have looked at the code and it seems that the trick is done at [https://github.com/lingua-libre/BlueLL/blob/7959299c55fb3f852a5409f3c0bfd61938f1355a/BlueLL.skin.php#L187 line 187] of BlueLL.skin.php.<br />
<br />
[[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:29, 5 June 2021 (UTC)<br />
<br />
== Bug report: Uploaded to Commons, but not in Lili database ==<br />
Very often (before and after the Great Fire) I have recordings reported as "failed to upload", but then I can't repeat the upload, it's the same error every time. For example, a moment ago I uploaded two files: [[commons:File:LL-Q809 (pol)-Poemat-iberystyka.wav]] and [[commons:File:LL-Q809 (pol)-Poemat-meteorytyka.wav]]. Record Wizard says the upload failed. The files are visible in Commons. The upload is not visible in my user history, Recent Changes, and in Search. In the browser console there is a message: <br />
<br />
<pre>[RequestQueue] Reject fileexists-no-change <br />
Object {<br />
"code": "fileexists-no-change",<br />
"info": "The upload is an exact duplicate of the current version of [[:File:LL-Q809 (pol)-Poemat-meteorytyka.wav]].",<br />
"stasherrors": [<br />
{<br />
"message": "uploadstash-exception",<br />
"params": [<br />
"UploadStashBadPathException",<br />
"Path doesn't exist."<br />
],<br />
"code": "uploadstash-exception",<br />
"type": "error"<br />
}<br />
],<br />
"*": "See https://commons.wikimedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes."<br />
} load.php:49:149". <br />
</pre><br />
<br />
Apparently, the first upload was successful, but Record Wizard must have failed while writing to Lingua Libre database. It should recognize this error code from Commons and proceed with updating the Lingua Libre database. Moreover, I believe there are a lot of similar files uploaded to Commons only, which should have their Lingua Libre information added post factum. [[User:Poemat|Poemat]] ([[User talk:Poemat|talk]]) 17:52, 15 June 2021 (UTC)<br />
:Hi {{ping|Poemat}} this is tracked in this ticket : [[phabricator:T284369]] --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 13:08, 24 August 2021 (UTC)<br />
<br />
== Bases for a new patrol tool ==<br />
<br />
Hi everyone!<br />
<br />
While reporting [[LinguaLibre:Misleading_items#Change_language_from_fra_to_oci|an issue with some files]], I thought that a SPARQL query would be useful to have a complete overview of the speakers' recordings. First I only fetched the Qid, label and date of the recording, but then I realized that we could also display the audio in the query (in a smart and space-saving way, thanks to {{ping|0x010C}}'s QueryViz).<br />
<br />
As manually dealing with SPARQL queries is not convenient, I think that this could become the bases of a patrol tool (maybe via a gadget or even a template) to quickly browse through someone's recordings. We could define filters such as a period of time to check, and the gadget/template would just have to adapt the query. We would then need a way to quickly mark the recordings with the type of problem they contain (if they do).<br />
<br />
Example of query:<br />
<query _pagination="10"><br />
SELECT ?recordLabel ?record ?audio ?date WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P4 entity:Q21 .<br />
?record prop:P5 entity:Q1975 .<br />
?record prop:P3 ?audio .<br />
?record prop:P6 ?date .<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
?record rdfs:label ?recordLabel .<br />
}<br />
}<br />
GROUP BY ?date ?recordLabel ?record ?audio<br />
ORDER BY DESC(?recordLabel)<br />
</query><br />
<small>'''Sidenote:''' the {{templ|Q}} template seems to glitch when used next to this query: <code>Lua error: Internal error: The interpreter has terminated with signal "24"</code> ([https://lingualibre.org/index.php?title=LinguaLibre:Misleading_items&oldid=602598 see here])</small><br />
<br />
What do you think about this? Do you have other ideas for continuing on this track?<br />
<br />
All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:48, 24 August 2021 (UTC)<br />
: I don't understand. Do you want this to a be a template/gadget that "generates" the Queryviz code? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 13:10, 24 August 2021 (UTC)<br />
::Yes, there would be a Patrol page that we would use to select various filters (a speaker, a language, a period of time etc), and the gadget/template on this page would just have to craft a <code><nowiki><query></nowiki></code> based on the chosen filter(s). Then patrollers would just have to browse through the table, hopefully with some tools to help them quickly marking erroneous items. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:30, 24 August 2021 (UTC)<br />
<br />
== Where to translate the bottom messages ==<br />
<br />
Hello, when you edit a page at the bottom (below the edit field), you can read<br />
: Please note that all contributions to Lingua Libre are considered to be released under the Creative Commons 4.0 Attribution-ShareAlike (see LinguaLibre:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.<br />
:You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!<br />
I can not figure out where we can modify these strings. Anyone knows something? I would like to change the link to LinguaLibre:Copyrights into Special:MyLanguage/LinguaLibre:Copyrights. Maybe {{u|VIGNERON}} or {{u|Seb35}} may help. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:00, 24 August 2021 (UTC)<br />
::{{ping|Pamputt}}: When you search the name of some message in a page, you can add the parameter <code>uselang=qqx</code> in the URL [https://lingualibre.org/index.php?title=LinguaLibre:Technical_board&action=edit&uselang=qqx like this]: it displays them. In this case it’s [[MediaWiki:Copyrightwarning]] (and e.g. [[MediaWiki:Copyrightwarning/zh]] for translations). ~ [[User:Seb35|Seb35]] [[User talk:Seb35|<small>[^_^]</small>]] 14:33, 25 August 2021 (UTC)<br />
::Searching in MediaWiki codebase, the link is specified in [[MediaWiki:Copyrightpage]] (see [https://github.com/wikimedia/mediawiki/blob/7a957145adf6bd65ee89eff5bb28b50a03048375/includes/EditPage.php#L3760-L3763 this code]). You can try to put your changed link there to change in all languages, and you can even try "<nowiki>Special:MyLanguage/LinguaLibre:Copyrights|LinguaLibre:Copyrights</nowiki>" to hide the "Special:MyLanguage" part if you want. ~ [[User:Seb35|Seb35]] [[User talk:Seb35|<small>[^_^]</small>]] 14:53, 25 August 2021 (UTC)<br />
:::Thank you very much Seb35 for the trick with "qqx" (Poslovitch already talked me about that but I had forgotten). So I applied the change only here (I guess it make sense only for multilanguage Mediawiki projects and they are not so many). [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 15:53, 25 August 2021 (UTC)<br />
::::Do we need the word "mercilessly"? just "edited" sounds fine. --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 22:03, 25 August 2021 (UTC)<br />
<br />
== Bug - premature upload to Commons ==<br />
<br />
Recently a new bug emerged in Lingua Libre. <br />
When a user is recording words, the recordings are uploaded to the server. In the next step, they are supposed to be verified by the user. If there is a network error in the recording phase, the user can click a button and request uploading them again. This time, however, the recording is not stored on the server for verification but uploaded prematurely to Commons. This is dangerous because if there were any problems in the pronunciation, the user had no chance to detect them. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 10:33, 6 April 2022 (UTC)<br />
:{{ping|Olaf}}, I just created [[phab:T309218|T309218]] to keep track on this possible issue. Feel free to modify the bug report. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 15:31, 25 May 2022 (UTC)<br />
<br />
== Requested extensions ==<br />
Hi there,<br><br />
* [[:mw:Extension:TemplateStyles]] : elegant Navbox templates requires [[:mw:Module:Navbox]] and [[:mw:Module:Navbar]], which themselves requires [[:mw:Extension:TemplateStyles#Installation|Extension:TemplateStyles]] to load associated CSS styles. I tried to copy all dependencies, but the Module namespace doesn't accept CSS as of now. Relevant css files are therefore still missing.<br>'''Usage:''' This extension allows us to move CSS out of [[MediaWiki:Common.css]], and into the template's own <code>Template:{TemplateName}/styles.css</code>. Beyond {Navbox}, there could be other templates who benefit it. In particular, it would help map out existing pages into navboxes in an easy-to-enquire structure. See also {{tl|Lingua_Libre_scripts}}.<br />
* [[:mw:Extension:VisualEditor]] : [[User:Poslovitch]] already made an attempt installation.<br>'''Usage:''' this feature would be convenient to invite non-wikipedians to edits the site, especially when list review is required. Also ease edits of tables.<br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:11, 23 May 2022 (UTC)<br />
<br />
== Langue des descriptions des entrées ==<br />
:''Moved from [[User talk:Estrie]]. See also [[MediaWiki:Common.js]].''<br />
:''{{Done}}''<br />
Bonjour [[User:Pamputt|Pamputt]],<br />
<br />
Pourquoi les descriptions des entrées sont-elles en anglais (exemple: [[Q777898]]), alors que les mots proviennent de listes en français et que je me déclare francophone ?<br />
[[File:Lingualibre-item-language bug.png|thumb|500px|Screenshot of Lingualibre quand [[Special:Preferences#mw-prefsection-personal]] = « fr - français ».]]<br />
[[User:Estrie|Estrie]] ([[User talk:Estrie|talk]]) 02:33, 25 May 2022 (UTC)<br />
:Bonjour Estrie, si je comprends bien ta question... ouvres [[Special:Preferences]], et verifies si ta langue pour l'interface est bien "francais" ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:35, 25 May 2022 (UTC)<br />
:: [[User:Yug|Yug]], Dans la section Internationalisation de [[Special:Preferences#mw-prefsection-personal|cette page]], je vois « fr - français ». [[User:Estrie|Estrie]] ([[User talk:Estrie|talk]]) 10:29, 25 May 2022 (UTC)<br />
:::Ah je vois... (cf image à droite). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:11, 25 May 2022 (UTC)<br />
:::J'aurai tendance à dire que c'est correct, mais confusant.<br />
:::La page wiki [[Q777898]]...<br />
:::* a pour titre alternatif "human friendly", en anglais courant (la langue par défaut de Lingualibre.org): "votre".<br />
:::* a pour titre alternatif "human friendly", en francais courant (votre langue choisie) : "" (pas de valeur)<br />
:::En terme programmatif ça se tient. En terme de compréhension spontanée d'un visiteur humain c'est confusant et faux. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:17, 25 May 2022 (UTC)<br />
:::Voilà, [[Q777898]]]: maintenant que j'ai complété la valeur francaise le francais reprends le dessus. Comme prévu... Il faudrait que l'on face ceci automatiquement lors de la création de l'item. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:20, 25 May 2022 (UTC)<br />
:Bonjour [[User:Estrie|Estrie]], en fait c'est lié à la façon dont le site est codé et ce n'est pas modifiable en l'état. On pourrait ouvrir un ticket sur Phabricator pour demander à ce que le libellé et la description d'un élément soit rempli en anglais et dans la langue du locuteur mais ça me semble assez lourd à mettre en place pour un gain a priori minime. Donc il faudrait d'abord voir quels seraient les avantages à remplir les libellés/descriptions dans une autre langue que l'anglais car normalement ces infos n'ont pas vocation à être consultées directement par des humains, mais plutôt par des machines. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 14:50, 25 May 2022 (UTC)<br />
::{{Ping|Pamputt}} on peut également faire un hack JS dans Common.js qui masque ce label-indicateur <sup>''anglais''</sup> qui n'a pas vraiment lieu d'etre (?) ou récupérer (copier) la Property:P4 de la langue d'enregistrement ("français") et l'injecter dans le label-indicateur donnant ainsi <sup>''français''</sup> (?). C'est moche comme approche, mais simple [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:58, 25 May 2022 (UTC)<br />
:::Le problème si on fait ça, c'est que le libellé en anglais est souvent le seul libellé présent donc si on le masque, on ne voit plus en un coup d’œil à quoi correspond l'élément. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 15:00, 25 May 2022 (UTC)<br />
::::{{Ping|Pamputt}} j'ai reformulé mon idée.<br />
::::Sur [[MediaWiki:Common.js]], les lignes 44 à 100 apportent déjà des améliorations cosmétiques à la volée sur les items "recordings".<br />
::::Un fix semble faisable et cohérant. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:06, 25 May 2022 (UTC)<br />
:::::Oui, c'est faisable mais on devrait d'abord se poser la question de l'intérêt de faire ça. Car charger plus de javascript pour un gain nul ne me semble pas être une bonne idée. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 15:20, 25 May 2022 (UTC)<br />
:{{Ping|Estrie|Pamputt}} {{Done}} [https://lingualibre.org/index.php?title=MediaWiki%3ACommon.js&type=revision&diff=764439&oldid=764438 diff].<br />
:After investigation, I assessed the former situation was misleading. Reasoning was as follow:<br />
:1) The <code>.wb-language-fallback-indicator</code> element is here to indicate the language of a string and clean from eventual ambiguity in multilangual sites such as Wikidata.<br />
:2) The title displays the item label and its language. On Lili, the label is the word recorded, the language is the visitor's configured language OR if that label is missing, the fall back label's language. On Lingualibre, English.<br />
:3) The Recording Studio only fills up the English label.<br />
:4) Therefore, all records items' page titles, never mind the language recorded, had a misleading <code>.wb-language-fallback-indicator</code>'s value of "English".<br />
:Solution: via [[MediaWiki:Common.js]], I grab the P4's language (of the word), copy it, place it into <code>.wb-language-fallback-indicator</code>. It now display the rightful language of the string (the recorded word).<br />
:See [[Q777898]] votre <s>English</s><u>français</u>, [[Q77678]] Adi <s>English</s><u>espéranto</u>.<br />
:The code is limited to : records page in which the title has a <code>.wb-language-fallback-indicator</code>, and on this title's <code>.wb-language-fallback-indicator</code>. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:41, 27 May 2022 (UTC)<br />
<br />
<br />
== Mysterious alert message ==<br />
A case of "It works, but I don't understand why". When we are within the [[Special:RecordWizard]], if we click on another link to leave, an alert pops up to prevent accidental closing. Good! But...<br />
<br />
{| class="wikitable"<br />
|-<br />
| Actual alert on [[Special:RecordWizard]] || ''"This page is asking you to confirm that <span style="color:green">you want to leave</span> — information you’ve entered may not be saved."''<br />
|-<br />
| [https://github.com/search?l=JSON&q=org%3Alingua-libre+%22you+want+to+leave%22&type=Code Github code's string] || ''"You are about to leave this page. All unpublished audio records will be lost. Do you want to leave anyway?"'' || [https://github.com/search?l=JSON&q=org%3Alingua-libre+%22you+want+to+leave%22&type=Code Search on Github]<br />
|-<br />
| [[MediaWiki:Common.js]] code's string || ''"Do you want to leave the page? All your unsaved changes will be lost."'' || [https://lingualibre.org/index.php?search=%22you+want+to+leave%22&title=Special%3ASearch&profile=advanced&fulltext=1&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns120=1&ns121=1&ns122=1&ns123=1&ns142=1&ns143=1&ns710=1&ns711=1&ns828=1&ns829=1&ns1198=1&ns1199=1&ns2300=1&ns2301=1&ns2302=1&ns2303=1 Search on Lili]<br />
|}<br />
I have no idea where the actual alert comes from. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:05, 28 May 2022 (UTC)<br />
:Ok, google is my friend, it's browser-related :<br />
:''Websites can set up an event listener on the "beforeunload" event. Firefox displays that standard dialog in that case. Firefox won't display the dialog on its own.'' Source: [https://support.mozilla.org/en-US/questions/1304313 Support Mozilla] [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 22:18, 28 May 2022 (UTC)<br />
<br />
== Audio click bug (June) ==<br />
Investigating the audio click bug is a major priority for Lingualibre's growth, as solving it depends on this investigation.<br />
<br />
I was able to reliably reproduce the audio click bug at Wikimedia France office, on their smartphones:<br />
* Samsung Galaxy A51 (SM-A515F- Build/RP1A.200720.012)<br />
* Android 11 (màj mai 2022)<br />
* Chrome 102.0.5005<br />
Those phones are still in there office, and could be provided to a developer investigating this bug. <br />
<br />
<br clear="all"/><br />
<gallery widths="230px" heights="80px"><br />
File:LL-Q150 (fra)-Yug-communauté.wav|<br />
File:LL-Q150 (fra)-Yug-travail.wav|<br />
File:LL-Q150 (fra)-Yug-cet.wav|<br />
File:LL-Q150 (fra)-Yug-mission.wav|<br />
File:LL-Q150 (fra)-Yug-français.wav|<br />
File:LL-Q150 (fra)-Yug-Merkel.wav|<br />
File:LL-Q150 (fra)-Yug-seulement.wav|<br />
File:LL-Q150 (fra)-Yug-société.wav|<br />
File:LL-Q150 (fra)-Yug-militaire.wav|<br />
File:LL-Q150 (fra)-Yug-droit.wav|<br />
File:LL-Q150 (fra)-Yug-européens.wav|<br />
File:LL-Q150 (fra)-Yug-point.wav|<br />
File:LL-Q150 (fra)-Yug-n'est.wav|<br />
File:LL-Q150 (fra)-Yug-américain.wav|<br />
File:LL-Q150 (fra)-Yug-centre.wav|<br />
File:LL-Q150 (fra)-Yug-problème.wav|<br />
File:LL-Q150 (fra)-Yug-prix.wav|<br />
File:LL-Q150 (fra)-Yug-annoncé.wav|<br />
File:LL-Q150 (fra)-Yug-toute.wav|<br />
File:LL-Q150 (fra)-Yug-rencontre.wav|<br />
File:LL-Q150 (fra)-Yug-gaz.wav|<br />
File:LL-Q150 (fra)-Yug-présidentielle.wav|<br />
File:LL-Q150 (fra)-Yug-près.wav|<br />
File:LL-Q150 (fra)-Yug-car.wav|<br />
File:LL-Q150 (fra)-Yug-relations.wav|<br />
File:LL-Q150 (fra)-Yug-conférence.wav|<br />
File:LL-Q150 (fra)-Yug-Vladimir.wav|<br />
File:LL-Q150 (fra)-Yug-sud.wav|<br />
File:LL-Q150 (fra)-Yug-quotidien.wav|<br />
File:LL-Q150 (fra)-Yug-capitale.wav|<br />
File:LL-Q150 (fra)-Yug-nos.wav|<br />
File:LL-Q150 (fra)-Yug-problèmes.wav|<br />
File:LL-Q150 (fra)-Yug-qu'il.wav|<br />
File:LL-Q150 (fra)-Yug-écrit.wav|<br />
File:LL-Q150 (fra)-Yug-visite.wav|<br />
File:LL-Q150 (fra)-Yug-Medvedev.wav| <br />
</gallery><br />
<br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:15, 9 June 2022 (UTC)<br />
<br />
== Language duplicata ==<br />
Ladino / Judeo-Spanish [[Q277]] & [[Q786602]] are duplicated. The second one I just imported has far more content. What should we do with these 2 ducplicate items ? cc [[user:VIGNERON|VIGNERON]], [[user:Pamputt|Pamputt]]. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:38, 23 June 2022 (UTC)<br />
:They should be merged, I did it with [[Special:MergeItems]]. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 10:30, 25 June 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=Q786602&diff=773006
Q786602
2022-06-25T10:26:22Z
<p>VIGNERON: /* wbcreateredirect:0||Q786602|Q277 */</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Q277&diff=773005
Q277
2022-06-25T10:26:22Z
<p>VIGNERON: /* wbmergeitems-from:0||Q786602 */</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Q786602&diff=773004
Q786602
2022-06-25T10:26:21Z
<p>VIGNERON: /* wbmergeitems-to:0||Q277 */</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=User_talk:VIGNERON&diff=765464
User talk:VIGNERON
2022-06-03T19:38:41Z
<p>VIGNERON: /* Review needed */</p>
<hr />
<div>== Gonna to move it ! :D ==<br />
{{ping|Vigneron|Pamputt}} Hello, I think it would be better to rename [[LinguaLibre:Problèmes_dans_la_mise_à_jour_des_statistiques]] into [[LinguaLibre:Events/2021 statistics update]]. This page is atypical on lingualibre. One way to better host it is to see it as a coding sprint or hackathon '''''event''''' with both volunteers & pro collaborating. Ok with it ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:38, 12 February 2021 (UTC)<br />
:{{ping|Yug}} it's not exactly an "event" but yes, I agree this would be a more suitable name. Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:40, 15 February 2021 (UTC)<br />
::Vigneron, can I edit a bit your message on the bistro for readability ? :) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 16:28, 15 February 2021 (UTC)<br />
:::Moved the page to align it with other recent report. We now have :<br />
:::* [[LinguaLibre:Technical board/Reports/2021/Problèmes dans la mise à jour des statistiques]] <br />
:::* [[LinguaLibre:Technical board/Reports/2021/First progress report with WikiValley and VIGNERON]].<br />
:::Need better categorization tho. {{ping|Pamputt}}. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 20:31, 22 February 2021 (UTC)<br />
<br />
== Wikidata Lexeme team ==<br />
Hello Vigneron, it could soon be the time to call for wikidata lexeme folks to invade a bit Lingualibre. It would be interesting if we get 2~3 users, with a team dynamic, manipulating the concepts of LL's resources, Wikidata, bots. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 23:25, 21 February 2021 (UTC)<br />
<br />
== User-rights ==<br />
* [[:meta:Talk:Lingua_Libre/Special_user-rights]]<br />
* [[LinguaLibre:User_rights]]<br />
* {{SERVER}}/w/api.php?action=query&list=users&ususers=Yug|Dragons_Bot|VIGNERON&usprop=groups|editcount|registration<br />
If this site is expected to be the final database I'am interested to get back my magic broom, so I may edit [[MediaWiki:Gadget-RecentNonAudio.js]] and other, which I currently cannot edit. It's a bit strange because I'm officially a sysops already. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:56, 16 April 2021 (UTC)<br />
:Oh..... With 1.32+ I need ''interface-admin'' user-rights.<br />
:So you, VIGNERON, should be able to edit the Gadget. See https://www.mediawiki.org/wiki/MediaWiki_1.32/interface-admin [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:47, 16 April 2021 (UTC)<br />
::We virtually have no vandalims here, and nearly no page deletions. Most admins are mainly using ''interface-admin'' tools : using write access to protected page. It may be efficient to grant ''interface-admin'' to all (active) admins. --[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:09, 16 April 2021 (UTC)<br />
:::{{ping|VIGNERON|Pamputt}}. I am admin but can't edit MediaWiki:Common.css due to new user-rights separations :<br />
<pre><br />
You do not have permission to edit this page, for the following reason:<br />
You do not have permission to edit this CSS page because it may affect all visitors.<br />
Permissions for editing of sitewide CSS/JS/JSON files were recently separated from the `editinterface` right.<br />
If you do not understand why you are getting this error, see mw:Special:MyLanguage/MediaWiki_1.32/interface-admin.<br />
</pre><br />
Can one of you help all LL admins to get the proper `editinterface` right ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:19, 25 April 2021 (UTC)<br />
:{{ping|Yug}} I have granted you `editinterface` right. This right is needed to edit JS and CSS pages, not others. So I will not grant all admins here automatically because most of them do not need this right. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:07, 26 April 2021 (UTC)<br />
::We are understaffed. CSS needs a major revamp, so we need people to test (on their CSS) and then copy to Common.css. The less friction the better.<br />
::I also suspect the current situation is due to 0x010C who has willfully removed native CSS the code he started with.<br />
::Does WikiValley has an opinion on how we should process to restore a decent CSS ?<br />
::Should we go with Common.css ?<br />
::Should we look for and identify on github the removed native CSS, then restore them ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:30, 27 April 2021 (UTC)<br />
<br />
== Dust bug and BlueLL ==<br />
Hello Vigneron,<br><br />
The emerging dust bug seems widespread, we need to notify our contributors via the sitenotice.<br />
I therefore made some edits to Github BlueLL in order to restore our sitenotice. Could Wikivalley git clone BlueLL to the server, so it deployed my fix and we can display a notification to our contributors ? If not in their scope, please tell me asap so I contact Mickael. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:28, 27 April 2021 (UTC)<br />
:Your changes has been deployed on the server, the sitenotice seems to work now. [[User:Seb35|Seb35]] ([[User talk:Seb35|talk]]) 13:37, 27 April 2021 (UTC)<br />
<br />
== Documentation technique ==<br />
<br />
[[File:2018-12_Lingua_Libre_webrequest_flow.png|thumb]]<br />
Salut VIGNERON, comme tu avais créé la page [[Help:Documentation opérationelle Mediawiki]], est ce que tu penses pouvoir jeter un œil au schéma ci-contre (normalement ci-contre mais à cause du problème de CSS, c'est ci-dessus). Je pense que c'est toujours d'actualité mais peut-être qu'un oeil technique pourrait vérifier que c'est le cas ou qu'il n'y a pas d'erreur. Peut-être que {{u|Seb35}} est aussi intéressé. L'idée c'est d'avoir une doc technique aussi claire et exhaustive que possible à la fin de votre prestation. En tout cas merci d'avance. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 20:35, 3 June 2021 (UTC)<br />
:Salut [[User:Pamputt|Pamputt]],<br />
:Oui, c'est exactement l'idée que nous avons ; nous avons crée cette page de documentation, notamment pour Michael et au cas où il y aurait à nouveau un problème (ce que je n'espère pas mais il vaut mieux être prêt au cas où). Pour ce schéma, nous avons d'ores et déjà prévu de la vérifier, on prévoit de le faire la semaine prochaine (de même Michael devrait tester la doc pour s'assurer qu'elle est claire et correcte).<br />
:PS: merci pour la mise en forme et je me renote le problème de CSS.<br />
:Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:39, 4 June 2021 (UTC)<br />
::Sur le même sujet, je ne sais pas si ça vaut le coup de mettre à jour [[LinguaLibre:Changelog]] (je ne sais pas à quel point vous avez touché aux codes de Lingua Libre). Peut-être que ça vaut le coup d'augmenter le numéro de version pour le passage à Mediawiki 1.35. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:04, 16 June 2021 (UTC)<br />
<br />
== Besoin d'aide pour une requête ==<br />
<br />
Salut VIGNERON, j'aurais besoin de ton aide pour récupérer le lieu d'apprentissage de la langue d'un enregistrement. Par exemple, si je prends {{Q|590326}}, on voit que l'enregistrement est en {{Q|4901}} et a été effectué par {{Q|225315}}. Sur son élément, je voudrais récupérer le fait qu'il a appris le chaoui à Batna (code Q338844 sur Wikidata). <br />
<br />
Donc, en résumé, je suis à la recherche d'une requête qui à partir d'un enregistrement récupère la langue du mot et le nom du locuteur puis vérifie si le locuteur parle cette langue (c'est normalement toujours le cas) et récupère un éventuel lieu d'apprentissage {{P|15}}. C'est dans tes cordes ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:03, 12 July 2021 (UTC)<br />
:Si jamais tu passes par là, ne t'embête pas, j'ai trouvé la réponse. Je me suis servi de [[Help:SPARQL#All_recordings_sorted_by_language_and_by_level_skill|ça]] :-) [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:16, 14 July 2021 (UTC)<br />
::Salut [[User:Pamputt|Pamputt]], désolé j'avais vu ton premier message mais j'étais occupé par ailleurs. Content de voir que tu a réussi par toi-même, c'est encore la meilleure façon d'apprendre ;) Par curiosité personnelle et car cela pourrait servir à d'autres (les qualificateurs ne sont pas toujours naturels à requêter pour certain-e-s), pourrais-tu partager cette requête quelque part ?<br />
::Sinon, ta remarque m'a fait penser à une simple requête de vérification :<br />
::<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P5 ?speaker .<br />
?record prop:P4 ?lang .<br />
MINUS { ?speaker prop:P4 ?lang }<br />
}</syntaxhighlight><br />
::Il y a actuellement 1234 enregistrements par 16 personnes (ce qui est déjà très peu) dont beaucoup de faux-positifs (typiquement, une langue et un de ses dialectes qui sont formellement différent par exemple).<br />
::Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:19, 16 July 2021 (UTC)<br />
:::Pas de soucis. En fait je cherchais à prendre en charge {{P|15}} dans Lingua Libre Bot (faire afficher le lieu d'apprentissage d'une langue à côté de l'enregistrement plutôt que le lieu de résidence actuel du locuteur si le lieu d'apprentissage est renseigné). Donc ça ressemble à <br />
<syntaxhighlight lang="sparql"><br />
<br />
SELECT DISTINCT<br />
?record ?speaker ?speakerLabel<br />
?language ?learningPlace ?languageLevel<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P4 ?language .<br />
?record prop:P5 ?speaker .<br />
<br />
?speaker llp:P4 ?speakerLanguagesStatement .<br />
?speakerLanguagesStatement llv:P4 ?speakerLanguages .<br />
OPTIONAL { ?speakerLanguagesStatement llq:P15 ?learningPlace . }<br />
OPTIONAL { ?speakerLanguagesStatement llq:P16 ?languageLevel . }<br />
<br />
FILTER( ?speakerLanguages = ?language) .<br />
FILTER( !isBlank(?learningPlace )) .<br />
<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "en" .<br />
}<br />
}</syntaxhighlight><br />
:::Il faut aussi ajouter d'autres filtres (nom du locuteur, date, etc.) sinon ça se fini en timeout. Et on peut aussi filtrer les résultats qui retournent une valeur inconnue. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 08:26, 16 July 2021 (UTC)<br />
::::Et concernant ta requête. C'est aussi très intéressant. Par contre, je ne sais pas trop ce qu'on pourrait en faire et comment gérer de tels enregistrements. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 08:33, 16 July 2021 (UTC)<br />
:::::[[User:Pamputt|Pamputt]] j’imagine que ma requête pourrait servir pour une patrouille a posteriori des enregistrements. Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 09:36, 16 July 2021 (UTC)<br />
<br />
== Nouveau problème de requête ==<br />
Bonjour VIGNERON. Bon, je te sollicite à nouveau parce que là, je n'y comprends vraiment rien. J'essaie simplement de trouver tous les enregistrements qui ont une déclaration avec {{P|33}} (en gros ce qui est présent dans [[Special:WhatLinksHere/Property:P33]]). Pour cela, j'ai tenté plusieurs choses mais j'obtiens uniquement 5 résultats. Par exemple, cette requête toute simple devrait me trouver {{Q|53451}}, mais en fait non, elle me renvoie juste cinq éléments.<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?record ?issue<br />
WHERE {<br />
?record prop:P33 ?issue .<br />
<br />
}</syntaxhighlight><br />
Une idée de ce que je fais « mal » ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:00, 18 July 2021 (UTC)<br />
:Hmm, en regardant de plus près toutes les pages qui utilisent {{P|33}}, ces 5 cinqs pages sont les seules qui n'ont pas de qualificatif ? Ca expliquerait le problème ? Si oui, comment récupère aussi les éléments pour lesquels P33 a des qualificatifs ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:03, 18 July 2021 (UTC)<br />
::{{ping|Pamputt}} (désolé pour le délai, je suis en plein déménagement en ce moment).<br />
::Mhhh, étrange. Cela ne doit pas (ou plutôt ne devrait pas) venir des qualificatifs (''prop:'' fonctionne qu'il soit présent ou non pour d'autres propriétés).<br />
::Sauf erreur, et vu que les 5 résultats sont plus anciens, il s'agit plutôt des l'''updater'' du blazegraph qui est tombé et qui ne mets plus à jour les données {{ping|Seb35|WikiLucas00}}<br />
::Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 16:41, 30 July 2021 (UTC)<br />
:::Mise à jour : c'était bien juste l'updater. Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 16:57, 30 July 2021 (UTC)<br />
::::Pas grave pour le délai :) et merci d'avoir cherché. Pour les prochaines fois où ça se produit, est ce que la procédure pour résoudre ce problème est donnée quelque part ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:04, 30 July 2021 (UTC)<br />
:::::Pour compléter, je viens de faire en sorte que l’updater soit redémarré automatiquement quand il s’arrête (sauf si action volontaire bien sûr) et ai mis la même chose pour Blazegraph tant qu’à faire [https://github.com/lingua-libre/operations/commit/d03629b37cbe189003c57a07ddddc3806458fbb7] ; ça devrait limiter assez fortement ce type d’erreur et s’il s’arrête ça sera dû à un problème grave. Cette fois, comme plusieurs fois auparavant, l’updater s’arrête quand il n’arrive pas à contacter Wikibase (qui est sur un autre serveur) pendant 10 secondes, ce qui est souvent dû à des problèmes réseau intermittents. ~ [[User:Seb35|Seb35]] [[User talk:Seb35|<small>[^_^]</small>]] 09:09, 2 August 2021 (UTC)<br />
:::::Je pense avoir trouvé comment requêter la date de la dernière écriture dans Blazegraph, mais n’en suis pas sûr puisque je n’ai pas trouvé de doc (mais ça semble cohérent avec les derniers éléments ajoutés) ~ [[User:Seb35|Seb35]] [[User talk:Seb35|<small>[^_^]</small>]] 09:18, 2 August 2021 (UTC)<br />
<syntaxhighlight lang="sparql"><br />
SELECT *<br />
WHERE {<br />
<https://lingualibre.org> schema:dateModified ?d<br />
}<br />
</syntaxhighlight><br />
:::::Ah, et sur la façon de redémarrer si besoin, c’est documenté sur [[Help:Documentation opérationelle Mediawiki#Gestion des services]] : exécuter les commandes avec "status" pour diagnostic, puis avec "start" sur les services qui sont arrêtés (puis à nouveau "status" pour vérifier). Je vous laisse mieux publiciser ça dans la communauté si besoin. ~ [[User:Seb35|Seb35]] [[User talk:Seb35|<small>[^_^]</small>]] 09:28, 2 August 2021 (UTC)<br />
<br />
== [[Help:SPARQL_2]] ==<br />
Hello Vigneron,<br><br />
This advanced level page is as of now a simple place holder for large (slow), complex, federated, wikidata queries. To gather ideas. I wont work on it in December. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:17, 21 December 2021 (UTC)<br />
<br />
== Review needed ==<br />
Hello VIGNERON, please review my [https://lingualibre.org/index.php?title=User:VIGNERON/common.js&action=history edit] to your common.js. Minor, only in comments, but I just scanned your script without truly inspecting it. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:49, 22 January 2022 (UTC)<br />
:Hello Vigneron,<br />
:Does [[User:VIGNERON/common.js|your word generator for Breton]] works ? I was not able to make my copy / adaptation of your code work. Rdrg109 is interested in this tech but I have no successful coding experience on this side. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:15, 2 June 2022 (UTC)<br />
::Hi {{ping|Yug}},<br />
::To be honest, I have no idea where it exactly came from and how it was supposed to work. Plus, it could easily be replace by a SPARQL query in ExternalTools. Go on the RecordWizard, on the 3rd screen chose "ExternalTools" option (bottom right) and paste the Wikdiata query URL "https://query.wikidata.org/#SELECT * WHERE {%0A%20 %3Fid dct%3Alanguage wd%3AQ12107 %3B wikibase%3Alemma %3Flabel .%0A}%0ALIMIT 10" (Q12107 being Breton, replace it to change the language). I'm notifying {{ping|Rdrg109}} too.<br />
::Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 19:38, 3 June 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=User:VIGNERON/common.js&diff=765463
User:VIGNERON/common.js
2022-06-03T19:35:58Z
<p>VIGNERON: old code (no idea where it exaclty came from and how it was supposed to work), could easily be replace by a SPARQL query in ExternalTools</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Help_talk:Translate&diff=750045
Help talk:Translate
2022-03-20T09:44:01Z
<p>VIGNERON: /* Mise à jour */ new section</p>
<hr />
<div>== QueryViz ==<br />
I am not sure how to translate messages coming from QueryViz, such as "... Loading ..." (visible on [[LinguaLibre:Stats]] for example). For now, I have created [https://github.com/lingua-libre/QueryViz/blob/master/i18n/fr.json fr.json] on Github. Not sure that is sufficient. Yet, if after pulling this modification on the server, the text appears in French here, I will add this information to this page. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 13:25, 23 January 2022 (UTC)<br />
<br />
== Mise à jour ==<br />
<br />
Bonjour,<br />
<br />
Je notifie les participants à cette page {{ping|Pamputt|Eihel|WikiLucas00|0x010C}}.<br />
<br />
Je suis en train de relire cette page et je m'interroge en particulier sur la partie #System messages où je ne comprends pas la présence de certains messages Mediawiki. Le plus évident est [[MediaWiki:Talk]] qui est un message classique de Mediawiki, traduit sur translatewiki (TWN) depuis 2007, y aurait-il une raison particulière pour avoir [[MediaWiki:Talk/fr]] en local identique à la traduction sur TWN ? Idem par exemple pour [[MediaWiki:Privacy]] (qui sauf erreur n'est que sur TWN et jamais en local). Enfin, il y a quelques cas où la traduction locale et sur TWN diffère comme [[MediaWiki:Contact]] dont je ne sais pas trop quoi faire...<br />
<br />
Inversement, il existe des messages en local qui ne sont pas listés ici (cf. une comparaison avec cette [https://lingualibre.org/wiki/Special:AllPages?from=&to=&namespace=8 page spéciale], par exemple [[MediaWiki:Aboutpage]])<br />
<br />
Et de façon plus générale et moins évidente, est-ce que les autres messages qui n'existe pas sur TWN ne serait pas transférable (au moins en partie) là-bas ? (ce serait sans doute plus simple pour tout le monde si tout était en un endroit, TWN et par parfois sur TWN parfois en local).<br />
<br />
Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 09:44, 20 March 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:Translate&diff=750043
Help:Translate
2022-03-20T09:26:06Z
<p>VIGNERON: precision</p>
<hr />
<div><languages/><br />
{{#SUBTITLE:<br />
<translate><!--T:1--> You want to help us to translate '''Lingua Libre''' in your language? That's a great news! As this website runs on MediaWiki, the software used by Wikipedia, it can be translated in a lot of language. Here are the places where you could help translating the website.</translate><br />
}}<br />
<translate><br />
== Translatewiki.net == <!--T:2--><br />
<br />
<!--T:3--><br />
[https://translatewiki.net Translatewiki.net] is an external wiki dedicated to translation. It manages especially the translation of the core of MediaWiki, and many of its extensions.<br />
<br />
==== What ==== <!--T:10--><br />
<br />
<!--T:11--><br />
Most of the core interface of this wiki plus some specific extensions like:<br />
* RecordWizard (it is the core extension of Lingua Libre, the complete multi-step process allowing mass recording of pronunciation files);<br />
* QueryViz (the extension to display sparql queries results inside wiki pages)<br />
<br />
==== How to edit ==== <!--T:12--><br />
<br />
<!--T:13--><br />
Login into translatewiki.net, then go to the translation interface for the ''Record Wizard'': <tvar|translatewiki>https://translatewiki.net/w/i.php?title=Special:Translate&group=mwgithub-recordwizard</>.<br />
<br />
Those messages are updated once a week.<br />
<br />
== System messages == <!--T:4--><br />
<br />
==== What ==== <!--T:5--><br />
<br />
<!--T:14--><br />
* The main page;<br />
* RecordWizard's tutorial<br />
* Navigation items</translate><br />
<br />
<center><big><translate><!--T:23--><br />
'''All messages are listed below'''<br />
</translate></big></center><br />
{{colapse|1=<translate><!--T:24--> System messages</translate>|2=<br/><br />
* [[MediaWiki:Recordwizard{{#translation:}}]]<br />
* [[MediaWiki:Talk{{#translation:}}]]<br />
* [[MediaWiki:Menu-statistics{{#translation:}}]]<br />
* [[MediaWiki:Menu-library{{#translation:}}]]<br />
* [[MediaWiki:Help{{#translation:}}]]<br />
* [[MediaWiki:About{{#translation:}}]]<br />
<br />
* [[MediaWiki:Privacy{{#translation:}}]]<br />
* [[MediaWiki:Aboutwmfr{{#translation:}}]]<br />
* [[MediaWiki:Contact{{#translation:}}]]<br />
<br />
* [[MediaWiki:Bluell-record{{#translation:}}]]<br />
<br />
* [[MediaWiki:Lang{{#translation:}}]]<br />
* [[MediaWiki:Group-translationadmin-member{{#translation:}}]]<br />
<br />
* [[MediaWiki:upload2Commons{{#translation:}}]]<br />
* [[MediaWiki:upload2Commons-desc{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-summary{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-extended-description{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-example{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-localfilename{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-filekey{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-filename{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-comment{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-tags{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-text{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-ignorewarnings{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-removeafterupload{{#translation:}}]]<br />
* [[MediaWiki:apihelp-upload-to-commons-param-logtags{{#translation:}}]]<br />
* [[MediaWiki:apierror-stashrequirefilename{{#translation:}}]]<br />
* [[MediaWiki:apierror-removeonlystash{{#translation:}}]]<br />
* [[MediaWiki:log-name-remoteupload{{#translation:}}]]<br />
* [[MediaWiki:log-description-remoteupload{{#translation:}}]]<br />
* [[MediaWiki:logentry-remoteupload-stashedfile{{#translation:}}]]<br />
* [[MediaWiki:logentry-remoteupload-file{{#translation:}}]]<br />
}}<br />
<br />
<translate><br />
<br />
==== How to edit ==== <!--T:15--><br />
<br />
<!--T:16--><br />
System messages are only editable by administrators. If you want to add or edit a translation, just add a request on [[<tvar|1>Special:MyLanguage/LinguaLibre:Administrators'_noticeboard</>|this page]]. Administrators will make the change as soon as they can.<br />
<br />
== On-wiki translation == <!--T:8--><br />
<br />
==== What ==== <!--T:9--><br />
<br />
<!--T:20--><br />
* All help pages;<br />
* All ''meta'' pages;<br />
* ...<br />
<br />
==== How to edit ==== <!--T:21--><br />
<br />
<!--T:22--><br />
This is managed using the ''Translate'' extension of Mediawiki. Every page requiring a translation has a link to do it at the top, but you can also find, review and translate every texts that need one on [[Special:Translate|this special page]]. Edits made will be immediately available to visitors.<br />
<br />
<!--T:26--><br />
If a page is not available for translation, you can ask a [[<tvar|ta>Special:MyLanguage/LinguaLibre:Translation_administrators</>|translation administrator]] or [[<tvar|a>Special:MyLanguage/LinguaLibre:Administrators</>|administrator]] to mark the page for translation.<br />
</translate><br />
<br />
'''<translate><!--T:25--> The full list of pages marked for translation is available [[<tvar|pt>Special:PageTranslation</>|here]] and the progess statistics for your language are available [[<tvar|ls>Special:LanguageStats</>|here]].</translate>'''<br />
<br />
<translate><br />
<br />
== Wikibase items == <!--T:6--><br />
<br />
==== What ==== <!--T:7--><br />
<br />
<!--T:17--><br />
* The languages names inside the RecordWizard are extracted from the labels of local language items, which are imported from Wikidata.<br />
<br />
==== How to edit ==== <!--T:18--><br />
<br />
<!--T:19--><br />
You could edit directly the local item of a language, but the best way to do it is to edit Wikidata. Once logged there, go to the corresponding item (you can find a link to it through our local items, inside the {{P|12}} property, e.g. [[Q21#P12]] for French). Edits there are imported on Lingua Libre once per week.</translate><br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:RecordWizard_manual&diff=748627
Help:RecordWizard manual
2022-03-13T13:10:56Z
<p>VIGNERON: update</p>
<hr />
<div><languages/><br />
<translate>== Tutorial == <!--T:1--></translate><br />
[[File:Lingua Libre - Record Wizard - Tutorial a.png|thumb|<translate><!--T:45--> Allow the Record Wizard to access your microphone.</translate>]]<br />
<translate><br />
<!--T:2--><br />
At this step, the Record Wizard checks whether your microphone works fine.<br />
<br />
<!--T:46--><br />
First of all, allow your web browser to access your microphone. If you did not allow the access, reload the page in order the web browser asks you again.</translate><br />
<br />
[[File:Lingua Libre - Record Wizard - Tutorial b.png|thumb|<translate><!--T:47--> Tutorial step.</translate>]]<br />
[[File:Lingua Libre - Record Wizard - Tutorial c.png|thumb|<translate><!--T:48--> After clicking on "Start the test", the Record Wizard asks you to say something.</translate>]]<br />
<translate><br />
<!--T:3--><br />
Click on the "Start the test", say something and listen to what you said. If you do not hear anything, [[<tvar|1>Special:MyLanguage/Help:Configure your microphone</>|configure your microphone]].</translate><br />
{{Clear}}<br />
<br />
<translate><br />
== Speaker == <!--T:4--></translate><br />
[[File:Lingua Libre - Record Wizard - Speaker.png|thumb|<translate><!--T:49--> Speaker step.</translate>]]<br />
<translate><br />
=== Spoken languages === <!--T:5--><br />
<br />
<!--T:6--><br />
In this section you will be able to select the language(s) you are proficient in, but most importantly the language(s) in which you would like to record yourself. <br />
<br />
=== Licence options === <!--T:7--><br />
<br />
<!--T:8--><br />
When getting to the licence selection section, you get five options, namely: <br />
* Creative commons attributions ShareAlike 4.0<br />
* Creative commons attributions ShareAlike 3.0<br />
* CC0 1.0 Universal Public Domain Dedication <br />
* Creative commons Attribution 4.0<br />
* Creative commons Attribution 3.0<br />
If you do not know about any of the different uses you can make out of these, then it is best if you let the default option "Creative commons attributions ShareAlike 4.0". However, if you wish to know more about how these licences diverge from each other, then [https://creativecommons.org/licenses/ this webpage] might help.</translate><br />
{{Clear}}<br />
<br />
<translate><br />
== Details == <!--T:9--><br />
</translate><br />
[[File:Lingua Libre - Record Wizard - Details.png|thumb|<translate><!--T:50--> Details step.</translate>]]<br />
<br />
<translate><br />
<!--T:10--><br />
In this section you will be able to submit the word(s) you would like to say aloud later. <br />
<br />
=== You record your words in === <!--T:11--><br />
<br />
<!--T:12--><br />
There are several ways to get there, but first you will have to select the language you wish to register yourself in, among the list of languages you selected in your profile. If you only submitted one language in your profile then you don't need to make that choice.<br />
<br />
<br />
<br />
=== Submitting word(s) === <!--T:13--><br />
</translate><br />
[[File:Lingua Libre - Record Wizard - Details - Local List.png|thumb|<translate><!--T:51--> Clicking on "Local list" opens a popup.</translate>]]<br />
[[File:Lingua Libre - Record Wizard - Details - Local List b.png|thumb|<translate><!--T:52--> Click on the list you are interested in and validate by clicking on "Done".</translate>]]<br />
<br />
<translate><br />
<!--T:14--><br />
These are the different ways to submit the word(s) you would like to pronounce. You can either: <br />
* type your own word(s) directly in the blank space and adding as many as you want by clicking in the blue sum button that's next to it. <br />
* In case you do not feel really inspired at that moment, you can reach out to the three methods Lingua Libre puts at your disposal in the bottom right corner, namely the "Local lists", "Nearby", "Wikimedia Category" and "ExternalTools":<br />
** Local lists: this feature enables you to use any list that has already been created by another user in Lingua Libre. In that case you will be able to uplaod the list by submitting its title behind the code that appears under the Title section. You should not erase that code but rather write the title after it. <br />
** Nearby: the following feature is based on the use of wikidata which locates your computer. You can enter your location in two ways: either by submitting it manually in case you know what latitude and longitude you find yourself in, or more simply by clicking on the position pictogram below. Wikidata will pull out accordingly a couple of words very closely related to your geographical position. There is no way however to adjust the miles around. <br />
** Wikimedia Category: the idea behind this is for you to submit a key word in the Category name section, and then a bunch of other words related to it will pop up, pulled out either from wikipedia or wikitionary, depending on which you select as a source. Additionally, there is also the option for you to select the number of those related words you wish to see in your recording list in the "Numbers of words to get" section.<br />
** ExternalTools: you can paste an external URL from PetScan or the Wikidata query service (with "id" and "label" as variables).<br />
<br />
=== Shuffle list === <!--T:15--><br />
</translate><br />
<br />
[[File:Lingua Libre - Record Wizard - Details b.png|thumb|<translate><!--T:53--> All the words you will record are listed on the left.</translate>]]<br />
<br />
<translate><br />
<!--T:16--><br />
Once you have selected the list, if you do not like the order in which the words are set, then you can shuffle it by clicking on the Shuffle list button above the three features we have seen right above.</translate><br />
<br />
{{Clear}}<br />
<translate><br />
== Studio == <!--T:17--><br />
</translate><br />
<br />
[[File:Lingua_Libre_-_Record_Wizard_-_Studio.png|thumb|<translate><!--T:54--> Studio step.</translate>]]<br />
<br />
<translate><br />
<!--T:18--><br />
This is the step where you record the words that you have entered at the Details step. To start recording, click on the microphone button. Then pronounce the first word of the list. The Record Wizard will automatically pass to the next word to pronounce once it detects a blank.<br />
<br />
<!--T:19--><br />
If you want to stop recording, you can click on the Stop button<br />
<br />
<!--T:20--><br />
If you do not know how to pronounce a word, you can skip it and record the next one by clicking on the Skip button.<br />
<br />
<!--T:21--><br />
At any time, you can click on the "Next" button to publish all the words you have already recorded (even if you did not record all the words in the list).<br />
<br />
===List on the left=== <!--T:22--><br />
<br />
<!--T:23--><br />
For each recording, if you click on one word, you can listen to it. In case the recording is not good, you can record it again or delete it by clicking on "circle arrow" button.<br />
<br />
=== Keyboard shortcuts === <!--T:24--><br />
<br />
<!--T:25--><br />
* Left arrow: go back to the word you have just recorded<br />
* Right arrow: pass to the next word without recording the current word<br />
* Space key: play/pause<br />
* Delete key: delete a recording</translate><br />
<br />
{{Clear}}<br />
<translate><br />
== Publish == <!--T:26--><br />
<br />
<!--T:27--><br />
On the Publish screen, there are three parts :<br />
* the list of words<br />
* an audio player<br />
* a navigation bar<br />
<br />
=== List of words === <!--T:28--><br />
<br />
<!--T:29--><br />
Words are listed in the same order. Words which have not been recorded are not shown. Go back to the previous screen (Studio) to get the whole list back and record more audio from the list.<br />
<br />
<!--T:30--><br />
There is a vertical scrolling bar if the number of words exceed 14.<br />
<br />
<!--T:31--><br />
When you hover on a word, the line is highlighted but the word is not selected. Select one word to check the recording in the audio player on the right by clicking on the word. When selected, the word is highlighted in light-grey and a black triangle appears next to the word. '''This arrow is not a play button'''. The word is automatically played.<br />
<br />
<!--T:32--><br />
On the right side of each word, the tick box let you select which word you want to publish on Wikimedia Commons. The total number of words in the word counter updates accordingly.<br />
<br />
=== Audio player === <!--T:33--><br />
<br />
<!--T:34--><br />
The word is displayed next to the audio player. By pressing on the left and right arrows, navigate and select the previous or the next word on the list.<br />
<br />
<!--T:35--><br />
The audio player is on the right side. Depending on the browser you are using, the audio player may look different.<br />
* The recording can be played.<br />
* The length of the recording is displayed in minutes and seconds. Usually, recordings are shorter than a second: the display may remain at 0:00.<br />
* There is a small bar to navigate in the audio recording.<br />
* The speaker icon change the volume of the audio player.<br />
<br />
<!--T:36--><br />
On Firefox, right click on the player to download the file, change the speed of the player, play the audio in a loop.<br />
On Edge, click on the three dots to open a menu to download the file on your device.<br />
<br />
=== Completion bar and word counter === <!--T:37--><br />
<br />
<!--T:38--><br />
The word counter displays two numbers.<br />
The first number is the number of successful uploads to Wikimedia Commons.<br />
The second number is the number of words with a recording. This is not necessarily the number of words in the list of words defined in the previous screen.<br />
<br />
<!--T:39--><br />
When you pressed on the Publish button, a small waiting icon show up next the word being uploaded and under the word counter. When all recordings have been done, make sure every recording has been uploaded to Wikimedia Commons. The number of successful upload (on the left) should be equal to the number of recordings (on the right).<br />
<br />
<!--T:40--><br />
When there is an error on the upload of one or multiple recording, there is an exclamation mark below the word counter. Reupload by pressing '''''retry failed upload''''' button on the navigation bar.<br />
<br />
=== Navigation bar === <!--T:41--><br />
<br />
<!--T:42--><br />
There are three buttons on the navigation bar.<br />
* Click on '''''Cancel''''' to go back to the first screen (Tutorial). A confirmation window shows up. If you go back to the Tutorial screen, every recording not published yet will be lost. <br />
* The '''''Previous''''' button brings you back to the fourth screen (Studio).<br />
* The '''''Publish on Wikimedia Commons''''' button publish the recordings to Wikimedia Commons.<br />
<br />
<!--T:43--><br />
If there is an error during the upload of one or multiple recordings, the button :<br />
* '''''retry failed upload''''' allows you to retry the upload of files to Wikimedia Commons.<br />
If Internet connection is broken, try to re-establish a reliable internet connection and press the button.<br />
<br />
<!--T:44--><br />
After the audio recordings have been sent to Wikimedia Commons, new options replaced the buttons :<br />
* '''''Check your uploads on Wikimedia Commons''''' is a link to the special page Special:ListFiles on Wikimedia Commons. <br />
* '''''Record more words''''' brings you to the third screen (Details) to record more words. If some words of the same language were not recorded in the Studio screen, and did not appear in the Publish screen, they will show up again on the Details screen.</translate><br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL&diff=743128
Help:SPARQL
2022-02-20T11:29:27Z
<p>VIGNERON: /* Records */ example of Commons SPARQL query</p>
<hr />
<div>{{#Subtitle:'''Help:SPARQL''' gathers a list of basic SPARQL queries in the context of Lingua Libre, demoed and ready to test, together with beginners-friendly knowledges, inline-comments, introductions to concepts, code snippets and few tools. This page allows users not familiar with SPARQL to rapidly learn the basics of SPARQL, query the LinguaLibre database, and to download or directly feed that data to an application. To fit with most frequent usages, the page lightly lean toward web developpement and begginer's Javascripts skill.}}<br />
<br />
{{Draft|December 2021 rewriting : '''work in progress, '''please do not translate yet'''.<br />
<div style{{=}}"text-align:left;"><br />
# {{Done}} Gather SPARQL queries related to: core, speakers, languages, audios.<br />
# {{Done}} '''NOW/Opened:''' <s>De-Westernization, replacing Q21 (French) by Q34 (Marathi) and Q42 (User:0x010C) by Q445757 (User:SangeetaRH).</s><br />
# '''NOW/Opened:''' General content review. You may help by: a) reading and copy-editing the page's English, b) testing queries on [https://lingualibre.org/bigdata/#query LLQS], edit in or [[Help talk:SPARQL|discuss improvements]], <s>3) increase comments' concistency</s>. <br />
# Legend: ✅ pretty clean example, approved ; 🇶 minor aspects to improve, see hidden comment ; ❌ query too heavy to run in this page.<br />
# '''Later/not yet:''' translations.<br />
<!-- # '''Later:''' Improve Base section with core SPARQL concepts ? --><br />
Help welcome.<br />
</div><br />
}}<br />
<br />
== Base ==<br />
=== Useful elements ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: auto 3em auto auto;width:60%"|<br />
* [[Special:ListProperties]] – exhaustive list of LinguaLibre's Wikibase properties.<br />
* [[LinguaLibre:List of languages]] – exhaustive list of LinguaLibre's languages<br />
||<br />
<query _pagination="4" ><br />
#All properties with descriptions and aliases and types<br />
SELECT ?property ?propertyLabel ?propertyDescription<br />
# ?propertyType<br />
# ?propertyAltLabel<br />
WHERE {<br />
?property wikibase:propertyType ?propertyType .<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }<br />
}<br />
ORDER BY ASC(xsd:integer(STRAFTER(STR(?property), 'P')))<br />
</query><br />
|}<br />
<br />
=== Tools ===<br />
[[File:Wikidata_Query_-_Query_Helper_-_Build_query_from_scratch.webm|thumb|450px|On Wikidata, the WDQS allows to practice SPARQL queries creation in an intuitive way.]]<br />
* [{{SERVER}}/bigdata/#query <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint LinguaLibre</span>] [{{SERVER}}/bigdata/#query LinguaLibre Query Service (LLQS)] – run SPARQL Queries upon LinguaLibre. Run, test, download the data as json, csv or tsv.<br />
* [https://query.wikidata.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikidata</span>] [https://query.wikidata.org Wikidata Query Service (WDQS)] – run SPARQL Queries upon Wikidata. Run, test, download the data as json, csv or tsv. Has advanced user-friendly features such as : word hovering too see a term's meaning, code optimization, etc.<br />
* [https://commons-query.wikimedia.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikimedia Commons</span>] [https://commons-query.wikimedia.org Wikimedia Commons Query Service (WCQS)] run SPARQL Queries upon Wikimedia Commons wikibase (need to log in).<br />
* [https://sinaahmadi.github.io/posts/sparql-query-generator-for-lexicographical-data.html Wikidata Lexeme Queries generators] ([https://jsfiddle.net/hugolpz/rygo9s5b/ hack me]) by @sina_ahm – helps to create queries for Wikidata's Lexeme.<br />
* [[Special:ApiSandbox]] – API queries generator for Lingualibre wikipage and wikibase contents. An alternative to SPARQL queries.<br />
<br />
=== References ===<br />
* [https://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]<br />
* [https://www.iro.umontreal.ca/~lapalme/ift6281/sparql-1_1-cheat-sheet.pdf SPARQL Cheatsheet]<br />
<br />
== Code snippets ==<br />
=== Fetch data using SPARQL ===<br />
LinguaLibre data can be fetched using various coding languages such as Python, Javascript, R and others, returning JSON or other formats.<br />
* For code snippet in your language : open [https://query.wikidata.org query.wikidata.org] (WikiData Query Service, aka WDQS), run your SPARQL query, click "Code" : a pop up window appears with various implementations.<br />
* For downloading data, click "Download".<br />
<br />
'''Javascript:'''<br><br />
At least 3 methods exists ([https://jsfiddle.net/hugolpz/tsg9ewa7/ code snippet]), example: <br />
{| style="width:100%" <br />
|-<br />
! Query || Result's basic unit<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"| '''SPARQL:'''<br><br />
<syntaxhighlight lang="sparql" style="width:100%"><br />
SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10<br />
</syntaxhighlight><br />
|rowspan="2"|<br />
<syntaxhighlight lang="javascript"><br />
{ … },<br />
{<br />
"item": {<br />
"type": "uri",<br />
"value": "https://lingualibre.org/entity/Q12"<br />
},<br />
"itemLabel": {<br />
"xml:lang": "en",<br />
"type": "literal",<br />
"value": "beginner"<br />
}<br />
},<br />
{ … }<br />
</syntaxhighlight><br />
|-<br />
| '''Javascript:'''<br />
<syntaxhighlight lang="javascript"><br />
var endpoint = 'https://lingualibre.org/sparql';<br />
var sparql = 'SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10';<br />
$.getJSON(endpoint,<br />
{ query: sparql, format: 'json' },<br />
function(data){ console.log('JQuery: ',data)}<br />
);<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Merging data ===<br />
Advanced SPARQL queries with <code>COUNT()</code> and others are often slow (>3secs, sometime >100secs). You are encouraged to do multiple smaller SPARQL queries to then merge their responded data. By example, the complementary Javascript snippet below would help web developers to do so.<br />
<br />
<syntaxhighlight lang="javascript"><br />
// Data from 3 sparql queries.<br />
// Important: One key must be similar in all datasets, here: 'qid'<br />
const langs = [{ qid: 'Q209', label: 'Breton', iso:'bre' }, { qid: 'Q34', label: 'Marathi', iso: 'mar' }],<br />
speakersFemales = [{ qid: 'Q209', genderF: 3, recordsF: 60 }, { qid: 'Q34', genderF: 21, recordsF:5046 }],<br />
speakersMales = [{ qid: 'Q209', genderM: 7, recordsM: 218 }, { qid: 'Q34', genderM: 85, recordsM:32964 }];<br />
// Toolbox for merging data by same id<br />
var merge2ArraysBySameId = function(arr1,arr2,id1){<br />
return arr1.map( item1 => { <br />
var identical = arr2.find(obj => obj[id1] === item1[id1]); <br />
return Object.assign(identical, item1) <br />
} );<br />
}<br />
// Mergings<br />
var step1 = merge2ArraysBySameId(langs,speakersFemales,'qid');<br />
var step2 = merge2ArraysBySameId(step1,speakersMales,'qid');<br />
alert(JSON.stringify(step2))<br />
</syntaxhighlight><br />
<br />
== Lingualibre's ground ==<br />
=== ✅ Is Language ([[Q4]]) → List existing languages with: LL Qid, ISO 639-3, Name ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
?lang prop:P2 entity:Q4 . # Filter: P2 'instance of' is Q4 'language or dialect'.<br />
?lang prop:P13 ?iso . # Assign value: P13 'ISO-639-3' into ?iso.<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
?lang prop:P2 entity:Q4 . # Filter: P2 'instance of' is Q4 'language or dialect'.<br />
?lang prop:P13 ?iso . # Assign value: P13 'ISO-639-3' into ?iso.<br />
# Add labels to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Speaker ([[Q3]]) → List existing speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" speaker="Item" speakerLabel="Speaker" langLabel="Language"><br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Language level ([[Q5]]) → List existing levels ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Sex or Gender ([[Q7]]) → List existing sexes or genders ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Speaker ==<br />
=== ✅🇶 Speaker name(s) → Speaker Qid(s) ===<br />
<!-- REVIEW REQUIRED --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" } # Assign value: one or multiple values<br />
# note: need to comment BIND<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
# Grammatical note: ';' allows to chain actions <br />
?speakerId prop:P2 entity:Q3 ; # Filter: P2 'instance of' is Q3 'speaker'.<br />
rdfs:label ?speakerLabel . # Filter by value: label equal ?speakerLabel's value<br />
} <br />
</syntaxhighlight><br />
||<br />
<br />
<query _pagination="5"><br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" }<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
?speakerId prop:P2 entity:Q3 ;<br />
rdfs:label ?speakerLabel .<br />
} <br />
</query><br />
|}<br />
<br />
=== ✅🇶 Speaker Qid ([[Q445757]]) → Speaker data, all ===<br />
<!-- Q: alternative words for "predicate" and "object". "property" and "value" ?--><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
# Get Q445757 (User:SangeetaRH)'s data<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Speaker Qid ([[Q445757]]) → Speaker languages ([[Property:P4|P4]]) ===<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Speaker Qid ([[Q445757]]) + Language LL Qid ([[Q34]]) → List records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio prop:P5 entity:Q445757 . # Filter: P5 Speaker is Q445757 User:SangeetaRH<br />
?audio prop:P4 entity:Q34 . # Filter: P4 language is Q34 Marathi<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio prop:P5 entity:Q445757 . # Filter: P5 Speaker is Q445757 User:SangeetaRH<br />
?audio prop:P4 entity:Q34 . # Filter: P4 language is Q34 Marathi<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Speaker Qid ([[Q445757]]) + Language LL Qid ([[Q34]]) → Count records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language ?speakerLabel (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
VALUES ?language { entity:Q34 } # Assign value: Q34 'Marathi' into ?language <br />
VALUES ?speaker { entity:Q445757 } # Assign value: Q445757 'SangeetaRH' into ?speaker <br />
?audio prop:P5 ?speaker . # Filter: P5 'speaker' is Q445757 'SangeetaRH'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
# Add labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"} <br />
}<br />
GROUP BY ?language ?speakerLabel # Sorting first groups per language and speaker<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language ?speakerLabel (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
VALUES ?speaker { entity:Q445757 }<br />
?audio prop:P5 ?speaker . # Filter: P5 'speaker' is Q445757 'SangeetaRH'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
# Add labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"} <br />
}<br />
GROUP BY ?language ?speakerLabel # Sorting first groups per language and speaker<br />
</query><br />
|}<br />
<br />
=== ✅ Is Speaker ([[Q3]]) → List of accounts and associated speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</query><br />
|}<br />
<br />
== Languages ==<br />
=== ✅🇶 Language name(s) in English → Language LL Qid(s) ===<br />
<!-- Q: Change exact match by CONTAINS() --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageId ?languageName<br />
WHERE {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
?languageId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
rdfs:label ?languageLabel . # Assign value label into ?languageLabel<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
} <br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
?languageId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
rdfs:label ?languageLabel . # Assign value label into ?languageLabel<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
} <br />
</query><br />
|}<br />
<br />
=== ✅ Language ISO-639-3 → Language LL Qid(s), Wikidata Qid, Label ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?langIso ?langId ?langWDQid ?langIdLabel<br />
WHERE {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
prop:P13 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
prop:P12 ?langWDQid . # Assign value: P12 'Iso-639-3' to ?langWDQid<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?langIso ?langId ?langWDQid ?langIdLabel<br />
WHERE {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
prop:P13 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
prop:P12 ?langWDQid . # Assign value: P12 'Iso-639-3' to ?langWDQid<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count items ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?item) AS ?items) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?item prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?item) AS ?items) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?item prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Language LL Qid (Q34) → Count unique words, audios, ratio ===<br />
<!-- Use smaller language for higher speed --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language <br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language <br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios)<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?audio) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?audio prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?audio) AS ?audio) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?audio prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q209) → List speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}</query><br />
|}<br />
<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Language data, all ===<br />
'''Case:'' Get for language Q209 'Breton' all its data.<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
# Given Q209 'Breton language', get all properties and values<br />
entity:Q209 ?predicate ?object .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Language data, core ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
# Given Q209 'Breton language', get all properties and values<br />
entity:Q209 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Property P13 (ISO 639-3) ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q209 prop:P13 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 prop:P13 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Languages → List existing languages' iso-639-3 ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?lang prop:P13 ?code .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT * WHERE {<br />
?lang prop:P13 ?code .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Language WD Qid → Language data, core ===<br />
<!-- REQUIRE REVIEW FOR BETTER INLINE COMMENTS --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" . # Filter: P12 'Wikidata id' is Wikidata's "Q12107"<br />
?lang ?predicate ?object . # <br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" .<br />
?lang ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
== Records ==<br />
<br />
=== ✅ Record LL Qid ([[Q500]]) → Record data, all ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
# ?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Record LL Qid ([[Q500]]) → Record data, core ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
<br />
=== ✅ Language ([[Q22]]) + String → Record LL Qid(s) ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?itemLabel ?item<br />
WHERE { <br />
?item prop:P2 entity:Q2 . # Filter: P2 'instance of' Q3 'record'<br />
?item prop:P4 entity:Q22 . # Filter: P4 'language' is Q22 'English'<br />
?item rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
FILTER(CONTAINS(?itemLabel, "apple"@en)). <br />
} limit 10 <br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?itemLabel ?item<br />
WHERE { <br />
?item prop:P2 entity:Q2 . # Filter: P2 'instance of' Q3 'record'<br />
?item prop:P4 entity:Q22 . # Filter: P4 'language' is Q22 'English'<br />
?item rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
FILTER(CONTAINS(?itemLabel, "apple"@en)). <br />
} limit 10 <br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q209]]) + Speaker ([[Q584098]]) + String (ni) → Record LL Qid ===<br />
'''Case:''' Search in Breton language, with speaker 'ThonyVezbe', <br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio prop:P4 entity:Q209 . # P4 'language' is Q209 'Breton'<br />
?audio prop:P5 entity:Q584098 . # P5 'speaker' is Q584098 'ThonyVezbe'<br />
?audio rdfs:label ?word . #word<br />
FILTER ( STR(?word) = "ni" ) # word = 'ni'<br />
?audio prop:P3 ?urlPointer.<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio prop:P4 entity:Q209 .<br />
?audio prop:P5 entity:Q584098 .<br />
?audio rdfs:label ?word . #word<br />
FILTER ( STR(?word) = "ni" )<br />
?audio prop:P3 ?urlPointer.<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q21]]) + Speaker ([[Q137047]]) + String → URL pointer, filename ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?word ?audio ?urlPointer<br />
(replace(replace(replace(substr(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio prop:P4 entity:Q21 . # Filter: P4 'language' is Q21 'French'<br />
?audio prop:P5 entity:Q137047 . # Filter: P5 'speaker' is Q137047 'Justforoc'<br />
?audio rdfs:label ?word . # Assign value: label to ?word<br />
#Filter: ?word with 'pomme' in French, non case-sensitive<br />
FILTER REGEX(?word, "pomme"@fr, "i" ) .<br />
?audio prop:P3 ?urlPointer<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?word ?audio ?urlPointer<br />
(replace(replace(replace(substr(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio prop:P4 entity:Q21 . # Filter: P4 'language' is Q21 'French'<br />
?audio prop:P5 entity:Q137047 . # Filter: P5 'speaker' is Q137047 'Justforoc'<br />
?audio rdfs:label ?word . # Assign value: label to ?word<br />
#Filter: ?word with 'pomme' in French, non case-sensitive<br />
FILTER REGEX(?word, "pomme"@fr, "i" ) .<br />
?audio prop:P3 ?urlPointer<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Files on Commons about records in Punjabi with transcription and LinguaLibre identifier ===<br />
<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?m wdt:P31 wd:Q108167708 ; #record<br />
wdt:P407 wd:Q58635 ; #in Punjabi<br />
wdt:P9533 ?transcription ; #with transcription<br />
wdt:P10369 ?idLili . #with LinguaLibre identifier<br />
}<br />
LIMIT 100<br />
</syntaxhighlight><br />
<br />
== Heavy queries ==<br />
Queries below are too large to run on LinguaLibre's wikipages, or even on [https://lingualibre.org/bigdata/#query Lingualibre Query Service]).<br><br />
To do: do smaller sub-queries, with one <code>COUNT()</code> function.<br />
<br />
=== ❌ Languages → Name, Wikidata Qid, LLQid, Iso-639-3, and genders ===<br />
{| style="width:100%" <br />
|-<br />
! Query || Result<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageQidLabel ?wdQid ?languageQid ?isoCode <br />
(COUNT(DISTINCT(?record)) AS ?recordCount)<br />
(COUNT(DISTINCT(?speakerLangM)) AS ?speakerM) <br />
(COUNT(DISTINCT(?speakerLangF)) AS ?speakerF)<br />
wWHERE{<br />
?record prop:P2 entity:Q2 . # Filter: items where P2 'instance of' is Q2 'record'<br />
?record prop:P4 ?languageQid . # Assign value: P4 'language' into variable ?language<br />
?languageQid prop:P12 ?wdQid . # Assign value: P12 'wikidata id' into variable ?WD<br />
?languageQid prop:P13 ?isoCode. # Assign value: P13 'iso639-3' into ?isoCode<br />
<br />
#?record prop:P5 ?speakerQidM . # Assign value: P5 'speaker' into variable ?speakerQidM<br />
#?speakerQidM prop:P8 entity:Q16 . # Filter: P8 'sex or gender' is Q16 'male<br />
#?speakerQidM prop:P4 ?speakerLangM . # Assign value: P4 'language' into variable ?spakerLangM<br />
<br />
?record prop:P5 ?speakerQidF . # Assign value: P5 'speaker' into variable ?speakerQidF<br />
?speakerQidF prop:P8 entity:Q17 . # Filter: P8 'sex or gender' is Q17 'female<br />
?speakerQidF prop:P4 ?speakerLangF . # Assign value: P4 'language' into variable ?spakerLangF<br />
<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } <br />
}<br />
GROUP BY ?languageQidLabel ?languageQid ?wdQid ?isoCode<br />
ORDER BY DESC(?recordCount)<br />
</syntaxhighlight><br />
||<br />
<pre><br />
languageQidLabel wdQid languageQid isoCode recordCount speakerM speakerF<br />
French Q150 Q21 fra 16761 0 18<br />
Marathi Q1571 Q34 mar 13153 0 5<br />
Polish Q809 Q298 pol 11686 0 1<br />
…<br />
</pre><br />
|}<br />
<br />
=== ❌ Is Language ([[Q3]]) → list all languages with number of unique words and speakers ===<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?nbAudio) (COUNT(?speaker) AS ?nbSpeaker) WHERE {<br />
?language prop:P2 entity:Q4 .<br />
?audio prop:P4 ?language .<br />
?speaker prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
<br />
== Others ==<br />
''(These old queries are not assessed yet.)''<br />
=== ✅ Language ([[Q209]]) → Record, speaker's language level ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q34]]) → Records of Wikidata concepts with WD Qid ([[Property:P12|P12]]) ===<br />
:''Those items were proposed to Lingualibre's recorder at step 3 via a SPARQL query upon Wikidata, so those words have WD's Qids.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Records → Filter by date: late 2018 ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</syntaxhighlight><br />
||<br />
<query><br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
* [[Help:SPARQL 2]] — next tutorial with focus on federate queries and Wikidata Lexemes.<br />
** [[:wikidata:Lexicographical data/Ideas of queries|Lexicographical data/Ideas of queries]]<br />
** [[LinguaLibre:Wikidata]] — stub, help write it !<br />
* [[Help:Querying Lingua Libre]] — general review, redirecting users to rightful place.<br />
* [[Help:APIs]] — API queries over Wikimedia Commons or other Wikimedia wikis.<br />
* [[:mw:Manual:Developing extensions]] — PHP-based modules enhancing wikis, can pull data via SPARQL queries.<br />
<br />
{{Lingua Libre scripts}}<br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Help:SPARQL&diff=743125
Help:SPARQL
2022-02-20T11:21:35Z
<p>VIGNERON: /* Tools */ + Commons</p>
<hr />
<div>{{#Subtitle:'''Help:SPARQL''' gathers a list of basic SPARQL queries in the context of Lingua Libre, demoed and ready to test, together with beginners-friendly knowledges, inline-comments, introductions to concepts, code snippets and few tools. This page allows users not familiar with SPARQL to rapidly learn the basics of SPARQL, query the LinguaLibre database, and to download or directly feed that data to an application. To fit with most frequent usages, the page lightly lean toward web developpement and begginer's Javascripts skill.}}<br />
<br />
{{Draft|December 2021 rewriting : '''work in progress, '''please do not translate yet'''.<br />
<div style{{=}}"text-align:left;"><br />
# {{Done}} Gather SPARQL queries related to: core, speakers, languages, audios.<br />
# {{Done}} '''NOW/Opened:''' <s>De-Westernization, replacing Q21 (French) by Q34 (Marathi) and Q42 (User:0x010C) by Q445757 (User:SangeetaRH).</s><br />
# '''NOW/Opened:''' General content review. You may help by: a) reading and copy-editing the page's English, b) testing queries on [https://lingualibre.org/bigdata/#query LLQS], edit in or [[Help talk:SPARQL|discuss improvements]], <s>3) increase comments' concistency</s>. <br />
# Legend: ✅ pretty clean example, approved ; 🇶 minor aspects to improve, see hidden comment ; ❌ query too heavy to run in this page.<br />
# '''Later/not yet:''' translations.<br />
<!-- # '''Later:''' Improve Base section with core SPARQL concepts ? --><br />
Help welcome.<br />
</div><br />
}}<br />
<br />
== Base ==<br />
=== Useful elements ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: auto 3em auto auto;width:60%"|<br />
* [[Special:ListProperties]] – exhaustive list of LinguaLibre's Wikibase properties.<br />
* [[LinguaLibre:List of languages]] – exhaustive list of LinguaLibre's languages<br />
||<br />
<query _pagination="4" ><br />
#All properties with descriptions and aliases and types<br />
SELECT ?property ?propertyLabel ?propertyDescription<br />
# ?propertyType<br />
# ?propertyAltLabel<br />
WHERE {<br />
?property wikibase:propertyType ?propertyType .<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }<br />
}<br />
ORDER BY ASC(xsd:integer(STRAFTER(STR(?property), 'P')))<br />
</query><br />
|}<br />
<br />
=== Tools ===<br />
[[File:Wikidata_Query_-_Query_Helper_-_Build_query_from_scratch.webm|thumb|450px|On Wikidata, the WDQS allows to practice SPARQL queries creation in an intuitive way.]]<br />
* [{{SERVER}}/bigdata/#query <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint LinguaLibre</span>] [{{SERVER}}/bigdata/#query LinguaLibre Query Service (LLQS)] – run SPARQL Queries upon LinguaLibre. Run, test, download the data as json, csv or tsv.<br />
* [https://query.wikidata.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikidata</span>] [https://query.wikidata.org Wikidata Query Service (WDQS)] – run SPARQL Queries upon Wikidata. Run, test, download the data as json, csv or tsv. Has advanced user-friendly features such as : word hovering too see a term's meaning, code optimization, etc.<br />
* [https://commons-query.wikimedia.org <span class="mw-ui-button mw-ui-progressive" role="button" aria-disabled="false">Endpoint Wikimedia Commons</span>] [https://commons-query.wikimedia.org Wikimedia Commons Query Service (WCQS)] run SPARQL Queries upon Wikimedia Commons wikibase (need to log in).<br />
* [https://sinaahmadi.github.io/posts/sparql-query-generator-for-lexicographical-data.html Wikidata Lexeme Queries generators] ([https://jsfiddle.net/hugolpz/rygo9s5b/ hack me]) by @sina_ahm – helps to create queries for Wikidata's Lexeme.<br />
* [[Special:ApiSandbox]] – API queries generator for Lingualibre wikipage and wikibase contents. An alternative to SPARQL queries.<br />
<br />
=== References ===<br />
* [https://www.w3.org/TR/sparql11-query/ SPARQL 1.1 Query Language]<br />
* [https://www.iro.umontreal.ca/~lapalme/ift6281/sparql-1_1-cheat-sheet.pdf SPARQL Cheatsheet]<br />
<br />
== Code snippets ==<br />
=== Fetch data using SPARQL ===<br />
LinguaLibre data can be fetched using various coding languages such as Python, Javascript, R and others, returning JSON or other formats.<br />
* For code snippet in your language : open [https://query.wikidata.org query.wikidata.org] (WikiData Query Service, aka WDQS), run your SPARQL query, click "Code" : a pop up window appears with various implementations.<br />
* For downloading data, click "Download".<br />
<br />
'''Javascript:'''<br><br />
At least 3 methods exists ([https://jsfiddle.net/hugolpz/tsg9ewa7/ code snippet]), example: <br />
{| style="width:100%" <br />
|-<br />
! Query || Result's basic unit<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"| '''SPARQL:'''<br><br />
<syntaxhighlight lang="sparql" style="width:100%"><br />
SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10<br />
</syntaxhighlight><br />
|rowspan="2"|<br />
<syntaxhighlight lang="javascript"><br />
{ … },<br />
{<br />
"item": {<br />
"type": "uri",<br />
"value": "https://lingualibre.org/entity/Q12"<br />
},<br />
"itemLabel": {<br />
"xml:lang": "en",<br />
"type": "literal",<br />
"value": "beginner"<br />
}<br />
},<br />
{ … }<br />
</syntaxhighlight><br />
|-<br />
| '''Javascript:'''<br />
<syntaxhighlight lang="javascript"><br />
var endpoint = 'https://lingualibre.org/sparql';<br />
var sparql = 'SELECT ?item WHERE { ?item prop:P2 entity:Q5 } LIMIT 10';<br />
$.getJSON(endpoint,<br />
{ query: sparql, format: 'json' },<br />
function(data){ console.log('JQuery: ',data)}<br />
);<br />
</syntaxhighlight><br />
|}<br />
<br />
=== Merging data ===<br />
Advanced SPARQL queries with <code>COUNT()</code> and others are often slow (>3secs, sometime >100secs). You are encouraged to do multiple smaller SPARQL queries to then merge their responded data. By example, the complementary Javascript snippet below would help web developers to do so.<br />
<br />
<syntaxhighlight lang="javascript"><br />
// Data from 3 sparql queries.<br />
// Important: One key must be similar in all datasets, here: 'qid'<br />
const langs = [{ qid: 'Q209', label: 'Breton', iso:'bre' }, { qid: 'Q34', label: 'Marathi', iso: 'mar' }],<br />
speakersFemales = [{ qid: 'Q209', genderF: 3, recordsF: 60 }, { qid: 'Q34', genderF: 21, recordsF:5046 }],<br />
speakersMales = [{ qid: 'Q209', genderM: 7, recordsM: 218 }, { qid: 'Q34', genderM: 85, recordsM:32964 }];<br />
// Toolbox for merging data by same id<br />
var merge2ArraysBySameId = function(arr1,arr2,id1){<br />
return arr1.map( item1 => { <br />
var identical = arr2.find(obj => obj[id1] === item1[id1]); <br />
return Object.assign(identical, item1) <br />
} );<br />
}<br />
// Mergings<br />
var step1 = merge2ArraysBySameId(langs,speakersFemales,'qid');<br />
var step2 = merge2ArraysBySameId(step1,speakersMales,'qid');<br />
alert(JSON.stringify(step2))<br />
</syntaxhighlight><br />
<br />
== Lingualibre's ground ==<br />
=== ✅ Is Language ([[Q4]]) → List existing languages with: LL Qid, ISO 639-3, Name ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
?lang prop:P2 entity:Q4 . # Filter: P2 'instance of' is Q4 'language or dialect'.<br />
?lang prop:P13 ?iso . # Assign value: P13 'ISO-639-3' into ?iso.<br />
# Add label to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?lang ?iso ?langLabel<br />
WHERE {<br />
?lang prop:P2 entity:Q4 . # Filter: P2 'instance of' is Q4 'language or dialect'.<br />
?lang prop:P13 ?iso . # Assign value: P13 'ISO-639-3' into ?iso.<br />
# Add labels to each variable used.<br />
# ?lang now has twin variable ?langLabel<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Speaker ([[Q3]]) → List existing speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" speaker="Item" speakerLabel="Speaker" langLabel="Language"><br />
SELECT ?speaker ?speakerLabel<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Language level ([[Q5]]) → List existing levels ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q5 # Filter: P2 'instance of' is Q5 'language level'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Is Sex or Gender ([[Q7]]) → List existing sexes or genders ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?item ?itemLabel<br />
WHERE {<br />
?item prop:P2 entity:Q7 # Filter: P2 'instance of' is Q7 'sex or gender'.<br />
# Add labels to each variable used.<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
== Speaker ==<br />
=== ✅🇶 Speaker name(s) → Speaker Qid(s) ===<br />
<!-- REVIEW REQUIRED --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" } # Assign value: one or multiple values<br />
# note: need to comment BIND<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
# Grammatical note: ';' allows to chain actions <br />
?speakerId prop:P2 entity:Q3 ; # Filter: P2 'instance of' is Q3 'speaker'.<br />
rdfs:label ?speakerLabel . # Filter by value: label equal ?speakerLabel's value<br />
} <br />
</syntaxhighlight><br />
||<br />
<br />
<query _pagination="5"><br />
SELECT ?speakerName ?speakerId<br />
WHERE {<br />
VALUES ?speakerName { "Yug" "VIGNERON" }<br />
BIND ( STRLANG(?speakerName, "en") AS ?speakerLabel )<br />
?speakerId prop:P2 entity:Q3 ;<br />
rdfs:label ?speakerLabel .<br />
} <br />
</query><br />
|}<br />
<br />
=== ✅🇶 Speaker Qid ([[Q445757]]) → Speaker data, all ===<br />
<!-- Q: alternative words for "predicate" and "object". "property" and "value" ?--><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
# Get Q445757 (User:SangeetaRH)'s data<br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT ?anyProperty ?anyValue ?anyValueLabel<br />
WHERE {<br />
entity:Q445757 ?anyProperty ?anyValue . # Filter: of Q445757 'SangeetaRH', get any property and any values<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Speaker Qid ([[Q445757]]) → Speaker languages ([[Property:P4|P4]]) ===<br />
<!-- Q: Add languages iso P:13 --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?languages ?languagesLabel<br />
WHERE {<br />
entity:Q445757 prop:P4 ?languages . # Assign value: for Q445757 'SangeetaRH', P4 'language' into ?languages<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Speaker Qid ([[Q445757]]) + Language LL Qid ([[Q34]]) → List records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio prop:P5 entity:Q445757 . # Filter: P5 Speaker is Q445757 User:SangeetaRH<br />
?audio prop:P4 entity:Q34 . # Filter: P4 language is Q34 Marathi<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?audioLabel<br />
WHERE {<br />
?audio prop:P5 entity:Q445757 . # Filter: P5 Speaker is Q445757 User:SangeetaRH<br />
?audio prop:P4 entity:Q34 . # Filter: P4 language is Q34 Marathi<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
}<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Speaker Qid ([[Q445757]]) + Language LL Qid ([[Q34]]) → Count records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language ?speakerLabel (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
VALUES ?language { entity:Q34 } # Assign value: Q34 'Marathi' into ?language <br />
VALUES ?speaker { entity:Q445757 } # Assign value: Q445757 'SangeetaRH' into ?speaker <br />
?audio prop:P5 ?speaker . # Filter: P5 'speaker' is Q445757 'SangeetaRH'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
# Add labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"} <br />
}<br />
GROUP BY ?language ?speakerLabel # Sorting first groups per language and speaker<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language ?speakerLabel (COUNT(?audio) AS ?audio)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
VALUES ?speaker { entity:Q445757 }<br />
?audio prop:P5 ?speaker . # Filter: P5 'speaker' is Q445757 'SangeetaRH'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
# Add labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"} <br />
}<br />
GROUP BY ?language ?speakerLabel # Sorting first groups per language and speaker<br />
</query><br />
|}<br />
<br />
=== ✅ Is Speaker ([[Q3]]) → List of accounts and associated speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?linkedUser ?speakerLabel (SUBSTR(STR(?speaker),32) AS ?speakerQid)<br />
WHERE {<br />
?speaker prop:P2 entity:Q3 . # Filter: P2 'instance of' is Q3 'speaker'.<br />
?speaker prop:P11 ?linkedUser . # Assign value: P11 'linked users' into ?linkedUser.<br />
# Add labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY DESC (?speakerLabel)<br />
</query><br />
|}<br />
<br />
== Languages ==<br />
=== ✅🇶 Language name(s) in English → Language LL Qid(s) ===<br />
<!-- Q: Change exact match by CONTAINS() --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageId ?languageName<br />
WHERE {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
?languageId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
rdfs:label ?languageLabel . # Assign value label into ?languageLabel<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
} <br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?languageId ?languageName <br />
WHERE {<br />
VALUES ?languageName { "Marathi" "Atikamekw" "Central Bikol" } # Target values<br />
?languageId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
rdfs:label ?languageLabel . # Assign value label into ?languageLabel<br />
BIND ( STRLANG(?languageName, "en") AS ?languageLabel ) # Bind filter by English<br />
} <br />
</query><br />
|}<br />
<br />
=== ✅ Language ISO-639-3 → Language LL Qid(s), Wikidata Qid, Label ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?langIso ?langId ?langWDQid ?langIdLabel<br />
WHERE {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
prop:P13 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
prop:P12 ?langWDQid . # Assign value: P12 'Iso-639-3' to ?langWDQid<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?langIso ?langId ?langWDQid ?langIdLabel<br />
WHERE {<br />
VALUES ?langIso { "mar" "bre" "bcl" "atj" "ban" } # Target ISO values<br />
?langId <br />
prop:P2 entity:Q4 ; # Filter: P2 'instance of' is Q4 'language' AND<br />
prop:P13 ?langIso ; # Assign value: P13 'Iso-639-3' to ?langIso AND<br />
prop:P12 ?langWDQid . # Assign value: P12 'Iso-639-3' to ?langWDQid<br />
# Labels<br />
SERVICE wikibase:label {bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en"}<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count items ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?item) AS ?items) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?item prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?item) AS ?items) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?item prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count records ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?audio) AS ?audios) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Language LL Qid (Q34) → Count unique words, audios, ratio ===<br />
<!-- Use smaller language for higher speed --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language <br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language <br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) # Count and assign value to ?Audio<br />
(COUNT(?audio) as ?audios)<br />
(COUNT(DISTINCT(?itemLabel)) AS ?words) <br />
(ROUND(10000*?words/?audios)/100 AS ?percent)<br />
WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P4 ?language . # Filter: P4 'language' is Q34 'Marathi'<br />
?audio prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?audio rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q34) → Count speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?audio) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?audio prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language (COUNT(?audio) AS ?audio) WHERE {<br />
VALUES ?language { entity:Q34 }<br />
?audio prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?audio prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
}<br />
GROUP BY ?language<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid (Q209) → List speakers ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
|<br />
<query _pagination="6" item="Property" itemLabel="Values"><br />
SELECT ?language ?speaker ?speakerLabel WHERE {<br />
VALUES ?language { entity:Q209 }<br />
?speaker prop:P2 entity:Q3 . # P2 'instance of' is Q3 'speaker'<br />
?speaker prop:P4 ?language . # P4 'language' is Q34 'Marathi'<br />
# Labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}</query><br />
|}<br />
<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Language data, all ===<br />
'''Case:'' Get for language Q209 'Breton' all its data.<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
# Given Q209 'Breton language', get all properties and values<br />
entity:Q209 ?predicate ?object .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Language data, core ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
# Given Q209 'Breton language', get all properties and values<br />
entity:Q209 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language LL Qid ([[Q209]]) → Property P13 (ISO 639-3) ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q209 prop:P13 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q209 prop:P13 ?iso . # Assign value : Q209 'Breton', P13 'ISO 639-3', value into ?iso<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Languages → List existing languages' iso-639-3 ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?lang prop:P13 ?code .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT * WHERE {<br />
?lang prop:P13 ?code .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅🇶 Language WD Qid → Language data, core ===<br />
<!-- REQUIRE REVIEW FOR BETTER INLINE COMMENTS --><br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" . # Filter: P12 'Wikidata id' is Wikidata's "Q12107"<br />
?lang ?predicate ?object . # <br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
?lang prop:P12 "Q12107" .<br />
?lang ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
== Records ==<br />
<br />
=== ✅ Record LL Qid ([[Q500]]) → Record data, all ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
# ?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Record LL Qid ([[Q500]]) → Record data, core ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="10" ><br />
SELECT * WHERE {<br />
entity:Q500 ?predicate ?object .<br />
?predicate rdf:type owl:DatatypeProperty .<br />
}<br />
</query><br />
|}<br />
<br />
<br />
=== ✅ Language ([[Q22]]) + String → Record LL Qid(s) ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?itemLabel ?item<br />
WHERE { <br />
?item prop:P2 entity:Q2 . # Filter: P2 'instance of' Q3 'record'<br />
?item prop:P4 entity:Q22 . # Filter: P4 'language' is Q22 'English'<br />
?item rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
FILTER(CONTAINS(?itemLabel, "apple"@en)). <br />
} limit 10 <br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?itemLabel ?item<br />
WHERE { <br />
?item prop:P2 entity:Q2 . # Filter: P2 'instance of' Q3 'record'<br />
?item prop:P4 entity:Q22 . # Filter: P4 'language' is Q22 'English'<br />
?item rdfs:label ?itemLabel. # Assign value: label to ?itemLabel<br />
FILTER(CONTAINS(?itemLabel, "apple"@en)). <br />
} limit 10 <br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q209]]) + Speaker ([[Q584098]]) + String (ni) → Record LL Qid ===<br />
'''Case:''' Search in Breton language, with speaker 'ThonyVezbe', <br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio prop:P4 entity:Q209 . # P4 'language' is Q209 'Breton'<br />
?audio prop:P5 entity:Q584098 . # P5 'speaker' is Q584098 'ThonyVezbe'<br />
?audio rdfs:label ?word . #word<br />
FILTER ( STR(?word) = "ni" ) # word = 'ni'<br />
?audio prop:P3 ?urlPointer.<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?audio ?urlPointer<br />
WHERE {<br />
?audio prop:P4 entity:Q209 .<br />
?audio prop:P5 entity:Q584098 .<br />
?audio rdfs:label ?word . #word<br />
FILTER ( STR(?word) = "ni" )<br />
?audio prop:P3 ?urlPointer.<br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q21]]) + Speaker ([[Q137047]]) + String → URL pointer, filename ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?word ?audio ?urlPointer<br />
(replace(replace(replace(substr(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio prop:P4 entity:Q21 . # Filter: P4 'language' is Q21 'French'<br />
?audio prop:P5 entity:Q137047 . # Filter: P5 'speaker' is Q137047 'Justforoc'<br />
?audio rdfs:label ?word . # Assign value: label to ?word<br />
#Filter: ?word with 'pomme' in French, non case-sensitive<br />
FILTER REGEX(?word, "pomme"@fr, "i" ) .<br />
?audio prop:P3 ?urlPointer<br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5" ><br />
SELECT ?word ?audio ?urlPointer<br />
(replace(replace(replace(substr(STR(?urlPointer),52),"%20","_"),"%28","("),"%29",")") AS ?filename)<br />
WHERE {<br />
?audio prop:P4 entity:Q21 . # Filter: P4 'language' is Q21 'French'<br />
?audio prop:P5 entity:Q137047 . # Filter: P5 'speaker' is Q137047 'Justforoc'<br />
?audio rdfs:label ?word . # Assign value: label to ?word<br />
#Filter: ?word with 'pomme' in French, non case-sensitive<br />
FILTER REGEX(?word, "pomme"@fr, "i" ) .<br />
?audio prop:P3 ?urlPointer<br />
}<br />
</query><br />
|}<br />
<br />
== Heavy queries ==<br />
Queries below are too large to run on LinguaLibre's wikipages, or even on [https://lingualibre.org/bigdata/#query Lingualibre Query Service]).<br><br />
To do: do smaller sub-queries, with one <code>COUNT()</code> function.<br />
<br />
=== ❌ Languages → Name, Wikidata Qid, LLQid, Iso-639-3, and genders ===<br />
{| style="width:100%" <br />
|-<br />
! Query || Result<br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageQidLabel ?wdQid ?languageQid ?isoCode <br />
(COUNT(DISTINCT(?record)) AS ?recordCount)<br />
(COUNT(DISTINCT(?speakerLangM)) AS ?speakerM) <br />
(COUNT(DISTINCT(?speakerLangF)) AS ?speakerF)<br />
wWHERE{<br />
?record prop:P2 entity:Q2 . # Filter: items where P2 'instance of' is Q2 'record'<br />
?record prop:P4 ?languageQid . # Assign value: P4 'language' into variable ?language<br />
?languageQid prop:P12 ?wdQid . # Assign value: P12 'wikidata id' into variable ?WD<br />
?languageQid prop:P13 ?isoCode. # Assign value: P13 'iso639-3' into ?isoCode<br />
<br />
#?record prop:P5 ?speakerQidM . # Assign value: P5 'speaker' into variable ?speakerQidM<br />
#?speakerQidM prop:P8 entity:Q16 . # Filter: P8 'sex or gender' is Q16 'male<br />
#?speakerQidM prop:P4 ?speakerLangM . # Assign value: P4 'language' into variable ?spakerLangM<br />
<br />
?record prop:P5 ?speakerQidF . # Assign value: P5 'speaker' into variable ?speakerQidF<br />
?speakerQidF prop:P8 entity:Q17 . # Filter: P8 'sex or gender' is Q17 'female<br />
?speakerQidF prop:P4 ?speakerLangF . # Assign value: P4 'language' into variable ?spakerLangF<br />
<br />
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . } <br />
}<br />
GROUP BY ?languageQidLabel ?languageQid ?wdQid ?isoCode<br />
ORDER BY DESC(?recordCount)<br />
</syntaxhighlight><br />
||<br />
<pre><br />
languageQidLabel wdQid languageQid isoCode recordCount speakerM speakerF<br />
French Q150 Q21 fra 16761 0 18<br />
Marathi Q1571 Q34 mar 13153 0 5<br />
Polish Q809 Q298 pol 11686 0 1<br />
…<br />
</pre><br />
|}<br />
<br />
=== ❌ Is Language ([[Q3]]) → list all languages with number of unique words and speakers ===<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?language (COUNT(?audio) AS ?nbAudio) (COUNT(?speaker) AS ?nbSpeaker) WHERE {<br />
?language prop:P2 entity:Q4 .<br />
?audio prop:P4 ?language .<br />
?speaker prop:P4 ?language .<br />
}<br />
GROUP BY ?language<br />
</syntaxhighlight><br />
<br />
== Others ==<br />
''(These old queries are not assessed yet.)''<br />
=== ✅ Language ([[Q209]]) → Record, speaker's language level ===<br />
<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
select ?record ?recordLabel ?speakerLabel ?languageLabel ?languageLevelLabel<br />
where {<br />
?record prop:P2 entity:Q2 # Filter: P2 'instance of' is Q2 'record' AND P4<br />
; prop:P4 entity:Q209 . # AND P4 'language' is Q209 'Breton'<br />
?record prop:P5 ?speaker . # Assign value: record's P5 'speaker' into ?speaker<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' into ?language<br />
<br />
?speaker llp:P4 ?languageStatement . # P4 'language'<br />
?languageStatement llv:P4 ?language . # P4 'language'<br />
?languageStatement llq:P16 ?languageLevel . # P16 'language level'<br />
# Adds labels<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
} ORDER BY ?languageLabel ?languageLevelLabel<br />
</query><br />
|}<br />
<br />
=== ✅ Language ([[Q34]]) → Records of Wikidata concepts with WD Qid ([[Property:P12|P12]]) ===<br />
:''Those items were proposed to Lingualibre's recorder at step 3 via a SPARQL query upon Wikidata, so those words have WD's Qids.''<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</syntaxhighlight><br />
||<br />
<query _pagination="5"><br />
SELECT ?languageLabel ?recordLabel ?record ?wid<br />
WHERE {<br />
?record prop:P2 entity:Q2 . # Filter: P2 'instance of' is Q2 'record'<br />
?record prop:P4 entity:Q34 . # Filter: P4 'language' is Q34 'Marathi'<br />
?record prop:P4 ?language . # Assign value: record's P4 'language' to variable ?language<br />
?record prop:P12 ?wid . # Assign value: record's P12 'wikidata id' to variable ?wid<br />
# Add labels capability<br />
SERVICE wikibase:label {<br />
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" .<br />
} <br />
}<br />
</query><br />
|}<br />
<br />
=== ✅ Records → Filter by date: late 2018 ===<br />
{| style="width:100%" <br />
|- style="vertical-align:top;"<br />
|style="padding: 0 3em;width:60%"|<br />
<syntaxhighlight lang="sparql"><br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</syntaxhighlight><br />
||<br />
<query><br />
SELECT<br />
(COUNT(DISTINCT ?speaker) AS ?speakers)<br />
(COUNT(DISTINCT ?record) AS ?records)<br />
WHERE {<br />
?record prop:P2 entity:Q2 .<br />
?record prop:P6 ?date .<br />
?record prop:P5 ?speaker .<br />
# Filters:<br />
FILTER(?date >= "2018-07-01T00:00:00Z"^^xsd:dateTime)<br />
FILTER(?date < "2019-01-01T00:00:00Z"^^xsd:dateTime)<br />
}<br />
</query><br />
|}<br />
<br />
== See also ==<br />
* [[Help:SPARQL 2]] — next tutorial with focus on federate queries and Wikidata Lexemes.<br />
** [[:wikidata:Lexicographical data/Ideas of queries|Lexicographical data/Ideas of queries]]<br />
** [[LinguaLibre:Wikidata]] — stub, help write it !<br />
* [[Help:Querying Lingua Libre]] — general review, redirecting users to rightful place.<br />
* [[Help:APIs]] — API queries over Wikimedia Commons or other Wikimedia wikis.<br />
* [[:mw:Manual:Developing extensions]] — PHP-based modules enhancing wikis, can pull data via SPARQL queries.<br />
<br />
{{Lingua Libre scripts}}<br />
<br />
[[Category:Lingua Libre:Help{{#translation:}}]]</div>
VIGNERON
https://lingualibre.org/index.php?title=Q674857&diff=743068
Q674857
2022-02-20T09:43:08Z
<p>VIGNERON: /* undo:0||652493|Dcg5rt */ error</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=User_talk:WikiLucas00&diff=743067
User talk:WikiLucas00
2022-02-20T09:16:41Z
<p>VIGNERON: /* Problème enregistrement en finnois */</p>
<hr />
<div>'''Please feel free to leave a message below. Sign your post using <nowiki>~~~~</nowiki>'''<br/><br />
'''Sentez-vous libre de laisser un message ci-dessous. Signez votre message avec <nowiki>~~~~</nowiki>'''<br />
== INaLCO ==<br />
All good ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:27, 17 October 2020 (UTC)<br />
: Yes, everything went pretty well, we had a very varied group of participants, speaking many various languages as you may have seen. I can't wait to see how many of these new contributors will carry on in the long term 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 17:41, 26 October 2020 (UTC)<br />
::Thinking back, was any user immediately retained and active ?<br />
::It may need a year or two for for the info to spread and sink in. (Like for the Indian community : first contact was 2017. First real activity was 2020.)<br />
::It's part of the game. But I wonder if we had a positive surprise with this INALCO workshop. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:54, 9 February 2021 (UTC)<br />
<br />
== Note de la dernière réunion ==<br />
<br />
Salut WikiLucas00, je n'ai pas retrouvé où est ce qu'on a stocké les notes des précédentes réunions Lingua Libre mais il y en a néanmoins quelques-une ici ([[LinguaLibre:Réunion_3_novembre_2018|exemple]]). Je n'étais pas à la dernière réunion mais je pense qu'on devrait néanmoins recopier les [https://etherpad.wikimedia.org/p/r%C3%A9union_lingua_libre_2021 notes de cette réunion] ici pour archivage (il est d'ailleurs question de cela dans le pad (ligne 207)). Ca te va te faire ça ici plutôt que sur Meta ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 22:09, 8 December 2020 (UTC)<br />
:Salut {{ping|Pamputt}} bonne idée d'archiver les prises de notes sur LiLi, je vais organiser ça — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:29, 9 December 2020 (UTC)<br />
:Re: J'ai rangé les réunions de ce type dans [[LinguaLibre:Réunions]] puisqu'elles sont francophones. J'ai mis en forme la réunion du 4 décembre ici : [[LinguaLibre:Réunions/2020/4-12]]. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:18, 9 December 2020 (UTC)<br />
<br />
== {{tl|userbox-records}} ==<br />
Hello Lucas,<br><br />
I give it a week to calm things down and do minor tests... but after that I suggest we push strongly for those userboxes. The categories it will build will be a first stone to create per-language communities, aka "Portals/Project" pages. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:24, 8 February 2021 (UTC)<br />
:Hello {{ping|Yug}}<br/> Thank you for this very good initiative! I've started to paste it on the pages of new users who actually made at least one recording. It is good to also create the associated Category page, so that every speaker of a language can find others. I just corrected a small mistake in the templates. See you! — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:06, 9 February 2021 (UTC)<br />
::Nice, thanks for jumping in. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:52, 9 February 2021 (UTC)<br />
::Also, a shorter version works on userpages using magic word {ROOTPAGENAME}. See [https://lingualibre.org/index.php?title=User%3ASunita_gambhir&type=revision&diff=422070&oldid=421958 diff]. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:40, 9 February 2021 (UTC)<br />
:::Also, for portals, your {{tl|colored box}} will come handy ! [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:54, 9 February 2021 (UTC)<br />
== Emergence of local communities ? ==<br />
Some indian users will manage the tagging of Indian contributors from now on. Better for local community building. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 02:06, 10 February 2021 (UTC)<br />
:Same for Polish. It's a bit early for this community tho. Should we encourage the crystallization of local community and leader or leave these individuals alone since they contribute smoothly as of now ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:53, 11 February 2021 (UTC)<br />
<br />
== J'ai cassé le Technical Board/intro ==<br />
<br />
Bonjour,<br />
<br />
Désolé de te tomber dessus comme ça : je ne comprenais pas pourquoi ma modification sur Technical Board/intro/text n'était pas affichée, puis j'ai vu que Technical Board/intro redirigeait vers Technical Board/intro/lang. Et en corrigeant cette "redirection" incorrecte, j'ai des balises "translate" qui sont apparues de partout :/<br />
Je ne suis clairement pas un expert avec cette histoire de "traduction". Y a-t-il des ressources où je peux apprendre comment ça fonctionne ?<br />
Et, en attendant, pourrais-tu, s'il te plaît, réparer ma bêtise ? J'ai fait toutes mes modifications sur /text. Faut-il que je les recopie systématiquement sur /lang ?<br />
<br />
Merci d'avance, et mes sincères excuses. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 23:03, 13 February 2021 (UTC)<br />
:{{ping|Poslovitch}} j'ai corrigé. Je vais supprimé Technical Board/intro/lang. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:50, 14 February 2021 (UTC)<br />
:: Merci <3 ! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 14:34, 14 February 2021 (UTC)<br />
:::Hi there. I tried to add content but it doesn't work. See [[LinguaLibre:Technical_board/intro/text]]. I do so my editing this page the classical way. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:09, 15 February 2021 (UTC)<br />
::::Salut {{ping|Yug}} Comme tu peux le lire deux fois dans l'historique de la page, il ne faut pas ajouter ou modifier soi-même les balises qui numérotent les sections de la page. L'extension de traduction numérote elle-même les sections, et changer leur numéro provoque des problèmes. Merci de faire attention par la suite 😉 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:47, 15 February 2021 (UTC)<br />
::::Avez pas vu... ;___; [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:49, 15 February 2021 (UTC)<br />
:::::Pas grave haha, mais laisse-moi quelques minutes pour revert ces changements tout en gardant les changements textuels, avant de marquer la page pour traduction — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:50, 15 February 2021 (UTC)<br />
:::::{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:01, 15 February 2021 (UTC)<br />
::::::Comment éditer la source ? C'est une page en travaux et à développer. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:24, 15 February 2021 (UTC)<br />
:::::*En ajoutant tes modifications textuelles classiquement, et en ajoutant simplement une balise translate ouvrante au début de la zone à traduire, et une fermante à la fin de cette zone (comme dans [[Special:Diff/429301/429543|cette modification par Poslovitch]] par exemple).<br/> Je vois que cette page bouge beaucoup et que les traductions compliquent les choses. Je te pose donc la question que je t'avais déjà posée en privé ; est-ce que cette page a vraiment besoin d'être traduite ? Si non, on peut supprimer toutes les balises de traduction pour ne garder que l'anglais (qui convient aux développeurs qui liront la page), et ça sera plus pratique à éditer au quotidien. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 01:43, 16 February 2021 (UTC)<br />
::::::Hello, je découvre comme tu le vois la mise en place de page multilingue (récupérée du modèle Welcome), ce qui est en fait compliqué lorsqu'on débute. Il est génant pour moi de répondre sur ta question de traductions dans la mesure où je découvre cette outil. Mon objectif personnel, en tout cas, est de créer une mouture en anglais, au cours de cette semaine. C'est la raison pour laquelle j'ai aposé le bandeau {{tl|draft}}. Présentement, la page anglaise que j'ai initié et que je co-construis n'est pas achevée. Je ne m'engagerai pas à faire des traductions mais libre à d'autres de traduire si ils le souhaitent : ''« ceux qui font décident »''. L'option est présentement laissé à ceux qui souhaitent traduire et qui maitrise l'outil. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:50, 16 February 2021 (UTC)<br />
::::::Je ne pense pas avoir l'expérience nécessaire pour juger ''l'utilité vs cout'' de cette outils sur cette page. J'ai copié {Welcome} "tel quel", supprimé les phrases, et collé les miennes. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:57, 16 February 2021 (UTC)<br />
:::::Hello Yug, pas de soucis, j'ai aussi eu quelques déboires avec ce système quand j'ai participé à la mise en place du modèle de bienvenue, c'est Pamputt qui m'avait alors aidé (et Poslovitch non plus n'a pas réussi à prendre en main l'outil du premier coup - outil qui n'est donc visiblement intuitif pour personne !). Je pense personnellement que pour la page en question, un simple bandeau en anglais uniquement suffirait, et permettrait aux contributeurs de la page d'avancer plus vite en mettant à jour le texte sans se soucier des traductions.<br/>Qu'en pensez-vous {{ping|Pamputt|Poslovitch}} ?<br/>— '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 22:39, 16 February 2021 (UTC)<br />
::::::Contentons-nous du bandeau en anglais. En revanche, je pense que ce serait intéressant de "développer" l'idée des "Flash Technical News". Ca pourrait devenir un outil intéressant, encore plus s'il est traduit. Y aurait moyen de "l'inclure", depuis une autre page ? Genre LinguaLibre:Technical news, qui ne contiendrait que ces "news techniques rapides", sous forme de liste (comme actuellement) ? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:52, 16 February 2021 (UTC)<br />
:::::::Anglais uniquement donc, au moins pour le moment. Si qqu'un pousse activement pour des langues supplémentaires on pourra aviser. A noté : nous avons un contributeur Svenska (SWE) tres enthousiaste à coordonner.<br />
:::::::Le principe d'encart flash new est interessant oui. Elle pourrait etre modularisé en template oui. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 23:03, 16 February 2021 (UTC)<br />
<br />
== Lexique 3.83 ==<br />
Hello WikiLucas,<br>I'am re-exploring UNILEX. As I asked UNILEX about [https://github.com/unicode-org/unilex/issues/10 opening up their license] I got surprised to see they do know Wikidata Lexeme. I also bumped again into [https://github.com/chrplr/openlexicon Lexique 3.83]. <br />
<br />
It's a long term thing, but one day, there will be the need to migrate as much of these lexical data as possible to Wikidata Lexeme. That can be material for TAL mission either for them, or funded by a [[:meta:Grants:Project]] or by Wikidata Germany. I don't know under which shape and who, but there is a TAL/Wikidata collaboration to set up there. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:41, 23 February 2021 (UTC)<br />
<br />
== [Category:Speakers in {iso}] ==<br />
Salut Lucas, t'embetes pas trop je vais passer avec un bot bientot. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:43, 9 March 2021 (UTC)<br />
<br />
<br />
== Unknown CSS in [[MediaWiki:Common.css]] ==<br />
Hello Lucas, the first selector of this code looks suspicious to me. If something is missing from the translations, it could be due to this.<br />
<pre><br />
.mw-pt-translate-header, .mw-pt-translate-header ~ hr {<br />
display: none;<br />
}<br />
</pre><br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:55, 26 April 2021 (UTC)<br />
:Hi {{ping|Yug}},<br />
:Why is this selector suspicious to you exactly? And the translation extension is broken at a more core level, it's probably not CSS related but I'll look into this.<br />
:Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 04:45, 27 April 2021 (UTC)<br />
::Hello [[User:VIGNERON|VIGNERON]]. Why ? because 1) I noticed your messages of broken translation extension, and 2) we seen in recent review that 0x010C did hide some elements temporarily then did not restore them, .mw-pt-translate-header could be a similar case. I don't say it is, but I think WikiLucas, who is the leading user on translation extension, should be notified. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:07, 27 April 2021 (UTC)<br />
:::Ok, I'm not sure why 0x010C added this code last May but {{ping|Seb35}} removed it just now. That said, there is still the other behind issue of [[Special:Translate]] to solve ([[phab:T280972]]). Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 14:02, 27 April 2021 (UTC)<br />
<br />
== Au sujet des enregistrements défectueux ==<br />
<br />
Je vois que tu as ajouté une ligne dans la table des enregistrements défectueux de la Chat Room (yay!). Les chiffres ne semblent pas coller: "60 testés, 45 affectés, 15%": on s'attendrait à 75%, ou à 9 affectés, ou à 300 testés.<br />
{{ping|WikiLucas00}}<br />
[[User:Julien Baley|Julien Baley]] ([[User talk:Julien Baley|talk]]) 06:53, 27 April 2021 (UTC)<br />
:Bonjour {{ping|Julien Baley}}. En effet, ce sont 45 enregistrements défectueux sur 60, soit 75%. Je corrige, merci. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:44, 27 April 2021 (UTC)<br />
<br />
== Enregistrement ==<br />
<br />
Salut j'ai enregistré un mot mot en Sicilien et je voudrais savoir si j'ai tout bien fait.--[[User:Tenshi 98|Tenshi 98]] ([[User talk:Tenshi 98|talk]]) 03:12, 11 July 2021 (UTC)<br />
:Bonjour {{ping|Tenshi 98}} Bienvenue et merci pour tes premiers enregistrements en sicilien ! 🙂 Je les ai écoutés, ils sont bien paramétrés (tu as bien écrit les mots dans l'orthographe de la langue et tu as bien sélectionné la bonne langue). Pour les prochains enregistrements, je te conseille d'utiliser un microphone externe (par exemple un micro d'écouteurs) afin d'avoir une meilleure qualité audio (+ d'informations sur [[Special:MyLanguage/Help:Configure_your_microphone|cette page]]). Si tu enregistres sur un ordinateur, il est préférable d'utiliser Firefox pour éviter des problèmes audio liés à Chrome. Enfin, pour que tes enregistrements soient mieux décrits, tu peux compléter ton profil de locuteur sur [[Q595301|cette page]], en indiquant un lieu d'apprentissage pour chaque langue que tu parles (tu peux choisir une ville, ou même une région ou un pays).<br />
:PS: Si jamais tu souhaites enregistrer des mots dans une autre langue, tu peux tout à fait le faire, mais il faut bien faire attention de sélectionner la bonne langue à l'étape 3 (Détails)!<br />
:Bons enregistrements, n'hésite pas si tu as d'autres questions 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 15:16, 11 July 2021 (UTC)<br />
<br />
== Re: Lemmas-without-audio-sorted-by-number-of-wiktionaries ==<br />
[[User talk:Olaf|Original post on Olaf's talk page]] - <br />
''Hi '''@'''Olaf I hope you are doing well! I'm using your list quite often and I just realized that is not exactly a list of '''lemmas''', rather a list of '''forms'''. For instance, I find more and more verbal inflections in your list in French, which are useful to cover but not always a priority. Would it be possible for you to create a similar list, but dedicated to real '''lemmas''' (i.e. in French: singular for nouns, sg. masculine for adjectives, infinitive tense for verbs)? I don't know if this issue only happens to your list in French or also in other languages (we seem to have digged deeper with French lemmas haha). All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:21, 21 July 2021 (UTC)''<br />
:Well, yes, in fact it is a list produced by counting article titles in various language versions of Wiktionary. While most Wiktionaries use almost exclusively lemmas, inflected forms happen sometimes. So at the beginning of each list there are only lemmas as they are most common, but when we go down long enough, there will be more and more inflected forms. You can't even call it "words" accurately, because sometimes there are longer phrases too. Certainly "lemmas" is better than "words" in one aspect - it's earlier in the alphabet, so the list is more likely to be visible in the Record Wizard. ;-) [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 21:24, 23 July 2021 (UTC)<br />
::{{ping|Olaf}} May I ask you for a complementary Olafbot list for French language? It would consist in the same list but filtered to only display elements that are part of [[:fr:wikt:Catégorie:Lemmes_en_français|this category]] (i.e. only real lemmas of French with no audio, without all inflexions). It would be very helpful to cover rapidly all frequent French lemmas on Wiktionaries. Thank you, all the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 19:01, 13 September 2021 (UTC)<br />
<br />
== Tutoriel en vidéo, suggestion ==<br />
Bonjour,<br />
<br />
Vous avez publié un [https://lingualibre.org/wiki/LinguaLibre:Chat_room#Lingua_Libre_video_tutorial tutoriel en vidéo]. À la fin, je lis « À vous de jouer ! ». Mieux serait : « À vous la parole ! » ou « À vous de parler ! ».<br />
<br />
[[User:Cantons-de-l&#39;Est|Cantons-de-l&#39;Est]] ([[User talk:Cantons-de-l&#39;Est|talk]]) 15:27, 28 July 2021 (UTC)<br />
<br />
== Congratulations WikiLucas00 ==<br />
<br />
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"<br />
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Articolo5k.gif|200px]]<br />
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''The 50,000 Barnstar'''<br />
|-<br />
|style="vertical-align: middle; padding: 3px;" | Hello WikiLucas00, congratulations on completing 50,000 pronunciation uploads on Wikimedia Commons. Thanks for your work to improve the project. --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 21:02, 25 August 2021 (UTC)<br />
|}<br />
:Thank you very much {{ping|Titodutta}}, this is very kind. All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 07:32, 26 August 2021 (UTC)<br />
<br />
== Add South Levantine Arabic (ajp) ==<br />
<br />
Hello, can you please add South Levantine Arabic (ajp)? Thanks in advance! --[[User:Fenakhay|Fenakhay]] ([[User talk:Fenakhay|talk]]) 14:36, 13 September 2021 (UTC)<br />
: Could you please also add other Arabic varieties? Here's [https://iso639-3.sil.org/code/ara the list]:<br />
* Algerian Saharan Arabic <br />
* abh Tajiki Arabic <br />
* abv Baharna Arabic <br />
* acm Mesopotamian Arabic <br />
* acq Ta'izzi-Adeni Arabic <br />
* acw Hijazi Arabic <br />
* acx Omani Arabic <br />
* acy Cypriot Arabic <br />
* adf Dhofari Arabic <br />
* aeb Tunisian Arabic <br />
* aec Saidi Arabic <br />
* afb Gulf Arabic <br />
* ajp South Levantine Arabic <br />
* apc North Levantine Arabic <br />
* apd Sudanese Arabic <br />
* arb Standard Arabic <br />
* arq Algerian Arabic <br />
* ars Najdi Arabic <br />
* ary Moroccan Arabic <br />
* arz Egyptian Arabic <br />
* auz Uzbeki Arabic<br />
* avl Eastern Egyptian Bedawi Arabic <br />
* ayh Hadrami Arabic <br />
* ayl Libyan Arabic <br />
* ayn Sanaani Arabic <br />
* ayp North Mesopotamian Arabic <br />
* bbz Babalia Creole Arabic Deprecated<br />
* pga Sudanese Creole Arabic <br />
* shu Chadian Arabic <br />
* ssh Shihhi Arabic<br />
: [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 16:19, 13 September 2021 (UTC)<br />
: {{ping|Fenakhay|A455bcd9}} I imported all the Arabic varieties you hve listed above. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:21, 13 September 2021 (UTC)<br />
:: {{ping|Pamputt}} Merci beaucoup ! [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 07:20, 14 September 2021 (UTC)<br />
<br />
==HI==<br />
Bro could you import my translation in Meetei language. I wrongly translated in British English. <br />
[[User:Awangba Mangang|Awangba Mangang]] ([[User talk:Awangba Mangang|talk]]) 12:13, 18 September 2021 (UTC)<br />
:{{ping|Awangba Mangang}} Okay thank you for letting me know, I'll try to correct this. While I do this, would you like to [[Special:MyLanguage/Help:Create_your_own_lists|create a list]] in your own language, and then maybe to record it? 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:24, 18 September 2021 (UTC)<br />
:{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:41, 18 September 2021 (UTC)<br />
<br />
==J'ai besoin de ton avis==<br />
Salut Lucas !<br />
<br />
{{GT|Nous avons déjà parlé dans ce projet. J'ai besoin de ton avis. Lequel des administrateurs du projet fr.wiktoionary a du sens d'écrire à, afin qu'ils prêtent attention au problème suivant:}} <br />
{{GT|Le RfC récemment ouvert, qui soulève à nouveau des questions sur le droit d'auteur, décrit une situation qui peut être directement considérée comme}}<br />
* {{GT|prétendre qu'un article de votre sous-projet viole le droit d'auteur}} - https://fr.wiktionary.org/wiki/Shakespeare<br />
* {{GT|si un article a été supprimé dans un sous-projet pour lequel le RFC est ouvert, alors à l'avenir on peut s'attendre à ce que cet article de fr.wiktoionary sous-projet doive être supprimé sur la base de ce précédent}}<br />
<br />
{{GT|Section RfC décrivant le "cas Shakespeare"}} - https://meta.wikimedia.org/wiki/Requests_for_comment/I_need_to_solve_the_problem_that_I_consider_important_in_the_eo.wiktionary.org_project#Shakespeare-1<br />
<br />
{{GT|Je crois personnellement que je suis obligé d'informer quelqu'un de l'administration de fr.wiktoionaryvotre sous-projet à propos d'un tel événement. Et il serait également utile qu'une personne expérimentée en droit d'auteur se prononce sur fr.wiktoionary projet. Cette question s'applique à tous les sous-projets de Wiktionnaire, quelle que soit la langue. Nous sommes tous connectés à la fois par un projet commun et des liens intersites (InterWiki).}}<br />
<br />
{{GT|Ou vous allez vous-même transmettre mes informations.}}<br />
<br />
{{GT|Заранее благодарю.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 08:36, 25 October 2021 (UTC)<br />
:{{GT|Bonjour}}{{ping|Vami}}. {{GT|Merci pour ton message, mais je ne suis pas administrateur sur le Wiktionary francophone}}. {{GT|J'ai parlé avec quelques administrateurs, qui sont informés du problème, mais tu peux poster un message sur la Wikidémie si tu souhaites commencer une discussion sur le Wiktionary francophone.}} [https://fr.wiktionary.org/wiki/Wiktionnaire:Wikid%C3%A9mie Wikidémie].<br />
:{{GT|Cordialement}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:06, 25 October 2021 (UTC)<br />
<br />
::Bonjour, {{ping|WikiLucas00}}! {{GT|Bon, je ne suis pas prêt à poser un problème pour une discussion générale en français - j'utilise un traducteur automatique.}}<br />
::{{GT|Mais dans la communication personnelle, ce n'est pas si critique. Pouvez-vous me présenter les personnes avec qui vous avez communiqué ? Il est seulement nécessaire d'exprimer un avis sur plusieurs questions au sein du RFC, auxquelles j'ai donné un lien.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 18:41, 28 October 2021 (UTC)<br />
<br />
== Referent user ==<br />
:''See [[LinguaLibre:Roles#Organizing_events]].''<br />
Hello Lucas, I cited Adélaïde, Emma and yourself as reference users for contributors with experience on institutional event building (Contribuling). It implies that other users may contact us for light guidance, feedback on your personal experience in this matter, where support can be found, etc. Is that ok for you ? Best regards, [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:56, 16 November 2021 (UTC)<br />
<br />
== {Autopatrolled}==<br />
Hello Lucas, I noticed this Autopatrolled template used on [[User talk:Azerbaijani audiorecordings]], nice. Do you have an idea of the overall situation around '''ratelimit in past months''' ? Are you alone to handle it ? Is there a solid monitoring and user support for this aspect ? Does this issue needs care ? I need to catch up. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:31, 19 November 2021 (UTC)<br />
:(As of now, what I do is to open the [https://lingualibre.org/index.php?hidebots=1&translations=filter&hideWikibase=1&namespace=0&invert=1&limit=1000&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2 Recent changes (non-audio)], search for "remote", then if I see an user with upload between 380~430 (and a red userpage), I go to [[:commons:Commons:Requests_for_rights#Autopatrol]] and fill a request for that user. Then I message that user about it on its LL's user_talk page. Note: Messaging on Commons could be better actually... I did a full review today, reviewviewing November 14-19th. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:24, 19 November 2021 (UTC)<br />
::Salut {{ping|Yug}}. C'est une bonne idée mais je préfère travailler au cas par cas pour ces demandes, parce qu'une personne faisant une session de 380 enregistrements n'a pas forcément besoin du rôle si elle ne compte pas contribuer intensivement par la suite. Aussi, dans plusieurs cas, les comptes sont créés uniquement pour contribuer à Lingua Libre. Demander le droit autopatrolled pour tous ces utilisateurs qui n'en ont pas besoin risque de nous attirer les critiques (puis potentiellement les refus) de la communauté de Commons. Je préfère cibler des utilisateurs actifs sur d'autres wikis (une preuve de sérieux pour la communauté de Commons), qui ont réalisé au moins 700 enregistrements LiLi (environ 2 sessions bridées) et qui comptent continuer à contribuer intensivement. {{ping|Pamputt}} tu en penses quoi ? — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 00:06, 20 November 2021 (UTC)<br />
:::Je vois, merci pour ce tour. Je prends note. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:01, 21 November 2021 (UTC)<br />
<br />
== Promotion of Lingua Libre on blogs, social media, etc. ==<br />
<br />
It is extremely necessary to promote Lingua Libre on blogs and social media to increase the number of contributors.<br />
<br />
An efficient way would be to ask bloggers of the Linux / FOSS community to write reviews about Lingua Libre to create awareness about the Project.<br />
<br />
For example, the website "[https://itsfoss.com/ It's FOSS]" has a huge number of readers. If they publish an article about Lingua Libre it would benefit the project providing feedback and also attracting new users. Of course, the reviews should be unbiased and voluntary (non paid). I just wrote to "It's FOSS" asking them to review LinguaLibre. Could you please help and also contact them ? [[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 17:16, 20 November 2021 (UTC)<br />
:{{ping|Marreromarco|WikiLucas00}} Absolutely. We currently lack human resources in those fields (outreach, communication), that's just this. Generally speaking, I'am writing down a [[LinguaLibre:Roles]] page to define useful roles for LinguaLibre, so we can call for new contributors to jump in, they take on roles according to their skills and interests, and roll forward. We start to have small task forces for:<br />
:* coding bots (Poslovitch, Olaf, Pamputt, myself?)<br />
:* maintenance & inward community (Pamputt, WikiLucas, myself)<br />
:* workshops (WikiLucas, Lyokoï, Eavq)<br />
:* recording per language...<br />
:But we would benefit a LOT from other small teams (1~3), most notably leading on outreach and communication, yes. Marreromarco, would you like to expand [[LinguaLibre:Roles#Outreach_for_awareness]] with your ideas ? It could prove useful to first gather those ideas there, and eventually, based on it, to lead a weekend online "hackathon" on outreach & communication. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:09, 21 November 2021 (UTC)<br />
<br />
== On site Workshop ==<br />
Hello WikiLucas, as you know I gather typical [[LinguaLibre:Workshops|workshop formats]] and [[LinguaLibre:Roles|contributor roles]] on two wikipages. I need your help to write [[LinguaLibre:Workshops#On site workshop]]. My experience is rather in presentations or unformal demos. Your and Eavq's experience at INALCO presents an interesting, in-institution format worth reporting briefly, in a positive light, so it init similar projects elsewhere. I can write a draft but since I wasn't there It will then need a deep review afterward. Would you like to help write this section ? Which approach do you prefer ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:04, 23 November 2021 (UTC)<br />
<br />
== Re: Suffixes ==<br />
Thanks for letting me know. I will take a look. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 17:54, 26 December 2021 (UTC)<br />
<br />
== Problème enregistrement en finnois ==<br />
<br />
Salut,<br />
<br />
Pendant le week-end, je continue de faire des requêtes SPARQL autour de LinguaLibre (avec l'aide de {{ping|Nikki}}) et là vois qu'il y a 1111 enregistrements en finnois que tu as fait et qui sont du français (j'ai regardé côté Commons, j'ai l'impression que la plupart des fichiers ont été supprimés mais dans le doute je te le signale, il faudrait au moins supprimer les fichiers).<br />
<br />
Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:55, 20 February 2022 (UTC)<br />
:{{ping|VIGNERON}}, tu peux donner la requête permettant de trouver ces enregistrements ? Je peux essayer de me remotiver pour finir mon bot de maintenance pour ce genre de cas. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 08:57, 20 February 2022 (UTC)<br />
::{{ping|Pamputt}} ooups oui évidemment, là voilà :<br />
<syntaxhighlight lang="sparql"><br />
PREFIX ll: <https://lingualibre.org/entity/> <br />
PREFIX llt: <https://lingualibre.org/prop/direct/><br />
<br />
select * {<br />
?e llt:P4 ll:Q33; #langue = finnois<br />
llt:P7 ?transcription; <br />
llt:P5 ll:Q102123. #locuteur = WikiLucas00<br />
} order by ?transcription<br />
</syntaxhighlight><br />
::Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 09:16, 20 February 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=User_talk:WikiLucas00&diff=743065
User talk:WikiLucas00
2022-02-20T09:16:23Z
<p>VIGNERON: /* Problème enregistrement en finnois */ +</p>
<hr />
<div>'''Please feel free to leave a message below. Sign your post using <nowiki>~~~~</nowiki>'''<br/><br />
'''Sentez-vous libre de laisser un message ci-dessous. Signez votre message avec <nowiki>~~~~</nowiki>'''<br />
== INaLCO ==<br />
All good ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:27, 17 October 2020 (UTC)<br />
: Yes, everything went pretty well, we had a very varied group of participants, speaking many various languages as you may have seen. I can't wait to see how many of these new contributors will carry on in the long term 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 17:41, 26 October 2020 (UTC)<br />
::Thinking back, was any user immediately retained and active ?<br />
::It may need a year or two for for the info to spread and sink in. (Like for the Indian community : first contact was 2017. First real activity was 2020.)<br />
::It's part of the game. But I wonder if we had a positive surprise with this INALCO workshop. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:54, 9 February 2021 (UTC)<br />
<br />
== Note de la dernière réunion ==<br />
<br />
Salut WikiLucas00, je n'ai pas retrouvé où est ce qu'on a stocké les notes des précédentes réunions Lingua Libre mais il y en a néanmoins quelques-une ici ([[LinguaLibre:Réunion_3_novembre_2018|exemple]]). Je n'étais pas à la dernière réunion mais je pense qu'on devrait néanmoins recopier les [https://etherpad.wikimedia.org/p/r%C3%A9union_lingua_libre_2021 notes de cette réunion] ici pour archivage (il est d'ailleurs question de cela dans le pad (ligne 207)). Ca te va te faire ça ici plutôt que sur Meta ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 22:09, 8 December 2020 (UTC)<br />
:Salut {{ping|Pamputt}} bonne idée d'archiver les prises de notes sur LiLi, je vais organiser ça — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:29, 9 December 2020 (UTC)<br />
:Re: J'ai rangé les réunions de ce type dans [[LinguaLibre:Réunions]] puisqu'elles sont francophones. J'ai mis en forme la réunion du 4 décembre ici : [[LinguaLibre:Réunions/2020/4-12]]. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:18, 9 December 2020 (UTC)<br />
<br />
== {{tl|userbox-records}} ==<br />
Hello Lucas,<br><br />
I give it a week to calm things down and do minor tests... but after that I suggest we push strongly for those userboxes. The categories it will build will be a first stone to create per-language communities, aka "Portals/Project" pages. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:24, 8 February 2021 (UTC)<br />
:Hello {{ping|Yug}}<br/> Thank you for this very good initiative! I've started to paste it on the pages of new users who actually made at least one recording. It is good to also create the associated Category page, so that every speaker of a language can find others. I just corrected a small mistake in the templates. See you! — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:06, 9 February 2021 (UTC)<br />
::Nice, thanks for jumping in. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:52, 9 February 2021 (UTC)<br />
::Also, a shorter version works on userpages using magic word {ROOTPAGENAME}. See [https://lingualibre.org/index.php?title=User%3ASunita_gambhir&type=revision&diff=422070&oldid=421958 diff]. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:40, 9 February 2021 (UTC)<br />
:::Also, for portals, your {{tl|colored box}} will come handy ! [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:54, 9 February 2021 (UTC)<br />
== Emergence of local communities ? ==<br />
Some indian users will manage the tagging of Indian contributors from now on. Better for local community building. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 02:06, 10 February 2021 (UTC)<br />
:Same for Polish. It's a bit early for this community tho. Should we encourage the crystallization of local community and leader or leave these individuals alone since they contribute smoothly as of now ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:53, 11 February 2021 (UTC)<br />
<br />
== J'ai cassé le Technical Board/intro ==<br />
<br />
Bonjour,<br />
<br />
Désolé de te tomber dessus comme ça : je ne comprenais pas pourquoi ma modification sur Technical Board/intro/text n'était pas affichée, puis j'ai vu que Technical Board/intro redirigeait vers Technical Board/intro/lang. Et en corrigeant cette "redirection" incorrecte, j'ai des balises "translate" qui sont apparues de partout :/<br />
Je ne suis clairement pas un expert avec cette histoire de "traduction". Y a-t-il des ressources où je peux apprendre comment ça fonctionne ?<br />
Et, en attendant, pourrais-tu, s'il te plaît, réparer ma bêtise ? J'ai fait toutes mes modifications sur /text. Faut-il que je les recopie systématiquement sur /lang ?<br />
<br />
Merci d'avance, et mes sincères excuses. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 23:03, 13 February 2021 (UTC)<br />
:{{ping|Poslovitch}} j'ai corrigé. Je vais supprimé Technical Board/intro/lang. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:50, 14 February 2021 (UTC)<br />
:: Merci <3 ! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 14:34, 14 February 2021 (UTC)<br />
:::Hi there. I tried to add content but it doesn't work. See [[LinguaLibre:Technical_board/intro/text]]. I do so my editing this page the classical way. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:09, 15 February 2021 (UTC)<br />
::::Salut {{ping|Yug}} Comme tu peux le lire deux fois dans l'historique de la page, il ne faut pas ajouter ou modifier soi-même les balises qui numérotent les sections de la page. L'extension de traduction numérote elle-même les sections, et changer leur numéro provoque des problèmes. Merci de faire attention par la suite 😉 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:47, 15 February 2021 (UTC)<br />
::::Avez pas vu... ;___; [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:49, 15 February 2021 (UTC)<br />
:::::Pas grave haha, mais laisse-moi quelques minutes pour revert ces changements tout en gardant les changements textuels, avant de marquer la page pour traduction — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:50, 15 February 2021 (UTC)<br />
:::::{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:01, 15 February 2021 (UTC)<br />
::::::Comment éditer la source ? C'est une page en travaux et à développer. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:24, 15 February 2021 (UTC)<br />
:::::*En ajoutant tes modifications textuelles classiquement, et en ajoutant simplement une balise translate ouvrante au début de la zone à traduire, et une fermante à la fin de cette zone (comme dans [[Special:Diff/429301/429543|cette modification par Poslovitch]] par exemple).<br/> Je vois que cette page bouge beaucoup et que les traductions compliquent les choses. Je te pose donc la question que je t'avais déjà posée en privé ; est-ce que cette page a vraiment besoin d'être traduite ? Si non, on peut supprimer toutes les balises de traduction pour ne garder que l'anglais (qui convient aux développeurs qui liront la page), et ça sera plus pratique à éditer au quotidien. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 01:43, 16 February 2021 (UTC)<br />
::::::Hello, je découvre comme tu le vois la mise en place de page multilingue (récupérée du modèle Welcome), ce qui est en fait compliqué lorsqu'on débute. Il est génant pour moi de répondre sur ta question de traductions dans la mesure où je découvre cette outil. Mon objectif personnel, en tout cas, est de créer une mouture en anglais, au cours de cette semaine. C'est la raison pour laquelle j'ai aposé le bandeau {{tl|draft}}. Présentement, la page anglaise que j'ai initié et que je co-construis n'est pas achevée. Je ne m'engagerai pas à faire des traductions mais libre à d'autres de traduire si ils le souhaitent : ''« ceux qui font décident »''. L'option est présentement laissé à ceux qui souhaitent traduire et qui maitrise l'outil. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:50, 16 February 2021 (UTC)<br />
::::::Je ne pense pas avoir l'expérience nécessaire pour juger ''l'utilité vs cout'' de cette outils sur cette page. J'ai copié {Welcome} "tel quel", supprimé les phrases, et collé les miennes. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:57, 16 February 2021 (UTC)<br />
:::::Hello Yug, pas de soucis, j'ai aussi eu quelques déboires avec ce système quand j'ai participé à la mise en place du modèle de bienvenue, c'est Pamputt qui m'avait alors aidé (et Poslovitch non plus n'a pas réussi à prendre en main l'outil du premier coup - outil qui n'est donc visiblement intuitif pour personne !). Je pense personnellement que pour la page en question, un simple bandeau en anglais uniquement suffirait, et permettrait aux contributeurs de la page d'avancer plus vite en mettant à jour le texte sans se soucier des traductions.<br/>Qu'en pensez-vous {{ping|Pamputt|Poslovitch}} ?<br/>— '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 22:39, 16 February 2021 (UTC)<br />
::::::Contentons-nous du bandeau en anglais. En revanche, je pense que ce serait intéressant de "développer" l'idée des "Flash Technical News". Ca pourrait devenir un outil intéressant, encore plus s'il est traduit. Y aurait moyen de "l'inclure", depuis une autre page ? Genre LinguaLibre:Technical news, qui ne contiendrait que ces "news techniques rapides", sous forme de liste (comme actuellement) ? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:52, 16 February 2021 (UTC)<br />
:::::::Anglais uniquement donc, au moins pour le moment. Si qqu'un pousse activement pour des langues supplémentaires on pourra aviser. A noté : nous avons un contributeur Svenska (SWE) tres enthousiaste à coordonner.<br />
:::::::Le principe d'encart flash new est interessant oui. Elle pourrait etre modularisé en template oui. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 23:03, 16 February 2021 (UTC)<br />
<br />
== Lexique 3.83 ==<br />
Hello WikiLucas,<br>I'am re-exploring UNILEX. As I asked UNILEX about [https://github.com/unicode-org/unilex/issues/10 opening up their license] I got surprised to see they do know Wikidata Lexeme. I also bumped again into [https://github.com/chrplr/openlexicon Lexique 3.83]. <br />
<br />
It's a long term thing, but one day, there will be the need to migrate as much of these lexical data as possible to Wikidata Lexeme. That can be material for TAL mission either for them, or funded by a [[:meta:Grants:Project]] or by Wikidata Germany. I don't know under which shape and who, but there is a TAL/Wikidata collaboration to set up there. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:41, 23 February 2021 (UTC)<br />
<br />
== [Category:Speakers in {iso}] ==<br />
Salut Lucas, t'embetes pas trop je vais passer avec un bot bientot. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:43, 9 March 2021 (UTC)<br />
<br />
<br />
== Unknown CSS in [[MediaWiki:Common.css]] ==<br />
Hello Lucas, the first selector of this code looks suspicious to me. If something is missing from the translations, it could be due to this.<br />
<pre><br />
.mw-pt-translate-header, .mw-pt-translate-header ~ hr {<br />
display: none;<br />
}<br />
</pre><br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:55, 26 April 2021 (UTC)<br />
:Hi {{ping|Yug}},<br />
:Why is this selector suspicious to you exactly? And the translation extension is broken at a more core level, it's probably not CSS related but I'll look into this.<br />
:Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 04:45, 27 April 2021 (UTC)<br />
::Hello [[User:VIGNERON|VIGNERON]]. Why ? because 1) I noticed your messages of broken translation extension, and 2) we seen in recent review that 0x010C did hide some elements temporarily then did not restore them, .mw-pt-translate-header could be a similar case. I don't say it is, but I think WikiLucas, who is the leading user on translation extension, should be notified. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:07, 27 April 2021 (UTC)<br />
:::Ok, I'm not sure why 0x010C added this code last May but {{ping|Seb35}} removed it just now. That said, there is still the other behind issue of [[Special:Translate]] to solve ([[phab:T280972]]). Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 14:02, 27 April 2021 (UTC)<br />
<br />
== Au sujet des enregistrements défectueux ==<br />
<br />
Je vois que tu as ajouté une ligne dans la table des enregistrements défectueux de la Chat Room (yay!). Les chiffres ne semblent pas coller: "60 testés, 45 affectés, 15%": on s'attendrait à 75%, ou à 9 affectés, ou à 300 testés.<br />
{{ping|WikiLucas00}}<br />
[[User:Julien Baley|Julien Baley]] ([[User talk:Julien Baley|talk]]) 06:53, 27 April 2021 (UTC)<br />
:Bonjour {{ping|Julien Baley}}. En effet, ce sont 45 enregistrements défectueux sur 60, soit 75%. Je corrige, merci. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:44, 27 April 2021 (UTC)<br />
<br />
== Enregistrement ==<br />
<br />
Salut j'ai enregistré un mot mot en Sicilien et je voudrais savoir si j'ai tout bien fait.--[[User:Tenshi 98|Tenshi 98]] ([[User talk:Tenshi 98|talk]]) 03:12, 11 July 2021 (UTC)<br />
:Bonjour {{ping|Tenshi 98}} Bienvenue et merci pour tes premiers enregistrements en sicilien ! 🙂 Je les ai écoutés, ils sont bien paramétrés (tu as bien écrit les mots dans l'orthographe de la langue et tu as bien sélectionné la bonne langue). Pour les prochains enregistrements, je te conseille d'utiliser un microphone externe (par exemple un micro d'écouteurs) afin d'avoir une meilleure qualité audio (+ d'informations sur [[Special:MyLanguage/Help:Configure_your_microphone|cette page]]). Si tu enregistres sur un ordinateur, il est préférable d'utiliser Firefox pour éviter des problèmes audio liés à Chrome. Enfin, pour que tes enregistrements soient mieux décrits, tu peux compléter ton profil de locuteur sur [[Q595301|cette page]], en indiquant un lieu d'apprentissage pour chaque langue que tu parles (tu peux choisir une ville, ou même une région ou un pays).<br />
:PS: Si jamais tu souhaites enregistrer des mots dans une autre langue, tu peux tout à fait le faire, mais il faut bien faire attention de sélectionner la bonne langue à l'étape 3 (Détails)!<br />
:Bons enregistrements, n'hésite pas si tu as d'autres questions 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 15:16, 11 July 2021 (UTC)<br />
<br />
== Re: Lemmas-without-audio-sorted-by-number-of-wiktionaries ==<br />
[[User talk:Olaf|Original post on Olaf's talk page]] - <br />
''Hi '''@'''Olaf I hope you are doing well! I'm using your list quite often and I just realized that is not exactly a list of '''lemmas''', rather a list of '''forms'''. For instance, I find more and more verbal inflections in your list in French, which are useful to cover but not always a priority. Would it be possible for you to create a similar list, but dedicated to real '''lemmas''' (i.e. in French: singular for nouns, sg. masculine for adjectives, infinitive tense for verbs)? I don't know if this issue only happens to your list in French or also in other languages (we seem to have digged deeper with French lemmas haha). All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:21, 21 July 2021 (UTC)''<br />
:Well, yes, in fact it is a list produced by counting article titles in various language versions of Wiktionary. While most Wiktionaries use almost exclusively lemmas, inflected forms happen sometimes. So at the beginning of each list there are only lemmas as they are most common, but when we go down long enough, there will be more and more inflected forms. You can't even call it "words" accurately, because sometimes there are longer phrases too. Certainly "lemmas" is better than "words" in one aspect - it's earlier in the alphabet, so the list is more likely to be visible in the Record Wizard. ;-) [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 21:24, 23 July 2021 (UTC)<br />
::{{ping|Olaf}} May I ask you for a complementary Olafbot list for French language? It would consist in the same list but filtered to only display elements that are part of [[:fr:wikt:Catégorie:Lemmes_en_français|this category]] (i.e. only real lemmas of French with no audio, without all inflexions). It would be very helpful to cover rapidly all frequent French lemmas on Wiktionaries. Thank you, all the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 19:01, 13 September 2021 (UTC)<br />
<br />
== Tutoriel en vidéo, suggestion ==<br />
Bonjour,<br />
<br />
Vous avez publié un [https://lingualibre.org/wiki/LinguaLibre:Chat_room#Lingua_Libre_video_tutorial tutoriel en vidéo]. À la fin, je lis « À vous de jouer ! ». Mieux serait : « À vous la parole ! » ou « À vous de parler ! ».<br />
<br />
[[User:Cantons-de-l&#39;Est|Cantons-de-l&#39;Est]] ([[User talk:Cantons-de-l&#39;Est|talk]]) 15:27, 28 July 2021 (UTC)<br />
<br />
== Congratulations WikiLucas00 ==<br />
<br />
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"<br />
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Articolo5k.gif|200px]]<br />
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''The 50,000 Barnstar'''<br />
|-<br />
|style="vertical-align: middle; padding: 3px;" | Hello WikiLucas00, congratulations on completing 50,000 pronunciation uploads on Wikimedia Commons. Thanks for your work to improve the project. --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 21:02, 25 August 2021 (UTC)<br />
|}<br />
:Thank you very much {{ping|Titodutta}}, this is very kind. All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 07:32, 26 August 2021 (UTC)<br />
<br />
== Add South Levantine Arabic (ajp) ==<br />
<br />
Hello, can you please add South Levantine Arabic (ajp)? Thanks in advance! --[[User:Fenakhay|Fenakhay]] ([[User talk:Fenakhay|talk]]) 14:36, 13 September 2021 (UTC)<br />
: Could you please also add other Arabic varieties? Here's [https://iso639-3.sil.org/code/ara the list]:<br />
* Algerian Saharan Arabic <br />
* abh Tajiki Arabic <br />
* abv Baharna Arabic <br />
* acm Mesopotamian Arabic <br />
* acq Ta'izzi-Adeni Arabic <br />
* acw Hijazi Arabic <br />
* acx Omani Arabic <br />
* acy Cypriot Arabic <br />
* adf Dhofari Arabic <br />
* aeb Tunisian Arabic <br />
* aec Saidi Arabic <br />
* afb Gulf Arabic <br />
* ajp South Levantine Arabic <br />
* apc North Levantine Arabic <br />
* apd Sudanese Arabic <br />
* arb Standard Arabic <br />
* arq Algerian Arabic <br />
* ars Najdi Arabic <br />
* ary Moroccan Arabic <br />
* arz Egyptian Arabic <br />
* auz Uzbeki Arabic<br />
* avl Eastern Egyptian Bedawi Arabic <br />
* ayh Hadrami Arabic <br />
* ayl Libyan Arabic <br />
* ayn Sanaani Arabic <br />
* ayp North Mesopotamian Arabic <br />
* bbz Babalia Creole Arabic Deprecated<br />
* pga Sudanese Creole Arabic <br />
* shu Chadian Arabic <br />
* ssh Shihhi Arabic<br />
: [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 16:19, 13 September 2021 (UTC)<br />
: {{ping|Fenakhay|A455bcd9}} I imported all the Arabic varieties you hve listed above. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:21, 13 September 2021 (UTC)<br />
:: {{ping|Pamputt}} Merci beaucoup ! [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 07:20, 14 September 2021 (UTC)<br />
<br />
==HI==<br />
Bro could you import my translation in Meetei language. I wrongly translated in British English. <br />
[[User:Awangba Mangang|Awangba Mangang]] ([[User talk:Awangba Mangang|talk]]) 12:13, 18 September 2021 (UTC)<br />
:{{ping|Awangba Mangang}} Okay thank you for letting me know, I'll try to correct this. While I do this, would you like to [[Special:MyLanguage/Help:Create_your_own_lists|create a list]] in your own language, and then maybe to record it? 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:24, 18 September 2021 (UTC)<br />
:{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:41, 18 September 2021 (UTC)<br />
<br />
==J'ai besoin de ton avis==<br />
Salut Lucas !<br />
<br />
{{GT|Nous avons déjà parlé dans ce projet. J'ai besoin de ton avis. Lequel des administrateurs du projet fr.wiktoionary a du sens d'écrire à, afin qu'ils prêtent attention au problème suivant:}} <br />
{{GT|Le RfC récemment ouvert, qui soulève à nouveau des questions sur le droit d'auteur, décrit une situation qui peut être directement considérée comme}}<br />
* {{GT|prétendre qu'un article de votre sous-projet viole le droit d'auteur}} - https://fr.wiktionary.org/wiki/Shakespeare<br />
* {{GT|si un article a été supprimé dans un sous-projet pour lequel le RFC est ouvert, alors à l'avenir on peut s'attendre à ce que cet article de fr.wiktoionary sous-projet doive être supprimé sur la base de ce précédent}}<br />
<br />
{{GT|Section RfC décrivant le "cas Shakespeare"}} - https://meta.wikimedia.org/wiki/Requests_for_comment/I_need_to_solve_the_problem_that_I_consider_important_in_the_eo.wiktionary.org_project#Shakespeare-1<br />
<br />
{{GT|Je crois personnellement que je suis obligé d'informer quelqu'un de l'administration de fr.wiktoionaryvotre sous-projet à propos d'un tel événement. Et il serait également utile qu'une personne expérimentée en droit d'auteur se prononce sur fr.wiktoionary projet. Cette question s'applique à tous les sous-projets de Wiktionnaire, quelle que soit la langue. Nous sommes tous connectés à la fois par un projet commun et des liens intersites (InterWiki).}}<br />
<br />
{{GT|Ou vous allez vous-même transmettre mes informations.}}<br />
<br />
{{GT|Заранее благодарю.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 08:36, 25 October 2021 (UTC)<br />
:{{GT|Bonjour}}{{ping|Vami}}. {{GT|Merci pour ton message, mais je ne suis pas administrateur sur le Wiktionary francophone}}. {{GT|J'ai parlé avec quelques administrateurs, qui sont informés du problème, mais tu peux poster un message sur la Wikidémie si tu souhaites commencer une discussion sur le Wiktionary francophone.}} [https://fr.wiktionary.org/wiki/Wiktionnaire:Wikid%C3%A9mie Wikidémie].<br />
:{{GT|Cordialement}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:06, 25 October 2021 (UTC)<br />
<br />
::Bonjour, {{ping|WikiLucas00}}! {{GT|Bon, je ne suis pas prêt à poser un problème pour une discussion générale en français - j'utilise un traducteur automatique.}}<br />
::{{GT|Mais dans la communication personnelle, ce n'est pas si critique. Pouvez-vous me présenter les personnes avec qui vous avez communiqué ? Il est seulement nécessaire d'exprimer un avis sur plusieurs questions au sein du RFC, auxquelles j'ai donné un lien.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 18:41, 28 October 2021 (UTC)<br />
<br />
== Referent user ==<br />
:''See [[LinguaLibre:Roles#Organizing_events]].''<br />
Hello Lucas, I cited Adélaïde, Emma and yourself as reference users for contributors with experience on institutional event building (Contribuling). It implies that other users may contact us for light guidance, feedback on your personal experience in this matter, where support can be found, etc. Is that ok for you ? Best regards, [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:56, 16 November 2021 (UTC)<br />
<br />
== {Autopatrolled}==<br />
Hello Lucas, I noticed this Autopatrolled template used on [[User talk:Azerbaijani audiorecordings]], nice. Do you have an idea of the overall situation around '''ratelimit in past months''' ? Are you alone to handle it ? Is there a solid monitoring and user support for this aspect ? Does this issue needs care ? I need to catch up. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:31, 19 November 2021 (UTC)<br />
:(As of now, what I do is to open the [https://lingualibre.org/index.php?hidebots=1&translations=filter&hideWikibase=1&namespace=0&invert=1&limit=1000&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2 Recent changes (non-audio)], search for "remote", then if I see an user with upload between 380~430 (and a red userpage), I go to [[:commons:Commons:Requests_for_rights#Autopatrol]] and fill a request for that user. Then I message that user about it on its LL's user_talk page. Note: Messaging on Commons could be better actually... I did a full review today, reviewviewing November 14-19th. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:24, 19 November 2021 (UTC)<br />
::Salut {{ping|Yug}}. C'est une bonne idée mais je préfère travailler au cas par cas pour ces demandes, parce qu'une personne faisant une session de 380 enregistrements n'a pas forcément besoin du rôle si elle ne compte pas contribuer intensivement par la suite. Aussi, dans plusieurs cas, les comptes sont créés uniquement pour contribuer à Lingua Libre. Demander le droit autopatrolled pour tous ces utilisateurs qui n'en ont pas besoin risque de nous attirer les critiques (puis potentiellement les refus) de la communauté de Commons. Je préfère cibler des utilisateurs actifs sur d'autres wikis (une preuve de sérieux pour la communauté de Commons), qui ont réalisé au moins 700 enregistrements LiLi (environ 2 sessions bridées) et qui comptent continuer à contribuer intensivement. {{ping|Pamputt}} tu en penses quoi ? — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 00:06, 20 November 2021 (UTC)<br />
:::Je vois, merci pour ce tour. Je prends note. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:01, 21 November 2021 (UTC)<br />
<br />
== Promotion of Lingua Libre on blogs, social media, etc. ==<br />
<br />
It is extremely necessary to promote Lingua Libre on blogs and social media to increase the number of contributors.<br />
<br />
An efficient way would be to ask bloggers of the Linux / FOSS community to write reviews about Lingua Libre to create awareness about the Project.<br />
<br />
For example, the website "[https://itsfoss.com/ It's FOSS]" has a huge number of readers. If they publish an article about Lingua Libre it would benefit the project providing feedback and also attracting new users. Of course, the reviews should be unbiased and voluntary (non paid). I just wrote to "It's FOSS" asking them to review LinguaLibre. Could you please help and also contact them ? [[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 17:16, 20 November 2021 (UTC)<br />
:{{ping|Marreromarco|WikiLucas00}} Absolutely. We currently lack human resources in those fields (outreach, communication), that's just this. Generally speaking, I'am writing down a [[LinguaLibre:Roles]] page to define useful roles for LinguaLibre, so we can call for new contributors to jump in, they take on roles according to their skills and interests, and roll forward. We start to have small task forces for:<br />
:* coding bots (Poslovitch, Olaf, Pamputt, myself?)<br />
:* maintenance & inward community (Pamputt, WikiLucas, myself)<br />
:* workshops (WikiLucas, Lyokoï, Eavq)<br />
:* recording per language...<br />
:But we would benefit a LOT from other small teams (1~3), most notably leading on outreach and communication, yes. Marreromarco, would you like to expand [[LinguaLibre:Roles#Outreach_for_awareness]] with your ideas ? It could prove useful to first gather those ideas there, and eventually, based on it, to lead a weekend online "hackathon" on outreach & communication. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:09, 21 November 2021 (UTC)<br />
<br />
== On site Workshop ==<br />
Hello WikiLucas, as you know I gather typical [[LinguaLibre:Workshops|workshop formats]] and [[LinguaLibre:Roles|contributor roles]] on two wikipages. I need your help to write [[LinguaLibre:Workshops#On site workshop]]. My experience is rather in presentations or unformal demos. Your and Eavq's experience at INALCO presents an interesting, in-institution format worth reporting briefly, in a positive light, so it init similar projects elsewhere. I can write a draft but since I wasn't there It will then need a deep review afterward. Would you like to help write this section ? Which approach do you prefer ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:04, 23 November 2021 (UTC)<br />
<br />
== Re: Suffixes ==<br />
Thanks for letting me know. I will take a look. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 17:54, 26 December 2021 (UTC)<br />
<br />
== Problème enregistrement en finnois ==<br />
<br />
Salut,<br />
<br />
Pendant le week-end, je continue de faire des requêtes SPARQL autour de LinguaLibre (avec l'aide de {{ping|Nikki}}) et là vois qu'il y a 1111 enregistrements en finnois que tu as fait et qui sont du français (j'ai regardé côté Commons, j'ai l'impression que la plupart des fichiers ont été supprimés mais dans le doute je te le signale, il faudrait au moins supprimer les fichiers).<br />
<br />
Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:55, 20 February 2022 (UTC)<br />
:{{ping|VIGNERON}}, tu peux donner la requête permettant de trouver ces enregistrements ? Je peux essayer de me remotiver pour finir mon bot de maintenance pour ce genre de cas. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 08:57, 20 February 2022 (UTC)<br />
::{{ping|Pamputt}} ooups oui évidemment, là voilà :<br />
PREFIX ll: <https://lingualibre.org/entity/> <br />
PREFIX llt: <https://lingualibre.org/prop/direct/><br />
<br />
<syntaxhighlight lang="sparql"><br />
select * {<br />
?e llt:P4 ll:Q33; #langue = finnois<br />
llt:P7 ?transcription; <br />
llt:P5 ll:Q102123. #locuteur = WikiLucas00<br />
} order by ?transcription<br />
</syntaxhighlight><br />
::Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 09:16, 20 February 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=User_talk:WikiLucas00&diff=743060
User talk:WikiLucas00
2022-02-20T08:55:47Z
<p>VIGNERON: /* Problème enregistrement en finnois */ new section</p>
<hr />
<div>'''Please feel free to leave a message below. Sign your post using <nowiki>~~~~</nowiki>'''<br/><br />
'''Sentez-vous libre de laisser un message ci-dessous. Signez votre message avec <nowiki>~~~~</nowiki>'''<br />
== INaLCO ==<br />
All good ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 17:27, 17 October 2020 (UTC)<br />
: Yes, everything went pretty well, we had a very varied group of participants, speaking many various languages as you may have seen. I can't wait to see how many of these new contributors will carry on in the long term 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 17:41, 26 October 2020 (UTC)<br />
::Thinking back, was any user immediately retained and active ?<br />
::It may need a year or two for for the info to spread and sink in. (Like for the Indian community : first contact was 2017. First real activity was 2020.)<br />
::It's part of the game. But I wonder if we had a positive surprise with this INALCO workshop. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:54, 9 February 2021 (UTC)<br />
<br />
== Note de la dernière réunion ==<br />
<br />
Salut WikiLucas00, je n'ai pas retrouvé où est ce qu'on a stocké les notes des précédentes réunions Lingua Libre mais il y en a néanmoins quelques-une ici ([[LinguaLibre:Réunion_3_novembre_2018|exemple]]). Je n'étais pas à la dernière réunion mais je pense qu'on devrait néanmoins recopier les [https://etherpad.wikimedia.org/p/r%C3%A9union_lingua_libre_2021 notes de cette réunion] ici pour archivage (il est d'ailleurs question de cela dans le pad (ligne 207)). Ca te va te faire ça ici plutôt que sur Meta ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 22:09, 8 December 2020 (UTC)<br />
:Salut {{ping|Pamputt}} bonne idée d'archiver les prises de notes sur LiLi, je vais organiser ça — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:29, 9 December 2020 (UTC)<br />
:Re: J'ai rangé les réunions de ce type dans [[LinguaLibre:Réunions]] puisqu'elles sont francophones. J'ai mis en forme la réunion du 4 décembre ici : [[LinguaLibre:Réunions/2020/4-12]]. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:18, 9 December 2020 (UTC)<br />
<br />
== {{tl|userbox-records}} ==<br />
Hello Lucas,<br><br />
I give it a week to calm things down and do minor tests... but after that I suggest we push strongly for those userboxes. The categories it will build will be a first stone to create per-language communities, aka "Portals/Project" pages. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:24, 8 February 2021 (UTC)<br />
:Hello {{ping|Yug}}<br/> Thank you for this very good initiative! I've started to paste it on the pages of new users who actually made at least one recording. It is good to also create the associated Category page, so that every speaker of a language can find others. I just corrected a small mistake in the templates. See you! — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:06, 9 February 2021 (UTC)<br />
::Nice, thanks for jumping in. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:52, 9 February 2021 (UTC)<br />
::Also, a shorter version works on userpages using magic word {ROOTPAGENAME}. See [https://lingualibre.org/index.php?title=User%3ASunita_gambhir&type=revision&diff=422070&oldid=421958 diff]. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:40, 9 February 2021 (UTC)<br />
:::Also, for portals, your {{tl|colored box}} will come handy ! [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:54, 9 February 2021 (UTC)<br />
== Emergence of local communities ? ==<br />
Some indian users will manage the tagging of Indian contributors from now on. Better for local community building. ;) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 02:06, 10 February 2021 (UTC)<br />
:Same for Polish. It's a bit early for this community tho. Should we encourage the crystallization of local community and leader or leave these individuals alone since they contribute smoothly as of now ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:53, 11 February 2021 (UTC)<br />
<br />
== J'ai cassé le Technical Board/intro ==<br />
<br />
Bonjour,<br />
<br />
Désolé de te tomber dessus comme ça : je ne comprenais pas pourquoi ma modification sur Technical Board/intro/text n'était pas affichée, puis j'ai vu que Technical Board/intro redirigeait vers Technical Board/intro/lang. Et en corrigeant cette "redirection" incorrecte, j'ai des balises "translate" qui sont apparues de partout :/<br />
Je ne suis clairement pas un expert avec cette histoire de "traduction". Y a-t-il des ressources où je peux apprendre comment ça fonctionne ?<br />
Et, en attendant, pourrais-tu, s'il te plaît, réparer ma bêtise ? J'ai fait toutes mes modifications sur /text. Faut-il que je les recopie systématiquement sur /lang ?<br />
<br />
Merci d'avance, et mes sincères excuses. --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 23:03, 13 February 2021 (UTC)<br />
:{{ping|Poslovitch}} j'ai corrigé. Je vais supprimé Technical Board/intro/lang. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:50, 14 February 2021 (UTC)<br />
:: Merci <3 ! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 14:34, 14 February 2021 (UTC)<br />
:::Hi there. I tried to add content but it doesn't work. See [[LinguaLibre:Technical_board/intro/text]]. I do so my editing this page the classical way. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:09, 15 February 2021 (UTC)<br />
::::Salut {{ping|Yug}} Comme tu peux le lire deux fois dans l'historique de la page, il ne faut pas ajouter ou modifier soi-même les balises qui numérotent les sections de la page. L'extension de traduction numérote elle-même les sections, et changer leur numéro provoque des problèmes. Merci de faire attention par la suite 😉 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:47, 15 February 2021 (UTC)<br />
::::Avez pas vu... ;___; [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:49, 15 February 2021 (UTC)<br />
:::::Pas grave haha, mais laisse-moi quelques minutes pour revert ces changements tout en gardant les changements textuels, avant de marquer la page pour traduction — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 13:50, 15 February 2021 (UTC)<br />
:::::{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 14:01, 15 February 2021 (UTC)<br />
::::::Comment éditer la source ? C'est une page en travaux et à développer. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:24, 15 February 2021 (UTC)<br />
:::::*En ajoutant tes modifications textuelles classiquement, et en ajoutant simplement une balise translate ouvrante au début de la zone à traduire, et une fermante à la fin de cette zone (comme dans [[Special:Diff/429301/429543|cette modification par Poslovitch]] par exemple).<br/> Je vois que cette page bouge beaucoup et que les traductions compliquent les choses. Je te pose donc la question que je t'avais déjà posée en privé ; est-ce que cette page a vraiment besoin d'être traduite ? Si non, on peut supprimer toutes les balises de traduction pour ne garder que l'anglais (qui convient aux développeurs qui liront la page), et ça sera plus pratique à éditer au quotidien. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 01:43, 16 February 2021 (UTC)<br />
::::::Hello, je découvre comme tu le vois la mise en place de page multilingue (récupérée du modèle Welcome), ce qui est en fait compliqué lorsqu'on débute. Il est génant pour moi de répondre sur ta question de traductions dans la mesure où je découvre cette outil. Mon objectif personnel, en tout cas, est de créer une mouture en anglais, au cours de cette semaine. C'est la raison pour laquelle j'ai aposé le bandeau {{tl|draft}}. Présentement, la page anglaise que j'ai initié et que je co-construis n'est pas achevée. Je ne m'engagerai pas à faire des traductions mais libre à d'autres de traduire si ils le souhaitent : ''« ceux qui font décident »''. L'option est présentement laissé à ceux qui souhaitent traduire et qui maitrise l'outil. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:50, 16 February 2021 (UTC)<br />
::::::Je ne pense pas avoir l'expérience nécessaire pour juger ''l'utilité vs cout'' de cette outils sur cette page. J'ai copié {Welcome} "tel quel", supprimé les phrases, et collé les miennes. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:57, 16 February 2021 (UTC)<br />
:::::Hello Yug, pas de soucis, j'ai aussi eu quelques déboires avec ce système quand j'ai participé à la mise en place du modèle de bienvenue, c'est Pamputt qui m'avait alors aidé (et Poslovitch non plus n'a pas réussi à prendre en main l'outil du premier coup - outil qui n'est donc visiblement intuitif pour personne !). Je pense personnellement que pour la page en question, un simple bandeau en anglais uniquement suffirait, et permettrait aux contributeurs de la page d'avancer plus vite en mettant à jour le texte sans se soucier des traductions.<br/>Qu'en pensez-vous {{ping|Pamputt|Poslovitch}} ?<br/>— '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 22:39, 16 February 2021 (UTC)<br />
::::::Contentons-nous du bandeau en anglais. En revanche, je pense que ce serait intéressant de "développer" l'idée des "Flash Technical News". Ca pourrait devenir un outil intéressant, encore plus s'il est traduit. Y aurait moyen de "l'inclure", depuis une autre page ? Genre LinguaLibre:Technical news, qui ne contiendrait que ces "news techniques rapides", sous forme de liste (comme actuellement) ? --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 22:52, 16 February 2021 (UTC)<br />
:::::::Anglais uniquement donc, au moins pour le moment. Si qqu'un pousse activement pour des langues supplémentaires on pourra aviser. A noté : nous avons un contributeur Svenska (SWE) tres enthousiaste à coordonner.<br />
:::::::Le principe d'encart flash new est interessant oui. Elle pourrait etre modularisé en template oui. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 23:03, 16 February 2021 (UTC)<br />
<br />
== Lexique 3.83 ==<br />
Hello WikiLucas,<br>I'am re-exploring UNILEX. As I asked UNILEX about [https://github.com/unicode-org/unilex/issues/10 opening up their license] I got surprised to see they do know Wikidata Lexeme. I also bumped again into [https://github.com/chrplr/openlexicon Lexique 3.83]. <br />
<br />
It's a long term thing, but one day, there will be the need to migrate as much of these lexical data as possible to Wikidata Lexeme. That can be material for TAL mission either for them, or funded by a [[:meta:Grants:Project]] or by Wikidata Germany. I don't know under which shape and who, but there is a TAL/Wikidata collaboration to set up there. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:41, 23 February 2021 (UTC)<br />
<br />
== [Category:Speakers in {iso}] ==<br />
Salut Lucas, t'embetes pas trop je vais passer avec un bot bientot. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:43, 9 March 2021 (UTC)<br />
<br />
<br />
== Unknown CSS in [[MediaWiki:Common.css]] ==<br />
Hello Lucas, the first selector of this code looks suspicious to me. If something is missing from the translations, it could be due to this.<br />
<pre><br />
.mw-pt-translate-header, .mw-pt-translate-header ~ hr {<br />
display: none;<br />
}<br />
</pre><br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 19:55, 26 April 2021 (UTC)<br />
:Hi {{ping|Yug}},<br />
:Why is this selector suspicious to you exactly? And the translation extension is broken at a more core level, it's probably not CSS related but I'll look into this.<br />
:Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 04:45, 27 April 2021 (UTC)<br />
::Hello [[User:VIGNERON|VIGNERON]]. Why ? because 1) I noticed your messages of broken translation extension, and 2) we seen in recent review that 0x010C did hide some elements temporarily then did not restore them, .mw-pt-translate-header could be a similar case. I don't say it is, but I think WikiLucas, who is the leading user on translation extension, should be notified. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:07, 27 April 2021 (UTC)<br />
:::Ok, I'm not sure why 0x010C added this code last May but {{ping|Seb35}} removed it just now. That said, there is still the other behind issue of [[Special:Translate]] to solve ([[phab:T280972]]). Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 14:02, 27 April 2021 (UTC)<br />
<br />
== Au sujet des enregistrements défectueux ==<br />
<br />
Je vois que tu as ajouté une ligne dans la table des enregistrements défectueux de la Chat Room (yay!). Les chiffres ne semblent pas coller: "60 testés, 45 affectés, 15%": on s'attendrait à 75%, ou à 9 affectés, ou à 300 testés.<br />
{{ping|WikiLucas00}}<br />
[[User:Julien Baley|Julien Baley]] ([[User talk:Julien Baley|talk]]) 06:53, 27 April 2021 (UTC)<br />
:Bonjour {{ping|Julien Baley}}. En effet, ce sont 45 enregistrements défectueux sur 60, soit 75%. Je corrige, merci. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:44, 27 April 2021 (UTC)<br />
<br />
== Enregistrement ==<br />
<br />
Salut j'ai enregistré un mot mot en Sicilien et je voudrais savoir si j'ai tout bien fait.--[[User:Tenshi 98|Tenshi 98]] ([[User talk:Tenshi 98|talk]]) 03:12, 11 July 2021 (UTC)<br />
:Bonjour {{ping|Tenshi 98}} Bienvenue et merci pour tes premiers enregistrements en sicilien ! 🙂 Je les ai écoutés, ils sont bien paramétrés (tu as bien écrit les mots dans l'orthographe de la langue et tu as bien sélectionné la bonne langue). Pour les prochains enregistrements, je te conseille d'utiliser un microphone externe (par exemple un micro d'écouteurs) afin d'avoir une meilleure qualité audio (+ d'informations sur [[Special:MyLanguage/Help:Configure_your_microphone|cette page]]). Si tu enregistres sur un ordinateur, il est préférable d'utiliser Firefox pour éviter des problèmes audio liés à Chrome. Enfin, pour que tes enregistrements soient mieux décrits, tu peux compléter ton profil de locuteur sur [[Q595301|cette page]], en indiquant un lieu d'apprentissage pour chaque langue que tu parles (tu peux choisir une ville, ou même une région ou un pays).<br />
:PS: Si jamais tu souhaites enregistrer des mots dans une autre langue, tu peux tout à fait le faire, mais il faut bien faire attention de sélectionner la bonne langue à l'étape 3 (Détails)!<br />
:Bons enregistrements, n'hésite pas si tu as d'autres questions 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 15:16, 11 July 2021 (UTC)<br />
<br />
== Re: Lemmas-without-audio-sorted-by-number-of-wiktionaries ==<br />
[[User talk:Olaf|Original post on Olaf's talk page]] - <br />
''Hi '''@'''Olaf I hope you are doing well! I'm using your list quite often and I just realized that is not exactly a list of '''lemmas''', rather a list of '''forms'''. For instance, I find more and more verbal inflections in your list in French, which are useful to cover but not always a priority. Would it be possible for you to create a similar list, but dedicated to real '''lemmas''' (i.e. in French: singular for nouns, sg. masculine for adjectives, infinitive tense for verbs)? I don't know if this issue only happens to your list in French or also in other languages (we seem to have digged deeper with French lemmas haha). All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:21, 21 July 2021 (UTC)''<br />
:Well, yes, in fact it is a list produced by counting article titles in various language versions of Wiktionary. While most Wiktionaries use almost exclusively lemmas, inflected forms happen sometimes. So at the beginning of each list there are only lemmas as they are most common, but when we go down long enough, there will be more and more inflected forms. You can't even call it "words" accurately, because sometimes there are longer phrases too. Certainly "lemmas" is better than "words" in one aspect - it's earlier in the alphabet, so the list is more likely to be visible in the Record Wizard. ;-) [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 21:24, 23 July 2021 (UTC)<br />
::{{ping|Olaf}} May I ask you for a complementary Olafbot list for French language? It would consist in the same list but filtered to only display elements that are part of [[:fr:wikt:Catégorie:Lemmes_en_français|this category]] (i.e. only real lemmas of French with no audio, without all inflexions). It would be very helpful to cover rapidly all frequent French lemmas on Wiktionaries. Thank you, all the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 19:01, 13 September 2021 (UTC)<br />
<br />
== Tutoriel en vidéo, suggestion ==<br />
Bonjour,<br />
<br />
Vous avez publié un [https://lingualibre.org/wiki/LinguaLibre:Chat_room#Lingua_Libre_video_tutorial tutoriel en vidéo]. À la fin, je lis « À vous de jouer ! ». Mieux serait : « À vous la parole ! » ou « À vous de parler ! ».<br />
<br />
[[User:Cantons-de-l&#39;Est|Cantons-de-l&#39;Est]] ([[User talk:Cantons-de-l&#39;Est|talk]]) 15:27, 28 July 2021 (UTC)<br />
<br />
== Congratulations WikiLucas00 ==<br />
<br />
{| style="background-color: #fdffe7; border: 1px solid #fceb92;"<br />
|rowspan="2" style="vertical-align: middle; padding: 5px;" | [[File:Articolo5k.gif|200px]]<br />
|style="font-size: x-large; padding: 3px 3px 0 3px; height: 1.5em;" | '''The 50,000 Barnstar'''<br />
|-<br />
|style="vertical-align: middle; padding: 3px;" | Hello WikiLucas00, congratulations on completing 50,000 pronunciation uploads on Wikimedia Commons. Thanks for your work to improve the project. --[[User:Titodutta|টিটো দত্ত (Titodutta)]] ([[User talk:Titodutta|কথা]]) 21:02, 25 August 2021 (UTC)<br />
|}<br />
:Thank you very much {{ping|Titodutta}}, this is very kind. All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 07:32, 26 August 2021 (UTC)<br />
<br />
== Add South Levantine Arabic (ajp) ==<br />
<br />
Hello, can you please add South Levantine Arabic (ajp)? Thanks in advance! --[[User:Fenakhay|Fenakhay]] ([[User talk:Fenakhay|talk]]) 14:36, 13 September 2021 (UTC)<br />
: Could you please also add other Arabic varieties? Here's [https://iso639-3.sil.org/code/ara the list]:<br />
* Algerian Saharan Arabic <br />
* abh Tajiki Arabic <br />
* abv Baharna Arabic <br />
* acm Mesopotamian Arabic <br />
* acq Ta'izzi-Adeni Arabic <br />
* acw Hijazi Arabic <br />
* acx Omani Arabic <br />
* acy Cypriot Arabic <br />
* adf Dhofari Arabic <br />
* aeb Tunisian Arabic <br />
* aec Saidi Arabic <br />
* afb Gulf Arabic <br />
* ajp South Levantine Arabic <br />
* apc North Levantine Arabic <br />
* apd Sudanese Arabic <br />
* arb Standard Arabic <br />
* arq Algerian Arabic <br />
* ars Najdi Arabic <br />
* ary Moroccan Arabic <br />
* arz Egyptian Arabic <br />
* auz Uzbeki Arabic<br />
* avl Eastern Egyptian Bedawi Arabic <br />
* ayh Hadrami Arabic <br />
* ayl Libyan Arabic <br />
* ayn Sanaani Arabic <br />
* ayp North Mesopotamian Arabic <br />
* bbz Babalia Creole Arabic Deprecated<br />
* pga Sudanese Creole Arabic <br />
* shu Chadian Arabic <br />
* ssh Shihhi Arabic<br />
: [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 16:19, 13 September 2021 (UTC)<br />
: {{ping|Fenakhay|A455bcd9}} I imported all the Arabic varieties you hve listed above. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:21, 13 September 2021 (UTC)<br />
:: {{ping|Pamputt}} Merci beaucoup ! [[User:A455bcd9|A455bcd9]] ([[User talk:A455bcd9|talk]]) 07:20, 14 September 2021 (UTC)<br />
<br />
==HI==<br />
Bro could you import my translation in Meetei language. I wrongly translated in British English. <br />
[[User:Awangba Mangang|Awangba Mangang]] ([[User talk:Awangba Mangang|talk]]) 12:13, 18 September 2021 (UTC)<br />
:{{ping|Awangba Mangang}} Okay thank you for letting me know, I'll try to correct this. While I do this, would you like to [[Special:MyLanguage/Help:Create_your_own_lists|create a list]] in your own language, and then maybe to record it? 🙂 — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:24, 18 September 2021 (UTC)<br />
:{{done}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:41, 18 September 2021 (UTC)<br />
<br />
==J'ai besoin de ton avis==<br />
Salut Lucas !<br />
<br />
{{GT|Nous avons déjà parlé dans ce projet. J'ai besoin de ton avis. Lequel des administrateurs du projet fr.wiktoionary a du sens d'écrire à, afin qu'ils prêtent attention au problème suivant:}} <br />
{{GT|Le RfC récemment ouvert, qui soulève à nouveau des questions sur le droit d'auteur, décrit une situation qui peut être directement considérée comme}}<br />
* {{GT|prétendre qu'un article de votre sous-projet viole le droit d'auteur}} - https://fr.wiktionary.org/wiki/Shakespeare<br />
* {{GT|si un article a été supprimé dans un sous-projet pour lequel le RFC est ouvert, alors à l'avenir on peut s'attendre à ce que cet article de fr.wiktoionary sous-projet doive être supprimé sur la base de ce précédent}}<br />
<br />
{{GT|Section RfC décrivant le "cas Shakespeare"}} - https://meta.wikimedia.org/wiki/Requests_for_comment/I_need_to_solve_the_problem_that_I_consider_important_in_the_eo.wiktionary.org_project#Shakespeare-1<br />
<br />
{{GT|Je crois personnellement que je suis obligé d'informer quelqu'un de l'administration de fr.wiktoionaryvotre sous-projet à propos d'un tel événement. Et il serait également utile qu'une personne expérimentée en droit d'auteur se prononce sur fr.wiktoionary projet. Cette question s'applique à tous les sous-projets de Wiktionnaire, quelle que soit la langue. Nous sommes tous connectés à la fois par un projet commun et des liens intersites (InterWiki).}}<br />
<br />
{{GT|Ou vous allez vous-même transmettre mes informations.}}<br />
<br />
{{GT|Заранее благодарю.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 08:36, 25 October 2021 (UTC)<br />
:{{GT|Bonjour}}{{ping|Vami}}. {{GT|Merci pour ton message, mais je ne suis pas administrateur sur le Wiktionary francophone}}. {{GT|J'ai parlé avec quelques administrateurs, qui sont informés du problème, mais tu peux poster un message sur la Wikidémie si tu souhaites commencer une discussion sur le Wiktionary francophone.}} [https://fr.wiktionary.org/wiki/Wiktionnaire:Wikid%C3%A9mie Wikidémie].<br />
:{{GT|Cordialement}} — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 12:06, 25 October 2021 (UTC)<br />
<br />
::Bonjour, {{ping|WikiLucas00}}! {{GT|Bon, je ne suis pas prêt à poser un problème pour une discussion générale en français - j'utilise un traducteur automatique.}}<br />
::{{GT|Mais dans la communication personnelle, ce n'est pas si critique. Pouvez-vous me présenter les personnes avec qui vous avez communiqué ? Il est seulement nécessaire d'exprimer un avis sur plusieurs questions au sein du RFC, auxquelles j'ai donné un lien.}} [[User:Vami|Va]] [[User talk:Vami|(🖋️)]] 18:41, 28 October 2021 (UTC)<br />
<br />
== Referent user ==<br />
:''See [[LinguaLibre:Roles#Organizing_events]].''<br />
Hello Lucas, I cited Adélaïde, Emma and yourself as reference users for contributors with experience on institutional event building (Contribuling). It implies that other users may contact us for light guidance, feedback on your personal experience in this matter, where support can be found, etc. Is that ok for you ? Best regards, [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:56, 16 November 2021 (UTC)<br />
<br />
== {Autopatrolled}==<br />
Hello Lucas, I noticed this Autopatrolled template used on [[User talk:Azerbaijani audiorecordings]], nice. Do you have an idea of the overall situation around '''ratelimit in past months''' ? Are you alone to handle it ? Is there a solid monitoring and user support for this aspect ? Does this issue needs care ? I need to catch up. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:31, 19 November 2021 (UTC)<br />
:(As of now, what I do is to open the [https://lingualibre.org/index.php?hidebots=1&translations=filter&hideWikibase=1&namespace=0&invert=1&limit=1000&days=30&enhanced=1&title=Special:RecentChanges&urlversion=2 Recent changes (non-audio)], search for "remote", then if I see an user with upload between 380~430 (and a red userpage), I go to [[:commons:Commons:Requests_for_rights#Autopatrol]] and fill a request for that user. Then I message that user about it on its LL's user_talk page. Note: Messaging on Commons could be better actually... I did a full review today, reviewviewing November 14-19th. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:24, 19 November 2021 (UTC)<br />
::Salut {{ping|Yug}}. C'est une bonne idée mais je préfère travailler au cas par cas pour ces demandes, parce qu'une personne faisant une session de 380 enregistrements n'a pas forcément besoin du rôle si elle ne compte pas contribuer intensivement par la suite. Aussi, dans plusieurs cas, les comptes sont créés uniquement pour contribuer à Lingua Libre. Demander le droit autopatrolled pour tous ces utilisateurs qui n'en ont pas besoin risque de nous attirer les critiques (puis potentiellement les refus) de la communauté de Commons. Je préfère cibler des utilisateurs actifs sur d'autres wikis (une preuve de sérieux pour la communauté de Commons), qui ont réalisé au moins 700 enregistrements LiLi (environ 2 sessions bridées) et qui comptent continuer à contribuer intensivement. {{ping|Pamputt}} tu en penses quoi ? — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 00:06, 20 November 2021 (UTC)<br />
:::Je vois, merci pour ce tour. Je prends note. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:01, 21 November 2021 (UTC)<br />
<br />
== Promotion of Lingua Libre on blogs, social media, etc. ==<br />
<br />
It is extremely necessary to promote Lingua Libre on blogs and social media to increase the number of contributors.<br />
<br />
An efficient way would be to ask bloggers of the Linux / FOSS community to write reviews about Lingua Libre to create awareness about the Project.<br />
<br />
For example, the website "[https://itsfoss.com/ It's FOSS]" has a huge number of readers. If they publish an article about Lingua Libre it would benefit the project providing feedback and also attracting new users. Of course, the reviews should be unbiased and voluntary (non paid). I just wrote to "It's FOSS" asking them to review LinguaLibre. Could you please help and also contact them ? [[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 17:16, 20 November 2021 (UTC)<br />
:{{ping|Marreromarco|WikiLucas00}} Absolutely. We currently lack human resources in those fields (outreach, communication), that's just this. Generally speaking, I'am writing down a [[LinguaLibre:Roles]] page to define useful roles for LinguaLibre, so we can call for new contributors to jump in, they take on roles according to their skills and interests, and roll forward. We start to have small task forces for:<br />
:* coding bots (Poslovitch, Olaf, Pamputt, myself?)<br />
:* maintenance & inward community (Pamputt, WikiLucas, myself)<br />
:* workshops (WikiLucas, Lyokoï, Eavq)<br />
:* recording per language...<br />
:But we would benefit a LOT from other small teams (1~3), most notably leading on outreach and communication, yes. Marreromarco, would you like to expand [[LinguaLibre:Roles#Outreach_for_awareness]] with your ideas ? It could prove useful to first gather those ideas there, and eventually, based on it, to lead a weekend online "hackathon" on outreach & communication. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 08:09, 21 November 2021 (UTC)<br />
<br />
== On site Workshop ==<br />
Hello WikiLucas, as you know I gather typical [[LinguaLibre:Workshops|workshop formats]] and [[LinguaLibre:Roles|contributor roles]] on two wikipages. I need your help to write [[LinguaLibre:Workshops#On site workshop]]. My experience is rather in presentations or unformal demos. Your and Eavq's experience at INALCO presents an interesting, in-institution format worth reporting briefly, in a positive light, so it init similar projects elsewhere. I can write a draft but since I wasn't there It will then need a deep review afterward. Would you like to help write this section ? Which approach do you prefer ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 11:04, 23 November 2021 (UTC)<br />
<br />
== Re: Suffixes ==<br />
Thanks for letting me know. I will take a look. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 17:54, 26 December 2021 (UTC)<br />
<br />
== Problème enregistrement en finnois ==<br />
<br />
Salut,<br />
<br />
Pendant le week-end, je continue de faire des requêtes SPARQL autour de LinguaLibre (avec l'aide de {{ping|Nikki}}) et là vois qu'il y a 1111 enregistrements en finnois que tu as fait et qui sont du français (j'ai regardé côté Commons, j'ai l'impression que la plupart des fichiers ont été supprimés mais dans le doute je te le signale, il faudrait au moins supprimer les fichiers).<br />
<br />
Cdlt, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 08:55, 20 February 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P2&diff=743010
Property:P2
2022-02-19T11:02:25Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: Property:P31</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P9&diff=743009
Property:P9
2022-02-19T11:02:08Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: Property:P279</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P13&diff=743008
Property:P13
2022-02-19T11:01:35Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: Property:P220</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Property:P10&diff=743007
Property:P10
2022-02-19T11:00:30Z
<p>VIGNERON: /* wbsetclaim-update:2||1 */ Property:P12: Property:P1630</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=LinguaLibre:Chat_room&diff=743005
LinguaLibre:Chat room
2022-02-19T09:29:41Z
<p>VIGNERON: /* Merging of items about languages */ new section</p>
<hr />
<div>{{#SUBTITLE:{{/Header}}}}<br />
{{Lang-CR}}<br />
<indicator name="talk"></indicator><br />
{{LL:Chat room/FAQ}}<br />
__TOC__<br />
<!-- **** DO NOT EDIT CONTENT ABOVE **** --><br />
<br />
== Datasets out of date ==<br />
Hello. It seems that the datasets page, although it claims to run every 2 days, is completely out of date: all the available zips are from April 2020 or November 2019 (and the full zip from May 2019). Is this a known problem? Is there a plan to address it? [[User:Julien Baley|Julien Baley]] ([[User talk:Julien Baley|talk]]) 23:17, 27 August 2020 (UTC)<br />
:Indeed, it seems to have an issue with the dataset updating. I opened a [[phab:T261519|Phabricator ticket]] about this issue. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 18:24, 28 August 2020 (UTC)<br />
<br />
== Publish on Wikimedia Commons ==<br />
<br />
Hello, I just tested, but my records are not published on Commons. My tests: on Firefox, then on Chrome, with 50, then with 1 expression (s), with license CC3.0-BY-SA and CC1.0. —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 06:51, 2 May 2021 (UTC)[[File:LiLi April 2021 - Publish on Wikimedia Commons.png|thumb|Problème de publication sur Wikimedia Commons]]<br />
:[[phab:T281636]] —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 07:10, 2 May 2021 (UTC)<br />
:: Usually I have the same with the first two recordings in a session. Then I can upload them again at the end. Try again with more recordings, and using "retry filed upload" button. [[User:Poemat|Poemat]] ([[User talk:Poemat|talk]]) 08:07, 2 May 2021 (UTC)<br />
::: Yup, I had this bug many times. (I say "had" because I don't remember having encountered it after the fire incident.) Just don't give up and it should be published eventually. [[User:DSwissK|DSwissK]] ([[User talk:DSwissK|talk]]) 11:56, 2 May 2021 (UTC)<br />
::::(As of 3 May 2021 and as I checked, I'm not aware of any code changes ([https://github.com/lingua-libre/RecordWizard/commits/master history]) which may have of affected this. Seb35 made some other code change this same day.) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:47, 3 May 2021 (UTC)<br />
I add a user who has the same problem: {{u|Le Commissaire}}. —[[User:Eihel-LiLi|Eihel-LiLi]] ([[User talk:Eihel-LiLi|talk]]) 15:33, 6 May 2021 (UTC)<br />
:::::Bonjour {{ping|Seb35}}, Faudrait voir avec {{u|Le Commissaire}} si le problème persiste aussi (avant de clore le ticket Phab. Sincères salutations. —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 10:01, 4 June 2021 (UTC)<br />
::::::J’ai mis un message à Le Commissaire sur sa page de discussion.<br />
::::::Le problème que vous avez eu était spécifique à votre compte, c’est peut-être arrivé à d’autres personnes mais ça semble assez rare. Aussi, à partir du moment où un utilisateur a réussi à faire un envoi vers Commons, alors c’est un problème différent du vôtre ([[:phabricator:T275957|celui-ci, qui ressemble mais l’erreur est intermittente]]). Plus globalement, il faudrait que le message d’erreur soit explicite plutôt que d’aller à chercher dans la console du navigateur, je vais ouvrir un ticket Phabricator en ce sens. [[User:Seb35|Seb35]] ([[User talk:Seb35|talk]]) 10:28, 4 June 2021 (UTC)<br />
<br />
== Exclusion lists ==<br />
If anyone uses the regularly updated [[user:Olafbot|Olafbot's]] lists of wanted words ([[List:Fra/Lemmas-without-audio-sorted-by-number-of-wiktionaries]], etc.), and spotted an item that should be removed without recording, you can use the brand new exclusion lists to remove it. For example on the list [[List:Fra/Lemmas-without-audio-sorted-by-number-of-wiktionaries]] there was the word "abandonar", which apparently doesn't belong to the contemporary French corpus. Having added it on the exclusion list (here: [[user:Olafbot/exclusion list/Fra]]) the bot knows this item should never appear in French lists it maintains, and [https://lingualibre.org/index.php?title=List:Fra/Lemmas-without-audio-sorted-by-number-of-wiktionaries&diff=619214&oldid=606068 removes it] during the next update. <br />
<br />
Each "Lemmas without audio" list ({{Olafbot-wikt}}) has a corresponding exclusion list ({{Olafbot-exclusion}}). I hope it will help.<br />
<br />
Normally I would add a link to the exclusion list in a description of each lemmas list, but unfortunately, Lingua Libre engine doesn't allow adding any kind of comments or descriptions to lists, so this ad is the only way to spread a word about the new functionality. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 09:54, 13 September 2021 (UTC)<br />
:{{ping|Olaf}} Thank you so much for this useful new function! Indeed, the Record Wizard does not yet understand comments, categories nor templates on List pages, but this will be considered for future updates. — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 18:48, 13 September 2021 (UTC)<br />
<br />
== Ajout d'une nouvelle langue ==<br />
<br />
Bonjour !<br />
<br />
Je souhaite ajouter la langue Q3196953 mais en suivant la [https://lingualibre.org/wiki/Help:Add_a_new_language/fr procédure], je ne vois pas LinguaImporter. Quelqu'un peut-il me dire pourquoi?<br />
<br />
Cdt,<br />
BamLifa<br />
: {{ping|BamLifa}} c'est parce que tu n'es pas administrateur. Je viens d'importer le {{Q|646152}} [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:16, 13 September 2021 (UTC)<br />
::{{ping|Pamputt}}, merci beaucoup pour cette précision. Si cette option n'est réservée qu'aux admins, pourquoi en parler dans la doc sans cette précision ? En plus, vue la multitude des langues que nous avons qui n'existent pas encore chez Lingua libre, ne pensez-vous pas que vous devriez simplifier cette tâche ? J'ai encore une autre langue à ajouter, le Bira (bila). [[User:BamLifa|BamLifa]] ([[User talk:BamLifa|talk]]) 12:41, 20 September 2021 (UTC)<br />
:::{{ping|BamLifa}} c'est indiqué sur cette page (c'est même le titre de la section (Outil pour les administrateurs)). Je ne me rappelle pas pourquoi c'est réservé aux admins mais ça limite au moins les vandales qui voudraient importer des choses qui ne sont pas des langues. Bref, j'ai importé le {{Q|656403}} et le {{Q|656404}}. Si ce ne sont pas les bonnes langues, peux-tu me donner le code ISO 639-3 correspondant (ou au moins l'identifiant Wikidata) ? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 14:06, 20 September 2021 (UTC)<br />
::::{{ping|Pamputt}}, Merci beaucoup. [[User:BamLifa|BamLifa]] ([[User talk:BamLifa|talk]]) 05:34, 22 September 2021 (UTC)<br />
<br />
== Lists still don't work properly ==<br />
<br />
{{Ping|WikiLucas00}} {{Ping|Poslovitch}} It's better than [[LinguaLibre:Chat_room#Lists_stopped_working|before]], but still, sometimes the Record Wizard hangs when a list is chosen.<br />
Then I have to reload the page, and try again. Usually the second or the third time of trying the same list, it starts to work.<br />
Probably a race condition. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 09:47, 30 September 2021 (UTC)<br />
:{{ping|Olaf}}It also happens to me sometimes, but I think that it could be related to the button for removing words you already recorded. When you load a list of words you never recorded (typically Olafbot's lists), ticking the button seems to kill the loading. Best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 10:23, 30 September 2021 (UTC)<br />
:: Thank you. Indeed, with this switch unchecked everything seems to work. [[User:Olaf|Olaf]] ([[User talk:Olaf|talk]]) 16:02, 1 October 2021 (UTC)<br />
<br />
== Liste des mots à prononcer ==<br />
<br />
Salut ! Existe-t-il une page où des mots peuvent être ajoutés pour qu'un bon samaritain puisse parler ? [[User:Vivaelcelta|Vivaelcelta]] ([[User talk:Vivaelcelta|talk]]) 11:30, 3 October 2021 (UTC)<br />
:Bonjour {{u|Vivaelcelta}}, les listes sont faites pour cela. Vous pouvez [[Special:MyLanguage/Help:Create_your_own_lists|créer votre propre liste]] qui pourra ensuite être enregistrée par n'importe qui. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:50, 3 October 2021 (UTC)<br />
:: Merci {{u|Pamputt}}. — [[User:Vivaelcelta|Vivaelcelta]] ([[User talk:Vivaelcelta|talk]]) 22:38, 3 October 2021 (UTC)<br />
<br />
== Projet Outils pour la patrouille ==<br />
:''See [[LinguaLibre:Events/Patrol assistance tool prototyping project]].''<br />
{{LangSwitch<br />
|fr=Salut,<br />
<br />
cette semaine commence un projet menés par des étudiants des formations IARF-RODECO de l’Université Toulouse 3 - Paul Sabatier concernant le prototypage d’outils de patrouille. Je suis, assisté par Adélaïde Calais, le superviseur de ce projet. Les étudiants sont en informatique avec une spécialisation en intelligence artificielle. L’idée est de leur faire prototyper (voire développer) des outils pour aider la patrouille de Lingua Libre en détectant automatiquement toutes sortes de problèmes. Nous avons déjà identifier quelques problèmes : clics, grésillements, bruits parasites et mauvaises prononciations (libellés et enregistrements pas raccord).<br />
<br />
Et nous avons besoin de la communauté sur deux points : <br />
# y a-t-il d’autres problèmes auxquels vous pensez ?<br />
# nous avons besoin, pour que les étudiants puissent travailler, d’enregistrements avec défauts. Si vous les avez réenregistrés, c’est pas grave, Commons a un historique. N’hésitez pas à nous communiquer les enregistrements qui ont ou avaient des défauts !<br />
<br />
Enfin, j’ai créé une page de projet accessible [[Special:MyLanguage/LinguaLibre:Events/Patrol_assistance_tool_prototyping_project|ici]] (page traduite).<br />
<br />
(Si certain·es peuvent traduire ce message en anglais, c’est super cool.)<br />
<br />
À+,<br />
|en=Hi,<br />
<br />
This week, a project lead by student of University Toulouse 3 - Paul Sabatier is starting. It will be about the prototyping of patrolling tools. I supervise this project, assisted by Adélaïde Calais. The students study computer science with a specialization in Artificial Intelligence. The aim is to have them prototyping (or even developing) tools to help Lingua Libre's patrol, by automatically detecting any kind of mistake/error related to the files. We already identified a few types of mistakes: clicks, crackles, pops and labelling issues (wrong label/wrong language).<br />
<br />
We need the community on two points : <br />
# are there other problems you could think of? <br />
# we need some recordings having issues, in order for the students to be able to work. If you already recorded them again, it is not a big deal, Commons has a file history. Don't hesitate to provide us the files that have or had problems.<br />
<br />
Lastly, I created a project page, available [[Special:MyLanguage/LinguaLibre:Events/Patrol_assistance_tool_prototyping_project|here]].<br />
<br />
See you,}}<br />
[[User:Lepticed7|Lepticed7]] ([[User talk:Lepticed7|talk]]) 09:19, 19 October 2021 (UTC)<br />
:Hello [[User:Lepticed7|Lepticed7]], Translated page —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 19:49, 22 October 2021 (UTC)<br />
::[[User:Lepticed7|Lepticed7]], [[User:Adélaïde Calais WMFr|Adélaïde]], could you specify the dates for this project ? <br />
::Also, were your point 1 and two answered by the community somewhere ? (If not I could give it a try) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 13:19, 15 November 2021 (UTC)<br />
::: {{ping|Yug}} Hi, I updated the project page with the dates. And I didn’t get any answers to my questions. [[User:Lepticed7|Lepticed7]] ([[User talk:Lepticed7|talk]]) 11:25, 28 November 2021 (UTC)<br />
<br />
== Rashidun Caliphate ==<br />
<br />
Hello {{ping|Zinou2go}},<br />
[https://commons.wikimedia.org/wiki/File:LL-Q13955_(ara)-Zinou2go-الخلافة_الراشدة.wav LL-Q13955 (ara)-Zinou2go-الخلافة الراشدة.wav] is problematic (currently {{Q|Q204439}} on LiLi): it contains several cuts (clicks). I proposed the file for deletion in Commons. The recordings seem to be working better, could you record Rashidun Caliphate again? I didn't check the other records, but they are likely to have "clicks" as well. Also, can an admin delete this item on LiLi, please? Cordially. —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 15:31, 12 November 2021 (UTC)<br />
:{{ping|Eihel}} Please do not nominate files for deletion before asking for the speaker to record it again and waiting a while for their answer. Also, these recordings will come useful for the team currently working on the audio issues of Lingua Libre, so we'd better not delete them (I thought you read my messages on Discord about this). — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 15:48, 12 November 2021 (UTC)<br />
::{{Ping|WikiLucas00}}, J'ai enlevé la suppression sur Commons. —[[User:Eihel|Eihel]] ([[User talk:Eihel|talk]]) 15:54, 12 November 2021 (UTC)<br />
<br />
== Code of Conduct ==<br />
Hi everyone, I just noticed again MediaWiki's [[:mw:Code of Conduct]] (2015) and Wikimedia Foundation's [[:foundation:Universal Code of Conduct]] (2021/02). Back in 2015, 0x010C included the first one as a condition to contribute to [https://github.com/lingua-libre/RecordWizard RecordWizard's codebase]. As far as I know, Lili.org and its community, so far, [https://lingualibre.org/index.php?search=Code+of+conduct has no Code of Conduct]. We may be ''implicitely'' binded by it or by some Wikimedia France's Code of Conduct, but it would be cleaner to ''explicitly'' adopt one and display it here, in written. We could therefor do the following :<br />
# Short round to confirm with have nothing in place so far.<br />
# Vote for 2 months to adopt the most recent [[:foundation:Universal Code of Conduct]] (2021/02)<br />
# Copy the text into [[LinguaLibre:Universal Code of Conduct]].<br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:48, 14 November 2021 (UTC)<br />
=== Pre-discussion ===<br />
Do we already have a Code of Conduct binding LinguaLibre ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:48, 14 November 2021 (UTC)<br />
<br />
=== Vote ===<br />
''Are you for or against adopting the [[:foundation:Universal Code of Conduct]] (2021) as a code of conduct for LinguaLibre's community ?''<br><br />
''Possible votes : {{tl|support}} • {{tl|weak support}} • {{tl|weak oppose}} • {{tl|oppose}}''<br />
* {{Support}} (proposer) — better to be explicit, have a framework in place, just to be clear to all on where we stand. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:48, 14 November 2021 (UTC)<br />
<br />
== Lingua Libre website should be more appealing to Language Learners ==<br />
:''See also [https://forvo.com Forvo.com].''<br />
It would be useful if LinguaLibre follows the example of Forvo to increase the number of language learners interested in the Project.<br />
<br />
Forvo.com has a way of displaying the information that engage users and makes it very easy to find pronunciations. <br />
<br />
For example, if someone wants to learn how to pronounce "Honoré de Balzac" in French, it would be faster to find the audio on Forvo than on LinguaLibre. Also, Forvo displays the data in a way more appealing to language learners:<br />
* https://forvo.com/search/Honoré_de_Balzac/<br />
* https://lingualibre.org/index.php?search=Honoré+de+Balzac<br />
'''Would it be possible to improve the way that data is displayed on LinguaLibre to make it more appealing to Language Learners ?'''<br />
''In such way, the number of active users recording audios would increase significantly.'' -- [[User:Marreromarco|Marreromarco]]<br />
:Some people previously reported such "issue". There is a [[phab:T252319|ticket]] on Phabricator to keep this in mind. However, the priority is currently given to develop patrol tools for Lingua Libre and we do not expect to see major improvements related to the audio brosing in the coming months (at least if we have no more external developers). I think it is like this because Lingua Libre has been though so that it helps for recording, not for listening; the second is let to the other Wikimedia projects, mainly Wiktionaries et Wikidata. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:00, 14 November 2021 (UTC)<br />
::YES ! There are oral discussions and proposals in this direction, but LinguaLibre being a volunteers-based team, we are moving slowly. Forvo is a for-profit entity, it locks the copyright and resale of recordings made on its platform to the speaker-creator and to themselves, to then sell those recordings with a profit. They therefor have money and swift decision-making to sustain their UI/UX efforts. We are shorter on those sides. --[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 16:30, 14 November 2021 (UTC)<br />
=== Sound Library's forking and hacking ===<br />
'''On the [[LinguaLibre:Explore_the_sound_library|Sound Library]] side''', I was able to duplicate/fork it, which allows to start hack its CSS. Copy those codes into your own namespace :<br />
* [[User:Yug/common.js]] → [[Special:MyPage/common.js]]<br />
* [[User:Yug/MediaWiki:SoundLibrary.js]] → [[Special:MyPage/MediaWiki:SoundLibrary.js]]<br />
* [[User:Yug/LinguaLibre:Explore_the_sound_library]] → [[Special:MyPage/LinguaLibre:Explore_the_sound_library]]<br />
In those codes, you then have to replace all occurrences of "Yug" by your username, and it's should work. You can start hacking toward a more elegant interface. Note: the JS copy is in your *personal* JS and has a "stop" condition so the various JS instances won't fight. --[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 16:30, 14 November 2021 (UTC)<br />
<br />
== Allow recording only in the user's Native Language to avoid passing "mispronunciations" to Wiktionary ==<br />
<br />
I started a discussion on the German Wiktionary because some words on LinguaLibre are not available on the DeWikt. The German Community told me that LinguaLibre adds words into Commons, but the Bot only accepts audios from “few” trusted users using a filter. <br />
<br />
The English and German Wiktionaries use a bot called "DerbethBot" to add audios from Commons. However, the English Wiktionary community asked to block Lingua Libre's recordings because there were non-native speakers recording audios and the Bot had no way to differentiate them from Native speakers. After the audios were introduced in the English Wiktionary they had to forbid adding audios from LinguaLibre:<br />
<br />
https://en.wiktionary.org/wiki/Wiktionary:Beer_parlour/2020/July#Labeling_non-native_audio<br />
<br />
I believe that it is necessary to avoid giving “mispronunciations” to Wictionaries. That is similar to vandalism on a Wiktionary if the reader doesn't know that it is hearing a bad pronunciation and believes that it is “native speaker”:<br />
<br />
''Some suggestions:''<br />
1) Would it be possible to name the audios files to specify if the speaker is a native or not? For example, if a French speaker records the word "maison" it could be named '''"maison-fr-native.ogg"''' . If a language learner records the same word : '''"maison-fr-learner.ogg"'''<br />
<br />
2) A radical way to address the issue would be to only allow to record in one's native language. Of course, users could change it, but strong warnings could be added and always remind people to record only their native language. Forvo seems to take this approach.<br />
<br />
It might be valuable for Linguists to have recordings of non-native speakers to study their accent features in an L-2 Language. However, in my humble opinion the pronunciations added to Wiktionary should be only native speakers and bots should have a way to differentiate them.<br />
<br />
Link to the German Wiktionary discussion about LinguaLibre: <br />
https://de.wiktionary.org/wiki/Wiktionary:Teestube#:~:text=von%20technischer%20seite%20gibt%20es%20keinem%20problem%2C%20zwei%20bots%20auf%20de.wiktionary%20arbeiten%20zu%20lassen.<br />
:Hi, this depends on the Wikitionary policy, and it could be different from a language to another one. Anyway, it is already possible to select only recordings done by native speaker. To do that, the speaker has to fill the {{P|16}} property ith the value {{Q|15}} (see for example {{Q|466}}). Other values for {{P|16}} are given [[Special:WhatLinksHere/Q5|here]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 16:38, 16 November 2021 (UTC)<br />
<br />
<br />
== Sursilvan ==<br />
:{{done}}<br />
[[Special:Contributions/Franz.Roos.1955|User:Franz.Roos.1955]] made 2 recordings in [[:en:wp:Sursilvan]] : rauna ([[Q689785]]), tschitta ([[Q689786]]). Sursilvan has no iso code. Do we have a procedure for such languages ? (I forgot if the case already shown up). [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 20:37, 17 November 2021 (UTC)<br />
:There is not issue. It simply uses the Wikidata identifier when there is no ISO code. Se for example {{Q|1186}}. To record in such languages, we have to create an item for this language/dialect on Lingua Libre, and this is already done for {{Q|74905}}. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:59, 17 November 2021 (UTC)<br />
::Thank Pamputt for the clarification. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 23:12, 17 November 2021 (UTC)<br />
<br />
== [[commons:commons:structured data]] ==<br />
<br />
I've been very pleased with LL's tooling, that does so much of the process of uploading to Commons, sensible naming, description-writing, and categorisation for me; however, I have an idea for an additional step LL could automate. This is in Commons' no-longer-so-new structured data section, which manifests (among other ways) as a tab on the file page.<br />
<br />
As an example of what could be automatically added to a file's datastore, there is a property called 'audio transcription' which serves a similar role to Commons' TimedText subtitle functionality (silly example: [[commons:TimedText:051226-kakapo-billbooming.ogg.en.srt]]) but for shorter clips -- in other words, seemingly designed with applications like LinguaLibre in mind.<br />
<br />
Since these are of the so-called 'monolingual text' datatype, the source language can be specified (or where not part of the main set of languages Wikimedia uses, the special code 'mis' is used and 'language of work or name' used as a qualifier) at the same time as the actual text that is being spoken, which LL has access to since the audio file started out as a text prompt!<br />
<br />
What think y'all? [[User:Arlo Barnes|Arlo Barnes]] ([[User talk:Arlo Barnes|talk]]) 04:25, 19 November 2021 (UTC)<br />
:Hi {{u|Arlo Barnes}} there is [[phab:T239272|Phabricator ticket]] about this topic. Currently there are not yet all properties on Wikidata to fit all Lingua Libre properties. For example, I [[d:Wikidata:Property proposal/language level|proposed to create]] a property for the language level of a speaker but it did not get enough support. SO I guess, we should first list all properties we would like to add on SDC. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:18, 19 November 2021 (UTC)<br />
<br />
== [Feature Request] Play next sound automatically while checking recordings ==<br />
<br />
After recording sounds it is important to check them to verify their quality. However, it is very tiring to record 380 words and afterwards have to click 380 times on the ''“Next button”'' while checking them.<br />
<br />
'''After recording, would it be possible to add a button to "Play next sound automatically" ?''' [https://i.imgur.com/XwC34pj.png Screenshot Here] [[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 04:09, 20 November 2021 (UTC)<br />
:Agreed, it is already [[phab:T218372|tracked on Phabricator]]. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 09:45, 20 November 2021 (UTC)<br />
<br />
== "How to use Lingua Libre for your language learning" ==<br />
<br />
I recently found a "new" way to benefit from the sounds on Lingua Libre. I would suggest that it could be advertised on the Lingua Libre main website and on the Wikipedia in French/English:<br />
* [[:en:wp:GoldenDict|GoldenDict]] is a FOSS Dictionary application very valuable for language learners. <br />
<br />
A way to benefit from Lingua Libre recordings is to download the datasets, unzip them and "load" the sounds on GoldenDict (as Sound Directories. [https://i.imgur.com/9avJDgS.png Screenshot here]). In such a way, users have easily an offline "Pronunciation Dictionary". It is very easy to do. Here is an [https://i.imgur.com/axRHruk.png screenshot] of how it looks to GoldenDict the French word "fuir". Another example [https://i.imgur.com/Rq0nQCt.png here].<br />
<br />
Lingua Libre sounds can be used with GoldenDict OFFLINE. That is a huge advantage in developing countries, where language learners often do not have reliable internet connection.<br />
<br />
''It would be valuable to create a description on the Lingua Libre website about'' '''"How to use Lingua Libre sounds for your language learning"''' .<br />
<br />
There it would be possible to describe how to use the audios offline with GoldenDict, etc. If more methods are developed (Anki add-on), better GUI, Android App, etc. they could be explained there.--[[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 04:41, 20 November 2021 (UTC)<br />
:1) '''Reuse of datasets :''' Yes ! Dataset download and reuse must be showcasted and strengthened. I think a "Reuses gallery" page could be created, with screenshot and minimal how-to for GoldenDict, Anki and others.<br />
:2) '''Anki:''' You are the 4th or 5th contributor to rise the need for an Anki add-on. We need to do something on this side, yes. It's more than 1~2 days work and too big for a volunteer work, so we need to apply for a grant. I'am looking in and mapping our options at the moment ({{tl|Grants table}}). At one point we have to jump in and design a project, yes.<br />
:3) For '''e-learning app''', a 5k€ project was designed by myself a year ago. The funding by local regional government was declined, but it could easily be refreshed.<br />
:We have to redesign some projects and apply in early 2022. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 09:28, 23 November 2021 (UTC)<br />
::The core question is the Human Resources. <br />
::'''*Daily routines*''' keeps WikiLucas, Pamputt, Poslovitch and myself –aka the community-side contributors— busy maintaining the place, welcoming and guiding new users, cleaning pages, etc. We are now quite smooth, successful and stable on this side.<br />
::To '''*push forward*''' on developments, UI, tools, e-learning, communication, grants, we each have one or two side projects in mind, pushing those <u>''slowly''</u>. But as always in FOSS projects the task ahead is much larger and we could achieve much more with more human resources.<br />
::'''Overall''', it's possible we are at a new turning right now. As things are stable, with road maps available, '''we just need 1 to 3 new coordinators and communicants contributors to tip the dynamic into forward-offensive mode''', with communication therefor new arrivals, new speakers, new devs, new coordinators and really push forward with new events/workshop, funds and SMART features. <br />
::@[[User:Marreromarco|Marreromarco]], I'am currently writing down structuring "community how to" to ease new contributor's jumping in (see [[LinguaLibre:Roles]], [[LinguaLibre:Workshops]], {{tl|Grants table}}). You are doing a nice push on communication (It's FOSS) and with your questions you are mapping out Lili's needs. Pamputt and WikiLucas are following our progresses. All this is pretty interesting. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:48, 23 November 2021 (UTC)<br />
<br />
:I would like to work on the "Public Relations" Department of LinguaLibre! - EDIT (28th Nov. 2021) : '''Any PR campaign would fail miserably if there is no search function.''' I explain the reasons at the end of this section: [[LinguaLibre:Events/Winter 2021-2022 Public Relations Campaign]]<br />
<br />
[[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 23:49, 23 November 2021 (UTC)<br />
::Sound good :) Your outreach to YouTubers and popular FOSS blogs is spot on.<br />
::I am back from a wikibreak, I am cleaning up some last pages, then since the maintenance side is stable I would like to focus my energy on projects design –recording rare languages, technology, PR campaign– and associated grant requests to secure funding and the actual realization of those visions. We can collaborate. You lead on the PR : design your campaign. I can review and help it to fit some Grants formats. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:00, 24 November 2021 (UTC)<br />
<br />
I created a new wiki page in the "events" section of a "PR Campaign for 2022". Please visit [[LinguaLibre:Events/Winter 2021-2022 Public Relations Campaign]] and participate in the discussion with new ideas. EDIT (28th Nov. 2021) I will NOT contribute anymore to a PR campaign. the reasons are explained as comment on the relevant section [[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 21:20, 25 November 2021 (UTC)<br />
<br />
== Creating a LL catgory for a dialect ==<br />
<br />
Would be grateful if someone could tell me if it's possible to create a LL category for a dialect?<br />
<br />
We're working in Konkani, which has its own (but small) Wikipedia at http://gom.wikipedia.org Under Konkani, there are some dialects spoken, the pronunciation of one can be different from the other. <br />
<br />
Would like to create a category for Saxtti (the Salcete dialect of Konkani). This will ensure that readings don't get overwritten by other dialects. Also, it would allow the recordings of many others which might have already been done in Konkani as a how.<br />
<br />
Question: How do we create space for the dialects of a language? <br />
<br />
Thanks very much, in advance! --[[User:Fredericknoronha|Fredericknoronha]] ([[User talk:Fredericknoronha|talk]]) 13:34, 27 November 2021 (UTC)<br />
:Hello {{ping|Fredericknoronha}} and welcome to Lingua Libre. I imported {{Q|700683}} (gom) as it was not on Lingua Libre yet. On Lingua Libre, dialects are treated the same way as languages. You can create an element for your dialect on Wikidata (example for [https://www.wikidata.org/wiki/Q35359 auvergnat dialect]) and tell us once it is ready, so that we can import it on Lingua Libre with an admin tool. You can also directly create an element for your dialect on Lingua Libre, following the steps described at [[Special:MyLanguage/Help:Add_a_new_language|Help:Add a new language]] and taking example of {{Q|1186}}. Don't hesitate to ping an admin if you have any questions.<br />
:All the best — '''[[User:WikiLucas00|WikiLucas]]''' [[User talk:WikiLucas00|(🖋️)]] 15:35, 27 November 2021 (UTC)<br />
::''« there are some dialects spoken, the pronunciation of one can be different from the other. […] This will ensure that readings don't get overwritten by other dialects. »''<br />
::If the writing are similar but only the pronunciation differs depending on where the speaker comes from, it looks like different accents.<br />
::Recordings are specific to a word, a language and a speaker. Which means me recording in French the word "bonjour" will be one audio file on Lili. WikiLucas can record in French the same word "bonjour", it will create an other audio file on Lili. My recording(s), since i come from the South West, will carry the southern accent. Recordings by WikiLucas, who lives 700km East of me, will cary the Lyon area accent. Lingualibre will store 2 recordings, one per user. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 21:59, 27 November 2021 (UTC)<br />
: Hello {{u|Fredericknoronha}}, I have imported {{Q|701734}} so that you can now record words in that dialect. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 17:21, 28 November 2021 (UTC)<br />
<br />
== Feedback about Lingua Libre by Professor Carol Genetti, PhD ==<br />
<br />
'''Dear Members of Lingua Libre,<br />
'''<br />
I am pleased to share a message from Professor [https://en.wikipedia.org/wiki/Carol_Genetti Carol Genetti], a linguist and leading expert in endangered languages. Professor Genetti is author of one of the best books in the field of Linguistics called "How Languages Work". Her vast knowledge and experience are extremely valuable and after reviewing Lingua Libre she said:<br />
<br />
''Thank you for contacting me and letting me know about this initiative. It is an interesting idea. I especially like the multilingual menus -- very helpful.''<br />
<br />
''Are you aware of [https://www.endangeredlanguages.com/ this website], hosted by the University of Hawaii (and, I believe, funded by Google). So one thing that occurs to me is the proliferation of such sites. How will people in an endangered-language community find out about their options, and then make an informed choice about which of these online resources will be best over time for their communities? Should such efforts cross-reference each other?''<br />
<br />
''My second thought has to do with longevity. It takes a significant commitment to support a site like this over time. The challenge is having someone who can keep such sites funded, working, organized, relevant, and engaging users over time. How will you make sure that the data will be available in 10, 50, 150 years? Maybe you get that automatically by being associated with Wikipedia. If so, state that. Also, there should be a clear statement of how such data might be used, and by whom, so speakers know that if they record a wordlist, someone might use if for some purpose without their permission (is that right?).<br />
''<br />
''I'm sorry to have to bring a down-to-earth message to the inspiration and passion for endangered languages that has clearly fueled this work, but having seen other initiatives stumble in this way, I wanted to be sure that you are thinking about this. Speakers will be entrusting you with such valuable pieces of their lives and their cultures. How will you safeguard this over time? Let people know.<br />
''<br />
''Those issues aside, here are a couple of other comments:''<br />
<br />
* There should be a statement targeted for speakers of endangered languages - why would they want to do this? What is the value for them and their communities? What will happen to the recordings? etc.''<br />
* Will you provide speakers with suggestions for what vocabulary to record, e.g. greetings, colors, verb forms?''<br />
* It would be helpful if it was clear from the large list of languages which ones have recordings. Maybe put those in a different color font?''<br />
* It would be helpful to include translations of the words into one of the world's major languages or the national language. Otherwise, someone's grandkids coming to this in 30 years will not know what the words mean.''<br />
* Do you want to move beyond single words to a piece of connected discourse, such as a short poem or story, a song, or the reading of some common text (such as a sentence from the UN Declaration for Linguistic Rights)?''<br />
* Should there be a means to flag inappropriate content?''<br />
<br />
''I hope that you find this helpful. And I'm so glad you liked my book! It is lovely to hear that people have found it helpful.''<br />
<br />
''Carol Genetti''<br />
''Vice Provost for Graduate and Postdoctoral Programs''<br />
''NYU Abu Dhabi''<br />
''(she/her/hers)''<br />
<br />
[[User:Marreromarco|Marreromarco]] ([[User talk:Marreromarco|talk]]) 09:23, 4 December 2021 (UTC)<br />
:Hey, this is some interesting feedback.<br />
:* "What will happen to the recordings?": Our homepage lacks such important information. We should plan a redesign for 2022 (inspired by the homepage of [https://commonvoice.mozilla.org/ Common Voice]?) so that we finally have a homepage that properly explains what Lingua Libre is and can do.<br />
:* "Suggestions of things to record?": This already exists. They're called Lists. We have some pending improvements on that matter (easier to find and contribute to, etc.)<br />
:* "Show which languages have recordings": The datasets page could help, but I guess it would be interesting to put that on an easy-to-find page (again, like [https://commonvoice.mozilla.org/fr/languages Common Voice's languages page]?)<br />
:* "Include translations of the words into one of the world's major languages or the national language": we only support "transcription" for now.<br />
:** How could we even "link" the recordings to translations? (Lexemes? Plain text?)<br />
:** Who would have to do that? (the locutor? a dedicated team of contributors?)<br />
:** Where would it be done? (in the RecordWizard?)<br />
:** -> That's an interesting thing to think about, but might be slightly out of scope right now<br />
:* "Sentences, stories, songs...?": Yes, indeed. The Record Wizard is already able to do that (with some config tweaks that have to be done by the locutor), but it would be great to streamline this further. Dedicated UI, ability to record an audiobook (or Wikipedia, Wikisource, Wikinews article) as a mixture of sentences that can be stored locally before being all merged together into one audio file sent to Commons, ability for multiple contributors to work on the same book/article... That's something we should also discuss with the [https://librivox.org/ Librivox] folks: they use Audacity so far, but they might be interested in a tool that's better suited to their needs.<br />
:* "flag inappropriate content?": My insight is focused on technical stuff. This sounds more like some editorial guidelines that would have to be debated by the community.<br />
:* "'''longevity'''?": Should Lingua Libre vanish tomorrow, the audio recordings are not lost. They're all stored on Wikimedia Commons, and that makes them as "immortal" as files stored on hard disks, SSDs, CDs or magnetic bands and mirrored half a dozen times around the world can be. However, I can't say much about our Wikibase, which, at the current time, '''is the only place where all the recordings and locutor-related metadata is stored'''. That's a serious single point of failure. There are no dumps and therefore no mirrorring. We'll definitely have to discuss it with Wikimedia France and the Tech Team.<br />
:Hopefully my answers are clear and comprehensible. I'm pleased to have received feedback from Pr. Genetti. Now it's our turn to take matters in our hands! --[[User:Poslovitch|Poslovitch]] ([[User talk:Poslovitch|talk]]) 13:13, 5 December 2021 (UTC)<br />
<br />
== How to delete lists? ==<br />
:{{Done}} <br />
Hello, recently I completed some lists. Now everything is done and those lists are needless. Is there any possibility to delete lists? Greetings --[[User:Onkel Tomm|Onkel Tomm]] ([[User talk:Onkel Tomm|talk]]) 10:02, 10 December 2021 (UTC)<br />
:{{Ping|Onkel Tomm}} hello, admins can delete those lists. The lists you created are [https://lingualibre.org/index.php?target=Onkel+Tomm&namespace=142&tagfilter=&newOnly=1&start=&end=&limit=50&title=Special%3AContributions here]. Which ones should I delete ? [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:25, 10 December 2021 (UTC)<br />
::Hello Yug, please delete all 8 lists, because they are all finally finished. Thanks. --[[User:Onkel Tomm|Onkel Tomm]] ([[User talk:Onkel Tomm|talk]]) 13:44, 10 December 2021 (UTC)<br />
:{{Ping|Onkel Tomm}} We are clean ! thank for asking, it keeps the place clean :) [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:10, 10 December 2021 (UTC)<br />
<br />
== Case study ==<br />
Hello all, I noticed a file upload which gather interesting use cases.<br />
<br />
{| class="wikitable"<br />
! Item || Label || Speaker || Account || Filename || Category<br />
|-<br />
| [[Q709231]] ([https://lingualibre.org/index.php?title=Q709231&oldid=689510 arch.]) || "Ingenieur" || [[Q674858]] 'fleur' || User:Beat_Ruest || [[:File:LL-Q150_(fra)-fleur_(Beat_Ruest)-Ingenieur.wav]] || [[:commons:Category:Lingua Libre pronunciation by Beat Ruest]]<br />
|-<br />
| — || Mispelling of "Ingénieur" || – || – || Carries the misspelling || Category page was not created, therefor virtually "lost" to Wikimedia Commons and [[:commons:Category:Lingua_Libre_pronunciation_by_user]].<br />
|}<br />
<br />
Questions:<br />
* Question 1: How do we handle mispelling ? I assume renaming ALL THREE of the [[Q709231]]'s label AND Property:P3 'recording' AND Wikimedia file [[:File:LL-Q150_(fra)-fleur_(Beat_Ruest)-Ingenieur.wav]] rename. Is that ok or will it break something ?<br />
* Question 2: Category should be automatically created. How do we go for this ? I assume a request on [[LinguaLibre:Bot]]<br />
* Question 3: What about the category by *speaker/voice* ([[Q709231]] 'fleur'), which curently doesn't exist, and which can have multiple speakers with the same name 'fleur' ?<br />
[[User:Yug|Yug]] ([[User talk:Yug|talk]]) 10:39, 10 December 2021 (UTC)<br />
: Question 1: it is a good start. I guess, we need to fix it both on Lingua Libre and on Wikimedia Commons<br />
: Question 2: you speak about categories on Wikimedia Commons? If so, I guess a bot can do it (Lingua Libre Bot or another one).<br />
: Question 3: actually the speaker is identified as "fleur (Beat Ruest)". Only one locutor of Beat Ruest can use the nickname "fleur".<br />
: [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 11:23, 20 December 2021 (UTC)<br />
::Q1, Q2 agree.<br />
::Q3 : {{ping|Pamputt}} check the categories on [[:commons:File:LL-Q150_(fra)-fleur_(Beat_Ruest)-Ingenieur.wav]]. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 14:56, 20 December 2021 (UTC)<br />
:::{{ping|Yug}} you mean the problem is [[:c:File:LL-Q150_(fra)-fleur_(Beat_Ruest)-Ingenieur.wav]] is categorized in "Category:Lingua Libre pronunciation by Beat Ruest" and not in "Category:Lingua Libre pronunciation by fleur (Beat Ruest)" or similar name? [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:57, 5 January 2022 (UTC)<br />
::::Yes, we dont have categorization by '''speaker''' "Fleur (Beat Ruest)". Low importance, but could be a feature request. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 18:01, 5 January 2022 (UTC)<br />
<br />
== Gestion de doublons ==<br />
:''See also [[Help:Homographs]]'' (new, needs review!)<br />
<br />
Bonsoir !<br />
<br />
Il y a-t-il une gestion de doublons dans LL pour les mots d'une même langue ? [[User:BamLifa|BamLifa]] ([[User talk:BamLifa|talk]]) 13:45, 18 December 2021 (UTC)<br />
:Bonjour [[User:BamLifa|BamLifa]], si un même locuteur enregistre le même mot alors l'enregistrement précédent sera écrasé (un même locuteur ne peut enregistrer qu'une seule fois le même mot). En revanche, rien n'empêche l'enregistrement d'un même mot par plusieurs locuteurs et locutrices différentes, c'est même un des objectifs de Lingua Libre : mettre en lumière la diversité des prononciations. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 11:19, 20 December 2021 (UTC)<br />
::@[[User:Pamputt|Pamputt]] : Comment sont alors gérés les homographes non homophones ? ^^ [[User:Totodu74|Totodu74]] ([[User talk:Totodu74|talk]]) 00:03, 5 January 2022 (UTC)<br />
<br />
:::Bonjour [[User:Totodu74|Totodu74]], il est possible d'ajouter des indications entre parenthèses (cette information est stockée à l'aide de {{P|18}}). Voir par exemple {{Q|1685}} et {{Q|1686}}. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:55, 5 January 2022 (UTC)<br><br />
<br />
:::@[[User:Totodu74|Totodu74]], salut, la question des homographes est en partie résolue dans nos langues africaines qui sont essentiellement des langues à tons. --[[User:Rçag|Rçag]] ([[User talk:Rçag|talk]]) 11:18, 9 January 2022 (UTC)<br />
:Rçag, could you explain your solution a bit so we learn from it.<br />
:{{Ping|BamLifa|Rçag|Pamputt|Totodu74}} the page [[Help:Homographs]] is there to gather best practices. It's new, review and edits welcome. [[User:Yug|Yug]] ([[User talk:Yug|talk]]) 15:05, 12 January 2022 (UTC)<br />
<br />
== Comment changer de pseudonyme ==<br />
<br />
Bonjour, sur les projets de Wikimedia, mon pseudonyme est Manjiro91 (et anciennement GamissimoYT), comment change-t-on de pseudonyme ?<br />
[[User:GamissimoYT|GamissimoYT]] ([[User talk:GamissimoYT|talk]]) 17:13, 11 January 2022 (UTC)<br />
:Bonjour {{u|GamissimoYT}}. Lingua Libre utilise le même pseudo que celui qui est en utilisation sur Wikimedia Commons. Donc si vous voulez utiliser le pesudonyme Manjiro91, déconnectez-vous de Lingua Libre, puis de Wikimedia Commons. Ensuite, connectez vous à Commons avec le pseudo Manjiro91 et enfin reconnectez vous à Lingua Libre. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 21:05, 11 January 2022 (UTC)<br />
{{Notif|Pamputt}} Mon pseudonyme Wikimedia Commons est Manjiro91 (anciennement GamissimoYT mais le changement de pseudonyme ne s'effectue pas sur LiLi. [[User:GamissimoYT|GamissimoYT]] ([[User talk:GamissimoYT|talk]]) 13:38, 12 January 2022 (UTC)<br />
:{{ping|GamissimoYT}}, tu as bien fait les connexions/déconnexions dans l'ordre que j'ai indiqué ? Si tu es sûr que tu es connecté avec Manjiro91 sur Wikimedia Commons, alors tu peux essayer de te déconnecter de Lingua Libre et te reconnecter dans la foulée. Essayer de vider le cache du navigateur peut peut-être aidé aussi. [[User:Pamputt|Pamputt]] ([[User talk:Pamputt|talk]]) 07:37, 13 January 2022 (UTC)<br />
<br />
== Merging of items about languages ==<br />
<br />
Hi y'all,<br />
<br />
For the record, I just merge a couple of items about the same language:<br />
* {{Q|52071}} in {{Q|73}}<br />
* {{Q|139228}} in {{Q|183}}<br />
* {{Q|170137}} in {{Q|359}}<br />
* {{Q|683869}} in {{Q|418}}<br />
* {{Q|646169}} in {{Q|6714}}<br />
* {{Q|570518}} in {{Q|52069}}<br />
* {{Q|538624}} in {{Q|84030}}<br />
* {{Q|646173}} in {{Q|390314}}<br />
* {{Q|646161}} in {{Q|502754}}<br />
* {{Q|570510}} in {{Q|489393}}<br />
<br />
I detected them with this SPARQL query: <br />
<br />
<syntaxhighlight lang="sparql"><br />
SELECT ?idWD (COUNT(?item) AS ?compte) (GROUP_CONCAT(?item) AS ?items) WHERE {<br />
?item prop:P2 entity:Q4 ; prop:P12 ?idWD .<br />
}<br />
GROUP BY ?idWD<br />
HAVING ( ?compte > 1 )<br />
</syntaxhighlight><br />
<br />
Ping {{ping|WikiLucas00}} it seems you are responsible for some of them...<br />
<br />
Cheers, [[User:VIGNERON|VIGNERON]] ([[User talk:VIGNERON|talk]]) 09:29, 19 February 2022 (UTC)</div>
VIGNERON
https://lingualibre.org/index.php?title=Q646169&diff=743004
Q646169
2022-02-19T09:28:59Z
<p>VIGNERON: /* wbcreateredirect:0||Q646169|Q6714 */</p>
<hr />
<div></div>
VIGNERON
https://lingualibre.org/index.php?title=Q6714&diff=743003
Q6714
2022-02-19T09:28:59Z
<p>VIGNERON: /* wbmergeitems-from:0||Q646169 */</p>
<hr />
<div></div>
VIGNERON