Moduł do odczytywania i prezentowania wartości cech z wikidanych powiązanych z bieżącym artykułem.

Funkcja do odczytu i prezentacji wartości cechy.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Numer cechy Np. 94 (herb) lub 395 (tablice rejestracyjne).
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną. Np. Q42.
separator Separator wartości, gdy dostępna jest więcej niż jedna (zbiór):
i
przecinek oraz spójnik i przed ostatnią wartością
lub
przecinek oraz spójnik lub przed ostatnią wartością
inny
jawnie podany inny separator
brak
przecinek (wartość domyślna)
Np. lub aby wyświetlić więcej niż jedną datę urodzin.
linkuj Wartość logiczna do sterowania generowaniem linków:
tak
generuj link zawsze (jeśli możliwy)
nie
generuj tylko opis
brak
generuj w zależności od typu, tj. tak dla artykułów i koordynat, nie dla dat
Np. tak dla daty urodzin lub śmierci
procesor Wtyczka do formatowania wartości Pełna nazwa modułu, który w jest odpowiedzialny za formatowanie zawartości cechy.
bez wartości Treść wartości specjalnej oznaczająca brak danej cechy. Zaleca się podawanie odpowiedniej treści, gdyż zależy ona silnie od kontekstu cechy. Domyślna treść bez wartości raczej nie oddaje jasno informacji i dlatego artykuły, które korzystają z domyślnego tekstu umieszczane są w kategorii technicznej Kategoria:Cecha bez wartości.
ile Maksymalna liczba wartości do odczytania. Cecha może zawierać więcej niż jedną wartość oraz domyślnie zwracane są wszystkie najlepsze wyniki. Tym polem można ten zbiór dodatkowo ograniczyć. Pole musi mieć wartość nie mniejszą niż 1.
P518 Filtr kwalifikatora „odnosi się do części Lista akceptowanych wartości Qnnn. Dopuszczalne są też wartości specjalne novalue, somevalue i missing. Elementy należy oddzielać znakiem odstępu.
P625 Filtr kwalifikatora „współrzędne geograficzne Wartość globe oznacza, że wymagana jest obecność kwalifikatora z jakimikolwiek współrzędnymi.

Funkcja do sprawdzenia obecności cechy.

parametry

[edytuj]
Pole Do czego służy? Jak wypełnić?
1 Numer cechy Np. 94 (herb) lub 395 (tablice rejestracyjne).
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną. Np. Q42.
P518 Filtr kwalifikatora „odnosi się do części Lista akceptowanych wartości Qnnn. Dopuszczalne są też wartości specjalne novalue, somevalue i missing. Elementy należy oddzielać znakiem odstępu.
P625 Filtr kwalifikatora „współrzędne geograficzne Wartość globe oznacza, że wymagana jest obecność kwalifikatora z jakimikolwiek współrzędnymi.

etykieta

[edytuj]

Funkcja do nazwy elementu (domyślnie z bieżącej strony). Jeśli nazwa nie istnieje to zwracana jest nazwa strony bez prefiksów.

parametry

[edytuj]
Pole Do czego służy?
1..N Kod języka, w którym nazwę chcemy uzyskać. Jeśli podane jest więcej kodów niż jeden (w kolejnych parametrach) to zwracana jest pierwsza znaleziona nazwa. Brak parametrów oznacza domyślnie wybór nazwy w języku polskim.
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną.

id

[edytuj]

Funkcja do odczytu identyfikatora strony na wikidanych.

parametry

[edytuj]
Pole Do czego służy?
1 Opcjonalny tytuł strony. Domyślnie brana jest strona bieżąca.

label

[edytuj]

Funkcja do odczytu nazwy elementu w Wikidanych.

parametry

[edytuj]
Pole Do czego służy?
1 Identyfikator elementu w Wikidanych. Identyfikator musi się zaczynać na P lub Q, po których następuje ciąg cyfr dziesiętnych.

page

[edytuj]

Funkcja do odczytu nazwy strony na Wikipedii.

parametry

[edytuj]
Pole Do czego służy?
1 Identyfikator elementu w Wikidanych. Identyfikator musi się zaczynać na P lub Q, po których następuje ciąg cyfr dziesiętnych.

V i Dump

[edytuj]

Funkcje techniczne do odczytu dowolnej gałęzi lub liścia z drzewa danych. V zwraca wartość liścia, jeśli istnieje. Dump robi zrzut diagnostyczny wybranej gałęzi.

parametry

[edytuj]
Pole Do czego służy?
1..N Nazwa lub indeks coraz bardziej zagnieżdżonej gałęzi danych. Interesujące identyfikatory dla pierwszego poziomu to:
  • id z identyfikatorem Qid
  • claims ze zbiorem cech
  • labels ze zbiorem etykiet w różnych językach
  • sitelinks z interwiki i „medalami”
  • bestclaims ze zbiorem odfiltrowanych cech, który można zawęzić parametrami opisanymi w funkcji P
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną.

przykłady

[edytuj]
  • {{#invoke:Wikidane|V|sitelinks|plwikivoyage|title}} – tytuł strony w Wikipodróżach
  • {{#invoke:Wikidane|V|sitelinks|commonswiki|title}} – tytuł strony w
  • {{#invoke:Wikidane|V|bestclaims|P18|1|mainsnak|datavalue|value}} – nazwa pierwszego pliku z ilustracją w
  • {{#invoke:Wikidane|V|bestclaims|P625|1|mainsnak|datavalue|value|latitude}} – szerokość geograficzna z pierwszych dostępnych współrzędnych
  • {{#invoke:Wikidane|V|bestclaims|P159|P625=globe|1|qualifiers|P625|1|datavalue|value|latitude}} – szerokość geograficzna z pierwszych dostępnych współrzędnych podanych jako kwalifikator dla siedziby przedsiębiorstwa

uwagi

[edytuj]



Na stronie Moduł:Wikidane wykorzystano treści ze strony Moduł:Wikidane w polskiej Wikipedii (link do wersji).
Jej autorzy wymienieni są w historii edycji. Prawa autorskie: na licencji Creative Commons CC-BY-SA.



local moduleData = mw.loadData("Module:Wikidane/data")  local function loadArg(frame,id) 	local result = frame.args[id] 	if not result or (#result == 0) then 		result = frame:getParent().args[id] 		if not result or (#result == 0) then 			return nil 		end 	end   	return result end  local function getEntityData(frame) 	local qid = loadArg(frame, "id") 	local data = mw.wikibase.getEntityObject(qid) 	if not data then 		return 	end  	local f = frame.args[1] and frame or frame:getParent() 	local i = 1 	if f.args[1] == "bestclaims" then 		local pid = f.args[2] 		if not pid then 			return f, {}, 2 		end 		 		local sd = require("Module:Wikidane/select") 		local _, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid) 		if not qid then 			return nil 		end 		 		data = prop 		i = 3 	end  	return f, data, i end  return {  	T = function(frame) 		local qid = loadArg(frame, "id") 		local pid = loadArg(frame, 1) 		if not pid then 			return moduleData.errorMissingPropertyId 		end 		 		local sd = require("Module:Wikidane/select") 		local pid, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid) 		if qid then 			return #prop 		end 	end, 	 	P = function(frame) 		local qid = loadArg(frame, "id") 		local pid = loadArg(frame, 1) 		if not pid then 			return moduleData.errorMissingPropertyId 		end 		 		local sd = require("Module:Wikidane/select") 		local pid, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid, tonumber(loadArg(frame, "ile"))) 		if qid then 			return require("Moduł:Wikidane/format").run(frame, pid, prop) 		end 	end, 	 	etykieta = function(frame) 		local qid = loadArg(frame, "id") 		local entity = mw.wikibase.getEntityObject(qid) 		if entity then 			local i = 1 			local lang = true 			while lang do 				lang = frame.args[i] 				local result = entity:getLabel(lang) 				if result and (#result > 0) then 					return result 				end 				 				i = i + 1 			end 		end 	 		return mw.title.getCurrentTitle().text .. moduleData.itemWithoutLabelCat 	end,  	id = function(frame) 		local title = loadArg(frame, 1) 		return title 			and mw.wikibase.getEntityIdForTitle(title) 			or mw.wikibase.getEntityIdForCurrentPage() 	end, 	 	label = function(frame) 		local id = loadArg(frame, 1) 		if id and string.match(id, "^[PQ]%d+$") then 			return mw.wikibase.label(id) 		end 	end, 	 	page = function(frame) 		local id = loadArg(frame, 1) 		if id then 			return mw.wikibase.sitelink(id) 		else 			return nil 		end 	end,  	V = function(frame) 		local f, data, i = getEntityData(frame) 		if not data then 			return nil 		end  		while true do 			local index = f.args[i] 			if not index then 				return tostring(data) 			end  			data = data[index] or data[tonumber(index)] 			if not data then 				return 			end  			i = i + 1 		end 	end,  	Dump = function(frame) 		local f, data, i = getEntityData(frame) 		if not data then 			return moduleData.warnDump 		end  		while true do 			local index = f.args[i] 			if not index then 				return "<pre>"..mw.dumpObject(data).."</pre>"..moduleData.warnDump 			end  			data = data[index] or data[tonumber(index)] 			if not data then 				return moduleData.warnDump 			end  			i = i + 1 		end 	end, }