Brevet FR3032290A1 — publié le 20160805

PROCÉDÉ DE PRODUCTION AUTOMATIQUE D'UNE BASE DE DONNÉES À PARTIR D'UN MODÈLE DE DONNÉES GÉNÉRIQUE ET D'UNE TAXINOMIE Domaine de l'invention La présente invention concerne le domaine de la constitution et l'exploitation de bases de données informatiques permettant des traitements d'extraction et d'analyse des contenus. Etat de la technique L'article "Ontologies for Enterprise Knowledge Management" Maedche, Alexander, et al., IEEE Intelligent Systems, IEEE Computer Society, Mar./Apr. 2003, pp. 26-33 décrit le principe général des architectures de gestion, et notamment de la prise en charge de plusieurs ontologies et la gestion de l'évolution des ontologies. On connaît dans l'état de la technique le brevet américain U58768928 concernant un procédé de construction d'un modèle ontologique. Cette solution propose un procédé pour générer une pluralité de sources d'informations dérivées d'une plate-forme de développement de logiciels, le procédé comprenant: a) la définition d'une ontologie à fournir une représentation basée sur une pluralité de sources d'informations d'origine, ces sources d'informations ayant des formes de représentation hétérogènes; b) la transformation par un traitement informatique 30 de la pluralité de sources d'informations d'origine c) la génération automatique d'une pluralité de sources d'informations dérivées à partir de l'ontologie, pour générer la source de l'information dérivée dans des formats respectifs de la pluralité de sources d'informations et de dérivés correspondants étant dérivés de la pluralité de sources d'information d'origine. Inconvénient de l'art antérieur La solution de l'art antérieur présente plusieurs inconvénients. En premier lieu, elle ne permet l'enregistrement et l'exploitation que des données pleinement conformes à l'ontologie définie pendant la phase de construction. Des entités non représentables dans cette ontologie générée à partir de la taxinomie ne peuvent pas être traitées par la base de données constituée selon l'art antérieur. Ces entités devraient être traitées dans une deuxième base de données pour l'enregistrement et le traitement des exceptions, avec des traitements globaux pour coordonner l'utilisation des deux bases données. Ceci entraînerait des temps de traitements importants. En deuxième lieu, lorsque les relations entre des entités varient, il est nécessaire de procéder à une recherche des enregistrements qui ne sont plus pertinents et leur remplacement par des données actualisées, ce qui entraîne une grande lourdeur de la maintenance de la base de données. En troisième lieu, la solution de l'art antérieur ne permet pas de réaliser de manière simple une mise en concordance manuelle ou automatique avec un modèle de données extérieur, distinct de celui construit selon le procédé décrit dans ce brevet afin d'insérer les données venant de ce référentiel extérieur. Solution apportée par l'invention Afin de remédier à ces inconvénients, la présente invention concerne selon son acception la plus générique un procédé de production automatique d'une base de données unique à partir d'un modèle de données générique et d'une taxinomie 5 caractérisée en ce qu'une partie au moins des données sont versionnées, et comporte une information temporelle requétable déterminant la période de pertinence de chacune des versions, l'information temporelle comprend au moins une relation avec au moins une autre donnée, le procédé de constitution de 10 ladite base de donnée consistant à déterminer une taxinomie unique commune à l'ensemble d'un domaine, le procédé de production automatique de la base de données comportant : a) une étape de définition de la taxinomie-racine par l'enregistrement d'un fichier structuré de représentation 15 arborescente de N niveaux de catégories descriptives d'un domaine de connaissances [fichier XML, exemple l'ensemble des sports des grandes familles et de ses variantes] b) une étape de définition d'un modèle de données sous forme de fichier structuré [RDF] décrivant des types 20 entités et leurs relations génériques [exemple : évènements, personnes, lieu,...] c) une étape de spécialisation de chaque type d'entité par rapport à ladite taxinomie-racine, consistant à définir un fichier structuré [rdf] comportant des types 25 d'entités et leurs relations spécifiques à certaines catégories ainsi que leurs relations de spécialisation d'appartenance à une catégorie de niveau supérieur [exemple un joueur de tennis est une personne (spécialisation) et participe à une compétition de tennis (événement)] 30 d) une étape de création de types d'entités additionnelles, non prévues dans la taxinomie racine et spécifiques à une catégorie [exemple voiture pour « sport automobile »] décrites sous forme de fichier structuré [RDF] décrivant des types entités et leurs relations spécialisées e) la réitération de l'étape de spécialisation de chaque type d'entité par rapport à ladite taxinomie, consistant à définir un fichier structuré [rdf] comportant des types d'entités additionnelles et leurs relations spécifiques à certaines catégories ainsi que leurs relations de spécialisation d'appartenance à une catégorie de niveau supérieur [exemple un joueur de tennis est une personne (spécialisation) et participe à une compétition de tennis (événement)] f) la définition des types d'entités versionnables temporellement, dont les relations ne sont pas constantes mais dépendantes du temps, h) une étape d'enregistrement de chacune des nouvelles entrées consistant à définir sa période de validité 15 temporelles et les relations avec d'autres entités pendant la période de validité. Description détaillée d'un exemple non limitatif de l'invention 20 La présente invention sera mieux comprise à la lecture de la description qui suit, se référant aux dessins annexés représentant de façon non limitative un exemple de mise en oeuvre de l'invention, où : 25 - la figure 1 représente le schéma de principe du traitement pour la constitution d'une base de données - la figure 2 représente un exemple de fichier html pour la construction des catégories - la figure 3 représente un exemple de fichier XML 30 produit par l'analyseur - la figure 4 représente une représentation graphique d'une otologie racine - la figure 5 représente une vue graphique d'une ontologie spécialisée (7) - la figure 6 est une représentation graphique d'une ontologie de raffinement - la figure 7 représente un schéma du processus itératif des types d'entités générées - la figure 8 représente une vue schématique du processus versionnage. La figure 1 représente le schéma de principe du traitement pour la constitution d'une base de données Le traitement pour la construction d'un fichier (1) 10 représentatif de la taxinomie consiste à extraire d'un document racine (2) les liens hypertextes par un analyseur syntaxique (3) (« parser »). L'analyseur syntaxique est configuré pour éliminer les liens hypertextes identifiés et non représentatifs de l'arborescence de type. Cette analyse se 15 fait à partir d'un enregistrement des balises et des attributs délimitant les zones contenant des informations à analyser, ainsi que des termes représentatifs de l'arborescence à construire. L'analyseur syntaxique (3) procède également au 20 chargement des fichiers liés par les liens hypertextes, et procède de manière itérative à leur analyse pour compléter les données enregistrées dans le fichier (1). Ce fichier (1) est par exemple un fichier XML contenant une représentation de N niveaux d'une arborescence. Chaque niveau est représenté par 25 un identifiant unique, par exemple l'URL de l'hyperlien, un nom et une description déterminés par extraction du contenu des fichiers (2) par l'analyseur syntaxique (3). Après cette première étape de définition de l'arborescence, on formalise un ensemble de type d'entités et 30 leurs relations dans un fichier (5) de type « rdf » par exemple. On utilise ensuite un générateur (6) pour produire un fichier (7) de type « rdf » contenant l'ensemble des types d'entités et de leurs relations spécialisées par rapport à des types d'entités parentes en fonction de l'arborescence de catégorie définie dans le fichier XML (2). Pour chaque sous-domaine identifié dans le fichier XML (1), nécessitant des types d'entités spécifiques, on redéfinit un ou plusieurs fichiers « rdf » (8) pour formaliser les nouveaux types d'entités et leurs relations spécialisées avec les autres types d'entités dans le fichier (5). On réapplique l'étape de génération (6) avec le même traitement, appliqué au sous-ensemble des types de 10 fichiers associés au sous-ensemble susvisé. On détermine ensuite dans les fichiers (5) et (8) les types d'entités versionnables, c'est-à-dire dont les entités peuvent présenter une variabilité temporelle, soit en ce qui concerne leurs propriétés soit en ce qui concerne leurs 15 instances de relations avec d'autres entités. Cette variabilité peut se traduire par des instances de relation valables pendant une période temporelle donnée seulement, et d'autres instances de relations pour d'autres périodes temporelles. 20 Le modèle de données obtenu présente une structure comprenant des types d'entités, des relations et des plages temporelles. Une donnée comprend : 25 -un identifiant unique commun à toutes les versions de la même entité -un ensemble de propriété d'une entité -une version exprimée sous forme de date, ou d'un intervalle de temps 30 -un ensemble d'instances de relations -un identifiant unique, pour chacune les versions de la même entité -des instances de relation de type « parent » ou « fils » et d'instances de relations de type « précédent » ou « suivant » par rapport à d'autres versions représentatives de la même entité. L'utilisation de cette base ainsi constituée consiste à l'interroger par une requête comprenant un ensemble de critères ainsi qu'un intervalle de temps permettant de sélectionner les données dont la version est comprise dans l'intervalle de temps. La figure 2 représente un exemple du code d'un fichier structuré (2). Il s'agit d'un fichier HTML avec des balises introduisant une taxinomie non structurée, que le traitement par l'analyseur syntaxique (3) permettra de construire une ontologie. Chacune des balises peut contenir une catégorie de la taxinomie à générer. Le traitement par l'analyseur (3) consiste à : - identifier si la balise contient une catégorie, en fonction du type de la balise et de son ou ses attribut(s) - s'il a reconnu une catégorie, déterminer le niveau de la catégorie dans l'arborescence en fonction du niveau d'imbrication de la balise correspondante, en omettant les balises de niveau d'imbrication supérieur ne correspondant pas à des balises de catégorie - à enregistrer la séquence de caractères correspondante dans la taxinomie, au niveau de catégorie déterminé lors de l'étape précédente - à associer des informations associées telles que l'URL et les traductions, figurant dans la même balise ; L'analyseur (3) procède également au remplacement des caractères accentués par des caractères non accentués, à la suppression des caractères non-alphanumériques, puis au dédoublonnage de la taxinomie. Le résultat de ce traitement est un fichier XML dont la figure 3 représente un exemple. Ce ficher XML (1) définit la taxinomie du domaine. Chaque niveau correspond à une catégorie à laquelle sont associés des attributs notamment : - un identifiant unique au sein de la taxinomie - une URL pointant vers une page HTML descriptive correspondant à la catégorie - le cas échéant, les traductions en langue étrangère du nom de la catégorie - et toute autre information disponible et associée à la catégorie concernée. A titre d'exemple, une taxinomie simplifiée à trois niveaux dans le domaine du sport comprend des catégories telles que - « Formule 1 « (niveau inférieur) - « sport mécanique » (niveau intermédiaire) - « sport » (niveau supérieur) La figure 4 représente une représentation graphique d'une ontologie racine. La catégorie racine de la taxinomie est représentée par une classe « Sport » (10) dans l'ontologie racine. Tous les types d'entités (11 à 13) sont liés entre eux et à la classe (10) par des relations sémantiques, telles que « pratique », « participe à », « couvre », « se déroule à » définies par un opérateur en fonction d'une nomenclature standardisée. La figure 5 représente une vue graphique d'une ontologie spécialisée (7). Le traitement par le cominateur (6) conduit à générer de nouveaux types d'entités (21 à 24) complétant les entités (10, 20, 30) de la taxinomie racine. Ces catégories sont calculées en fonction des types d'entités (11 à 13) de l'entité racine ainsi que des relations sémantiques. Elles sont reproduites à l'identique au niveau des niveaux inférieurs des types d'entités. La figure 6 est une représentation graphique d'une ontologie de raffinement associée à une sous-catégorie de la taxinomie. Cette ontologie permet de décrire des types 5 d'entités spécifiques à toutes les sous-catégories de la sous-catégorie précitée. Par exemple, un nouveau type d'entité « voiture » (25) est introduit au niveau de l'entité « sport mécanique automobile » (20). L'opérateur définit les relations entre ce nouveau type d'entité (20) aux types d'entités (20 à 10 22) qui ont déjà été définies dans l'ontologie générée à l'itération précédente. La figure 7 représente un schéma du processus itératif des types d'entités générées. A partir d'une ontologie existante (40) et d'une 15 taxinomie (46) - au départ l'ontologie racine, on procède à un traitement par un combinateur-applicateur (44) pour générer une nouvelle ontologie (45) consistant à déduire des informations des ontologies spécialisées (41 à 43) génériques d'une sous-catégorie de la taxinomie la liste de types 20 d'entités nouvelles. Gestion des versions La figure 8 représente une vue schématique du processus versionnage. 25 Ce processus consiste à générer à partir d'une ontologie une ontologie versionnée permettant de gérer des versions pour un sous-ensemble de ses types d'entités. Ce versionnage peut notamment consister à enregistrer pour une entité donnée des informations ou des 30 relations différentes en fonction d'un paramètre tel que la date ou une période temporelle. On enregistre une liste de versions ordonnées (50) sous forme d'un fichier XML. On définit une ontologie (51) correspondant à un modèle de représentation des entités 35 versionnées et de leurs versions. On définit également une liste des types racines (52) versionnables dans l'ontologie applicative (53). Le générateur de l'arbre de versions (54) et des nouvelles classes versionnables construit une ontologie (55) 5 d'entités versionnables. Cette ontologie (55) permet d'enregistrer des entités associées à des versions multiples. REVENDICATIONS1 - Procédé de production automatique d'une base de 5 données à partir d'un modèle de données générique et d'une taxinomie caractérisée en ce qu'une partie au moins des données sont versionnées, et comporte une information temporelle requétable déterminant la période de pertinence de chacune des versions, l'information temporelle comprend au 10 moins une relation avec au moins une autre donnée, le procédé de constitution de ladite base de donnée consistant à déterminer une taxinomie unique commune à l'ensemble d'un domaine, le procédé de production automatique de la base de données comportant : 15 - une étape de définition de la taxinomie par l'enregistrement d'un fichier structurée de représentation arborescente de N niveaux de catégories descriptives d'un domaine de connaissances - une étape de définition d'un modèle de données 20 sous forme de fichier structuré décrivant des types entités et leurs relations génériques - une étape de spécialisation de chaque type d'entité par rapport à ladite taxinomie, consistant à définir un fichier structuré comportant des types d'entités et leurs 25 relations spécifiques à certaines catégories ainsi que leurs relations de spécialisation d'appartenance à une catégorie de niveau supérieur - une étape de création de types d'entités additionnelles, spécifiques à une catégorie [exemple voiture 30 pour « sport automobile)] décrites sous forme de fichier structuré [RDF] décrivant des types entités et leurs relations spécialisées - la réitération de l'étape de spécialisation de chaque type d'entité par rapport à ladite taxinomie,consistant à définir un fichier structuré [rdf] comportant des types d'entités additionnelles et leurs relations spécifiques à certaines catégories ainsi que leurs relations de spécialisation d'appartenance à une catégorie de niveau supérieur [exemple un joueur de tennis est une personne (spécialisation) et participe à une compétition de tennis (événement)] - Une étape de définition des types d'entités versionnables temporellement, dont les relations ne sont pas 10 constantes mais dépendent du temps, - l'enregistrement de chacune des nouvelles entrées consistant à définir sa période de validité temporelles et les relations avec d'autres entités pendant la période de validité. 15