Structure du CIDOC CRM

Structure du CIDOC CRM - classes et propriétés

Le CIDOC CRM est constitué d’entités (classes) et de relations (propriétés).

  • Une classe est une catégorie d’items qui partagent une ou plusieurs caractéristique(s) commune(s). Ces caractéristiques sont décrites dans la note d’application (scope note) définissant la classe.
  • Un item qui appartient à cette classe est appelé une instance de cette classe. Par exemple, si on a une classe Artiste, des instances de cette classe seraient : Léonard de Vinci, Rembrandt, Cézanne, etc.
  • Les classes sont connectées entre elles via des propriétés. Une classe peut être le domaine (classe de départ) ou le co-domaine (classe d’arrivée) de propriétés définies dans le modèle. Une classe peut être liée à 0, 1 ou n propriété(s).

La convention d’écriture du CIDOC CRM :

  • les classes commencent par un E (pour Entity) suivies d’un numéro et d’un nom (commençant par une majuscule)
  • les propriétés commencent par un P (pour Property) suivies d’un numéro et d’un nom (en minuscules).
  • Il y a environ 85 classes et 283 propriétés dans le CIDOC CRM (source : ECRM)

Structure du CIDOC-CRM - les classes

Les classes ont des sous-classes et forment une hiérarchie qui structure l’ensemble du CIDOC CRM.

La classe E1 CRM Entity est la classe-mère (“This class comprises all things in the universe of discourse of the CIDOC Conceptual Reference Model.”) dont découle le reste des classes du CRM. Une sous-classe est une spécialisation d’une autre classe (sa super-classe). Cette spécialisation signifie que :

  • toutes les instances (les éléments composant la classe) de cette sous-classe sont aussi des instances de la super-classe.
  • les caractéristiques de cette sous-classe sont plus restrictives que celles de la super-classe
  • la sous-classe hérite de la définition et de toutes les propriétés déclarées pour sa super-classe. La sous-classe peut avoir des propriétés particulières

A l’inverse, une super-classe est donc une généralisation d’une ou de plusieurs classes (ses sous-classes).

Le CIDOC est donc constitué d’une hiérarchie de classes qui propose différents niveaux de généralisation et de spécialisation.  Si on ne peut pas être précis sur toutes les entités qu’on souhaite décrire, il est souhaitable de le faire dès que possible.

Cette représentation graphique des classes des niveaux supérieurs montre la hiérarchie des classes qui découle de la classe mère E1 CRM Entity. (Attention, toutes les classes du CIDOC ne sont pas représentées.) Pour mieux comprendre la notion de sous-classe, prenons l’exemple de la classe E39 Actor :

Cette classe a deux sous-classes : E21 Person et E74 Group, classe qui elle-même a une sous-classe : E40 Legal Body (Collectivité). Du fait de cette hiérarchie, toutes les instances des classes E21 Person, E74 Group et E40 Legal Body sont également des instances de la classe E39 Actor. Cette hiérarchie est intéressante pour modéliser différents niveaux de précision.

Par exemple, si on a une seule colonne intitulée “possesseur” dans une base de données X comprenant indistinctement des institutions de conservation et des possesseurs particuliers, on pourra utiliser le niveau le plus général : E39 Actor. En revanche, si on a deux colonnes distinctes dans une autre base de données Y, une contenant des établissements de conservation et l’autre des possesseurs individuels, on pourra être plus spécifique et utiliser à fois E40 Legal Body pour la première et E21 Person pour la seconde. Il sera ensuite possible de faire des requêtes sur le niveau plus général ou sur les niveaux précis.

Documentation d’une classe

Voici comment sont documentées les classes dans le CIDOC CRM (exemple de la classe E39 Actor (Agent), source : http://cidoc-crm.org/docs/cidoc_crm_version_5.1.2.pdf:

  • “Subclass of:  E77 Persistent Item” : signifie que la classe Actor est une spécialisation de la classe de plus haut niveau intitulée “entité persistante” (E77).
  • “Superclass of” : indique les classes qui spécialisent la classe E39 Actor.
  • “Scope note” : note d’application de la classe.
  • “Examples” : présente des exemples d’instances de cette classe.
  • “Properties”: liste des propriétés qui s’appliquent à cette classe (+ indication de la classe co-domaine de la propriété).

Structure du CIDOC CRM - les propriétés

Une propriété définit une relation particulière entre deux classes. Une propriété se caractérise par sa signification qui est définie dans une note d’application. Une propriété joue un rôle analogue à un verbe dans une phrase : il fait référence à un domaine (l’équivalent du sujet dans la phrase) et à un co-domaine (l’équivalent de l’objet). Les propriétés peuvent donc être exprimées dans les deux sens : “un agent a réalisé une activité” et “une activité a été réalisée par un agent.”

Ces propriétés du CIDOC CRM ont été conçues pour supporter le raisonnement informatique mais ce raisonnement dépend de l’utilisation des propriétés avec les bonnes entités. Une propriété a donc toujours une classe de départ (domaine) et une classe d’arrivée (co-domaine).

Documentation de propriété

Voici comment sont documentées les propriétés dans le CIDOC CRM (exemple de la propriété P11 had participant, source : http://cidoc-crm.org/docs/cidoc_crm_version_5.1.2.pdf)

  • La propriété est exprimée dans les deux sens “a eu pour participant” et “a participé à”.
  • Indication du domain et range : La propriété P11 had participant peut seulement être utilisée entre la classe E5 Event et la classe E39 Actor (ou leurs sous-classes). On dit que la propriété d’objet P11 a pour domaine la classe E5 Event et pour co-domaine (range) la classe E39 Actor.
  • “Subproperty of”: P11 est elle-même une sous-propriété de P12 occured in the presence of (est arrivé en présence de).
  • “Super property of” : et est super-propriété de P14, P96, P99 etc.
  • Cardinalités
  • Note d’application
  • Exemples

Hiérarchie des propriétés

Les propriétés aussi sont hiérarchisées. Une sous-propriété est une spécialisation d’une autre propriété (sa super-propriété). Cette spécialisation signifie que :

  • toutes les instances d’une sous-propriété sont aussi des instances de sa super-propriété
  • les caractéristiques de cette sous-propriété sont plus spécifiques que les instances de la super-propriété.
  • le domaine de la sous-propriété est le même que celui de sa super-propriété ou une sous-classe de ce domaine.
  • le co-domaine de la sous-propriété est le même que celui de sa super-propriété ou une sous-classe de ce co-domaine.
  • la sous-propriété hérite de la définition et de toutes les propriétés déclarées pour la super-propriété et peut avoir des propriétés particulières.

Exemple de sous-propriété:

P11 had participant est une super-propriété de P14 carried out by (participation active ou passive d’un agent à une activité.) Le domaine de P14 carried out by = E7 Activity, plus spécifique que le domaine de la propriété P11, E5 Event. Le co-domaine de P14 carried out by = E39 Agent comme celui de sa super-propriété.

Structure du CIDOC CRM - valeurs primitives et propriétés de type de données

Les valeurs primitives

Certaines classes du CIDOC CRM, les valeurs primitives (E59 Primitive Value) ne font pas partie de la hiérarchie générale du CIDOC CRM. E59 Primitive Value a 3 sous-classes :

  • Primitif temporel : E61 Time Primitive
  • Chaîne de caractères : E62 String
  • Nombre : E60 Number

Le système de valeurs primitives est propre à l’implémentation (Cf. scope note de E59 Primitive Value : “This class comprises primitive values used as documentation elements, which are not further elaborated upon within the model. No specific implementation recommendations are made. It is recommended that the primitive value system from the implementation platform be used to substitute for this class and its subclasses.” )

Les propriétés de type de données

Elles relient des classes à des valeurs de données (E60 Number, E61 Time Primitive, E62 String)

Distinction propriété d’objet VS propriété de type de données

  • propriété de type de données : propriétés dont la portée (range) sont des valeurs (date, nombre, chaîne de caractères etc.)
  • propriété d’objet : propriétés dont la portée (range) sont des classes

Exemples de datatype properties :  

  • E52 Time-Span -> P81 ongoing throughout (couvre au moins) -> E61 Time Primitive
  • E52 Time-Span -> P82 at some time within (couvre au plus) -> E61 Time Primitive
  • E1 CRM Entity-> P3 has note -> E62 String (texte libre)
  • E19 Physical Object -> P57 has number of parts -> E60 Number
  • E54 Dimension -> P90 has value -> E60 Number

À la différence des propriétés d’objet, les propriétés de type de données ne sont exprimées que dans un sens (classe -> valeur).