12/07/2024 - 18:35:30
Cet article a fait l'objet d'un petit livre blanc publié en septembre 2020. Il a été légèrement mis au goût du jour le 12/07/2024 10:54:15 !
C'est quoi une facture ? Quelles en sont les caractéristiques ? C'est quoi un article ? un article de presse ? un article technique ? un site web ? une page web ? une page de contact ? un garage ? une voiture ? une moto ? un avion ? un bateau ? un client ? un fournisseur ? et donc … c'est quoi une facture ?
Voilà des questions que les informaticiens du monde entier se posent ou se sont posées à un moment ou l'autre de leur carrière. Leurs réponses se trouvent cristallisées dans tous les logiciels du monde, parfois, malheureusement, de manière incohérente. Les moyens existent cependant pour que ces incohérences soient effacées.
Schema.org
Schema.org est une tentative de standardisation, une démarche de cohérence, une poursuite de convergence pour qu'au travers des programmes que nous manipulons tous les jours une compréhension commune puisse se dégager. Pour que lorsque nous parlons d'une facture, à Pékin, Bruxelles, New York ou Paris, on s'en fasse la même représentation : une description de ce qu'est une facture, les caractéristiques d'une facture, les types d'informations de chaque propriété, etc.
Schema.org est une initiative de Google, Microsoft, Yahoo et Yandex, organisée sous forme de communauté ouverte qui se donne l'objectif d'établir des ontologies, du grec ὄντος (« étant ») et λόγος (« discours, parole, étude »), des ensembles structurés de termes et relations couvrant des concepts spécifiques dans des domaines particuliers.
Retournant à mon exemple de facture, il est évident que cet "objet" appartient à un domaine plus large, tout comme une "offre", un "bon de commande", "une note de crédit", un "paiement", etc. C'est ce domaine supérieur que couvre une ontologie; ce sont des poupées russes.
Une ontologie est la modélisation d'un champ de connaissances au travers de mots et termes généralement utilisés pour parler du champ en question, termes mis en relation. Plus simplement, schema.org parlera de vocabulaires qui aident à comprendre le monde qui nous entoure. C'est quoi un produit ? un service ? une entreprise ? un hôpital ? un évènement ? un artiste, un album, un concert, un ticket, etc. Et aussi … ce qu'est une facture !
Ces vocabulaires et ontologies couvrent des
entités[1] au même titre que Wikidata qui assigne pour chacune d'entre
elles un identifiant unique. Par exemple, vous trouverez une
définition de ce qu'est une facture aux URLs suivantes : https://schema.org/Invoice pour schema.org
(A statement of the money due for goods or services; a bill
)
et https://wikidata.org/wiki/Q190581 pour
Wikidata (commercial document issued by a seller to a buyer,
relating to a sale transaction and indicating the products,
quantities, and agreed prices for products or services the
seller has provided the buyer
). Rien que dans les
définitions données par ces deux sources vous pourrez trouver un
ensemble de mots qui font sens – sale, transaction, products,
quantities, prices, … – (et, parlant de factures sur Internet,
sur un site que vous construisez par exemple, vous pouvez vous
inspirer de tels mots pour améliorer votre ranking en matière de
moteurs de recherche, d'autant que schema.org est d'abord une
initiative de tels moteurs). Vous servir de toutes les
propriétés et entités vous permet aussi de donner à vos
procédures OCR l'intelligence nécessaire pour comprendre la
nature d'un document, pour le classer automatiquement, pour le
router au sein de votre organisation.
En informatique, les ontologies sont notamment employées dans le Web sémantique et en Intelligence Artificielle pour saisir, comprendre un domaine particulier. Chaque domaine est décrit en se référant aux types d'objets qui le composent (les classes) et à leurs propriétés (ou attributs). Lesdits objets entretiennent des liens entre eux (des relations) et répondent à des événements qui induisent des changements dans leurs propriétés ou dans leur relation les uns aux autres. Elles sont essentielles à qui souhaite entamer une Transformation Digitale sérieuse.
Les ontologies sont un endroit où convergent de multiples techniques comme par exemple le Web Ontology Language (OWL) , un langage de représentation des connaissances fonctionnant sur la base de RDF (Resource Description Framework) , un modèle de graphe destiné à décrire les ressources Web et permettre ainsi leur traitement automatique. C'est un champ large du domaine informatique, totalement essentiel dans la compréhension des langages naturels.
Web sémantique
Je ferai un passage très bref par Web sémantique car ce ne constitue pas le cœur de mon article. Néanmoins, ce sujet n'est pas mineur car un site web bien construit, qui fasse du sens pour humains et robots, est une garantie d'exposition universelle.
En plus de servir de répertoire d'entités parfaitement décrites au niveau de leurs propriétés et de leur héritage (au sens de la programmation orientée-objets), Schema.org fournit nombre d'exemples qui permettent de mieux qualifier ce qui se cache aux tréfonds d'un code HTML.
Voyez par exemple comment présenter une facture en HTML avec référence au vocabulaire de Schema.org (et donc … compréhension partagée des informations qui sont renseignées) :
<div itemscope itemtype="http://schema.org/Invoice"> <h1 itemprop="description">New furnace and installation</h1> <div itemprop="broker" itemscope itemtype="http://schema.org/LocalBusiness"> <b itemprop="name">ACME Home Heating</b> </div> <div itemprop="customer" itemscope itemtype="http://schema.org/Person"> <b itemprop="name">Jane Doe</b> </div> <time itemprop="paymentDueDate">2015-01-30</time> <div itemprop="minimumPaymentDue" itemscope itemtype="http://schema.org/PriceSpecification"> <span itemprop="price">0.00</span> <span itemprop="priceCurrency">USD</span> </div> <div itemprop="totalPaymentDue" itemscope itemtype="http://schema.org/PriceSpecification"> <span itemprop="price">0.00</span> <span itemprop="priceCurrency">USD</span> </div> <link itemprop="paymentStatus" href="http://schema.org/PaymentComplete" /> <div itemprop="referencesOrder" itemscope itemtype="http://schema.org/Order"> <span itemprop="description">furnace</span> <time itemprop="orderDate">2014-12-01</time> <span itemprop="orderNumber">123ABC</span> <div itemprop="orderedItem" itemscope itemtype="http://schema.org/Product"> <span itemprop="name">ACME Furnace 3000</span> <meta itemprop="productID" content="ABC123" /> </div> </div> <div itemprop="referencesOrder" itemscope itemtype="http://schema.org/Order"> <span itemprop="description">furnace installation</span> <time itemprop="orderDate">2014-12-02</time> <div itemprop="orderedItem" itemscope itemtype="http://schema.org/Service"> <span itemprop="description">furnace installation</span> </div> </div> </div>
Cette information est complètement désambigüisée. Un robot informatique fait la différence entre chaque zone. Par exemple, toutes les zones de date sont parfaitement établies : on sait ce qui est la date du paiement, ce qu'est la date de la commande, …
Je vous laisse visiter la page https://schema.org/Product dont le contenu fournit des exemples d'expressions sémantiques : Microdata, RDFa, JSON-LD. Reprenant cette façon de présenter votre catalogue de produits, vous vous assurez une information pertinente reprise dans les moteurs de recherche. Ce n'est pas rien !
Je ne résiste pas à la tentation de vous donner encore un dernier exemple : un événement, encore extrait de Schema.org (https://schema.org/Event) … et quelle est l'entreprise/organisation d'une certaine taille qui n'organise pas d'événement ? Sachez présenter l'information de manière structurée pour la voir correctement répertoriée dans les moteurs de recherche et … sur X (anciennement Twitter), Facebook, etc. !
<div itemscope itemtype="http://schema.org/TouristAttraction"> <h1><span itemprop="name">Musée Marmottan Monet</span></h1> <div> <span itemprop="description">It's a museum of Impressionism and french ninenteeth art.</span> </div> <div itemprop="event" itemscope itemtype="http://schema.org/Event">It is hosting the <span itemprop="about">Hodler</span>'s <span itemprop="about">Monet</span>'s <span itemprop="about">Munch</span>'s exibit: <span itemprop="name">"Peindre l'impossible"</span>. <meta itemprop="startDate" content="2016-09-15" />Start date: September 15 2016 <meta itemprop="endDate" content="2017-01-22" />End date: Genuary 22 2017 </div> </div>
Vous aurez compris tout l'intérêt, j'imagine, de l'utilisation des entités définies dans Schema.org.
Et les autres …
Freebase
D'autres initiatives que Schema.org existent qui d'ailleurs modélisent le monde avec un spectre plus large encore. Freebase par exemple qui couvre pratiquement 39 millions de sujets (topics) comme des personnes (Bob Dylan par exemple — /m/01vrncs), des lieux (Bruxelles par exemple — /m/0177z) et des choses (un camion par exemple — /m/07r04). Je ne m'apesantis pas trop sur Freebase pour passer plus de temps, plus loin, sur Wikidata !
Geni
Allons plus avant avec Bob Dylan si vous le voulez
bien. Pour ce chanteur porte-paroles de sa génération vous
pouvez vous adresser au répertoire geni.com,
6000000017944190389, car Bob Dylan
y est effectivement connu sous l'ID
6000000017944190389
. Un autre répertoire ouvert
dont il est possible d'extraire de l'information.
Le cas de Bob Dylan est parfaitement exemplaire de ce que j'essaie de vous exposer et illustre bien mon propos général qui est d'indiquer à quel point les informaticiens peuvent tirer profit de ces ontologies, vocabulaires et autres répertoires généraux qui modélisent le monde.
Sur TRQL Radio j'ai programmé un système
d'annonces/désannonces automatiques. Cela signifie qu'un
programme parcourt la playlist du jour (elle-même constituée
entièrement automatiquement), examine les morceaux programmés et
"annonce" le morceau suivant ou "désannonce" un ou plusieurs
morceaux précédent(s). Imaginons que l'un de ces morceaux soit
de … Bob Dylan. Le programme peut alors chercher
s'il y a quelque chose à dire sur le chanteur américain dans un répertoire
libre d'accès comme Geni, Freebase ou … Wikidata : le
programme a le choix entre plusieurs sources d'informations.
Posons qu'il choisit l'identifiant Freebase, il aboutit dès lors
sur la page https://freebase.toolforge.org/m/01vrncs qui
dit … Bob Dylan is an American singer-songwriter, artist,
and writer. He has been influential in popular music and culture
for more than five decades. […]
. Le programme passe cette
information à un moteur text-to-speech (Amazon Polly, par
exemple, ou ElevenLabs, …) et vous obtenez une annonce (ou
désannonce) intelligente et AUTOMATIQUE à diffuser à l'antenne
(Polly vous rend un .mp3 qui n'est finalement en rien différent
d'un morceau de musique traditionnel : il vous est donc
possible d'insérer l'annonce/désannonce dans la playlist comme
s'il s'agissait d'une chanson). Parfait exemple
d'automatisation.
Wikidata. Ah, Wikidata !
Je quitte les autres initiatives similaires à schema.org pour maintenant me concentrer quelque peu sur Wikidata, répertoire avec lequel j'ai pu acqurérir une expérience très pratique, à la fois d'un point de vue Pourquoi et Comment.
Wikidata est une base de données libre, collaborative, multilingue. Cette base de données contient des données structurées qui servent à alimenter Wikipédia, et toute une série d'autres projets dans le mouvement Wikimedia.
Wikidata couvre 111.000.753 concepts au moment où j'écris ces lignes !
Les données de Wikidata sont publiées sous licence Creative Commons Transfert dans le Domaine Public (CC0 1.0) ce qui signifie que vous pouvez copier, modifier, partager et améliorer les données, même pour une utilisation commerciale, sans avoir à demander la permission.
J'ai publié un service générique qui interroge cet immense
répertoire d'entités. Bob Dylan y figure sous l'ID
Q392. Voici son URL : https://wikidata.org/wiki/Q392. Vous y
apprenez ceci : American recording artist, singer-songwriter,
musician, author, artist and and Nobel Laureate in 2016
. Vous
avez là, malgré la petite faute du double « and », une variation
possible d'annonces/désannonces automatiques [2] .
Prenez la peine de consulter la quantité incroyable
d'informations que vous pouvez glaner sur Bob Dylan. Vous y
verrez notamment tous les noms d'emprunt de l'artiste, vous y
verrez dans quels autres répertoires il apparaît, vous y verrez
que l'entité Bob Dylan, connue donc sous la référence
Q392
, est une occurrence de l'entité
Être humain (propriété P31
veut
dire instance of
, ce que vous pouvez vérifier avec
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=P31&format=xml),
connue elle sous l'ID Q5
(https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q5&format=xml)
qui elle fait partie de l'entité Humanité Q1156970
,
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q1156970&format=xml)
… et que vous pouvez suivre des documentaires concernant
l'Humanité sur TED grâce à https://www.ted.com/t
opics/humanity.
Tout ceci, et une foultitude d'autres choses, sont ainsi
disponibles à des robots automates, à des programmes. Tout ceci
est candidat à l'automatisation dans laquelle les
Transformations Digitales nous poussent. Il n'est évidemment pas
interdit de s'en servir ; il y a même un avantage indéniable à
partager ces connaissances, à les structurer, les disséminer et
les standardiser au sein des applications à construire, et ce,
quel que soit le domaine dans lequel vous exercez votre
activité. Il s'agit d'utiliser ce qui existe et qui est partagé
librement et d'éviter de réinventer la roue à chaque système
informatique qui est imaginé en réponse à un besoin.
Wikidata recense encore bien les IDs des entités qui lui sont connues mais présentes dans d'autres dans d'autres répertoires : Freebase, DBPedia, KBPedia, Geonames , ISNI (International Standard Name Identifier for an identity), BNF, NORAF, …
À côté des répertoires que je viens de mentionner, il existe nombre de répertoires publics comme CBE-open-data, Plateforme ouverte des données publiques françaises, et bien d'autres. Prenez la peine de regarder ce que vous pouvez en tirer. Voyez en quoi ces répertoires permettent dématérialisation, digitalisation, et … automatisation.
Travail de fourmi et … d'étude
Tout cela ouvre des portes donnant sur des possibilités assez extraordinaires, et qui pour tout dire, sont la base même des LLM – Large Language Models. En revanche, c'est un véritable travail de fourmi que de fouiller dans ces répertoires gigantesques, de les comprendre, de saisir les dépendances qui y sont introduites, de décortiquer le sens de chaque ID, chaque propriété, etc. Une véritable étude, très profitable néanmoins. Pour ce qui est de Wikidata, la page suivante peut vous aider à vous y retrouver : Browse and view all properties on Wikidata.
Il n'est pas rare que les programmes doivent faire de (très) multiples allers-retours entre de nombreux end-points pour constituer une vue qui fasse sens[3] . Comme ces opérations sont chronophages il vient immédiatement à l'esprit de pouvoir « cacher » l'information obtenue et constituer des champs sémantiques tout-faits, directement prêts à l'emploi. C'est ce qui est fait sur TRQL Radio lorsqu'on rassemble nos connaissances en matière d'artistes ou aussi pour ce qui concerne notre agrégateur de nouvelles, Infusio. Nous avons une « base de données » d'environ 225000 artistes que nous souhaitons faire grimper à 400000. Ces connaissances ont été extraites de multiples répertoires[4] , ingérées, classées, structurées, comparées, annotées, appréciées, digérées … pour former notre propre corpus, un corpus qui est revu régulièrement (la connaissance évolue constamment : des choses vraies hier, ne le sont plus aujourd'hui), un aspect importantissime que je ne souhaite pas débattre ici sous peine d'être par trop technique et lassant. Qu'il me suffise de dire que la connaissance accumulée dans un champ ontologique donné est comme la science : on sait ce qu'on sait jusqu'au moment où on sait qu'on s'est trompé. Cela implique donc une révision constante des connaissances engrangées.
Concrètement…
Imaginons que TRQL Radio recherche les dates de naissance et
de décès de Jim Croce. Une recherche sur Wikidata nous
apprend que l'ID de Jim Croce (écrit Jim_Croce
dans
la recherche) est Q464277
.
https://www.trql.fm/vaesoli!/?wikidata-search=Jim%20Croce&xml: rechercher Jim Croce sur Wikidata.
On se rend donc (par programmation comme montré ci-dessus)
sur la page qui décrit l'entité Jim Croce et on y
cherche les propriétés P19
(place of birth),
P3150
(birthday), P569
(date of birth), P1477
(birth name),
P570
(date of death),
P1196
(manner of death),
P20
(place of death),
P119
(place of burial), et
P509
(cause of death).
Pour TRQL Radio ces informations forment le squelette de ce
que notre moteur de connaissances enregistre. Je vais me
concentrer sur les dates de naissance et de décès pour la
facilité de la démonstration, soit les propriétés
P569
et P570
:
<property id="P569"> <datavalue type="time"> <value time="+1943-01-10T00:00:00Z" timezone="0" &/> </datavalue> </property> <property id="P570"> <datavalue type="time"> <value time="+1973-09-20T00:00:00Z" timezone="0" &/> </datavalue> </property>
Un simple calcul de dates permet de calculer l'âge de Jim Croce lors de son décès et cette information peut être utilisée pour générer du texte automatique variable. Un atout pour une station de radio !
De manière assez similaire il est totalement possible de
savoir quand un groupe s'est formé (une deate de naissance un
peu spéciale). Prenez l'exemple des Doobie Brothers :
c'est l'entité Q506670
de Wikidata. Leur
date de formation est donnée par la propriété
P571
et vous obtenez le XML suivant pour
cette propriété :
<property id="P571"> … <datavalue type="time"> <value time="+1970-01-01T00:00:00Z"&> </datavalue> </property>
Les Doobies se sont donc formés en 1970 comme en atteste le résultat de différents moteurs de recherche :
Comme avec le calcul des dates dans l'exemple de Jim
Croce, vous êtes alors capable de créer une annonce
intelligente comme « The %artist.name%, formed in
%artist.inception%, on %radio%! Only music; no blahblah!
». Cette phrase-type, dont il s'agira de substituer les parties
variables (The Doobie Brothers, formed in 1970, on TRQL
Radio. Only music; no blahblah!) peut connaître de multiples
variantes qui peuvent être créées par programmation. Dans le cas
de TRQL Radio nous avons environ 4000 variantes que nous
sélectionnons au hasard. Ceci s'inscrit dans la Transformation
Digitale de TRQL Radio.
Pour quoi faire ?
Vous pouvez vous demander avec raison en quoi ce genre de forage dans les arcanes de Schema.org, Wikidata, et autres répertoires, est susceptible de donner à TRQL Radio une sorte d'avantage compétitif.
Dans notre cas, l'avantage compétitif pour une micro radio, avec (très) peu de monde derrière les consoles, réside dans la capacité à détecter et utiliser ces information sans devoir y consacrer le moindre temps puisque ce sont des programmes qui sont continuellement en recherche de l'info, à nous en servir pour, par exemple, créer des annonces/désannonces intelligentes (voir plus haut), créer des hommages automatiques (tributes), étoffer, épaissir la profondeur de la présentation, générer des nouvelles/éphémérides (voyez à ce propos ce nouveau service qui nous permet de rapatrier les événements du jour – today in history), etc.
Chacun doit examiner avec ouverture d'esprit ce que ces
répertoires peuvent apporter à son propre cœur d'affaires. Comme
le disait très justement un ami, il vaut mieux
aimer ses problèmes que ses solutions
. En tout demeure la
question du « Why ? » et ce n'est certainement pas Simon Sinek
qui me contredira. Poser cette question et y répondre vous
appartient !
Vos premiers pas avec schema.org
Pour vous aider à faire vos premiers pas avec schema.org, je vous livre ici 2 fichiers XML qui listent les classes couvertes et leurs propriétés (extraction de mars 2020). Personnellement, je me suis servi de ces 2 fichiers pour générer AUTOMATIQUEMENT plus de 850 classes PHP qui font ainsi partie de mon arsenal de développement.
Pratique : les services utilisables immédiatement
Pour contribuer à votre effort d'utilisation de ces répertoires ouverts et publics, je vous livre 3 services d'accès à Wikipedia/Wikidata : de quoi chercher ceque Wikipedia détient sur un terme (ou ensemble de termes), chercher les entités correspondant à un terme ou des termes (Elvis Presley, par exemple), et de quoi obtenir le détail d'une entité/propriété.
wikipedia-search
Ce service permet de connaître tout ce que Wikipedia connaît sur un terme (ou ensemble de termes) – les termes doivent être mentionnés en anglais :
Exemples
- toutes les infos concernant Vitrival.
- toutes les infos concernant Fleetwood Mac
- toutes les infos concernant Invoice.
- toutes les infos concernant BNP Paribas.
- toutes les infos concernant Belfius.
- toutes les infos concernant Olaf Scholz.
- toutes les infos concernant Emmanuel Macron.
- toutes les infos concernant France.
- toutes les infos concernant Belgium.
- Intelligence Artificielle: aucun résultat attendu car le query est basé sur autre chose que des termes anglais.
- Artificial Intelligence: le même query mais en anglais, cette fois-ci avec nombre de résultats.
- Que sait Wikipedia de Schema.org ?.
wikidata-search
Ce service retourne les entités qui matchent le(s) terme(s)
de la recherche. Ne pas confondre avec wikipedia-
search
. Seul l'anglais est supporté par le service.
Exemples
- toutes les entités qui matchent Vitrival.
- toutes les entités qui matchent Bob Dylan.
- toutes les entités qui matchent Invoice.
- toutes les entités qui matchent BNP Paribas.
- toutes les entités qui matchent Belfius.
- toutes les entités qui matchent Olaf Scholz.
- toutes les entités qui matchent Emmanuel Macron.
- toutes les entités qui matchent France.
- toutes les entités qui matchent Belgium.
wikidata-entity
Ce service permet de connaître la définition d'une entité ou d'une propriété :
Exemples
- Entité Bob Dylan: Bob Dylan est connu sous l'ID Q392 dans Wikidata. Voilà de quoi extraire tout ce que Wikidata sait de Bob Dylan
- ID Facebook d'une entité (explication de ce qu'est la propriété recherchée)
- date de naissance (explication de ce qu'est la propriété recherchée)
- entité qui décrit Vitrival (explication de ce qu'est la propriété recherchée), là où l'auteur de ce papier habite.
Ces trois services sont utilisés intensivement lorsqu'il s'agit de traiter les nouvelles agrées par Infusio (agrégateur de nouvelles).
En effet, lorsque l'analyse du texte d'une nouvelle a été réalisée – et cela peut représenter une rafale de 50 appels de services – la nouvelle est associée à une série d'entités, les mêmes dont je parle dans ce billet.
Exemple d'extraction de nouvelles
Imaginons un article qui parle de Annalena Baerbock.
Pour étoffer l'article, ou le commenter, le décrire, l'introduire, je vais chercher quelques infos : la date de naissance de Baerbock et le nom et la profession de son époux. Juste pour l'exemple !
Cet article, après analyse, sera taggué avec l'entité
Q564328
. On peut le vérifier avec Annalena
Baerbock : le service nous retourne en effet un
id = Q564328
.
Maintenant que nous avons un ID d'entité, on peut interroger
wikidata pour obtenir le détail de cette entité :
https://www.trql.fm/vaesoli!/?wikidata-entity=Q564328&xml et
si vous consultez le retour, vous pourrez chercher la propriété
P569
(date de naissance) vous saurez que
Annalena Baerbock est née le <value time="+1980-12-15T00:00:00Z" />.
La propriété P26
vous donne le nom de son
époux via une autre entité, Q106565747
que
vous pouvez aussi rechercher sur Wikidata et qui vous donnera
Daniel Holefleisch dont la propriété
P106
vous donnera le métier, soit ici …
une nouvelle entité, Q2557481
, ce qui finit
par donner communications adviser. Ouf, on y est !
Lorsque nous couplons la quantité d'informations que nous pouvons glaner à la capacité générative de textes sur la base de LLM (Large Language Model), à la capacité générative d'images, à des variantes de texte (sentence template), aux capacités de traduction automatique … vous apprécierez les possibilités que tout ceci ouvre.
Conclusion
Les répertoires ouverts et libres d'accès font désormais partie du panorama global qu'offre l'IT distribué, connecté et ouvert.
Le monde n'a jamais stocké autant de données, données qui sont mises en relation ou qui peuvent l'être, de manière ouverte ou non (ce qui est d'ailleurs un élément essentiel des équipes de Business Intelligence), gratuites ou accessibles pour un coût généralement dérisoire.
Les puissances de traitement et de calcul de nos ordinateurs nous permettent d'ingérer et digérer ces montagnes de données pour un coût de plus en plus modéré.
Le programmeur / développeur moderne ne peut plus faire l'impasse sur ces trésors. Même si un effort est requis, c'est tellement excitant que nous aurions tort de nous en priver. ESSAYEZ CES RÉPERTOIRES GRATUITS, DONNEZ-VOUS CETTE OPPORTUNITÉ.
Notes de bas de page
[1] … ou concepts
[2] … Si je me concentre sur Bob Dylan c'est parce que je dispose d'exemples réels dans le domaine de la musique. Vous n'aurez aucun mal à imaginer les cas qui vous seront utiles dans votre domaine.
[3] … Nous y viendrons avec un exemple concernant Annalena Baerbock plus loin
[4] … AllMusic, Discogs, Spotify, Deezer, Wikipedia, Wikidata, iTunes, … en respectant scrupuleusement les contraintes imposées