Tous les articles par Maud Ehrmann

Record Linkage of Person Entities

The computational part of the Garzoni project aims at extracting and automatically process information from records of apprenticeship contracts.  As introduced in a previous post, our computational workflow consists in 4 main steps:

  1. Document acquisition: this step corresponds to the digitization of the documents;
  2. Data extraction: data model design and  document annotation;
  3. Data processing: normalization, disambiguation and inference;
  4. Data exploitation: search and visualization.

This post focuses on step (3), with  the description of an approach for entity record linkage, also known as entity disambiguation. The objective is to resolve person name ambiguity, more specifically to:

  • identify and link entity mentions which refer to the same entity (i.e. identification of person name variants, case on the left in the figure below)
  • distinguish identical entity mentions which refer to different entities (i.e. identification of homographic person names, case on the right)

This corresponds basically to a matching problem, where we want an algorithm to be able to decide if 2 entity mentions (in the text) refer to the same person (in the world) or not.


Person name ambiguity.

If we are able to solve this ambiguity, it will open up the possibilities to search for genuine individuals, to aggregate multi-source information on single entities, and to reconstruct (part of) the social network of Venice guilds at a certain point in time.

To this end, given a pair of person mentions on our documents, we need to compute their similarity in order to estimate the probability of their co-reference. This principle of mention comparison and similarity computation is illustrated in the following figure:


Matching co-referring textual mentions.


Compared to “traditional” Natural Language Processing approaches for entity linking, record linkage on historical data faces the following challenges:

  • overcoming data sparsity: entity mentions have just a few features and those features are not evenly sparse;
  • overcoming the absence of knowledge base: the linkage process cannot benefit from unique entities and their related information stored in a knowledge base but rely solely on what could be known from the data.


Our approach intends to overcome these difficulties. Given a manually annotated data-set of  person mentions and entities, we consider and implement three principles:

  1. Working with dedicated similarity measures for each feature type

This is to find the correct match between 2 mentions.


For example, if we compare 2 person mentions having as features age, surname and year of contract, the age and year of contract features will be compared via a distance based on diminishing returns, whereas the surname feature will be compare via a string distance metrics.

2. Exploiting feature combinations

This resembles to creating rules and allows us to handle feature dependencies.


Additionally to feature similarity, the approach takes into account the information of feature combinations for some pairs of mentions are more likely to match when they shows certain feature combinations.

3. Filtering mentions according to activated features

Finally, we filter the pairs to compare based on the presence/absence of core features. This allows us to handle sparse features and to (drastically) reduce the search space.


Eventually, these 3 information are merged (see our publication for more details) and a final similarity score is computed.

Because the approach takes into account these 3 perspectives, it is possible to adjust those parameters and see which setting performs best.

We evaluated our approach in terms of precision and coverage. The main findings are the followings:

  • performances are better when an equal importance is given to feature scores (point 1 above) and  feature combinations (point 2);
  • performances are better when filtering over sparse features is activated (point 3).

For more details please refer to the following publication:

Giovanni Colavizza, Maud Ehrmann, Yannick Rochat. Record Linkage with Sparse Historical Data. In: Proceedings of the Digital Humanities Conference, Kraków, Poland, 11-14 July 2016.

Author: Maud Ehrmann & Giovanni Colavizza.









Garzoni data model – key elements

Our starting point is tens of thousands of Garzoni contracts and our finishing line is an information system to make sense of all the information they contain. As outlined in a previous post, the route between the two is composed of several steps, one of the first being the design of a data model.

What is a data model?

Roughly speaking, the definition of a data model corresponds to the identification of what is of interest in the ‘world’ — in our case Garzoni contracts — we are looking at. Regardless of the format, the role of a model is to represent the structure and the main elements of a ‘world’ in order to explain and/or dynamically reproduce it. As a result, a model should enable to answer questions or solve issues regarding the modeled world. The modelling step is thus a crucial one: it establishes the work-space and prepares what can be done.

How to proceed?

To represent a portion of reality we need to identify its concepts, its entities, and their interactions. In the context of Garzoni, we are quite fortunate for the content of the contracts — recall it is administrative documents — is extremely regular, with always the same pieces of information. Before starting off with the definition of our vocabulary, we first had to address two issues: the choice of a formalism and the characterization of the scope of the model.

Regarding knowledge representation formalism, we chose to express our model through an ontology, using the OWL language. This choice is motivated, among others, by  the wish to (a) exploit inference capacities, (b) re-use domain knowledge,  (c) benefit from the technical eco-system of the Semantic Web and (d) integrate and share our data according to linked data principles.

As for characterizing the scope of our model, a pre-study of the documents coupled with the consideration of historical research questions at stake in the Garzoni project allowed us  to formulate competency questions, that is to say questions that we wish the knowledge base could answer. In the context of Garzoni, research questions revolve around economical aspects (e.g. how did apprentices’ salaries differed according to professions, guilds, time, etc.), knowledge transmission (e.g. were apprentices just a source of labor or were they trained), migration flows (e.g. where did apprentice come from), family and gender issues (e.g. at what age boys and girls were sent away to become apprentice), and others. Each question can be looked at from a veneto-Venetian view point, or put into the larger European perspective. As a side remark on this point, the Garzoni project would wish, on the long term, to cross data-sets and studies with projects of similar veins.

At this point it is worth having in mind that an ontology is inherently relative: it corresponds to one of many possible views of a domain (which differ according to time, cultural background, targeted application, etc.) and it evolves through time. Ours is naturally shaped according to our needs, and is iteratively revisited.

The Garzoni data model

Event though the model might evolve further in the future, it can be seen as fairly stable and complete as of today. Our intention here is not to detail the whole ontology but rather to present its main building blocks and emphasize some points of interest.

The Garzoni data model covers different areas of information:

  • information about the sources (archival dimension): a garzoni contract (a document) is materialized on two mediums: the real paper registers on the one hand, theirs scans on the other. For both mediums, the ontology represents appropriate descriptive and technical metadata information. Fig. 1 below illustrate this part of the ontology; further aspects about the digitization process are described using the CRM-dig ontology (not represented in the figure).
Fig. 1: Part of the model related to archival aspects.
  • information about persons (people dimension): garzoni contracts feature different “actors”, with different roles (Apprentice, Master and Guarantor) and characteristics (please see an example in this post). As mentioned before, Garzoni contracts are quite consistent and the mention of a person follows more or less the same pattern, with the indication of his/her name, age, profession, residence, geographical origins and potentially his/her charge (a kind of public responsibility, different from the profession). These attributes are however not evenly distributed: the age is mentioned for the Apprentices exclusively, while charges are often indicated for Guarantors. The ontology has classes and properties to represent all information about persons.
  • information about various entities or concepts: besides Person, contracts mention Places (sometimes with the indication of the Sestriere — a Venetian district — and of the Parish), Workshops (with their insigna) and Professions.
  • information about contracts’ terms (condition dimension): each contract gives information about financial conditions and what we called “hosting” conditions. The first one relate to the salary and/or the pledge which were due by one of the parties. Salaries can be quite complex, with different amounts paid by stages.  Hosting conditions relate to various aspects of life which where sometimes supported during the apprenticeship: the general expenses of the apprentice, his/her clothing, personal care and accommodation. Financial and hosting conditions are defined classes in the ontology, made up of some condition components (salary, accommodation, pledge, clothing, etc.).
  • information about events: garzoni contracts give evidence of the occurrence of several events. The apprenticeship itself, its enrollment at the Giustizia Vecchia, the potential breach of the contract as well as the flee of the apprenticeship (and, sometimes, his return). To represent this information, we make use of classes and properties of the Simple Event Model (SEM) ontology.
  • information about relations, which can occur between contracts (a contract cites another one) or between persons (mainly family and business relations).
Basics elements of Garzoni model: a Contract has a Signature, introduces some Entity Mentions, reports some Events and Conditions.
Fig. 1: Basics elements of Garzoni model: a Contract has a Signature, introduces some Entity Mentions and reports about Events and Conditions.

All this information form the core of the content of Garzoni data, which we do not detail further here. Instead, we now turn our attention to the questions of (1) how to represent information which belong to different levels, (2) how to represent information which evolves through time and is dependent on a specific view point, and (3) how to trace its provenance.

Mentions and Entities – When dealing with textual data, a obvious aspect to model is the difference between what appears in the text (the word) and what it is being referred to (the ‘thing’, through the meaning). In the case of lexical information, this amounts to distinguish between an occurrence of a word in a text and its meaning as stated in a dictionary. When dealing with entities, this distinction corresponds to the mention(s) of an entity in texts on the one hand and, on the other,  the entity of the world they refer to. The former is used to represent the various possible occurrences or mentions of e.g. Francesco de Philippo in different contracts, and the latter to represent the unique person of Francesco de Philippo who lived at a certain time.  The link between the two classes is reified, in order to represent meta-information about the relationship itself, especially which agent led to its creation, a human or a machine. The Figure below displays the organization of these classes. In the future, this will allow an informed exploitation of the data.


Statements – In our model, entities (not mentions) are objects which collect information about different states of existence. No matter how this ‘snapshots’ will be collected, they all originate from a given source and assert some properties valid at a certain time. Without considering here all the options possible to encode this information, let us just mention our choice, that is to say the usage of Statements similarly as in the RDF representation of Wikidata (Vrandecic, 2014). Each entity has a set of property-value pairs, whose values are not the value itself, but a Statement giving access to the value, its validity time, and its source or reference. If the entity Francesco de Philippo appears in two contracts, first as a Master, second as a Guarantor, it will have two role statements, asserting that this person was a Master at a certain date according to a certain source (a contract), and a Guarantor at another date according to another source.

Provenance – Garzoni data is acquired through a web-interface (cf. section 5) whose internal model relies entirely on the Open Annotation Data Model (OA). Each and every instance correspond to an annotation which relates a target (what is annotated) and a body (the content of the annotation) and is further qualified by the motivation of the annotation and the agent who created it. Based on this input, the Garzoni RDF data-set will naturally keep this provenance information.

Auteur: M. Ehrmann


[Vrandecic 2014] Vrandecic, D. and Krötzsch, M. Wikidata: A free collaborative knowledge base. Commun. ACM, 57(10):78–85.

Accordi dei Garzoni: registres et contrats

Nous devons l’existence de la série Accordi dei Garzoni à l’activité de la Giustizia Vecchia. En effet, en application de lois du XIIIème et XIVème siècles, l’une des responsabilités de cette ancienne magistrature était d’enregistrer les contrats d’apprentissage conclus dans les diverses corporations de métiers à Venise. Ces lois témoignent d’une volonté de la part des autorités publiques de réguler le travail, et plus particulièrement celui des jeunes enfants et des domestiques (cf. post sur la Giustizia Vecchia).

Si tous les maitres et corporations sont loins d’avoir respecté les instructions — pourtant réitérées régulièrement —  des Giustizieri vecchi, un enregistrement régulier et continu des contrats a tout de même été assuré sur plusieurs siècles. Les Accordi dei Garzoni en sont une des traces les plus complètes et les mieux conservées, avec 32 registres couvrant 200 ans de 1575 à 1772.

Boites contenant les registres de la série Accordi dei Garzoni

Les registres

Les registres des Accordi dei Garzoni comportent de 400 à 600 pages en moyenne et sont dans l’ensemble en bon état. Le premier registre (n°151) commence le 9 Juin 1575 et le dernier (n°182) se termine le 20 Mai 1772. La couverture de l’intervalle est continue dans l’ensemble, avec cependant des lacunes au début et à la fin du XVIIème siècle. L’ensemble contient environ 55 000 contrats.

pilaRegistri2_maud10-12-15 copyfoglieti_maud_10-12-15 copy

Les registres comprennent de 3 à 6 enregistrements de contrat par page, chacun formant un paragraphe de 6 à 10 lignes précédé de la date.  Une note additionnelle apparaît parfois dans la marge, témoignant d’une rectification ou modification apportée a posteriori au  contrat. L’enregistrement des contrats était réalisé par différentes personnes, d’où des écritures manuscrites fort différentes. Le déchiffrement de ces écritures est aujourd’hui réservé à des paléographes expérimentés, connaisseurs du dialecte vénitien et familiers des nombreuses abbriéviations utilisées.

Accordi dei Garzoni, boite 115, reg 158, folia 18r.


Les contrats

La grande majorité des contrats ont été enregistrés en suivant le même ‘patron’,  c’est-à-dire en consignant les même informations. Prenons un exemple:

Contrat de Baldisera de Zuanantonio; boite 112, reg 151, folia 18r

pas évident à lire !

Ce contrat, à l’instar de tous les autres, donne des informations à propos de:

  • l’identité des personnes concernées: l’Apprenti, le Maître et potentiellement un Garant. Dans notre exemple Baldisera de Zuanantonio, agé de 8 ans, s’engage à travailler auprès du maitre Francesco Philippo, engagement garanti par son père Zuanantonio. Des renseignements tels que l’âge, la résidence, l’origine géographique sont souvent mentionnés.
  • la profession enseignée et l’atelier où se déroule l’apprentissage. Ici Baldisera apprendra l’art de peindre les coffres (depentor da casse) dans l’atelier du maitre peintre situé a San Baggio.
  • les diverses conditions du contrat, avec le salaire (ici 20 ducats), la mention d’éventuels bénéfices en nature, la durée du contrat (ici 8 ans), et bien souvent d’autres détails.

La régularité des informations fournies est un atout majeur: elle permet la systématicité de l’étude des contrats et facilite grandement la définition d’un modèle de données.


Auteur: M. Ehrmann

Des sources aux ressources, les Garzoni sur le Web sémantique

La série documentaire des Accordi dei Garzoni comporte 32 registres où sont consignés plus de 55,000 contrats d’apprentissage, de la fin du XVIème à la fin du XVIIIème siècles à Venise (cf. post sur registres et contrats). Offrant de multiples indications sur qui embauchait qui, pour apprendre quel métier et sous quelles conditions, ces registres constituent une précieuse source d’information quant à  l’écosystème de l’apprentissage venitien.

Comment exploiter cette source historique? Comment collecter la masse d’information et la rendre accessible à tous?

La partie computationelle du projet Garzoni est dédiée au développement d’un système d’information géo-historique afin de collecter, traiter et exploiter l’information contenue dans les Accordi dei Garzoni. Ce développement se fait sur un mode incrémental, avec la “construction” progressive de l’information, suivant les principales étapes suivantes:

  1. Acquisition des documents: numérisation
  2. Acquisition des données: modélisation et annotation des documents
  3. Traitement des données: normalisation, désambiguïsation et inférence
  4. Exploitation des données: recherche et visualisation

Si l’étape (1) peut paraître relativement triviale, il convient de ne pas sous estimer son importance: la qualité des images acquises affecte leur facilité de traitement, tant par des humains que par des machines.

L’étape (2) correspond à l’extraction de l’information contenue dans les documents. Il s’agit d’annoter les contrats d’apprentissage en fonction d’un modèle et de stocker de manière appropriée l’information recueillie.

Le préambule indispensable de cette étape  correspond à la modélisation du domaine, soit l’identification des concepts, des entités et de leurs relations. En bref: quels sont les éléments qui nous intéressent dans les contrats d’apprentissage? Ces derniers sont définis en fonction des documents (l’apprentissage tel que vu au travers des contrats) et des objectifs d’étude du projet (économie, famille, flux migratoires, etc.). Ils sont  structurés en une ontologie exprimée selon le language de représentation de connaissances OWL (Web Ontology Language) du W3C. Cette formalisation permettra par la suite des inférences automatiques.

Une fois équipés d’un modèle, il est possible de procéder à la transcription et annotation des documents. Pour ce faire, nous développons une interface web, appelée DHCanvas, qui permet de visualiser et annoter des images de documents: l’utilisateur peut sélectionner un segment d’image, le transcrire, lui attribuer différentes étiquettes sémantiques et spécifier des attributs. Les principaux atouts de cette interface sont la conservation du lien entre l’annotation (déjà une interprétation) et la source (le segment d’image), la gestion d’annotations concurentes et sa totale compatibilité avec les standards de représentation de resources digitales et d’annotations (IIIF, Shared Canvas Model et Open Annotation Model). Plus de détails sur DHCanvas dans un prochain billet.

Le format de représentation et le mode de publication suivent les standards du web sémantique: chaque entité, concept, propriété ou relation est une ressource RDF (Resource Description Framework, un format  pour la représentation et l’échange de données) et est publiée selon les principes de Linked Data.

Au terme de cette phase d’annotation, nous obtenons un ensemble de ressources, constitué de segments d’images et d’instances du modèle.

Ces données sont cependant encore difficilement exploitables, car présentant de nombreuses variations:

  • variation linguistique, avec les problèmes classiques de synonymie (plusieurs formes linguistiques – un concept ou entité) et d’homonymie (une forme – plusieurs concepts ou entités). Il importe donc de normaliser, c’est-à-dire identifier les variantes d’un même concept ou d’une même entité (principalement pour les professions,  lieux et personnes).
  • variation de saisie hiérarchique, avec des entités relevant de différents niveaux de généricité/spécificité. C’est le cas des noms de lieux, qui peuvent correspondre à des village, villes, régions ou pays.

Il importe donc, en étape (3), de traiter les données pour en faciliter l’exploitation. Cela comporte:

  • normalisation et désambiguïsation,
  • inférence, et
  • étabissement de liens vers d’autres datasets.

Enfin, l’étape (4) correspond au développement d’une interface pour l’exploration des données, laquelle permettra de rechercher une entité précise, de visualiser le network des personnes, et d’avoir une vue statistique d’ensemble des différentes facettes du dataset. Plus d’information sur le prototype prochainement.

Auteur: M.Ehrmann