« Module:Etablissement » : différence entre les versions

De ESCR
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}
--[[ For test
frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
title = 'Dupond Bertrand' ,
args = {
iri = 'https://data.escr.fr/wiki/Lycée_Le_Corbusier' ,
["label"] = 'Lycée Le Corbusier' ,
["titre"] = 'Le Corbusier' ,
["activité"] = 'Lycée' ,
["adresse"] = '88 Rue de Villiers, 78300 Poissy' ,
["latitude"] = '48.923503',
["longitude"] = '2.026752',
["site Web"] = 'http://www.lyc-lecorbusier-poissy.ac-versailles.fr',
["demo"] = '1'
    }
}
mw.log(p.infobox( newFrame ) )
--]]


function p.infobox(f)
function p.infobox(f)
Ligne 8 : Ligne 27 :
     -- init the prefix
     -- init the prefix
     local escr = 'http://gregorius.fr/wiki/Data:'
     local escr = 'https://data.escr.fr/wiki/Data:'
      
      
     local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
     local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
     local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
     local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
    local geo = 'http://www.opengis.net/ont/geosparql#'
   
     local xsd = 'http://www.w3.org/2001/XMLSchema#'
     local xsd = 'http://www.w3.org/2001/XMLSchema#'
     local wdt = 'http://www.wikidata.org/prop/direct/'
     local wdt = 'http://www.wikidata.org/prop/direct/'
Ligne 24 : Ligne 45 :


     local object = linkedwiki.new(subject,"https://data.escr.fr/data")
     local object = linkedwiki.new(subject,"https://data.escr.fr/data")
    --object:setDebug(true)
    object:removeSubject() -- delete all triples of this subject
    -- Save the data in the infobox in a knowledge base
    mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Lycée'))
    mw.log(object:addPropertyString(rdfs .. 'label', f.args["Titre"]))
    -- mw.log(object:addPropertyWithIri(rp .. 'picture', f.args["Image"]))
    -- mw.log(object:addProperty(rp .. 'nomDeNaissance', f.args['Nom de naissance']))
    -- mw.log(object:addProperty(rp .. 'naissance', f.args['Date de naissance'], xsd .. 'date', ''))
    -- 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 = ""
    -- 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'] .. ']'
  if linkedwiki.isEmpty(f.args['demo']) then
     -- end
    --object:setDebug(true)
    object:removeSubject() -- delete all triples of this subject
-- Save the data in the infobox in a knowledge base
    mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'))
   
    if f.args["activité"] == "Lycée" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#Lycée'))
    elseif f.args["activité"] == "Université" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#Université'))
    elseif f.args["activité"] == "Ecole supérieure" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#EcoleSupérieure'))
    end
   
    mw.log(object:addPropertyString(rdfs .. 'label', f.args['label']))
    mw.log(object:addProperty( escr .. 'Etablissement'..'#géolocalisation', 'Point('..f.args['longitude']..' '..f.args['latitude']..')', geo .. 'wktLiteral', ''))
    mw.log(object:addPropertyWithIri( escr .. 'Etablissement'..'#siteWeb', f.args['site Web']))
 
     end


     --Make infobox with capiunto
     --Make infobox with capiunto
Ligne 75 : Ligne 67 :
         --bodyStyle = 'width : 50px',
         --bodyStyle = 'width : 50px',
         -- bodyClass = 'gregoriusPape',
         -- bodyClass = 'gregoriusPape',
         title = 'Lycée',
         title = f.args['activité'],
         -- top = objWikidata:checkString(rdfs .. 'label', f.args.Titre),
         -- top = objWikidata:checkString(rdfs .. 'label', f.args.Titre),
         top = f.args.Titre,
         top = f.args.titre,
         topStyle = 'background: #dfedff;  font-size: 1.4em; margin: 5px; display: inline-block; width: -webkit-fill-available; padding: 15px;'
         topStyle = 'background: #dfedff;  font-size: 1.4em; padding: 15px;'
     })
     })


     -- infobox:addImage(objWikidata:checkImage(wdt .. 'P18', f.args["Image"], 200), "", "Image")
     infobox:addWikitext(f.args['adresse'])
    -- infobox:addRow('Nom de naissance', objWikidata:checkString(wdt .. "P1477", f.args['Nom de naissance']))
     infobox:addRow('géolocalisation', f.args['latitude']..','..f.args['longitude'])
    -- infobox:addRow('Lieu de naissance', objWikidataLieuNaissance:checkString(rdfs .. "label", f.args['Lieu de naissance']))
     infobox:addRow('site Web', f.args['site Web'])
    -- 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))
    -- 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)
 
     return infobox
     return infobox
end
end


return p
return p

Version actuelle datée du 4 octobre 2020 à 19:49

La documentation pour ce module peut être créée à Module:Etablissement/doc

local p = {}

--[[ For test
frame = mw.getCurrentFrame() -- Get a frame object
newFrame = frame:newChild{ -- Get one with args
	title = 'Dupond Bertrand' ,
	 args = {
		iri = 'https://data.escr.fr/wiki/Lycée_Le_Corbusier' ,
		["label"] = 'Lycée Le Corbusier' ,
		["titre"] = 'Le Corbusier' ,
		["activité"] = 'Lycée' ,
		["adresse"] = '88 Rue de Villiers, 78300 Poissy' ,
		["latitude"] = '48.923503',
		["longitude"] = '2.026752',
		["site Web"] = 'http://www.lyc-lecorbusier-poissy.ac-versailles.fr',
		["demo"] = '1'
	    }
}
mw.log(p.infobox( newFrame ) )
--]]

function p.infobox(f)
    local capiunto = require 'capiunto'
    local linkedwiki = require 'linkedwiki'
    
	linkedwiki.setCurrentFrame(mw.getCurrentFrame())
	
    -- init the prefix
    local escr = 'https://data.escr.fr/wiki/Data:'
    
    local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
    local geo = 'http://www.opengis.net/ont/geosparql#'
    
    local xsd = 'http://www.w3.org/2001/XMLSchema#'
    local wdt = 'http://www.wikidata.org/prop/direct/'
    local wd = 'http://www.wikidata.org/entity/'
    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();  --find the iri of the current page

    local object = linkedwiki.new(subject,"https://data.escr.fr/data")

   if linkedwiki.isEmpty(f.args['demo']) then
	    --object:setDebug(true)
	    object:removeSubject() -- delete all triples of this subject
		-- Save the data in the infobox in a knowledge base
	    mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'))
	    
	    if f.args["activité"] == "Lycée" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#Lycée'))
    	elseif f.args["activité"] == "Université" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#Université'))
    	elseif f.args["activité"] == "Ecole supérieure" then mw.log(object:addPropertyWithIri(rdf .. 'type', escr .. 'Etablissement'..'#EcoleSupérieure'))
    	end
    	
    	mw.log(object:addPropertyString(rdfs .. 'label', f.args['label']))
    	mw.log(object:addProperty( escr .. 'Etablissement'..'#géolocalisation', 'Point('..f.args['longitude']..' '..f.args['latitude']..')', geo .. 'wktLiteral', ''))
    	mw.log(object:addPropertyWithIri( escr .. 'Etablissement'..'#siteWeb', f.args['site Web']))
  
    end

    --Make infobox with capiunto
    local infobox = capiunto.create({
        --bodyStyle = 'width : 50px',
        -- bodyClass = 'gregoriusPape',
        title = f.args['activité'],
        -- top = objWikidata:checkString(rdfs .. 'label', f.args.Titre),
        top = f.args.titre,
        topStyle = 'background: #dfedff;  font-size: 1.4em; padding: 15px;'
    })

    infobox:addWikitext(f.args['adresse'])
    infobox:addRow('géolocalisation', f.args['latitude']..','..f.args['longitude'])
    infobox:addRow('site Web', f.args['site Web'])
    return infobox
end

return p