Module:Pape

De Gregorius 3.0
Sauter à la navigation Sauter à la recherche

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 : QXXXXX
  • Bnf ID :
  • Titre :
  • Image :
  • Nom de naissance :
  • Date de naissance : YYYY-MM-DD
  • Naissance précision (années) : entier
  • Lieu de naissance :
  • Date de décès : YYYY-MM-DD
  • Lieu de décès : YYYY-MM-DD
  • Election au pontificat : YYYY-MM-DD
  • Intronisation : YYYY-MM-DD
  • Fin 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 = 'http://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' ,
['Nom de naissance'] = 'Nicolas Breakspear' ,
['Lieu de naissance'] = 'Abbots Langley' ,
['Date de naissance'] = '1159-09-1' ,
['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-4' ,
['Intronisation'] = '1154-12-5' ,
['Fin du pontificat'] = '1159-9-1' 
    }
}
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 linkedwiki = require 'linkedwiki'
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'))

mw.log(object:addPropertyString(rdfs..'label',f.args["Titre"] ))
mw.log(object:addPropertyWithIri(rp..'picture',f.args["Image"]))

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
mw.log(object:addProperty(rp..'naissancePrecision',f.args['Naissance précision (années)'],xsd..'integer',''))
mw.log(object:addPropertyString(rp..'lieuDeNaissance',f.args['Lieu de naissance']))
mw.log(object:addProperty(rp..'deces',f.args['Date de décès'],xsd..'date',''))
mw.log(object:addPropertyString(rp..'lieuDeDeces',f.args['Lieu de décès']))
mw.log(object:addProperty(rp..'electionAuPontificat',f.args['Election au pontificat'],xsd..'date',''))
mw.log(object:addProperty(rp..'intronisation',f.args['Intronisation'],xsd..'date',''))
mw.log(object:addProperty(rp..'finDuPontificat',f.args['Fin du pontificat'],xsd..'date',''))

--compare data with wikidata

    local iriWikidata = ""
    local objWikidata = nil
    local objWikidataLieuNaissance = nil
    local objWikidataLieuDeces = 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)
  
	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 = 
	} )

--objWikidata:setDebug(true)
if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
	infobox:addImage( objWikidata:checkImage(wdt..'P18',f.args["Image"],200),"", "Image" )
	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


	return infobox

end
 
return p