Différences entre versions de « Module:Notice Autorité »

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche
(Page créée avec « --[[ -- Debug console frame = mw.getCurrentFrame() -- Get a frame object newFrame = frame:newChild{ -- Get one with args title = 'Alfred Baudrillart' , args = { iri =… »)
 
Ligne 29 : Ligne 29 :
  
  
select ?prop ?propLabel ?ID ?formater ?logo
+
select DISTINCT ?prop ?propLabel ?ID ?formater # ?logo
 
where {
 
where {
 
    
 
    
Ligne 36 : Ligne 36 :
 
  ?prop  wikibase:directClaim ?propClaim .
 
  ?prop  wikibase:directClaim ?propClaim .
 
  ?prop wdt:P1630 ?formater .
 
  ?prop wdt:P1630 ?formater .
   ?prop wdt:P2378 ?entity .
+
#   ?prop wdt:P2378 ?entity .
   ?entity wdt:P154 ?logo .  
+
#   ?entity wdt:P154 ?logo .  
 
    
 
    
 
   wd:Q666551 ?propClaim ?ID .
 
   wd:Q666551 ?propClaim ?ID .
Ligne 43 : Ligne 43 :
 
    
 
    
 
   SERVICE wikibase:label {
 
   SERVICE wikibase:label {
       bd:serviceParam wikibase:language "en,fr" .
+
       bd:serviceParam wikibase:language "fr,en" .
 
   }
 
   }
  
Ligne 51 : Ligne 51 :
 
-- linkedwiki.print_r(result)
 
-- linkedwiki.print_r(result)
 
 
    local text = ""
+
    local text = "<span class='plainlinks module-oeuvres-vignettes'>"
 
local i = 0
 
local i = 0
 
local row = nill
 
local row = nill
 +
local link = nil
 +
local logo = nil
 
row = result['result']['rows'][i]
 
row = result['result']['rows'][i]
 
while( row ~= nil )
 
while( row ~= nil )
 
do
 
do
 
--linkedwiki.print_r(row)
 
--linkedwiki.print_r(row)
 +
  link = string.gsub(row["formater"], "$1",row["ID"])
 
   
 
   
  text = text .. row["logo"] .. " ".. row["propLabel"] .. " ".. row["formater"] .. row["ID"]
+
-- if string.sub( row["logo"], -3 ) == 'svg' then
 +
-- logo = "[[".. string.gsub(row["logo"], "http://commons.wikimedia.org/wiki/Special:FilePath/","File:").."|70px|link=".. link .. "]]"
 +
-- else
 +
-- logo = "[" .. link .. " " .. logo .. "]"
 +
-- end
 +
 
 +
  text = text .. " [".. link .. " ".. row["propLabel"] .. "] "
 
   
 
   
 
  i = i + 1
 
  i = i + 1
 
  row = result['result']['rows'][i]
 
  row = result['result']['rows'][i]
 
end
 
end
 +
 +
    local text = text .. "</span>"
  
 
   return text
 
   return text

Version du 21 novembre 2021 à 14:52

Utilisation

Ce module a pour fonction de pouvoir afficher les notices d'un auteur via Wikidata

Exemple d'utilisation

{{#invoke:Oeuvres de l'auteur|section
| Wikidata ID = Q666551
}}

Résultat pour Alfred Baudrillart

Erreur Lua : ERREUR SPARQL (voir les détails en activant the mode debug).

Paramétres

  • Wikidata ID : Id de Wikidata

--[[
-- Debug console

frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
	title = 'Alfred Baudrillart' ,
 args = { 
 iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Alfred_Baudrillart' ,
["Wikidata ID"] = 'Q666551' 
    }
}
mw.log(p.section( newFrame ) )
]]


local p = {}

 local linkedwiki = require 'linkedwiki'
function p.section(f)
	local object =  linkedwiki.new()
    object:setConfig("http://www.wikidata.org")
    mw.log(object:getConfig())

	local result = object:query( [[
PREFIX bd: <http://www.bigdata.com/rdf#> 
PREFIX wikibase: <http://wikiba.se/ontology#> 
PREFIX wd: <http://www.wikidata.org/entity/> 
PREFIX wdt: <http://www.wikidata.org/prop/direct/> 


select DISTINCT ?prop ?propLabel ?ID ?formater # ?logo
where {
  
  ?prop wdt:P31/wdt:P279* wd:Q18614948 .
  
 ?prop  wikibase:directClaim ?propClaim .
 ?prop wdt:P1630 ?formater .
#   ?prop wdt:P2378 ?entity .
#    ?entity wdt:P154 ?logo . 
  
  wd:Q666551 ?propClaim ?ID .
  
  
  SERVICE wikibase:label {
       bd:serviceParam wikibase:language "fr,en" .
  }

} 
LIMIT 100
		]] 	)
-- linkedwiki.print_r(result)
	
	    local text = "<span class='plainlinks module-oeuvres-vignettes'>"
	local i = 0
	local row = nill
	local link = nil
	local logo = nil
	row = result['result']['rows'][i]
	while( row ~= nil )
	do
	 --linkedwiki.print_r(row)
	  link = string.gsub(row["formater"], "$1",row["ID"])
	  
	 -- if string.sub( row["logo"], -3 ) == 'svg' then
	 -- 	 logo = "[[".. string.gsub(row["logo"], "http://commons.wikimedia.org/wiki/Special:FilePath/","File:").."|70px|link=".. link .. "]]"
		-- else
		-- 	logo = "[" .. link .. " " .. logo .. "]"
	 -- end
	  
	  text = text .. " [".. link .. " ".. row["propLabel"] .. "] "  
	  
	  i = i + 1
	  row = result['result']['rows'][i]
	end
	
	    local text = text .. "</span>"

  return text
end
 
return p