Module plume.rdf.properties#
Description des catégories de métadonnées.
Ce module gère la convergence des informations descriptives des catégories de métadonnées communes (décrites par un schéma SHACL) et locales (décrites par un modèle stocké dans des tables PostgreSQL).
La classe PlumeProperty
et la plupart des fonctions
du module n’ont pas vraiment vocation à être utilisées
directement. La plus utile - et celle qui sert au module
plume.rdf.widgetsdict
- est class_properties()
.
- plume.rdf.properties.DATATYPE_SUB = {rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#date'): (rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#dateTime'),), rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#dateTime'): (rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#date'),)}#
Substituts autorisés pour les types de valeurs littérales.
Les clés du dictionnaire sont les types, les valeurs des listes de types pouvant leur être substitués par les modèles de formulaires. Un type non référencé ne peut pas être modifié.
- class plume.rdf.properties.PlumeProperty(origin, nsm, base_path=None, property_node=None, template=None, n3_path=None, predicate=None)#
Bases :
object
Catégorie de métadonnée.
- Parameters:
- origin{“shared”, “local”, “unknown”}
L’origine de la catégorie :
'shared'
pour une catégorie commune issue du schéma SHACL. L’argument property_node est alors obligatoire. template et base_path doivent être fournis s’il y a lieu.'local'
pour une catégorie locale définie par le modèle. Les arguments template et n3_path sont alors obligatoires.'unknown'
pour une catégorie issue du graphe de métadonnées, qui n’est répertoriée ni par le schéma SHACL ni par le modèle. L’argument predicate est alors obligatoire.
- nsmPlumeNamespaceManager
Le gestionnaire d’espaces de nommage du dictionnaire de widgets.
- property_nodeBNode, optional
Noeud anonyme du schéma SHACL représentant la catégorie, s’il s’agit d’une catégorie commune.
- base_pathrdflib.paths.SequencePath, optional
Le chemin de la clé parente. À fournir pour les catégories communes.
- templatedict, optional
Modèle local de formulaire, le cas échéant.
- n3_pathstr, optional
La représentation N3 du chemin de la catégorie, s’il s’agit d’une catégorie locale. n3_path doit impérativement être répertorié dans le modèle s’il est fourni.
- predicaterdflib.term.URIRef, optional
L’IRI de la catégorie. À fournir pour les propriétés qui ne sont répertoriées ni dans le schéma SHACL ni dans le modèle local.
- Raises:
- RuntimeError
Quand tous les arguments requis pour la valeur d”origin n’ont pas été fournis.
- Attributes:
- pathrdflib.paths.SequencePath
Chemin de la catégorie.
- n3_pathstr
La représentation N3 du chemin de la catégorie.
- predicaterdflib.term.URIRef
L’IRI de la catégorie.
- prop_dictdict
Paramétrage de la catégorie (à passer à la fonction d’initialisation des futures clés).
- unlistedbool
S’agit-il d’une catégorie non répertoriée par le modèle ? Vaut toujours
False
s’il n’y a pas de modèle.- origin{“shared”, “local”, “unknown”}
L’origine de la catégorie.
- plume.rdf.properties.class_properties(rdfclass, nsm, base_path, template=None)#
Renvoie la liste des propriétés communes d’une classe.
- Parameters:
- rdfclassrdflib.term.URIRef
IRI d’une classe présumée décrite dans le schéma SHACL.
- nsmPlumeNamespaceManager
Le gestionnaire d’espaces de nommage du dictionnaire de widgets.
- base_pathrdflib.paths.SequencePath
Chemin de la clé parente. Peut être
None
pour les catégories de premier niveau.- templatedict, optional
Modèle local de formulaire, le cas échéant.
- Returns:
- tuple(list(PlumeProperty), list(rdflib.term.URIRef))
Un tuple avec :
[0]
La liste des propriétés.[1]
La liste des IRI des propriétés (prédicats des triplets du graphe de métadonnées).
- plume.rdf.properties.merge_property_dict(shape_dict, template_dict)#
Fusionne deux dictionnaires décrivant une même catégorie de métadonnées.
- Parameters:
- shape_dictdict
Dictionnaire portant les informations relatives à la propriété issues du schéma SHACL descriptif des métadonnées communes.
- template_dictdict
Dictionnaire portant le paramétrage local.
Notes
La fonction ne renvoie rien, elle complète shape_dict.
Les clés
predicate
,kind
,is_multiple
etunilang
ne peuvent pas être redéfinies par le modèle, leurs valeurs éventuelles seront ignorées.La clé
datatype
n’est modifiable que pour quelques cas explicitement autorisés (cf.DATATYPE_SUB
), typiquement l’usage de dates avec heures à la place de dates simples et inversement.La clé
order_idx
produite parread_shape_property()
à partir de l’indice fourni par le schéma SHACL est un tuple dont la première valeur est9999
, et la seconde l’indice.plume.pg.template.TemplateDict
fait exactement l’inverse : ses clésorder_idx
ont l’indice du modèle en première (et unique) valeur. merge_property_dict recréé des clésorder_idx
dont la première valeur est l’indice du modèle, et la seconde celle du schéma des catégories communes.La clé
sources
peut être restreinte par le modèle : si ce dernier fournit une liste d’URL, alors seules les sources qui se trouvent dans cette liste seront conservées, sous réserve qu’il y en ait au moins une (sinon la clé d’origine est préservée).Le modèle peut rendre obligatoire une catégorie qui n’est pas définie comme telle par le schéma des catégories communes, mais pas l’inverse. La valeur de la clé
is_mandatory
n’est donc écrasée que dans le cas où elle vautFalse
dans le schéma etTrue
dans le modèle.
- plume.rdf.properties.property_param_values(path, param)#
Récupère les valeurs d’un paramètre de configuration du schéma des métadonnées commune pour la catégorie de chemin donné.
- Parameters:
- pathrdflib.term.URIRef or rdflib.paths.SequencePath or str
Un chemin d’IRI. Le chemin peut être fourni sous la forme d’une chaîne de caractères en représentation N3.
- paramrdflib.term.URIRef or str
L’IRI d’un paramètre de configuration. Peut être fourni sous la forme d’une chaîne de caractères en représentation N3.
- Returns:
- list(rdflib.term.URIRef or rdflib.term.Literal)
- plume.rdf.properties.property_sources(path)#
Renvoie la liste des sources disponibles pour une catégorie de métadonnées communes.
- Parameters:
- pathrdflib.term.URIRef or rdflib.paths.SequencePath or str
Un chemin d’IRI. Le chemin peut être fourni sous la forme d’une chaîne de caractères en représentation N3.
- Returns:
- list(str)
- plume.rdf.properties.read_shape_property(shape_node)#
Extrait du schéma SHACL les caractéristiques d’une propriété d’une forme.
- Parameters:
- shape_nodeBNode, optional
Noeud anonyme du schéma SHACL représentant la catégorie.
- Returns:
- dict
Un dictionnaire avec une clé par caractéristique potentiellement fournie.