Maison >développement back-end >Tutoriel XML/RSS >Sémantique des balises XML
[Résumé] Bien que la définition du type de document XML fournisse un mécanisme capable de décrire la syntaxe du langage XML sous une forme lisible par machine, il n'existe actuellement aucun mécanisme similaire pour spécifier la sémantique spécifique du vocabulaire XML. Cela signifie qu'il n'existe aucun moyen d'expliquer la signification des balises XML, et que les faits et les relations représentés par XML ne peuvent pas être définis de manière claire, exhaustive et normative. Cela a de graves conséquences pratiques et théoriques. Du côté positif, les structures XML peuvent recevoir une sémantique arbitraire et être utilisées dans des domaines imprévus par leurs concepteurs d'origine. Du côté le moins positif, les développeurs de contenu et les ingénieurs logiciels doivent s'appuyer sur une documentation fade ou, pire encore, devoir deviner l'intention du concepteur du langage de balisage. Ce processus prend du temps, est sujet aux erreurs et ne peut pas être vérifié. Même si le travail de documentation original du concepteur est parfaitement réalisé, des situations insatisfaisantes continueront à se produire. En outre, le manque de recherche sur la nature sémantique du balisage signifie également que le traitement des documents numériques, qui appartient au domaine des applications techniques, n'a aucune théorie. Bien que certains projets en cours (XML Schema, RDF, Semantic Web) aient obtenu certains résultats, aucun de ces projets ne résout directement et complètement les problèmes fondamentaux de la sémantique du balisage XML. Cet article passe en revue l'histoire du développement du concept de signification de balisage, clarifie la motivation pour interpréter la sémantique formelle de XML et présente un projet de recherche scientifique sur la sémantique - le projet BECHAMEL Markup Semantics.
[Mots clés] SGML | Les systèmes de balisage de texte tels que le langage de balisage généralisé standard (SGML) et le langage de balisage extensible (XML) ont commencé à être appliqués dans tous les aspects de la société, des affaires, de la culture et de la vie. SGML/XML est une technologie lisible par machine qui définit un langage de balisage descriptif. À l'exception de certaines parties qui nécessitent un traitement particulier, ce langage définit clairement la structure du document et sa signification sous-jacente. SGML/XML se développe rapidement et l'utilisation généralisée de cette technologie peut prendre en charge un traitement et une publication d'interopérabilité de documents hautes performances.
Ce bon souhait s'est partiellement réalisé. La supériorité du SGML/XML a dépassé les attentes des gens. Cependant, la fonctionnalité, l'interopérabilité, la diversité et l'accessibilité du système documentaire SGML/XML doivent encore être améliorées. Si cette opportunité n'est pas saisie, les conséquences seront très graves : l'industrie a dépensé des coûts financiers élevés et a perdu de nombreuses opportunités ; cela pourrait également conduire à des désastres dans les applications critiques en matière de sécurité pour les personnes handicapées, ce qui les empêchera d'avoir un accès égal ; aux bénéfices culturels et commerciaux de la société contemporaine. De plus, des problèmes de longue date continuent de nous rappeler que les meilleurs modèles de documents numériques actuels sont encore imparfaits, ou du moins incomplets.
La racine de ces problèmes est que, bien que SGML/XML puisse fournir une structure significative pour les documents, SGML/XML ne peut pas représenter les relations sémantiques de base entre les composants et les sujets du document de manière systématique et traitable par machine. SGML/XML prend en charge la description d'une « grammaire » lisible par machine, mais il ne fournit pas de mécanisme pour expliquer la connotation sémantique d'une certaine grammaire. Par conséquent, il n'existe aucun moyen d'exprimer formellement la signification potentielle d'un vocabulaire SGML/XML. Le SGML/XML actuel ne peut même pas exprimer des faits sémantiques de base très simples sur les systèmes d'annotation de documents. Ces faits sont généralement pré-conçus par les concepteurs de langages de balisage, mais la mise en œuvre spécifique dépend toujours des utilisateurs et des logiciels du langage de balisage.
Ce manque de capacités expressives oblige les utilisateurs de SGML/XML à deviner les relations sémantiques auxquelles les concepteurs de langages de balisage pensaient mais n'exprimaient pas formellement. Les développeurs de contenu doivent deviner l'intention et le travail du concepteur sur la base de ces inférences lors de l'encodage du contenu, sans être en mesure d'exprimer clairement leurs inférences et intentions à d'autres ou aux applications qui traitent le contenu encodé. Les concepteurs de logiciels doivent également deviner les intentions possibles des concepteurs de langages de balisage et intégrer cette hypothèse dans les outils logiciels et les systèmes d'application. Parfois, des conjectures de second ordre sont nécessaires : le concepteur du logiciel devine l'inférence du développeur de contenu sur l'intention du concepteur du langage de balisage.
De toute évidence, ces spéculations sont incomplètes, faillibles et non vérifiées. De plus, les processus de production et de mise en œuvre prennent du temps et demandent beaucoup de main d’œuvre, et la fonctionnalité et l’interopérabilité sont également médiocres. Equiper un document général en langage naturel d'une spécification SGML/XML ne résout pas parfaitement ce problème. Bien sûr, les documents ordinaires en langage naturel peuvent fournir quelques indications aux fournisseurs de contenu et aux ingénieurs logiciels, mais il n'existe actuellement aucune règle générale pour les documents SGML/XML. Dans tous les cas, les documents ordinaires en langage naturel ne sont pas sous une forme lisible par machine, et c'est le problème dont nous parlons avec le système de balisage SGML/XML.
L'idée d'une description sémantique traitable par machine liée à SGML et XML n'a pas encore été formée. C'est la source des problèmes actuels dans le domaine de l'ingénierie et des obstacles au développement futur. Il existe également peu d'études sémantiques connexes, mais de nombreux chercheurs l'ont fait. commencé à prêter attention à cette question. Le travail sur W3CSchema est lié à cela, mais ne couvre qu'une petite partie de ce problème (comme les types de données). Le projet « Web sémantique » du W3C est également lié à ce sujet, mais il vise à développer une technologie commune de représentation des connaissances basée sur XML. Nos recherches se concentrent sur la sémantique du balisage des documents, qui est cachée dans les systèmes de traitement de documents réels. On peut dire que l’essence du Web sémantique est de concevoir des balises sémantiques. Cependant, dans cet article, nous pensons que pour résoudre les problèmes ci-dessus, nous devons également considérer en profondeur la signification essentielle des balises.
Ensuite, cet article explique d'abord la signification du balisage à partir du contexte historique (les marqueurs jouent un rôle intéressant dans le développement des méthodes de traitement de texte) ; deuxièmement, il décrit en détail quels facteurs créent le besoin d'un balisage sémantique formel et quels facteurs ; déterminer les besoins sémantiques; enfin, une brève introduction est donnée à un projet de recherche auquel plusieurs institutions participent à la mise en œuvre - le projet BECHAMEL Markup Semantics, qui travaille dur pour résoudre le problème sémantique des marques.
2. Contexte historique
Les « marques » documentaires peuvent probablement être considérées comme faisant partie du système de communication, y compris les premiers écrits, copies, publications et impressions. Cependant, avec le développement du traitement et de la composition de textes numériques, l'utilisation de. les marques sont devenues conscientes et C'est courant et est devenu un domaine d'innovation important dans le développement de systèmes. La période des années 1960 aux années 1980 a été une période de développement complet et systématique des systèmes de balisage de documents, l'accent étant mis sur l'amélioration de l'efficacité et de la fonctionnalité de la composition numérique et du traitement de texte. Au début des années 1980, on travaillait encore sur un cadre théorique de marquage et on l’utilisait pour soutenir le développement de systèmes hautes performances. Certains résultats dans ce domaine ont été publiés, mais la plupart d'entre eux ne sont consignés que dans des documents de travail et des produits sous diverses formes standard.
Un point de vue qui a émergé à ce stade est que le document, en tant que réalisation intellectuelle, est plus approprié pour être résumé dans un modèle de structure hiérarchique ordonnée d'une série d'objets (tels que des chapitres, des paragraphes, des formules, etc.) plutôt que que le texte unidimensionnel Modèle de flux de caractères. Le flux de caractères est souvent mélangé à un grand nombre d'encodages qui définissent le format, des structures décrivant la mise en page (telles que les numéros de page, les colonnes, les lignes d'impression), des matrices de valeurs de pixels et d'autres expressions potentielles dans différents systèmes de traitement et de stockage de documents. . Le modèle de structure hiérarchique ordonnée résume deux annotations essentiellement différentes, à savoir les annotations qui identifient les objets de texte d'édition (titres, chapitres, etc.) et les annotations qui décrivent les exigences de mise en page. L'application de la première a donné certains résultats. Les éléments pertinents du document tels que les titres, les chapitres, les paragraphes, les équations, les citations, etc. peuvent être clairement marqués par des balises délimitatrices, et les éléments peuvent ensuite être traités indirectement via des règles mappées au type d'élément. Cette séparation du contenu et de la forme permet l’indirection et l’abstraction au niveau de base dans une économie combinatoire commune. Cette forme de séparation a une valeur pratique énorme et variée dans tous les aspects du traitement des documents et, plus important encore, elle semble éclairer la question de savoir ce qu'est exactement un document. Le balisage descriptif utilisé pour ce faire marque non seulement la portée de l'élément, mais porte également le sens que le modèle de document veut révéler (par exemple, ce texte est un chapitre).
Au début des années 1980, l'Institut national américain de normalisation (ANSI/ISO) a publié l'influente métagrammaire de balisage de documents SGML et a trié les travaux théoriques et analytiques antérieurs sur le balisage et la structure des documents. SGML fournit un formulaire lisible par machine pour définir un langage de balisage descriptif. En tant que méta-grammaire, SGML ne définit pas de langage de balisage, mais détaille les techniques de développement de langages de balisage lisibles par machine. Le cœur de cette définition est un mécanisme d'expression formelle similaire à la forme Backus-Naur (BNF). Ce mécanisme contient des règles pour définir les propriétés typées et leurs valeurs, ainsi que d'autres conceptions pour une abstraction et une indirection plus poussées (voir les commentaires sur les définitions de types de documents (DTD) et Backus-Noel Un résumé du degré de similarité des paradigmes). Structurellement, un document SGML est un arbre avec des branches ordonnées et des nœuds étiquetés, qui est le produit formel de sa DTD correspondante.
Après des années d'analyse et de pratique, les idées de base derrière SGML sont devenues bien connues. Tirant parti des normes industrielles au niveau de la méta-syntaxe et de l'innovation localisée au niveau du vocabulaire, les mécanismes uniques de SGML (méta-syntaxe de type paradigme backus-norr, paires attribut typé/valeur d'attribut, références d'entité, etc.) sont appliqués. Les programmes et les outils sont mis en œuvre efficacement. Le langage de balisage SGML lui-même semble évoluer tout en prenant en charge et en optimisant les flux de travail idéaux pour la conception, la mise en œuvre et l'utilisation du système documentaire. Du milieu des années 1980 au début des années 1990, un grand nombre de systèmes d’annotation basés sur SGML ont été développés.
Bien que le développement de SGML ait reçu beaucoup d'attention, l'idée était bonne et elle a été mise en œuvre avec succès dans de nombreux domaines. Au cours des dix premières années, presque personne ne l'a utilisé. De nombreux facteurs conduisent à ce résultat, mais le plus important est que SGML lui-même est trop complexe. En particulier, SGML contient de nombreux attributs facultatifs complexes, et le logiciel correspondant peut ne pas avoir à les implémenter du tout, ce qui entraîne un développement très lent. du logiciel SGML. Pire encore, si le document n'est pas validé avec une DTD, une analyse plus approfondie est impossible. Le contrôle des abréviations signifie que les limites des éléments ne peuvent pas être déterminées sans tenir compte de la syntaxe du document. De plus, SGML contient également d'autres attributs, qui rendront les outils d'analyse syntaxique existants inapplicables à la grammaire formelle et incapables d'effectuer une analyse syntaxique efficace.
En termes de publication et de communication en ligne, le système SGML peut être appliqué au HTML (Hypertext Markup Language). La version originale de HTML était vaguement définie et manquait d'instructions de syntaxe formelles. Plus tard, le SGMLDTD de HTML a suscité un intérêt, et il s'est avéré difficile de concevoir une DTD pour quelque chose qui était devenu la pratique « correcte ». Plus important encore, parce que dans la spécification HTML d'origine, les fournisseurs ont arbitrairement ajouté des balises programmatiques (telles que
Référez-vous au fragment suivant du document de balisage XML
Les lecteurs qui sont familiers avec la structure du
le balisage XML le feront connaître naturellement les balises dans les éléments du document P signifie paragraphe, qui a un titre. Le contenu du paragraphe après l'élément de titre forme le corps du texte. Il commence après l'élément de titre et se termine avant la balise de fermeture du paragraphe. La signification et l'utilisation des balises ne sont pas immédiatement évidentes, les auteurs ou les lecteurs peuvent donc se référer à la documentation de la collection de balises
Les balises évidentes sont conçues pour la commodité des lecteurs humains. Ces balises ne peuvent pas être extraites de la structure de données à l'aide d'un analyseur de documents. Comme le montre la figure 1, l'arbre d'analyse (utilisé par les programmeurs de feuilles de style) affiche l'en-tête, la citation et le texte avant et après la citation, chacun étant un nœud enfant distinct du paragraphe, mais l'arbre d'analyse ne peut pas afficher le caractéristiques suivantes : Le titre C'est un attribut du paragraphe entier, le texte est constitué de deux parties dans la structure du contenu et la citation est intégrée à l'intérieur du texte.
En fait, la structure des données elle-même n'a aucune distinction entre les paragraphes et les citations ou tout ce qui s'y rapporte. Une structure de données est simplement une structure graphique d'informations associées, comme un identifiant universel avec une valeur de « paragraphe ». Le programme doit être capable de déduire la cohérence entre le sens du document et les balises utilisées, et d'exploiter cette connaissance lorsque la structure arborescente est convertie d'une forme à une autre. Cependant, cette transformation (par exemple via XSLT, DSSSL ou un langage de programmation comme C) repose sur un raisonnement sémantique plutôt que sur un codage explicite
La figure 2 montre comment enrichir et améliorer l'arbre syntaxique en tirant parti des connaissances sémantiques. L'utilisation de la technologie de représentation des connaissances peut coder la relation entre le tout et les parties à un niveau supérieur, ce qui est plus adapté au traitement informatique. Cette figure montre une méthode traditionnelle de représentation de réseau sémantique. Bien entendu, d'autres méthodes sont également en cours de développement, notamment la représentation de cadre, la représentation de règles, la grammaire formelle et la représentation basée sur la logique. Le développement du projet Web sémantique (partie 8 de cet article) pourrait même fournir des méthodes de représentation adaptées aux langages de balisage eux-mêmes. Le nœud du problème est d’établir une hiérarchie d’abstractions, de relations et de contraintes qui ne peuvent pas être modélisées et appliquées par les analyseurs XML/SGML traditionnels.
Les connaissances en codage dans des fichiers lisibles par machine (tels que les DTD ou les structures syntaxiques) peuvent être utilisées pour vérifier les contraintes sémantiques du document, fournissant ainsi un modèle de document plus puissant pour les applications. Ces méthodes de représentation plus expressives apportent un soutien important à la conception et à la mise en œuvre de meilleurs systèmes de traitement de documents.
6 Application
Ces dernières années, le développement de nombreuses nouvelles technologies a rendu l'annotation structurée conventionnelle de plus en plus populaire. Ces technologies mettent principalement l'accent sur les aspects suivants de la gestion de l'information.
Conversions et unions. Pour les développeurs SGML/XML, la tâche la plus courante consiste à concevoir des formulaires de transformation permettant de passer d'une syntaxe d'application à une autre. Ceci est fait pour créer de nouveaux types de représentations de fichiers ou pour faciliter leur stockage dans une base de données. Parfois, les développeurs doivent intégrer ou adapter de grandes collections de documents numériques, chacun représenté par un langage de balisage non interopérable. Quelle que soit la taille de la conversion, la solution conventionnelle consiste à utiliser un langage de programmation de conversion qui agit directement sur l’arbre d’analyse. La structure arborescente générée lors de l'analyse du fichier source est convertie en une instance de structure arborescente dans la langue cible. L'arborescence convertie est sérialisée en nouvelles instances de document, graphiques ou audio.
Îles d'information. Ce problème est très similaire au problème de conversion ci-dessus, mais l'objectif n'est pas de convertir une forme de document en une autre forme de document, mais de permettre un stockage distribué de documents ou de fragments de documents afin de fournir une interface d'accès transparente commune aux utilisateurs du système. Bien qu'il ne soit pas nécessaire de convertir textuellement un document d'un langage de balisage à un autre, le système doit être capable de garantir que le contenu du document semble se fondre de manière transparente, même si l'encodage du document peut varier considérablement.
Disponibilité. Les outils de création adoptent de plus en plus le balisage structuré, qui est devenu une aubaine pour les utilisateurs malvoyants souhaitant accéder aux documents numériques. Le balisage déclaratif permet aux gens de lire à l'aide d'un lecteur d'écran ou d'un afficheur braille et de faire des inférences à l'aide de mnémoniques plutôt que de s'appuyer sur des indices graphiques. Cependant, à l'heure actuelle, de telles applications doivent s'appuyer sur les propres capacités ou logiciels d'interface de l'utilisateur, ainsi que sur des inférences structurelles basées sur le contenu ou la grammaire des balises indépendantes. Comme décrit dans la documentation sur l'ensemble de balises, les contraintes de syntaxe des balises ainsi que la signification et l'utilisation des balises dépendent strictement de la crédibilité de l'auteur du document. Malheureusement, les auteurs abusent souvent des balises. Le pire exemple est l'utilisation de balises « head » pour marquer certaines mises en page sur les pages Web.
Manipulation sûre. Une partie de l'impulsion en faveur du développement de langages de schéma de balisage plus expressifs (tels que le langage de schéma XML du W3C) réside dans la reconnaissance du fait que les erreurs de balisage, les utilisations abusives et les abus ont des conséquences bien plus graves qu'une sortie mal formatée. Le balisage déclaratif est utilisé non seulement dans le commerce électronique, mais également dans des domaines d'information sécurisés tels que les dossiers médicaux et l'industrie aéronautique. Les développeurs dans ces domaines doivent non seulement s'assurer que la structure grammaticale des documents numériques est standardisée, mais également s'assurer qu'ils respectent certains protocoles de sécurité pour assurer la sécurité du traitement, du stockage, de la transmission et de la présentation des documents.
7. Avantages de la sémantique du balisage
Les résultats de l'enquête actuelle du projet BECHAMEL montrent que la sémantique du balisage peut résoudre les problèmes ci-dessus des manières suivantes.
Description sémantique déclarative et lisible par machine. En ce qui concerne la situation actuelle, les concepteurs de langages de balisage structurés utilisent du texte en langage naturel pour exprimer la signification des balises et clarifier leur utilisation appropriée. Le système sémantique de balisage formel permet aux relations entre les ontologies d'être clairement exprimées par des programmes informatiques et permet un traitement automatisé.
Vérification de l'hypothèse. Dans un environnement documentaire sans ensemble formel de balises, un système capable d'interpréter la sémantique des balises fournit un environnement permettant de tester des suppositions et de valider des hypothèses. Dans cet environnement, un utilisateur anonyme d'un langage de balisage spéculera sur les propriétés et les règles qui, selon lui, sont appliquées de manière cohérente dans la base de données documentaire. Le logiciel de traitement de documents récupère ensuite les éléments du document qui sont ou non compatibles avec les règles supposées.
Amélioration des contraintes sémantiques. Un analyseur qui prend en charge la vérification de la validité peut non seulement effectuer une vérification syntaxique comme un analyseur sémantique conventionnel, mais également vérifier la supposition lors de la découverte ou de l'écriture de la sémantique. Un tel analyseur peut également appliquer des contraintes sémantiques. Cette opération est cohérente avec la vérification d'hypothèses, mais dans ce cas les contraintes sémantiques sont connues et standardisées.
API optimisées et plus expressives. La sémantique de balisage est utilisée lorsque des documents numériques sont transformés ou représentés à l'aide d'applications SGML et XML. Mais les propriétés et associations de niveau supérieur ne sont révélées que lorsque le programme est exécuté. Une sémantique formelle et lisible par machine enrichira les interfaces d'application et accélérera la conception des logiciels. Avec le développement et les modifications des langages de balisage, ces logiciels seront plus pratiques et plus sûrs à maintenir.
8. Travaux connexes
En réponse aux défis et problèmes ci-dessus, il existe de nombreuses autres technologies, normes et plans de recherche de traitement de documents. Nous passons ensuite en revue les idées existantes qui tentent de résoudre ces problèmes.
Web sémantique. Le Web sémantique fait référence à un certain nombre d’efforts de recherche et de normalisation interconnectés, comme certaines des idées actuelles autour des technologies de balisage et de représentation des connaissances. Le principal est le cadre de description des ressources du W3C, et bien sûr, il inclut également d'autres technologies, telles que la technologie de carte thématique de l'ISO. Le Web sémantique a une vaste portée et des objectifs ambitieux, visant à utiliser la technologie universelle de représentation des connaissances pour améliorer les langages de balisage, « favorisant ainsi le développement global des connaissances humaines ». La recherche et la standardisation du Web sémantique sont différentes de la pensée actuelle : au lieu d'une description sémantique d'un domaine spécifique, elle vise à réaliser une annotation sémantique des connaissances dans tous les domaines. L'objectif de recherche actuel est spécifiquement axé sur la « sémantique du balisage des documents » plutôt que sur le « balisage sémantique général ». Les progrès de la technologie du Web sémantique nous permettront d'utiliser les langages de balisage du Web sémantique pour encoder la sémantique des balises.
Modèle objet de document du W3C. Le modèle objet de document est une interface de programmation d'application qui est une structure de données hiérarchique générée après l'analyse de documents XML. Les gens souhaitent concevoir un système capable de fournir diverses interfaces pour la sémantique du balisage, similaires aux formulaires liés à la syntaxe du balisage fournis par le DOM, et finalement former un « DOM sémantique » pour compléter le DOM de la syntaxe du W3C.
Schéma W3C. XML Schema est un langage basé sur XML qui peut remplacer les DTD traditionnelles et être utilisé pour contraindre les documents XML. Le développement de ce langage a été motivé par les limitations des DTD, qui sont similaires aux problèmes auxquels nous avons été confrontés dans le projet BECHAMEL. Schema permet aux concepteurs de classes de documents de définir des types de données complexes, tout comme dans les langages de programmation de haut niveau. Cependant, afin d'encoder toutes les relations et contraintes dans la documentation des jeux de balises, nous avons également besoin d'une forme d'expression plus puissante que le schéma XML actuel. La forme architecturale du langage de structuration hypermédia/temporel (HyTime). Les techniques architecturales adaptables proviennent de la reconnaissance du fait que différentes applications de langage de balisage sont souvent codées avec des structures dont le style varie mais qui sont sémantiquement équivalentes. Les formulaires de schéma permettent aux concepteurs de classes de documents de mapper leurs propres instances d'éléments spécifiques à des instances de schéma plus générales qui sont plus faciles à mapper entre différentes applications. Ces mappages représentent en effet des formes contraintes de connaissances sémantiques et sont utiles pour résoudre les défis de transformation et d’intégration ci-dessus. Le projet BECHAMEL consiste, en partie, à construire un modèle qui exprime plus de relations sémantiques que de formes architecturales.
Ce qui précède est le contenu de la sémantique des balises XML. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !