Module:InfoboxAnat
La documentation pour ce module peut être créée à Module:InfoboxAnat/Documentation
local p = {}
function p.infoboxAnat(f)
-- a cause des erreurs 403 on desactive
if true then
return 1
end
local capiunto = require 'capiunto'
local linkedwiki = require 'linkedwiki'
--linkedwiki:Curl:setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
-- 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 ri = 'http://wikimedi.ca/wiki/'
local rp = 'http:/wikimedi.ca/wiki/Property:'
local wikibase = 'http://wikiba.se/ontology#' --added JP https://stackoverflow.com/questions/43258341/how-to-get-wikidata-labels-in-more-than-one-language
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 skos = 'http://www.w3.org/2004/02/skos/core#'
local rdag2= 'http://rdvocab.info/ElementsGr2/'
local foaf= 'http://xmlns.com/foaf/0.1/'
local taglang = 'fr'
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
-- Save the data in the infobox in a knowledge base
-- celaa va necessiter de configurer notre propre base relationnelle (en cours)
--this could be added later-- mw.log(object:addPropertyWithIri(rdf .. 'type', ri .. 'muscle'))
--this oculd be added later-- 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'
iriWikidata = wd .. f.args['Wikidata ID']
objWikidata = linkedwiki.new(iriWikidata, idConfigWikidata, taglang)
-- objWikidata:setDebug(true)
--this oculd be added later-- 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'] .. ']'
end
-- local image= f.args["Image"] or objWikidata:getValue(wdt .. 'P18')
local image= objWikidata:getValue(wdt .. 'P18')
if image == "" and f.args["Image"] ~= nil then
image = f.args["Image"]
end
-- label alternatif alias
local NomLabel = '' -- nom officiel de wikidata
local NomAliases = '' -- nom alternatifs
--ObjAliases=objWikidata:getValue(rdfs .. 'alias');
NomLabel=objWikidata:getString(rdfs .. 'label',taglang);
NomAliases=objWikidata:getString(skos .. 'altLabel',taglang);
--on ajoute le nom officiel en tete des alias
if (NomLabel ~= "" and NomAliases ~= '') then
NomAliases= NomLabel .. ';' .. NomAliases
end
NomAliases= string.gsub(NomAliases,';',', ');
--mw.log("logme:" .. NomAliases .. ' =>' .. NomLabel)
-- classe, il y a au moins deux codes suivant les muscles pas standardisé
local ObjSubclass = {}
local NomSubclass= ""
if f.args['classe'] ~= nil and f.args['classe'] ~= "" then -- on force le type de classe , il y a beaucoup d'erreur, exemple humerus
NomSubclass = f.args['classe']
end
if ( NomSubclass == nil or NomSubclass == '') then
ObjSubclass = linkedwiki.new(objWikidata:getValue(wdt .. 'P279'), idConfigWikidata, taglang)
NomSubclass= ObjSubclass:getString(rdfs .. 'label',taglang)
end
if NomSubclass== nil or NomSubclass == '' then
ObjSubclass = linkedwiki.new(objWikidata:getValue(wdt .. 'P31'), idConfigWikidata, taglang)
NomSubclass= ObjSubclass:getString(rdfs .. 'label',taglang)
end
-- situation
local ObjSituation = linkedwiki.new(objWikidata:getValue(wdt .. 'P361'), idConfigWikidata, taglang)
local NomSituation= ObjSituation:getString(rdfs .. 'label',taglang)
-- situationAnat
local ObjSituationAnat = linkedwiki.new(objWikidata:getValue(wdt .. 'P927'), idConfigWikidata, taglang)
local NomSituationAnat= ObjSituationAnat:getString(rdfs .. 'label',taglang)
-- nombre de chefs : has part
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P527'))
local NbChefs =1
local ObjHasPart = nil
local ObjTerm = nil --P3491
local ObjOri = nil -- P3490
local NomHasPart = {}
local NomHasPartTerm = {} --alsoknow as muscle insertion P3491 Q26708759
local NomHasPartOri = {} -- muscle origin P3490 Q26708757
local NomStringHasPart = ""
local NomStringHasPartTerm = ''
local NomStringHasPartOri = ''
for i, iri in ipairs(listIri) do
ObjHasPart = linkedwiki.new(iri, idConfigWikidata, taglang)
NomHasPart[i] = ObjHasPart:getString(rdfs .. 'label',taglang)
if NomHasPart[i] == nil or NomHasPart[i] == '' then -- isempty(NomHasPart) does not exist
NomHasPart[i] = ObjHasPart:getString(rdfs .. 'label','en')
NomStringHasPart = NomStringHasPart .. "\n* " .. NomHasPart[i] ..' [' .. iri .. " traduire]"
else
NomStringHasPart = NomStringHasPart .. "\n* [[" .. NomHasPart[i] ..']] '
end
-- TO DO JP: rechercher origine et terminaisons pour les chefs
NomHasPartTerm[i] = ObjHasPart:getString(wdt .. 'P3491',taglang)
NomHasPartOri[i] = ObjHasPart:getString(wdt .. 'P3490',taglang)
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomHasPart[i])
NbChefs=i
end
-- si un seul chef on recherche les informations d.origine terminaison sur la page (sont absentes en géngéral
if NbChefs == 1 then
ObjTerm = linkedwiki.new(objWikidata:getValue(wdt .. 'P3491'), idConfigWikidata, taglang)
if ObjTerm["subject"] ~= nil and ObjTerm["subject"] ~= "" then
NomStringHasPartTerm = "[[" .. ObjTerm:getString(rdfs .. 'label',taglang) .. "]]"
end
ObjOri = linkedwiki.new(objWikidata:getValue(wdt .. 'P3490'), idConfigWikidata, taglang)
--mw.log("logme" .. mw.dumpObject(ObjOri))
if ObjOri["subject"] ~= nil and ObjOri["subject"] ~= "" then
NomStringHasPartOri = "[[" .. ObjOri:getString(rdfs .. 'label',taglang) .. "]]"
end
end
-- si toujours vide on cherche l'info depuis la page
if NomStringHasPartTerm == "" and f.args['terminaison'] ~= nil then
NomStringHasPartTerm = f.args['terminaison']
end
if NomStringHasPartOri == "" and f.args['origine'] ~= nil then
NomStringHasPartOri = f.args['origine']
end
-- type musculaire
local morphologie = ""
if f.args["morphologie"] ~= nil then
morphologie = f.args["morphologie"]
end
--action: 1 ou plusieurs
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P3310'))
local ObjAction = nil
local NomAction = {}
local NomStringAction = ""
for i, iri in ipairs(listIri) do
ObjAction = linkedwiki.new(iri, idConfigWikidata, taglang)
NomAction[i] = ObjAction:getString(rdfs .. 'label',taglang)
if NomAction[i] == nil or NomAction[i] == '' then -- isempty(NomAction) does not exist
NomAction[i] = ObjAction:getString(rdfs .. 'label','en')
NomStringAction = NomStringAction .. "\n* " .. NomAction[i] ..' [' .. iri .. " traduire] "
else
NomStringAction = NomStringAction .. '\n* [[' .. NomAction[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomAction[i])
end
-- antagoniste 1 ou plusieurs A FAIRE!!!
--local ObjAntagonist = linkedwiki.new(objWikidata:getValue(wdt .. 'P2329'), idConfigWikidata, taglang)
--local NomAntagonist= ObjAntagonist:getString(rdfs .. 'label',taglang)
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P2329'))
local ObjAntagonist = nil
local NomAntagonist = {}
local NomStringAntagonist = ""
for i, iri in ipairs(listIri) do
ObjAntagonist = linkedwiki.new(iri, idConfigWikidata, taglang)
NomAntagonist[i] = ObjAntagonist:getString(rdfs .. 'label',taglang)
if NomAntagonist[i] == nil or NomAntagonist[i] == '' then -- isempty(NomAntagonist) does not exist
NomAntagonist[i] = ObjAntagonist:getString(rdfs .. 'label','en')
NomStringAntagonist = NomStringAntagonist .. "\n* " .. NomAntagonist[i] ..' [' .. iri .. " traduire] "
else
NomStringAntagonist = NomStringAntagonist .. '\n* [[' .. NomAntagonist[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomAntagonist[i])
end
-- Artere 1 ou plusieurs
--local ObjArtere = linkedwiki.new(objWikidata:getValue(wdt .. 'P2286'), idConfigWikidata, taglang)
--local NomArtere = ObjArtere:getString(rdfs .. 'label',taglang)
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P2286'))
local ObjArtere = nil
local NomArtere = {}
local NomStringArtere = ""
for i, iri in ipairs(listIri) do
ObjArtere = linkedwiki.new(iri, idConfigWikidata, taglang)
NomArtere[i] = ObjArtere:getString(rdfs .. 'label',taglang)
if NomArtere[i] == nil or NomArtere[i] == '' then
NomArtere[i] = ObjArtere:getString(rdfs .. 'label','en')
NomStringArtere = NomStringArtere .. "\n* " .. NomArtere[i] ..' [' .. iri .. " traduire] "
else
NomStringArtere = NomStringArtere .. '\n* [[' .. NomArtere[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomArtere[i])
end
-- nerf
--local objnerf = linkedwiki.new(objWikidata:getValue(wdt .. 'P3189'), idConfigWikidata, taglang)
--local nerfnom= objnerf:getString(rdfs .. 'label',taglang)
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P3189'))
local ObjNerf = nil
local NomNerf = {}
local NomStringNerf = ""
for i, iri in ipairs(listIri) do
ObjNerf = linkedwiki.new(iri, idConfigWikidata, taglang)
NomNerf[i] = ObjNerf:getString(rdfs .. 'label',taglang)
if NomNerf[i] == nil or NomNerf[i] == '' then
NomNerf[i] = ObjNerf:getString(rdfs .. 'label','en')
NomStringNerf = NomStringNerf .. "\n* " .. NomNerf[i] ..' [' .. iri .. " traduire] "
else
NomStringNerf = NomStringNerf .. '\n* [[' .. NomNerf[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomNerf[i])
end
-- agonistes manuel seulement pas de code wikidata
local agonistes = ""
if f.args["agonistes"] ~= nil then
agonistes = f.args["agonistes"]
end
--racines
local racines = ""
if f.args["racines"] ~= nil then
agonistes = f.args["racines"]
end
--racine principale
local racine = ""
if f.args["racine"] ~= nil then
racine = f.args["racine"]
end
-- REFERENCES
-- Anglais
local ObjAnglais = linkedwiki.new(iriWikidata, idConfigWikidata, 'en')
local NomAnglais = ObjAnglais:getString(rdfs .. 'label','en')
-- Latin
local ObjLatin = linkedwiki.new(objWikidata:getValue(wdt .. 'P3982'), idConfigWikidata, taglang)
local NomLatin = ObjLatin['subject']
-- FMA
local ObjFMA = objWikidata:getValue(wdt .. 'P1402')
-- TA
local ObjTA = objWikidata:getValue(wdt .. 'P1323')
-- Britanica
local ObjBritanica = objWikidata:getValue(wdt .. 'P1417')
-- ObjUBERON
local ObjUBERON = objWikidata:getValue(wdt .. 'P1554')
-- MESH ID P486
local ObjMESHid = objWikidata:getValue(wdt .. 'P486')
-- MESH Code P672
local ObjMESHcode = objWikidata:getValue(wdt .. 'P672')
-- common category with images P373 -- il y a aussi un Commons gallery P935 pour la page dediee par la categ
local ObjCommonCat = objWikidata:getValue(wdt .. 'P373')
-- lifesciencedb 3D
local lifesciencedb = ""
if f.args["lifesciencedb"] ~= nil then
lifesciencedb = f.args["lifesciencedb"]
end
-- definition des locals pour les os
local ObjMusclesList = nil
local NomMusclesList = {}
local NomStringMusclesList = ""
local ObjMusclesTermList = nil
local NomMusclesTermList = {}
local NomStringMusclesTermList = ""
local ObjOsList = nil
local NomOsList = {}
local NomStringOsList = ""
if NomSubclass == "os" then
-- muscle insertion P3490 - avoir le label fr
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P3490'))
for i, iri in ipairs(listIri) do
ObjMusclesList = linkedwiki.new(iri, idConfigWikidata, taglang)
NomMusclesList[i] = ObjMusclesList:getString(rdfs .. 'label',taglang)
if NomMusclesList[i] == nil or NomMusclesList[i] == '' then
NomMusclesList[i] = ObjMusclesList:getString(rdfs .. 'label','en')
NomStringMusclesList = NomStringMusclesList .. "\n* " .. NomMusclesList[i] ..' [' .. iri .. " traduire] "
else
NomStringMusclesList = NomStringMusclesList .. '\n* [[OrigineMuscle::' .. NomMusclesList[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomMusclesList[i])
end
--Muscle terminaisons P3491
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P3491'))
for i, iri in ipairs(listIri) do
ObjMusclesTermList = linkedwiki.new(iri, idConfigWikidata, taglang)
NomMusclesTermList[i] = ObjMusclesTermList:getString(rdfs .. 'label',taglang)
if NomMusclesTermList[i] == nil or NomMusclesTermList[i] == '' then
NomMusclesTermList[i] = ObjMusclesTermList:getString(rdfs .. 'label','en')
NomStringMusclesTermList = NomStringMusclesTermList .. "\n* " .. NomMusclesTermList[i] ..' [' .. iri .. " traduire] "
else
NomStringMusclesTermList = NomStringMusclesTermList .. '\n* [[TerminaisonMuscle::' .. NomMusclesTermList[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomMusclesList[i])
end
-- connect with P2789 - avoir le label fr
listIri = linkedwiki.explode(";",objWikidata:getValue(wdt .. 'P2789'))
for i, iri in ipairs(listIri) do
ObjOsList = linkedwiki.new(iri, idConfigWikidata, taglang)
NomOsList[i] = ObjOsList:getString(rdfs .. 'label',taglang)
if NomOsList[i] == nil or NomOsList[i] == '' then
NomOsList[i] = ObjOsList:getString(rdfs .. 'label','en')
NomStringOsList = NomStringOsList .. "\n* " .. NomOsList[i] ..' [' .. iri .. " traduire] "
else
NomStringOsList = NomStringOsList .. '\n* [[' .. NomOsList[i] ..']] '
end
--mw.log("logme:" .. i .. iri .. " - " .. " - " .. NomOsList[i])
end
end
-- type_articulaire
-- morphologieArt
-- connecte_os
local listeOsArtic=""
local listTypeArtic=""
local listMorphArtic=""
local listLigaments=""
local listmouvements=""
if NomSubclass == "articulation" then
if f.args["connecte_os"] ~= nil then
local objOs= linkedwiki.explode(",", f.args["connecte_os"])
for i, iri in ipairs(objOs) do
listeOsArtic = listeOsArtic .. '\n* [[articule avec::' .. iri ..']] '
end
end
if f.args["type_articulaire"] ~= nil then
local objOs= linkedwiki.explode(",", f.args["type_articulaire"])
for i, iri in ipairs(objOs) do
listTypeArtic = listTypeArtic .. '\n* [[type articulaire::' .. iri ..']] '
end
end
if f.args["morphologieArt"] ~= nil then
local objOs= linkedwiki.explode(",", f.args["morphologieArt"])
for i, iri in ipairs(objOs) do
listMorphArtic = listMorphArtic .. '\n* [[Morphologie articulaire::' .. iri ..']] '
end
end
if f.args["ligaments"] ~= nil then
local objOs= linkedwiki.explode(",", f.args["ligaments"])
for i, iri in ipairs(objOs) do
listLigaments = listLigaments .. '\n* [[ligament articulaire::' .. iri ..']] '
end
end
if f.args["mouvementsArt"] ~= nil then
local objOs= linkedwiki.explode(",", f.args["mouvementsArt"])
for i, iri in ipairs(objOs) do
listmouvements = listmouvements .. '\n* [[mouvement articulaire::' .. iri ..']] '
end
end
end
-- creation de la boite avec capiunto
local infobox = capiunto.create({
bodyStyle = 'width : 50px',
bodyClass = 'BoiteAnatomie',
title = 'Structure Anatomique',
top = objWikidata:checkString(rdfs .. 'label', f.args.Titre,taglang),
topStyle = 'background:#FFD200;height:50px;font-size: 25px;vertical-align:middle'
})
infobox:addImage(objWikidata:checkImage(wdt .. 'P18',image:gsub('http:','https:'), 200), "", "Image")
infobox:addHeader('Classification')
infobox:addRow('Classe', objWikidata:checkString(wdt .. 'P279',NomSubclass, taglang) )
if NomSituation ~= nil and NomSituation ~= '' then
infobox:addRow('Situation', objWikidata:checkString(wdt .. 'P361',NomSituation, taglang) )
end
if NomSituationAnat ~= nil and NomSituationAnat ~= '' then
infobox:addRow('Partie', objWikidata:checkString(wdt .. 'P927',NomSituationAnat, taglang) )
end
if NbChefs >1 then
infobox:addRow('Chefs (' .. NbChefs ..')', NomStringHasPart )
end
if morphologie ~= "" then
infobox:addRow('Morphologie', morphologie)
end
-- informations anatomiques MUSCLE
if NomSubclass == "muscle" then
infobox:addHeader('Anatomie')
if NomStringHasPartOri ~= "" then
infobox:addRow('Origine', NomStringHasPartOri)
end
if NomStringHasPartTerm ~= "" then
infobox:addRow('Terminaison', NomStringHasPartTerm)
end
if NomStringAction~= "" then
infobox:addRow('Action', NomStringAction)
end
if agonistes ~= "" then
infobox:addRow('Agoniste', agonistes )
end
if NomStringAntagonist ~= "" then
infobox:addRow('Antagoniste', NomStringAntagonist )
end
if NomStringArtere ~= "" then
infobox:addRow('Artère', NomStringArtere )
end
if NomStringNerf ~= "" then
infobox:addRow('Nerf', NomStringNerf )
end
if racines ~= "" then
infobox:addRow('Racines', racines)
end
if racine ~= "" then
infobox:addRow('Racine principale', racine)
end
end
--informations anatomiques ARTERE
if NomSubclass == "artère" then
infobox:addHeader('Anatomie')
-- Source
infobox:addRow('Source', "à faire")
-- Branches
infobox:addRow('Branches', "à faire")
-- Veine
infobox:addRow('Veine', "à faire")
-- Irrigue : (wikidata ou semantic)
infobox:addRow('Irrigue', "à faire sémantic")
end
-- informations anatomiques veine
if NomSubclass == "veine" then
infobox:addHeader('Anatomie')
-- Source
infobox:addRow('Source', "à faire")
-- Drains to (wikidata ou semantic)
infobox:addRow('Draine', "à faire")
-- artere
infobox:addRow('Artère', "à faire")
end
-- informations anatomiques os
if NomSubclass == "os" then
infobox:addHeader('Anatomie')
-- articulations
--infobox:addRow('Articulations', "à faire")
-- liste de mucles attachés
if NomStringMusclesList ~= nil and NomStringMusclesList ~= '' then
infobox:addRow('Origine musculaire', NomStringMusclesList)
end
if NomStringMusclesTermList ~= nil and NomStringMusclesTermList ~= '' then
infobox:addRow('Terminaison musculaire', NomStringMusclesTermList)
end
-- Os en relations
if NomStringOsList ~= nil and NomStringOsList ~= '' then
infobox:addRow('Os en relation', NomStringOsList)
end
-- processus
--infobox:addRow('Processus', "à faire")
end
-- information classe processus osseux la classe doit être ajoutée manuellement
if NomSubclass == "processus osseux" then
infobox:addHeader('Anatomie')
-- os associé
infobox:addRow('Os', "à faire")
-- structures muscle. ligament dessus
infobox:addRow('Insertion de', "à faire")
end
-- informations anatomiques articulation
if NomSubclass == "articulation" then
infobox:addHeader('Anatomie')
-- os
if listeOsArtic ~="" then
infobox:addRow('Os', listeOsArtic)
end
if listTypeArtic ~="" then
infobox:addRow('Type articulaire', listTypeArtic)
end
if listMorphArtic ~="" then
infobox:addRow('Morphologie articulaire', listMorphArtic)
end
if listLigaments ~="" then
infobox:addRow('Ligaments', listLigaments)
end
if listmouvements ~="" then
infobox:addRow('Mouvements', listmouvements)
end
-- muscles
-- degres de libertés ?
end
-- informations anatomiques ligaments ?
--TODO
-- region anatomique, ex épaule , abdomene
--TODO
-- informations anatomiques autres structures ??
--TODO
-- références externes anatomiques d'interet
infobox:addHeader('Références')
if NomAliases ~= '' then
infobox:addRow('Alias', NomAliases )
end
infobox:addRow('Anglais', objWikidata:checkString(wdt .. 'P2286',NomAnglais, 'en') )
infobox:addRow('Latin', objWikidata:checkString(wdt .. 'P3982',NomLatin, taglang) )
if ObjFMA ~= nil and ObjFMA ~= '' then
infobox:addRow('FMA', '[http://xiphoid.biostr.washington.edu/fma/fmabrowser-hierarchy.html?fmaid=' .. ObjFMA .. " ".. ObjFMA ..']' )
end
if ObjTA ~= nil and ObjTA ~= '' then
infobox:addRow('TA', '[http://tools.wmflabs.org/wikidata-externalid-url/?p=1323&url_prefix=http:%2F%2Fwww.unifr.ch%2Fifaa%2FPublic%2FEntryPage%2FTA98%20Tree%2FEntity%20TA98%20EN%2F&url_suffix=%20Entity%20TA98%20EN.htm&id='.. ObjTA .. " ".. ObjTA ..']' )
end
if ObjBritanica ~= nil and ObjBritanica ~= '' then
infobox:addRow('Britanica', '[https://www.britannica.com/science/' .. ObjBritanica .. " ".. ObjBritanica ..']' )
end
if ObjUBERON ~= nil and ObjUBERON ~= '' then
infobox:addRow('UBERON ID', '[http://purl.obolibrary.org/obo/UBERON_' .. ObjUBERON .. " ".. ObjUBERON ..']' )
end
if ObjMESHid ~= nil and ObjMESHid ~= '' then
infobox:addRow('MeSH ID', '[https://meshb.nlm.nih.gov/#/record/ui?ui=' .. ObjMESHid .. " ".. ObjMESHid ..']' )
end
if ObjMESHcode ~= nil and ObjMESHcode ~= '' then
infobox:addRow('MeSH Code', '[https://id.nlm.nih.gov/mesh/' .. ObjMESHcode .. " ".. ObjMESHcode ..']' )
end
if lifesciencedb ~= nil and lifesciencedb~= "" then
infobox:addRow('[http://lifesciencedb.jp/bp3d/ model 3D]', lifesciencedb )
end
if ObjCommonCat ~= "" then
infobox:addRow('Images', 'https://commons.wikimedia.org/wiki/Category:'.. ObjCommonCat:gsub(' ','_'))
else
infobox:addRow('Images', '[https://commons.wikimedia.org/wiki/Category:Human_muscles_by_body_part Chercher]')
end
infobox:addRow('Source Wikidata', linkWikidata)
return infobox
end
return p
-- pour test debug
-- infobox:addWikitext("hum" .. mw.dumpObject(listIri))
-- infobox:addWikitext("hum" .. mw.dumpObject(ObjHasPart))
-- infobox:addWikitext( NomHasPart)
--infobox:addWikitext("hum" .. mw.dumpObject(objWikidata:getString(rdfs .. "label","fr")))
--infobox:addWikitext("hum:" .. taglang )
--exemples
-- infobox:addWikitext( objWikidata:checkImage(wdt .. 'P18',image, 200) )
-- infobox:addImage("[[File:" .. image:gsub('http:','https:') .. "|200px]]", "", "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))