Järjestelmäviesti:Gadget-linkeddata.js
Siirry navigaatioon
Siirry hakuun
Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.
- Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
- Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
- Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
- Opera: Paina Ctrl-F5.
function insert_wqssearch()
{
function do_wqssearch() {
var sparql="\
# Finnish movies\n\
SELECT DISTINCT\n\
(?item as ?Wikidata) \n\
(?itemLabel as ?Nimike) \n\
(?itemDescription as ?Kuvaus) \n\
(YEAR(?p577) as ?Julkaistu) \n\
(?article as ?Wikipedia) \n\
WHERE\n\
{\n\
__REPLACE_WITH_FILTER_RULE__\n\
OPTIONAL { ?item wdt:P577 ?p577 }\n\
OPTIONAL {\n\
?article schema:about ?item ;\n\
schema:isPartOf <https://fi.wikipedia.org/> .\n\
} \n\
SERVICE wikibase:label {\n\
bd:serviceParam wikibase:language \"[AUTO_LANGUAGE],en\".\n\
?item rdfs:label ?itemLabel .\n\
?item schema:description ?itemDescription .\n\
}\n\
}\n\
LIMIT 1000\n\
";
var wqs=$("#wqssearccontainer");
var sparql_rule="";
wqs.find(".collapsible").find("tr").each(function(){
var props=$(this).find("td").first().find(".wqswikidataproperty[data-wqswikidataproperty]");
if (props.length) {
var propertyrule="";
var prop=props.first();
if (prop.is("[data-wqswikidatapropertyrule]")) {
propertyrule=prop.attr("data-wqswikidatapropertyrule");
}
else if (prop.is("[data-wqswikidataproperty]")) {
propertyrule="wdt:" + prop.attr("data-wqswikidataproperty")
}
if (propertyrule!="") {
props.first().attr("data-wqswikidataproperty");
$(this).find("td").last().find("input:checked").each(function () {
var v=$(this).val();
if (v.match(/Q[0-9]+/)) {
sparql_rule+=" ?item " + propertyrule + " wd:" + v +" . \n";
}
else
{
//
}
});
}
}
});
// Do not run search if there is no filters selected
if (sparql_rule=="") return false;
if ($("#wqssearccontainer").find("[value='wqsarticlesonly']:checked").length)
{
sparql_rule+=" FILTER BOUND(?article)\n";
}
var wqsquery=wqs.find(".wqsquery").find('a[href^="https://query.wikidata.org/#"]');
if (wqsquery.length)
{
sparql=decodeURIComponent(wqsquery.attr("href").replace("https://query.wikidata.org/#", ""));
}
sparql=sparql.replace("__REPLACE_WITH_FILTER_RULE__", sparql_rule);
var url="https://query.wikidata.org/embed.html#" + encodeURIComponent(sparql);
if ($("#wqssearccontainer").find("[value='wqsnewwindow']:checked").length)
{
window.open(url, "_blank", "noreferrer");
}
else
{
showSparqlResponse(sparql, $("#wqsiframecontainer"));
}
}
function getLabelString(labelkey)
{
var wqs=$("#wqssearccontainer");
var wqskey= "data-msg-" + labelkey;
if (wqs.length)
{
if (wqs.is("[" + wqskey + "]")) {
return wqs.attr(wqskey);
}
}
return wqskey;
}
var wqs=$("#wqssearccontainer");
if (wqs.length) {
var title=wqs.find(".navbox-title").find("span[style='font-size:110%;'").last();
if (title.length) {
title.html(title.html().replace("Linkitetty data", getLabelString('linked-data-search')));
}
wqs.find(".wqsconj").text(" ");
wqs.find(".wqsinlinehelp").show();
wqs.find(".wqsbacklink[data-wqswikidatavalue]").each(function() {
var id=$(this).attr("data-wqswikidatavalue");
var input=$("<input type=checkbox>");
input.attr("class", "wqsinlinecheckbox");
input.attr("name",id);
var wqsdefault=$(this).closest("tr").find("td").first().find(".wqsdefault");
if (wqsdefault.length) input.prop( "checked", true );
input.val(id);
$(this).prepend(input);
});
/*
wqs.find("time").each(function() {
var datetime=$(this).attr("datetime");
var input=$("<input type=checkbox>");
input.attr("name", "datetime");
input.val(datetime);
$(this).append(input);
});
*/
var tablebody=wqs.find(".collapsible").find("tr").parent();
var buttonrow=wqs.find(".wqsquery").closest("tr");
if (buttonrow.lenght==0) {
buttonrow=wqs.find(".collapsible").find("tr").last().clone();
buttonrow.find("td").html("");
tablebody.append(buttonrow);
}
buttonrow.find("td").last().each(function() {
var button=$("<button>"+ getLabelString('search') +"</button>");
button.css("margin-right", "0.5em");
button.click(do_wqssearch);
$(this).append(button);
var wqsnewwindowcontainer=$("<span>");
wqsnewwindowcontainer.id="wqsnewwindowcontainer";
wqsnewwindowcontainer.text(getLabelString('open-in-new-window'));
var input=$("<input type=checkbox>");
input.attr("name","wqsnewwindow");
input.val("wqsnewwindow");
wqsnewwindowcontainer.append(input);
$(this).append(wqsnewwindowcontainer);
var wqsarticlesonlycontainer=$("<span>");
wqsarticlesonlycontainer.id="wqsarticlesonlycontainer";
wqsarticlesonlycontainer.text(getLabelString('articles-only'));
var input2=$("<input type=checkbox>");
input2.attr("name","wqsarticlesonly");
input2.val("wqsarticlesonly");
wqsarticlesonlycontainer.append(input2);
$(this).append(wqsarticlesonlycontainer);
});
if (tablebody.length)
{
var tr=$("<tr>");
var td=$("<td>");
td.attr("colspan", 2);
var wqsiframecontainer=$("<div>");
wqsiframecontainer.css("margin-top", "0.5em");
wqsiframecontainer.attr("id", "wqsiframecontainer");
td.append(wqsiframecontainer);
tr.append(td);
tablebody.append(tr);
}
}
}
function showSparqlResponse(sparql, container) {
div=$('<div>');
var url="https://query.wikidata.org#" + encodeURIComponent(sparql);
sparqllink=$('<a>', { href:url });
sparqllink.text('Loading SPARQL Query ...');
div.append(sparqllink);
container.empty();
container.append(div);
var api = new mw.Api({
ajax: {
url: 'https://query.wikidata.org/bigdata/namespace/wdq/sparql?',
dataType: 'json',
cache: true
}
});
api.get({
query: sparql
}).done(function(data) {
list=$('<table>', {class:'wikitable', style:'width:100%'});
for (var k in data.results.bindings) {
var row=$('<tr>');
var page = data.results.bindings[k];
var pid = page.Wikidata.value.replace('http://www.wikidata.org/entity/', '');
var label = page.Nimike.value;
var titlecolumn=$("<td>", {style: 'padding-left:0.25em; padding-right:0.25em;text-align:left'} );
if (page.Wikipedia) {
var link=$('<a>', { href: page.Wikipedia.value });
link.text(label);
titlecolumn.append(link);
}
else {
var link=$('<span>');
link.text(label);
titlecolumn.append(link);
}
row.append(titlecolumn);
var descriptioncolumn=$("<td>", {style: 'padding-left:0.25em; padding-right:0.25em;text-align:left'});
if (page.Kuvaus) {
descriptioncolumn.text(page.Kuvaus.value);
}
row.append(descriptioncolumn);
var wdcolumn=$("<td>");
var wdlink=$('<a>', { href:'https://wikidata.org/wiki/' + pid, style: 'padding-left:0.25em; padding-right:0.25em' });
wdlink.text(pid);
wdcolumn.append(wdlink);
row.append(wdcolumn);
list.append(row);
}
div.append(list);
sparqllink.text('SPARQL Query');
});
}
$(insert_wqssearch);