Modul:LinkedWiki: Unterschied zwischen den Versionen

Aus ÖsterreichWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(69 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


function p.infobox(f)
function p.infobox(f)
     local capiunto = require 'capiunto'
      
     local linkedwiki = require 'linkedwiki'
     local linkedwiki = require 'linkedwiki'
local frame = mw.getCurrentFrame()


     -- init the prefix
     -- init the prefix
     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 ri = 'http://gregorius.fr/wiki/'
    local rp = 'http://gregorius.fr/wiki/Property:'
     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/'
Zeile 17: Zeile 17:
     local ps = 'http://www.wikidata.org/prop/statement/'
     local ps = 'http://www.wikidata.org/prop/statement/'


     local dateFormat = "d M Y"
     local dateFormat = "Y"


     local subject = f.args.iri or linkedwiki.getCurrentIRI();  --find the iri of the current page
     local subject = f.args.iri or linkedwiki.getCurrentIRI();  --find the iri of the current page
Zeile 24: Zeile 24:
     --object:setDebug(true)
     --object:setDebug(true)
     object:removeSubject() -- delete all triples of this subject
     object:removeSubject() -- delete all triples of this subject
    -- Save the data in the infobox in a knowledge base
    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"]))
    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
     --compare data with Wikidata
     local iriWikidata = ""
     local iriWikidata = ""
     local objWikidata = nil
     local objWikidata = nil
     local objWikidataLieuNaissance = nil
     local objWikidataTitle = ""
    local objWikidataLieuDeces = nil
    local objPapeFonction = nil
     local linkWikidata = ""
     local linkWikidata = ""
 
local propertyZDB = wdt..'P1042'
local propertyTitel = wdt..'P1476'
local propertyAuthor = wdt..'P2093'
local propertyJournal = wdt..'P1433'
local propertyIssue = wdt..'P433'
local propertyPubDate = wdt..'P577'
local propertyPage = wdt..'P304'
     if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
     if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
         local idConfigWikidata = 'http://www.wikidata.org'
         local idConfigWikidata = 'http://www.wikidata.org'
         local taglang = 'fr'
         local taglang = 'de'
 
        local datums = nil
        citeq_args = {}
         iriWikidata = wd .. f.args['Wikidata ID']
         iriWikidata = wd .. f.args['Wikidata ID']
         objWikidata = linkedwiki.new(iriWikidata, idConfigWikidata, taglang)
         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'))
         linkWikidata = '[[d:' .. f.args['Wikidata ID'] .. '|' .. f.args['Wikidata ID'] ..']]'
         objPapeFonction = nil
       
         for i, iri in ipairs(listIri) do
        --zdb = 'ZDB: [http://ld.zdb-services.de/resource/'..objWikidata:getValue(propertyZDB)..' '..objWikidata:getValue(propertyZDB)..']'
            objPapeFonction = linkedwiki.new(iri, idConfigWikidata, taglang)
         citeq_args["Titel"] = objWikidata:getString(propertyTitel,taglang)
            if objPapeFonction:getValue(ps .. 'P39') == wd .. "Q19546" then
         citeq_args["Autor"] = objWikidata:getValue(propertyAuthor)
                break
        objWikidataJournal= linkedwiki.new(objWikidata:getValue(propertyJournal), idConfigWikidata, taglang)
            end
       
         end
        citeq_args["Sammelwerk"] = objWikidataJournal:getString(propertyTitel,taglang)
 
        citeq_args["Seiten"] = objWikidata:getValue(propertyPage)
         linkWikidata = '[' .. iriWikidata .. ' ' .. f.args['Wikidata ID'] .. ']'
        citeq_args["Nummer"] = objWikidata:getValue(propertyIssue)
         datums = objWikidata:getValue(propertyPubDate)
         citeq_args["Datum"] = string.sub(datums,1,4)
     end
     end


    --Make infobox with capiunto
    local infobox = capiunto.create({
        bodyStyle = 'width : 50px',
        bodyClass = 'gregoriusPape',
        title = 'Pape',
        top = objWikidata:checkString(rdfs .. 'label', f.args.Title),
        topStyle = 'background:#FFD200;height:50px;font-size: 25px;vertical-align:middle'
    })
    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))
    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 '{{Literatur|Titel=' .. title ..'|Autor=' .. autor .. '}}'
template = 'Literatur'
return frame:expandTemplate{title = template, args = citeq_args}
--return  objWikidata:getValue(propertyAuthor)
end
end


return p
return p

Aktuelle Version vom 26. April 2021, 20:59 Uhr

Die Dokumentation für dieses Modul kann unter Modul:LinkedWiki/Doku erstellt werden

local p = {}

function p.infobox(f)
    
    local linkedwiki = require 'linkedwiki'

	local frame = mw.getCurrentFrame()

    -- init the prefix
    local rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    local rdfs = 'http://www.w3.org/2000/01/rdf-schema#'
    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 = "Y"

    local subject = f.args.iri or linkedwiki.getCurrentIRI();  --find the iri of the current page

    local object = linkedwiki.new(subject)
    --object:setDebug(true)
    object:removeSubject() -- delete all triples of this subject

    --compare data with Wikidata
    local iriWikidata = ""
    local objWikidata = nil
    local objWikidataTitle = ""
    local linkWikidata = ""
	local propertyZDB = wdt..'P1042'
	local propertyTitel = wdt..'P1476'
	local propertyAuthor = wdt..'P2093'
	local propertyJournal = wdt..'P1433'
	local propertyIssue = wdt..'P433'
	local propertyPubDate = wdt..'P577'
	local propertyPage = wdt..'P304'
	
    if not linkedwiki.isEmpty(f.args['Wikidata ID']) then
        local idConfigWikidata = 'http://www.wikidata.org'
        local taglang = 'de'
        local datums = nil
        citeq_args = {}
        iriWikidata = wd .. f.args['Wikidata ID']
        objWikidata = linkedwiki.new(iriWikidata, idConfigWikidata, taglang)

        linkWikidata = '[[d:' .. f.args['Wikidata ID'] .. '|' .. f.args['Wikidata ID'] ..']]'
        
        --zdb = 'ZDB: [http://ld.zdb-services.de/resource/'..objWikidata:getValue(propertyZDB)..' '..objWikidata:getValue(propertyZDB)..']'
        citeq_args["Titel"] = objWikidata:getString(propertyTitel,taglang)
        citeq_args["Autor"] = objWikidata:getValue(propertyAuthor)
        objWikidataJournal= linkedwiki.new(objWikidata:getValue(propertyJournal), idConfigWikidata, taglang)
        
        citeq_args["Sammelwerk"] = objWikidataJournal:getString(propertyTitel,taglang)
        citeq_args["Seiten"] = objWikidata:getValue(propertyPage)
        citeq_args["Nummer"] = objWikidata:getValue(propertyIssue)
        datums = objWikidata:getValue(propertyPubDate)
        citeq_args["Datum"] = string.sub(datums,1,4)
    end


	--return '{{Literatur|Titel=' .. title ..'|Autor=' .. autor .. '}}'
	template = 'Literatur'
	return frame:expandTemplate{title = template, args = citeq_args}
	--return  objWikidata:getValue(propertyAuthor)
	
end

return p