Module:Pape
Révision datée du 21 novembre 2021 à 09:58 par Karima Rafes (discussion | contributions)
Utilisation
Cette infobox a pour fonction de pouvoir afficher et associer des données à propos des papes.
Exemple d'utilisation
{{#invoke:Pape|infobox | Wikidata ID = Q132845 | Bnf ID = | Titre = Adrien IV | Image = http://commons.wikimedia.org/wiki/Special:FilePath/Pope%20Hadrian%20IV.jpg | Nom de naissance = Nicolas Breakspear | Date de naissance = 1100-01-01 | Naissance précision (années) = 10 | Lieu de naissance = Abbots Langley | Date de décès = 1159-09-01 | Lieu de décès = Anagni | Election au pontificat = 1154-12-04 | Intronisation = 1154-12-05 | Fin du pontificat = 1159-09-01 }}
Paramétres
Wikidata ID
: QXXXXXBnf ID
:Titre
:Image
:Nom de naissance
:Date de naissance
: YYYY-MM-DDNaissance précision (années)
: entierLieu de naissance
:Date de décès
: YYYY-MM-DDLieu de décès
: YYYY-MM-DDElection au pontificat
: YYYY-MM-DDIntronisation
: YYYY-MM-DDFin du pontificat
: YYYY-MM-DD
--[[
-- Debug console
frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
title = 'Adrien IV' ,
args = {
iri = 'https://gregorius.dsi.universite-paris-saclay.fr/wiki/Adrien_IV' ,
["Wikidata ID"] = 'Q132845' ,
["Bnf ID"] = '' ,
["Titre"] = 'Adrien IV' ,
["Image"] = 'http://commons.wikimedia.org/wiki/Special:FilePath/Pope%20Hadrian%20IV.jpg' ,
["Légende de l'image"] = "Adrien IV"
['Nom de naissance'] = 'Nicolas Breakspear' ,
['Lieu de naissance'] = 'Abbots Langley' ,
['Date de naissance'] = '1159-09-01' ,
['Naissance précision (années)'] = '10' ,
['Lieu de décès'] = 'Anagni' ,
['Date de décès'] = '1159-09-01' ,
['Election au pontificat'] = '1154-12-04' ,
['Intronisation'] = '1154-12-05' ,
['Fin du pontificat'] = '1159-09-01'
}
}
mw.log(p.infobox( newFrame ) )
]]
local p = {}
function p.infobox(f)
local capiunto = require 'capiunto'
local linkedwiki = require 'linkedwiki'
linkedwiki.setCurrentFrame(mw.getCurrentFrame())
local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
local ri = 'http://gregorius.dsi.universite-paris-saclay.fr/wiki/'
local rp = 'http://gregorius.dsi.universite-paris-saclay.fr/wiki/Property:'
local geo = 'http://www.w3.org/2003/01/geo/wgs84_pos#'
local vcard = 'http://www.w3.org/2006/vcard/ns#'
local xsd = 'http://www.w3.org/2001/XMLSchema#'
local wdt = 'http://www.wikidata.org/prop/direct/'
local wd = 'http://www.wikidata.org/entity/'
local bnf = 'http://www.data.bnf.fr/'
local p = 'http://www.wikidata.org/prop/'
local pq = 'http://www.wikidata.org/prop/qualifier/'
local ps = 'http://www.wikidata.org/prop/statement/'
local dateFormat = "d M Y"
local subject = f.args.iri or linkedwiki.getCurrentIRI();
local subject = linkedwiki.getCurrentIRI(); -- read the iri of the current page
local object = linkedwiki.new(subject)
--object:setDebug(true)
object:removeSubject() -- delete all triples of this subject
mw.log(object:addPropertyWithIri(rdf..'type',ri..'Pape'))
if not linkedwiki.isEmpty(f.args['Titre']) then
mw.log(object:addPropertyString(rdfs..'label',f.args["Titre"] ))
end
if not linkedwiki.isEmpty(f.args['Image']) then
mw.log(object:addPropertyWithIri(rp..'picture',f.args["Image"]))
end
if not linkedwiki.isEmpty(f.args["Légende de l'image"]) then
mw.log(object:addPropertyWithIri(rp..'pictureLegend',f.args["Légende de l'image"]))
end
if not linkedwiki.isEmpty(f.args['Nom de naissance']) then
mw.log(object:addProperty(rp..'nomDeNaissance',f.args['Nom de naissance']))
end
if not linkedwiki.isEmpty(f.args['Date de naissance']) then
mw.log(object:addProperty(rp..'naissance',f.args['Date de naissance'] ,xsd..'date',''))
end
if not linkedwiki.isEmpty(f.args['Naissance précision (années)']) then
mw.log(object:addProperty(rp..'naissancePrecision',f.args['Naissance précision (années)'],xsd..'integer',''))
end
if not linkedwiki.isEmpty(f.args['Lieu de naissance']) then
mw.log(object:addPropertyString(rp..'lieuDeNaissance',f.args['Lieu de naissance']))
end
if not linkedwiki.isEmpty(f.args['Date de décès']) then
mw.log(object:addProperty(rp..'deces',f.args['Date de décès'],xsd..'date',''))
end
if not linkedwiki.isEmpty(f.args['Lieu de décès']) then
mw.log(object:addPropertyString(rp..'lieuDeDeces',f.args['Lieu de décès']))
end
if not linkedwiki.isEmpty(f.args['Election au pontificat']) then
mw.log(object:addProperty(rp..'electionAuPontificat',f.args['Election au pontificat'],xsd..'date',''))
end
if not linkedwiki.isEmpty(f.args['Intronisation']) then
mw.log(object:addProperty(rp..'intronisation',f.args['Intronisation'],xsd..'date',''))
end
if not linkedwiki.isEmpty(f.args['Fin du pontificat']) then
mw.log(object:addProperty(rp..'finDuPontificat',f.args['Fin du pontificat'],xsd..'date',''))
end
--compare data with wikidata
local iriWikidata = ""
local objWikidata = nil
local objWikidataLieuNaissance = nil
local objWikidataLieuDeces = nil
local objWikidataImageStatement = nil
local objPapeFonction = nil
local linkWikidata = ""
local topWikidata = ""
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
local idConfigWikidata ='http://www.wikidata.org'
local taglang ='fr'
iriWikidata = wd .. f.args['Wikidata ID']
objWikidata = linkedwiki.new(iriWikidata,idConfigWikidata,taglang)
mw.log(object:addPropertyWithIri(rp..'WikidataID',iriWikidata))
objWikidataLieuNaissance = linkedwiki.new(objWikidata:getValue(wdt..'P19'),idConfigWikidata,taglang)
objWikidataLieuDeces = linkedwiki.new(objWikidata:getValue(wdt..'P20'),idConfigWikidata,taglang)
objWikidataImageStatement = linkedwiki.new(objWikidata:getValue(p..'P18'),idConfigWikidata,taglang)
listIri = linkedwiki.explode(";", objWikidata:getValue(p..'P39'))
objPapeFonction = nil
for i, iri in ipairs(listIri) do
objPapeFonction = linkedwiki.new(iri,idConfigWikidata,taglang)
if objPapeFonction:getValue(ps..'P39') == wd .."Q19546" then
break
end
end
linkWikidata ='['..iriWikidata..' '..f.args['Wikidata ID']..']'
topWikidata = objWikidata:checkString(rdfs..'label',f.args.Title)
end
local iriBNF =""
local objBnf = nil
local linkBNF =""
if not linkedwiki.isEmpty(f.args['Bnf ID']) then
iriBNF = bnf .. f.args['Bnf ID']
objBnf = linkedwiki.new(iriBNF,'http://data.bnf.fr',"fr")
mw.log(object:addPropertyWithIri(rp..'BnfID',iriBNF))
linkBNF = '['..iriBNF..' '..f.args['Bnf ID']..']'
end
local infobox = capiunto.create( {
bodyStyle = 'width : 50px',
bodyClass = 'gregoriusPape',
title = 'Pape' ,
top = topWikidata ,
topStyle = 'background:#FFD200;height:50px;font-size: 25px;vertical-align:middle',
-- bottom =
} )
objWikidataImageStatement:setDebug(true)
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
infobox:addImage( objWikidataImageStatement:checkImage(ps..'P18',f.args["Image"]),objWikidataImageStatement:checkString(pq..'P2096',f.args["Légende de l'image"]), "infobox" )
infobox:addRow('Nom de naissance',objWikidata:checkString(wdt.."P1477",f.args['Nom de naissance']))
infobox:addRow('Lieu de naissance',objWikidataLieuNaissance:checkString(rdfs.."label",f.args['Lieu de naissance']))
infobox:addRow('Naissance',objWikidata:checkDate(wdt.."P569",f.args['Date de naissance'],dateFormat))
infobox:addRow('Lieu de décès', objWikidataLieuDeces:checkString(rdfs.."label",f.args['Lieu de décès']))
infobox:addRow('Date de décès', objWikidata:checkDate(wdt.."P570",f.args['Date de décès'],dateFormat))
else
infobox:addImage( f.args["Image"])
infobox:addRow('Nom de naissance',f.args['Nom de naissance'])
infobox:addRow('Lieu de naissance',f.args['Lieu de naissance'])
infobox:addRow('Naissance',f.args['Date de naissance'],dateFormat)
infobox:addRow('Lieu de décès',f.args['Lieu de décès'])
infobox:addRow('Date de décès', f.args['Date de décès'],dateFormat)
end
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
infobox:addRow('Élection au pontificat', f.args['Election au pontificat'])
infobox:addRow('Intronisation', objPapeFonction:checkDate(pq.."P580",f.args['Intronisation'],dateFormat))
infobox:addRow('Fin du pontificat', objPapeFonction:checkDate(pq.."P582",f.args['Fin du pontificat'],dateFormat))
infobox:addRow('Source Wikidata', linkWikidata)
infobox:addRow('Source Bnf', linkBNF)
else
infobox:addRow('Élection au pontificat', f.args['Election au pontificat'])
infobox:addRow('Intronisation', f.args['Intronisation'])
infobox:addRow('Fin du pontificat', f.args['Fin du pontificat'])
infobox:addRow('Source Wikidata', linkWikidata)
infobox:addRow('Source Bnf', linkBNF)
end
infobox:addWikitext( "[[Catégorie:Pape]]" )
return infobox
end
return p