Catégorie:Normes et standards informatiquesCatégorie:XML
XML (Extensible Markup Language ou langage de balisage extensible) est un standard du World Wide Web Consortium qui sert de base pour créer des langages balisés spécialisés; c'est un « méta langage ». En ce sens XML permet de définir un vocabulaire et une grammaire associée sur base de règles formalisées. Il est suffisamment général pour que les langages basés sur XML, appelés aussi dialectes XML, puissent être utilisés pour décrire toutes sortes de données et de textes.
Il s'agit donc partiellement d'un format de données.
L'extensibilité de XML est principalement assurée par la notion fondamentale d'espaces de noms (NameSpace).
Objectifs et utilité
L'objectif initial de XML était de faciliter le partage de textes et d'informations structurées, par exemple au travers de l'Internet, en séparant le contenu (les données) du contenant (la présentation des données). Il constitue une simplification de SGML bien qu'il apporte des améliorations quant à la portabilité, notamment grâce à l'intégration d'Unicode.
Les dialectes XML (XSLT, XML Schema, XHTML, RDF/XML, SOAP, SMIL, MathML, SVG) sont décrits de façon formelle : une structure de données simple est définie avec une DTD (Document Type Definition), une structure de données détaillée est définie avec un XML Schema ou tout autre DSDL (Document Schema Definition Languages, c'est-à-dire language de description de schéma).
Il existe des outils (qui peuvent être gratuits ou libres) permettant la manipulation de ces définitions : les processeurs XML [http://www.w3.org/XML/#software] . La disponibilité d'une syntaxe standard et d'outils de manipulation réduit significativement le coût du cycle de développement, permettant à des programmes de modifier et de valider, sans connaissances préalables, des documents écrits dans ces langages. En effet, avant l'avènement du populaire langage généraliste de description de données qu'est XML, les concepteurs de logiciels avaient pour habitude de définir leurs propres formats de fichiers ou leurs propres langages pour partager les données entre programmes (à l'exception de quelques standards professionnels tels qu'EDIFACT). Ceci nécessitait de concevoir et de programmer des analyseurs syntaxiques dédiés.
Fonctionnement
Un fichier XML est un fichier texte. Le codage des caractères est défini dans la première déclaration du document. Par défaut il s'agit de UTF-8, une transcription binaire particulière de Unicode, un format qui diffère peu de l'ASCII (sur-ensemble).
Le fichier XML est structuré en « éléments » à l'aide de « balises » qui marquent le début et la fin de chaque élément. Les éléments peuvent contenir du texte et éventuellement d'autres éléments (le mot « élément » est donc trompeur). L'ensemble des données du document XML est contenu dans un élément unique appelé « racine », élément qui contient tous les autres éléments.
Outre les éléments et le contenu des éléments, on trouve aussi dans un document XML:
- des commentaires (qui ne font pas partie des données au sens strict) ;
- des instructions de traitement (directives données au processeur XML) ;
- des « appels » de caractère (pour coder des caractères qui n'existent pas dans le codage choisi pour le document tout entier) ;
- des « appels » d'entités (permet l'appel d'une entité nommée qui est une sorte de « macro » de texte).
Règles fondamentales
L'efficacité de XML dépend fortement des normes strictes qui régissent sa structure. Pour être considéré comme un document XML, un document doit être « bien formé », c'est-à-dire qu'il doit être conforme aux règles suivantes :
- Dans sa première déclaration, le document doit être identifié comme un document XML. Cette première déclaration est nommée le prologue. Il doit contenir des informations sur la version de XML utilisée, le codage des caractères (si nécessaire) et indiquer également si le fichier XML est associé à une DTD ou à un autre langage de définition de document (XML Schema, Relax NGSchematron) ou s'il est autonome.
- Un document XML ne doit avoir qu'un seul élément racine, tous les autres éléments sont contenus dans cet élément, aussi appelé lélément document.
- Chaque élément XML doit commencer par une balise ouvrante et se terminer par une balise fermante. Un élément vide peut être représenté par une balise d'élément vide qui ressemble à ceci : <exemple/>; cette balise est considérée comme étant une balise ouvrante suivie d'une balise fermante. Ceci est utilisé pour éviter de devoir écrire <exemple></exemple> tout en conservant le bon formatage.
- La valeur d'un attribut doit être entre guillemets (simple « ' » ou double « " »).
- Les entités doivent être imbriquées et ne pas se recouvrir, c'est-à-dire qu'une entité ne doit pas commencer dans une entité et se terminer dans une autre.
Il est à noter que XML est sensible à la casse. Par exemple, « <Exemple></Exemple> » est une paire bien formée alors que « <Exemple></exemple> » n'en est pas une.
Contrairement au HTML, les balises XML indiquent ce que signifient les données et non la façon de les afficher (du moins par principe, chaque langage basé sur XML est libre de le suivre ou non).
Quand un document XML est bien formé et conforme à la DTD auquel il est associé, ce document est qualifié de valide.
Un document XML peut être associé à des feuilles de style XSLT, feuilles qui permettent de générer de nouveaux documents contenants des informations provenant du document XML. Il est ainsi possible de générer des fichiers XML ayant une structure différente du document initial (transformation), mais aussi d'autres documents : requêtes SQL, pages HTML, etc. Un document XML peut aussi être affiché par certains navigateurs Web (par exemple Internet Explorer ou Mozilla) en utilisant une feuille de style CSS.
Utilisations actuelles
Le succès de XML s'explique aussi par la définition d'interfaces de programmation (API) standard pour les processeurs XML. Les API les plus largement utilisées sont :
- SAX utilisé pour les traitements de documents à la volée (cette API est utilisée pour des traitements au fur et à mesure de la réception d'un document XML),
- DOM utilisé pour les accès directs aux éléments d'un document XML, grâce à la construction d'un arbre logique complet contenant toute la structure du document XML (cette API est utilisée quand le document est entièrement disponible). DOM permet également de générer de nouveaux documents XML, en créant un arbre logique, qu'on transforme ensuite en document XML.
Ces API sont les plus utilisées mais d'autres API existent, comme JAXP, JDOM et dom4J pour Java
XML est également utilisé dans le cadre d'architectures de type SOA (Service Oriented Architecture) pour les Web Services.
Une grande partie de l'interface des navigateurs Firefox et Mozilla est construite avec des langages utilisant XML.
OpenDocument est un standard XML émergent dans le domaine de la bureautique. Basé sur le format des premières versions d'OpenOffice.org, il permet maintenant l'interopérabilité avec d'autres applications comme KOffice.
- [http://www.teluq.ca/inf6450/ Cours en ligne sur le XML à l'Université du Québec à Montréal]
- [http://www.w3.org/ Site web du W3C (en)]
- [http://www.oasis-open.org/home/index.php Site web du consortium OASIS (en)]
- [http://www.w3.org/XML/ Page d'accueil XML du W3C (en)]
- [http://www.yoyodesign.org/doc/w3c/xml11/ Recommandation XML 1.1 (fr)]
- [http://pages.videotron.com/fyergeau/w3c/xml10/REC-xml-19980210.fr.html Recommandation XML 1.0 (fr)]
- [http://fr.selfhtml.org/xml/ SELFHTML: XML (fr)]
- [http://www.editix.com Editeur XML multi-platformes] Un exemple d'éditeur XML
- [http://www.ultra-fluide.com/ressources/fr/semark/presentation.htm Marquage d'un contenu XML (fr)] à partir de lexiques externes (outil XSLT)
- [http://www.xml-dev.com:8080/tldp/http%3a//www.jesuislibre.org/docbook/xml/xml.xml XML: Principe et utilisation (fr)]
ja:Extensible Markup Languageko:XMLth:XML
Catégorie:Format de données numériques
Un format ouvert est un format de donnéesinteropérable et dont les spécifications techniques sont publiques et sans restriction d'accès ni de mise en œuvre, par opposition à un format fermé (loi française n° 2004-575 du 21 juin 2004).
Format ouvert/fermé et format propriétaire
Un format est dit propriétaire s'il a été élaboré par une entreprise, dans un but essentiellement commercial.
Un format propriétaire peut être ouvert (le format PDF d'Adobe par exemple), ou fermé (le format '.doc' de Microsoft par exemple).
Les formats
Le format de données est la manière utilisée en informatique pour représenter et stocker des données. C'est une convention utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc.
Par exemple, si vous tapez ou éditez un article dans wikipedia, vous verrez qu'il existe une syntaxe pour faire votre mise en page, organiser les titres, mettre en gras etc. A l'affichage ensuite, vous ne verrez que des titres, du texte en gras, mais à l'édition vous verrez comment votre article est stocké de façon compréhensible par l'ordinateur. C'est un exemple de représentation des données, ouvert dans ce cas car la syntaxe est publique et consultable sur Syntaxe wikipédia.
Format ouvert
Un format de données est dit ouvert si son mode de représentation a été rendu public par son auteur et qu'aucune entrave légale ne s'oppose à sa libre utilisation (brevet, copyright, etc.).
Les formats ouverts sont généralement créés dans un but d'interopérabilité.
Un document enregistré dans un format ouvert sera indépendant du logiciel utilisé pour le créer, le modifier, le lire l'imprimer etc. C'est ce qu'on appelle l'interopérabilité : laisser libre choix du logiciel pour utiliser le document.
Format fermé
Un format de données est dit fermé si son auteur essaie, soit par la non-divulgation de son mode de réprésentation, soit par des entraves légales, d'en restreindre l'utilisation. Cela est généralement fait par des sociétés qui veulent empêcher que les fichiers créés avec leurs applications puissent être utilisés avec d'autres applications.
Ainsi par exemple un simple document texte peut être enregistré dans un format fermé, format qui va imposer que quiconque voulant consulter ce document doive au préalable aquérir le logiciel adéquat, payant dans la plupart des cas, alors qu'en enregistrant ce même document dans un format ouvert, il aurait été interopérable.
- http://www.openformats.org : Projet collaboratif de documentation sur les formats ouverts et sur les enjeux techniques, politiques et économiques de leur usage
- http://www.w3.org/TR/ : Rapports techniques du W3C sur les formats de fichiers comme HTML, XHTML, XML...(anglais)
- http://formats-ouverts.org/ : Blog de Thierry Stoehr traitant des formats ouverts (et donc aussi des formats fermés)
- [http://www.legifrance.gouv.fr/WAspad/UnTexteDeJorf?numjo=ECOX0200175L article de loi] définissant les formats ouverts
W3C
World_Wide_Web_Consortium Catégorie:Sigle
Langages balisés
Les langages de balisage représentent une classe de langages spécialisés dans l'enrichissement d'information textuelle. Ils opèrent grâce aux balises, unités sémantiques délimitant chacune un ensemble à l'intérieur d'un fichier texte.
L'inclusion de balises permet de transférer à la fois la structure du document et son contenu. Cette structure est compréhensible par un programme informatique, ce qui autorise un affichage personnalisé selon des règles pré-établies ; la typographie (en premier lieu la fonte) et d'autres éléments de présentation peuvent changer. On peut de plus inclure des éléments non-textuels.
Langages SGML
Les langages de balisage les plus utilisés sur le Web sont des langages dérivés de SGML.
- SGML - DocBook (SGML)
- HTML - XML - DocBook (XML)
- XHTML - XSL-FO
Balise HTML
Le langage à balises le plus couramment utilisé sur le World Wide Web est le HTML. En HTML, on utilise des balises pré-définies afin de préciser à l'intérieur d'un fichier texte des éléments tels les titres, les paragraphes, les acronymes, les citations.
Les éléments de blocs et les éléments en-ligne
On distingue les balises définissant un bloc des balises en-ligne par :
; le modèle de contenu : les éléments de bloc peuvent contenir à la fois données, éléments de bloc et éléments en-ligne ; les éléments en-ligne ne peuvent contenir que des éléments en-ligne et des données. «L'idée inhérente à cette distinction structurelle, c'est que les éléments de bloc créent des structures « plus grandes » que les éléments en-ligne.»
; le formatage : «Par défaut, les éléments de bloc sont formatés différemment des éléments en-ligne. En général, les éléments de bloc commencent sur une nouvelle ligne, et non les éléments en-ligne.»
«Les feuilles de style fournissent les moyens de spécifier la restitution d'éléments arbitraires, y compris si l'élément est rendu comme étant de type bloc ou de type en-ligne.»
L'ensemble des citations est tiré de la spécification standard HTML. [http://www.la-grange.net/w3c/html4.01/cover.html]
Dérive de la balise HTML
HTML n'était pas conçu pour inclure des concepts de présentation avancée, mais la structure d'un document, particulièrement une publication scientifique. Suite à son succès dans bien d'autres domaines, on a néanmoins utilisé au fur et à mesure des balises ne délimitant plus un ensemble sémantique.
Par exemple, les deux balises table et font :
- « table » (balise délimitant un tableau) a servi à présenter à l'écran de manière originale un contenu non tabulaire.
- « font » définissait une police de caractères ou une couleur à utiliser pour une partie du texte.
Cependant, un mouvement réclamant un bon usage de la balise HTML et l'utilisation d'autres moyens (comme les CSS) afin de séparer clairement structure et présentation a trouvé sa place sur le Web, et l'on reconsidère de plus en plus la balise HTML comme une unité sémantique.
Exemple
:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
On délimite la phrase « Lorem ipsum dolor sit amet, consectetuer adipiscing elit. » par la balise p (définissant un paragraphe) au moyen d'une balise d'ouverture (
) et une balise de fermeture (
). Cette phrase est inclue dans l'élément p, lui-même obligatoirement contenu dans l'élément (cet élément définit le début du corps du fichier HTML.)
XML
CSS
Le XML pousse très loin la description sémantique d'un fichier, permettant de délimiter avec précision, par exemple dans une recette, les , le , les , etc. Afin d'exploiter un document XML écrit de cette façon, on utilise des feuilles XSLT permettant de transformer un document XML en un autre type de document XML.
Toutefois, cette liberté dans le choix des balises permet à un fichier d'être écrit en XML sans pour autant délimiter des informations sémantiques : hors-contexte, la balise ne signifie rien, à moins de définir sa signification à l'intérieur d'un fichier de définition, appelé Doctype, associé au fichier XML.
Microsoft utilise un format XML pour ses formats de fichier Microsoft Office.
Le format des données est la manière utilisée en informatique pour représenter des données sous forme de nombres binaires. C'est une convention (éventuellement normalisée) utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Lorsque ces données sont stockées dans un fichier, on parle de format de fichier. Une telle convention permet d'échanger des données entre divers programmes informatiques ou logiciels, soit par une connexion directe soit par l'intermédiaire d'un fichier.
Typologie
On distingue un format dont la spécification est publiquement accessible, un format ouvert, d'un format fermé dont la spécification est secrète. Un format fermé correspond généralement à un logiciel seul capable de pleinement l'exploiter.
Une autre distinction s'opère entre un format normalisé, faisant l'objet d'une normalisation par une institution publique ou internationnale (ISO, W3C) et un format quelconque, qui peut devenir un standard de fait s'il est populaire. Un tel format est parfois normalisé par la suite.
Formats des nombres
Nombres entiers
Un nombre entier naturel est en général simplement représenté en binaire (en base 2), avec la règle de conversion classique. Lorsque l'on veut représenter un entier relatif, on réserve un bit pour désigner le signe (en général le bit le plus à gauche) ; on parle alors d'« entier signé ». La plupart du temps, les nombres négatifs seront codés selon la règle du complément à deux.
Par exemple, avec un octet on peut représenter :
- les entiers naturels de 0 (00000000 en binaire) à 255 (11111111 en binaire)
- les entiers relatifs de -128 (10000000 en binaire) à -1 (11111111 en binaire) et de 0 (00000000) à 127 (01111111) ; on code donc avec un octet les entiers de -128 à +127.
Voir l'article détaillé : Système binaire
Nombres fractionnaires
Pour les nombres fractionnaires, la convention de numération veut qu'en base n, « 0,a » désigne a·1/n (=a·n-1), « 0,0a » désigne a·1/n2 (=a·n-2)... Par exemple en base 10 (n = 10), « 0,005 » désigne 5·10-3.
Ainsi, le nombre 0,001 en binaire (n = 2) désigne 1·2-3=0,125.
Donc en informatique, la première solution consiste à attribuer un certain nombre de bits à droite aux puissances négatives de 2.
Une autre solution consiste à considérer les nombres comme des caractères (du texte), et à utiliser par exemple le format ASCII. Cependant, cela ne peut concerner que le stockage : l'ordinateur ne pouvant appliquer que l'arithmétique binaire, il faut nécessairement les convertir en binaire pour le calcul.
Voir l'article détaillé : Virgule flottante.
Formats de texte
Les textes sont formés de caractères en nombres finis (lettres, diacritiques, signes de ponctuation...). Il est donc simple d'attribuer un nombre à chaque caractère. Cette conversion caractère → nombre est définie par convention sous la forme d'une table, ou page de code. Les plus utilisés sont l'ASCII et l'Unicode.
Les textes comprennent aussi de la mise en page (alignement des paragraphes) et de la mise en forme (type de police de caractère, taille...). La solution retenue en général consiste à définir des mots de commande, des instructions, séparées du texte par un caractère spécial. Ainsi, en HTML, les instructions sont appelées « balises » et sont mises entre des crochets <...> ; en LaTeX, les instructions sont introduites par une barre de fraction inversée \. De ce fait, certains caractères sont réservés aux instructions et ne peuvent plus faire partie du texte ; il existe alors des « codes d'échappement », ou bien des instructions spéciales permettant de les représenter.
Le logiciel Microsoft Word a retenu une autre manière de stocker la mise en forme : les données (texte et images) sont mis en brut (sans mise en forme) dans le document, et la mise en forme est définie dans une partie du document appelée « saut de section » (section break). Le saut de section, hormis le fait de marquer un changement de mise en page (saut de colonne, saut de page), est une zone invisible contenant des pointeurs attribuant un formattage à une partie de la section. Cette solution se révèle très lourde et source de problèmes (corruption de documents) pour les documents très volumineux (plusieurs centaines de pages).
En 1672, Isaac Newton démontre à l'aide du prisme que la lumière blanche procède de l'addition de toutes les couleurs (Newton dénombrera sept couleurs, nombre arbitraire et culturellement marqué). En 1839, l'année de la naissance de la photographie, Michel Eugène Chevreul publie un livre expliquant les effets optiques produits par les couleurs et leur juxtaposition, c'est-à-dire non pas la superposition couches colorées (filtres) ou le mélange de couleurs, mais l'effet produit par des couleurs différentes mises côte-à-côte et vues de loin. En 1869 (le 7 mai précisément, sans se connaître et sans avoir travaillé ensemble... une des grandes coïncidences de l'histoire), Louis Ducos de Hauron et Charles Cros proposent à la Société française de photographie un procédé de leur invention qui permet d'obtenir des clichés en couleurs. Tous ces travaux marqueront Georges Seurat, le créateur du pointillisme (ou néo-impressionnisme), et seront à l'origine de l'impression en couleurs ou encore de la télévision en couleurs.
Il faudrait aussi parler des procédés textiles, notamment ceux de Jacquard, qui considèrent les images comme des matrices de points (l'industrie textile a d'ailleurs été la première à utiliser la programmation par cartes perforées). Tout ceci est à l'origine des images « en carte de point », ou en anglais, « bitmap ».
Les images à l'écran
On peut donc découper une image en points élémentaires, ou « pixel », et attribuer une couleur à ce pixel. La couleur est représentée par un nombre, la correspondance couleur → nombre étant faite par une « palette ».
Il est inutile de donner les coordonnées des points : si l'on donne la largeur de l'image en nombre n de points, alors les n premiers points représentent la première ligne, les points n+1 à 2n représentent la deuxième ligne... Il suffit alors de fixer par convention l'ordre de balayage, en l'occurrence l'ordre de lecture occidental (de gauche à droite et de haut en bas).
Ceci donne une image au format carte de points, souvent appelée image bitmap. C'est donc un canevas de points dont chacun se voit attribuer une valeur colorée. Les grandes différences entre les formats existants sont la profondeur de couleurs (1 bit : noir ou blanc, 8 bits : 256 couleurs, 24 bits : 16 millions de couleurs...) et le type de compression (sans compression, ou raw, avec une compression par motifs, avec une compression destructive...)
Par exemple, prenons une carte noir et blanc (1 pour blanc, 0 pour noir) définissant une image large de cinq points par la suite de chiffres suivante :
1000101010001000101010001
il faut découper cette carte par groupes de 5 bits :
10001
01010
00100
01010
10001
ce qui nous donne le dessin d'un « X » blanc sur fond noir.
Le format des données doit donc inclure, outre la liste des points, la largeur de l'image et la description de la palette ; ceci se fait en général en début de fichier (on parle d'« entête » de fichier).
Ce procédé a été utilisé pour envoyer un message dans l'espace à destination d'une intelligence extra-terrestre : il s'agit d'une image noir-et-blanc représentant le système solaire, de dimensions n sur m, n et m étant des nombres premiers. Les émetteurs espèrent ainsi que les récepteurs sauront décomposer les n×m en ses deux facteurs, et ainsi recomposer l'image.
Format vectoriel
Une image au format vectoriel est une image qui se décrit par des ensemble de coordonnées mathématiques et non par un canevas de point. Par exemple,
- pour décrire une ligne il suffit de connaître ses coordonnées de départ et d'arrivée ;
- pour un rectangle (ayant ses axes alignés aux axes du système de coordonnées en cours), deux points suffisent aussi (deux coins opposés)
- pour un cercle, un seul point, ainsi qu'un rayon, sont nécessaires
Une image vectorielle est donc un ensemble de coordonnées et de commandes que le programme d'affichage (à l'écran ou sur papier) se charge d'interpréter.
Pour des images pouvant être réduites facilement à des formes géométriques (typographisme, cartographie...), le format vectoriel est extrêmement économe.
La particularité des formats vectoriels est que leur rendu final ne dépend que de la résolution du périphérique de sortie. Ce type d'image peut aussi être agrandi sans effets gênants ; il n'y a pas d'effet de « pixellisation » (les lignes diagonales ou courbes n'apparaissent pas sous forme d'escalier).
Quelques formats vectoriels célèbres : AdobePDF (Acrobat), Adobe illustrator AI, encapsuled postscript EPS, Quark QXD, Macromedia Flash (format d'animation vectorielle), SVG, AutoCADDXF.
Représentation des couleurs
Format de son
Les formats de son se décomposent en trois parties:
- les formats bruts: le son n'est pas compressé, les valeurs issues de la conversion des valeurs analogiques en numérique (échantillonage) sont enregistrées dans l'ordre chronologique et par canal;
- les formats compressés: le son est compressé avec ou sans pertes suivant un algorithme adapté à la perception des sons de l'oreille humaine et/ou une compression classique;
- les formats de flux (stream): permet l'écoute par partie sans avoir la totalité du fichier.
(Voir le chapitre Formats classiques)
Compression des données
La compression des données est la technique qui consiste à transformer les données afin qu'elles prennent moins de place. Les données devant être décompressées avant d'être traitées, ceci se fait aux dépens de la rapidité, et avec un risque plus grand de perte de données.
L'idée de base est qu'en général, des éléments se répètent dans les fichiers. On a donc intérêt à représenter les éléments se répétant souvent par des nombres plus petits (c'est-à-dire prenant moins de bits).
On peut distinguer deux types de compression :
- les compressions sans a priori sur les données : ce sont des algorithmes qui travaillent uniquement sur les nombres, quelle que soit l'information portée par ces nombres ; ils sont donc généraux, pas spécifiques aux données ; on peut distinguer :
- les algorithmes à table stockée : l'algorithme fait une première analyse pour repérer les éléments se répétant, et construit une table de correspondance avec un code raccourci pour chaque élément répétitif ; la taille occupée par la table de stockage fait que ce procédé est plutôt adapté aux gros fichiers ;
- les algorithmes à table construite à la volée : la table de corrspondance est construite de manière systématique, sans analyse préalable du fichier ; elle peut être reconstruite à la volée à partir du fichier compressé ; c'est par exemple le cas de l'algorithme de Lempel-Ziv-Welch (LZW)
- les compressions spécifiques aux données : si l'on connaît les données, on peut optimiser l'algorithme ; par exemple si l'on sait que l'on a affaire à un texte, on peut se baser sur la fréquence d'utilisation des mots dans le langage ; on distingue deux sous-catégories :
- les compressions sans perte de qualité ;
- les compressions avec perte de qualité : la première idée est de faire un « sous-échantillonnage », c'est-à-dire de simplement dégrader la qualité des données en étudiant les sens et la manière dont le cerveau interprète les informations, on peut dégrader certaines caractéristiques des données peu sensibles, donc sans trop altérer la qualité globale des données ; ainsi, si l'oreille humaine est peu sensible à certaines gammes de fréquences, on peut dégrader (voire supprimer) certaines parties du spectre et pas d'autre ; les algorithmes de compression d'image et de film JPEG et MPEG utilisent une perte de qualité.
Voir l'article détaillé Compression de données.
Espace de noms (NameSpace)
Dans le monde des technologies de l'information cette notion couvre pas mal de domaines et je vais essayer de l'expliquer à travers la technologie XML.
"Bonjour, how are you?"
Cette phrase n'a de sens que si vous devinez quelle est la langue utilisée pour chacunes de ses parties. Si vous ne pouvez deviner quelles sont les langues utilisées et donc vers quel dictionnaire vous devez vous diriger il serait peut être bon d'offrir plus d'informations:
"FR:Bonjour, EN:how are you?"
Nous avons maintenant identifié chacune des entités d'information comme étant différentes; elles n'appartiennent pas au même ESPACE. Il nous reste maintenant à définir cet ESPACE.
FR --> Dictionnaire Français
EN --> DIctionnaire Anglais
En XML cela se formalisera de la manière suivante:
Le terme d'origine anglaise Internet a été dérivé du concept dinternetting
(interconnecter des réseaux) dont la première utilisation documentée remonte à octobre 1972 par Robert Kahn [http://www.cnri.reston.va.us/bios/kahn.html] au cours de la première ICCC (International Conference on Computer Communications) à Washington.
Au cours de l'histoire de la création d'Internet, on trouve différents noms qui sont parfois considérés comme ancêtres du terme Internet : internetting, interconnected networks, internetworking, internetwork, international inter-connected networks, Inter Net, inter-net, International Network. Toutefois les origines exactes du terme Internet restent à déterminer. Ce flou a favorisé l'apparition de multiples explications faisant office d'origine. Aujourd'hui ceux qui prétendent détenir la véritable origine du terme sont légion (un exemple courant est de dire quInternet
est l'acronyme dinterconnected networks).
Toutefois on sait que c'est le 1983 que le nom Internet, déjà en usage pour désigner l'ensemble d'ARPANET et des réseaux, est devenu officiel.
La définition de ce qu'est Internet n'est pas évidente à expliciter de manière précise sans entrer dans les détails techniques, ce qui tend à une vulgarisation de la définition et facilite les confusions et imprécisions en français. Une des confusions les plus courantes porte sur le Net (en français « réseau ») et le Web (en français « toile » dans le sens « toile d'araignée »).
En réaction à l'importance croissante du « phénomène Internet » et la prolifération de termes relatifs à ce phénomène dans le langage, il y a eu diverses publications au Journal officiel de la République française [http://www.journal-officiel.gouv.fr/]. L'une d'elle indique qu'il faut utiliser le mot Internet comme un nom commun, c'est-à-dire sans majuscule. L'Académie française recommande de dire « l'internet », comme on dit souvent « le web ».
En anglais, on utilise un article défini et une majuscule pour parler dInternet.
Cet usage vient du fait quInternet
est de loin le plus étendu (mondial) et le plus grand internet du monde. Un internet (avec un i minuscule) est un terme anglais utilisé pour désigner une interconnexion de réseaux informatiques par internetworking (voir l'article anglais internetworking).
L'usage courant fait référence à Internet de différentes manières. Outre les recommandations officielles, il n'est pas rare de rencontrer les termes suivants : « le Net » ou « le net », « Internet », « l'Internet », « le réseau des réseaux » ou plus simplement « le réseau » ou « le Réseau » décliné parfois en « Le réseau ». Certains termes sont utilisés à tort pour faire référence à Internet, par exemple : « la Toile », « le web » ou « le Web » (the Web en anglais), mais cela désigne la Toile et non pas Internet. Cette confusion entre web et net existe aussi en anglais.
- Internet a été conçu pour relier des réseaux informatiques hétéroclites sur des distances intercontinentales : universitaires, d'entreprises, gouvernementaux, domestiques, etc., qui peuvent eux-mêmes relier des sous-réseaux et finalement des ordinateurs.
Histoire
Les origines
Les mémos que J.C.R. Licklider du Massachusetts Institute of Technology (MIT) écrivit en août 1962 sont les plus anciens textes décrivant les interactions sociales qui seraient possibles avec un réseau d'ordinateurs. Cela devait notamment faciliter les communications entre chercheurs du Defense Advanced Research Projects Agency (DARPA). En octobre 1962, Licklider fut le premier chef du programme de recherche en informatique du DARPA. Il convainquit ses successeurs Ivan Sutherland, Bob Taylor et le chercheur du MIT Lawrence G. Roberts de l'intérêt des réseaux informatiques.
En 1961, Leonard Kleinrock du MIT avait publié le premier texte théorique sur les télécommunications par paquets et en 1964 il publia le premier livre sur le sujet.
En 1965, Roberts testa avec Thomas Merrill la première connexion informatique à longue distance, entre le Massachusetts et la Californie. Le résultat montra que des ordinateurs pouvaient travailler ensemble à distance, mais que le mode de télécommunication par établissement de circuit du système téléphonique était inadapté. Le concept de communication par paquets de Kleinrock s'imposa.
En 1966, Roberts fut engagé par Taylor au DARPA pour concevoir l'ARPANET. Il publia les plans en 1967. En présentant ce texte, il découvrit deux autres groupes de chercheurs travaillant indépendamment sur le même sujet : un groupe du National Physics Laboratory (NPL) du Royaume-Uni avec Donald Davies et Roger Scantlebury, et un groupe de la RAND Corporation avec Paul Baran.
Entre 1962 et 1965, le groupe de la RAND avait étudié la transmission par paquets pour l'armée américaine. Le but était de pouvoir maintenir les télécommunications en cas d'attaque (éventuellement atomique), ce que permet une transmission par paquets dans un réseau non centralisé. Il s'agit d'un développement indépendant d'ARPANET : bien que probablement robuste face à une telle attaque, ARPANET n'a été conçu que pour faciliter les télécommunications entre chercheurs.
En août 1968, le DARPA accepta de financer le développement du matériel de routage des paquets d'ARPANET. Ce développement fut confié en décembre à un groupe de la firme BBN (Bolt Beranek and Newman) de Boston. Ce dernier travailla avec Robert E. Kahn (Bob Kahn) sur l'architecture du réseau. Roberts améliorait les aspects topologiques et économiques du réseau. Kleinrock préparait des systèmes de mesure du réseau.
En septembre 1969, BBN installa le premier équipement à l'université de Californie (UCLA) où travaillait Kleinrock. Le second nœud du réseau fut installé au Stanford Research Institute (SRI) où travaillait Doug Engelbart sur un projet d'hypertexte. Deux nœuds supplémentaires furent ajoutés avec l'université de Santa Barbara et l'université de l'Utah. Fin 1969, ARPANET comptait donc quatre nœuds.
Le Network Working Group (NWG) conduit par Steve Crocker finit le protocole de communication poste à poste NCP en décembre 1970. Ce protocole fut adopté entre 1971 et 1972 par les sites branchés à ARPANET. Ceci permit le développement d'applications par les utilisateurs du réseau.
En 1972, Ray Tomlinson mit au point la première application importante : le courrier électronique. En octobre 1972, Kahn organisa la première démonstration à grande échelle d'ARPANET à l'International Computer Communication Conference (ICCC). C'était la première démonstration publique.
Le concept d'Internet est né d'ARPANET. L'idée était de permettre la connexion entre des réseaux divers : ARPANET, des communications avec les satellites, des communications par radio. Cette idée fut introduite par Kahn en 1972 sous le nom de Internetting. Le protocole NCP d'ARPANET ne permettait pas d'adresser des hôtes hors d'ARPANET ni de corriger d'éventuelles erreurs de transmission. Kahn décida donc de développer un nouveau protocole, qui devint finalement TCP/IP.
En parallèle, un projet inspiré par ARPANET était dirigé en France par Louis Pouzin : le projet Cyclades. De nombreuses propriétés de TCP/IP ont été aussi développées, plus tôt, pour Cyclades. Pouzin et Kahn indiquent que TCP/IP a été inspiré par Cyclades.
En 1973, Kahn demanda à Vinton G. Cerf (Vint Cerf) (parfois appelé père de l'Internet) de travailler avec lui, car Cerf connaissait les détails de mise en œuvre de NCP. Le premier document faisant référence à TCP est écrit en 1973 par Cerf : A Partial Specification of an International Transmission Protocol. La première spécification formelle de TCP date de décembre 1974, c'est le RFC 675.
La version initiale de TCP ne permettait que la communication en établissant un circuit virtuel. Cela fonctionnait bien pour le transfert de fichiers ou le travail à distance, mais n'était pas adapté à des applications comme la téléphonie par Internet. TCP fut donc séparé de IP et UDP proposé pour les transmissions sans établissement d'un circuit.
Gouvernance/Gestion
Un certain nombre d'organismes sont chargés de la gestion d'Internet, avec des attributions spécifiques. Ils participent à l'élaboration des standards techniques, l'attribution des noms de domaines, des adresses IP, etc. :
- ICANN ; sous la tutelle du ministère du Commerce américain.
- IETF ;
- ISOC.
- Liens externes
- http://www.gouvernance-internet.com.fr (non maintenu)
- http://smsi.internet.gouv.fr/ site officiel de la contribution française au sommet mondial de la société de l'information
Technique
Internet est composé d'une multitude de réseaux répartis dans le monde entier. Chaque réseau est rattaché à une entité propre (université, fournisseur d'accès à Internet, armée) et se voit attribué un identifiant unique appelé Autonomous System (AS). Afin de pouvoir communiquer entre eux, les réseaux s'échangent des données, soit en établissant une liaison directe, soit en se rattachant à un nœud d'échange (point de peering).
Chaque réseau est donc connecté à plusieurs autres réseaux. Lorsqu'une communication doit s'établir entre deux ordinateurs appartenant à des AS différents, il faut alors déterminer le chemin à effectuer parmi les réseaux. Aucun élément d'Internet ne connaît le réseau dans son ensemble, les données sont simplement redirigées vers un autre nœud selon des règles de routage. Environ 50 % du trafic mondial d’Internet passe par l'État de Virginie. Un très gros spammeur (envoi de pourriels) habitant dans un État voisin y est condamné en novembre 2004 à neuf ans de prison.
Internet fonctionne suivant un modèle en couches, calqué sur le modèle OSI. Les éléments appartenant aux mêmes couches utilisent un protocole de communication pour s'échanger des informations.
Un protocole est un ensemble de règles qui définissent un langage afin de faire communiquer plusieurs ordinateurs. Ils sont définis par des normes ouvertes, les RFC.
Chaque protocole a des indications particulières et, ensemble, ils fournissent un éventail de moyens permettant de répondre à la multiplicité et à la diversité des besoins sur Internet.
Les principaux sont les suivants :
- IP (Internet Protocol) : protocole réseau qui définit le mode d'échange élémentaire entre les ordinateurs participant au réseau en leur donnant une adresse unique sur le réseau.
- TCP : responsable de l'établissement de la connexion et du contrôle de la transmission. C'est un protocole de remise fiable. Il s'assure que le destinataire a bien reçu les données, au contraire d'UDP.
- HTTP (HyperText Transfer Protocol) : protocole mis en œuvre pour le chargement des pages Web.
- HTTPS : pendant du HTTP pour la navigation en mode sécurisé.
- FTP (File Transfer Protocol) : protocole utilisé pour le transfert de fichiers sur Internet.
- SMTP (Simple Mail Transfer Protocol) : mode d'échange du courrier électronique en envoi.
- POP3 (Post Office Protocol version 3) : mode d'échange du courrier électronique en réception.
- IMAP (Internet Message Access Protocol) : un autre mode d'échange de courrier électronique.
- IRC (Internet Relay Chat) : protocole de discussion instantanée.
- NNTP (Network News Transfert Protocol) : protocole de transfert de message utilisé par les forums de discussion Usenet - SSL ou TLS : protocoles de transaction sécurisée, utilisés notamment pour le paiement sécurisé.
- UDP : permet de communiquer, de façon non fiable mais légère, par petits datagrammes.
- DNS (Domain Name System) : système de résolution de noms Internet.
- ICMP (Internet control message protocol) : protocole de contrôle du protocole IP.
Indépendamment du transfert entre deux points, quelques protocoles sont nécessaires aussi pour que les passerelles puissent s'échanger des informations de routage. Ce sont Interior Gateway Protocol (IGP), Exterior Gateway Protocol (EGP) et Border Gateway Protocol (BGP).
Citations
- Je suis convaincu qu'Internet est une expérience pour voir à combien d'adultes l'on peut faire fixer un écran sur lequel rien d'intéressant ne se passe, et où souvent il ne se passe rien - Jerry Pournelle.
- Regardez bien au fond du flacon d'où est sortie la bulle Internet : vous verrez qu'il y reste encore beaucoup de savon ! - Jean-Pierre Raffarin - Sur internet, on peut écouter la radio tout en payant le téléphone. - Anne Roumanoff - Internet. On ne sait pas ce qu'on y cherche mais on trouve tout ce qu'on ne cherche pas. - Anne Roumanoff
- [http://stielec.ac-aix-marseille.fr/electron/cours.htm#internet Internet et réseaux] ;
- [http://www.9atech.com/page_fete1.html Une histoire alternative et distrayante de l'Internet.];
- [http://www.ietf.org/rfc/rfc1000.txt RFC1000], l'histoire des débuts de l'Internet et des premiers RFC;
- [http://www.isoc.org/internet/history/brief.shtml A Brief History of the Internet], par l'ISOC ;
- [http://www.computerhistory.org/exhibits/internet_history/ Internet history], histoire illustrée ;
- [http://www.cs.utexas.edu/users/chris/think/ THINK protocols], par l'université du Texas à Austin, recherche historique ;
- [http://www.ibiblio.org/pioneers/index.html Internet Pioneers], avec plusieurs biographies ;
- [http://www.anderbergfamily.net/ant/history/ History of the Internet and Web], chonologie ;
- [http://opte.org/ The Opte Project], cartographie d'Internet ;
- [http://www.acm.org/ubiquity/views/v6i5_simoneli.html A Concise Guide to the Major Internet Bodies].
- [http://www.alexa.com/ Alexa], Mesure d'audience ;
Catégorie:Internetfiu-vro:Internetja:インターネットko:인터넷ms:Internetsimple:Internetth:อินเทอร์เน็ต
Unicode
Unicode est un standard informatique développé par le Consortium Unicode qui vise à donner à tout caractère de n'importe quel système d'écriture de langue un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.
But
Unicode, dont la première publication remonte à 1991, a été développé dans le but de remplacer l'utilisation de pages de code nationales.
Ces pages de code présentaient en effet quelques problèmes. Par exemple lorsqu'était prévu un caractère « signe monétaire », le même texte autorisant aux USA une dépense en dollars pouvait une fois transmis par courrier électronique au Royaume-Uni autoriser la même dépense en livres sterling, sans que quoi que ce soit ait été modifié au texte !
Dans la pratique, tous les systèmes d'écriture ne sont pas encore présents, car un travail de recherche documentaire auprès de spécialistes peut encore s'avérer nécessaire pour des caractères rares ou des systèmes peu connus (parce que disparus, par exemple).
Cependant, tous les systèmes les plus utilisés dans le monde sont représentés, ainsi que des règles sur la sémantique des caractères, leurs compositions et la manière de combiner ces différents systèmes (par exemple, comment insérer un système d'écriture de droite à gauche dans un système d'écriture de gauche à droite ?).
Normes et versions
Le travail sur Unicode est parallèle et synchronisé avec celui sur la norme ISO/CEI 10646 dont les buts sont les mêmes. L'ISO/CEI 10646, une norme internationale publiée en français et en anglais, ne précise cependant ni les règles de composition de caractère, ni les propriétés sémantiques des caractères.
Unicode aborde cependant la problématique de la casse, du classement alphabétique, et de la combinaison d'accents et de caractères. Les caractères de la version 3.0 d'Unicode ont les mêmes identifiants que ceux de la norme ISO/CEI 10646:2000.
La version 3.2 d'Unicode classe 95 221 caractères, symboles et directives.
La version actuelle est la version 4.1 de 2005.
Des problèmes semblent cependant exister, pour le codage des caractères chinois .
La limite de l'octet
Là où l'ASCII utilisait jadis 7 bits et ISO 8859-1 8 bits (comme la plupart des pages de codes nationales), Unicode, qui rassemble les caractères de chaque page de code, avait besoin d'utiliser plus que les 8 bits d'un octet. La limite fut dans un premier temps fixée à 16 bits puis est désormais placée entre 20 et 21 bits par caractère.
UTF, Unicode Transformation Format
Dans un but de compression simple et raisonnable, Unicode accepte plusieurs formes de présentation pour représenter un caractère (au sens de symbole). Citons :
- UTF-8 ;
- UTF-16 ;
- UTF-32.
Le chiffre après UTF représente le nombre minimal de bits avec lequel un caractère est codé.
UTF-8
L'UTF-8, spécifié dans le RFC 2279, est le plus commun pour les applications Internet. Son codage de taille variable lui permet d'être en moyenne moins coûteux en occupation mémoire. Mais cela ralentit nettement les opérations où interviennent des extractions de sous-chaînes, car il faut compter les caractères depuis le début de la chaîne pour savoir où se trouve le premier caractère à extraire. L'UTF-8 assure aussi une compatibilité avec les manipulations simples de chaînes en ASCII dans les langages de programmation.
UTF-16
L'UTF-16 est un bon compromis lorsque la place mémoire n'est pas trop restreinte, car la très grande majorité des caractères Unicode assignés pour l'instant, qui sont les caractères les plus fréquemment utilisés, peut être représentée sur 16 bits.
Il a l'avantage que tous les caractères prennent, au minimum, la même place (2 octets).
C'est notamment l'encodage qu'utilise la plateforme Java en interne.
UTF-32
L'UTF-32 est utilisé lorsque la place mémoire n'est pas un problème et que l'on a besoin d'avoir accès à des caractères de manière directe et sans changement de taille (hiéroglyphes).
Les polices de caractères Unicode
Avant de parler de police Unicode, il faut bien comprendre un principe essentiel : dire qu'Unicode code des caractères revient à dire qu'il attribue un numéro à des symboles. Unicode ne code en revanche pas les descriptions des caractères, les glyphes, c'est-à-dire la représentation graphique du caractère. Il n'y a donc pas une bijection entre la représentation du caractère et son numéro comme c'est le cas dans une police ASCII ou latin-1 classique.
Ainsi, le caractère français é peut-il être décrit de deux manières : soit en utilisant directement le numéro correspondant au é, soit en faisant suivre le numéro du 'e' par celui de l'accent aigu sans chasse. Quelle que soit l'option choisie le même glyphe sera affiché. On dira du premier caractère qu'il est précomposé, du second que c'est une composition (deux caractères forment un seul glyphe composé des deux). De nombreux glyphes sont dans ce cas et peuvent être codés de ces deux manières. Le plus souvent, le glyphe précomposé est préférable (c'est le cas pour le grec polytonique, par exemple, lequel, codé en décomposition, peut ne pas être satisfaisant graphiquement : selon les polices de caractères, les différents constituants du glyphe étant parfois mal disposés et peu lisibles).
De même, certains systèmes d'écriture, comme la devânagarî ou les caractères arabes, nécessitent un traitement complexe des ligatures : les graphèmes changent en effet de forme en fonction de leur position et/ou par rapport à leurs voisines (cf. Variante contextuelle et Lettre conjointe).
On comprend donc que le terme de police Unicode doit être utilisé très prudemment. Avoir une police qui représente un certain nombre ou toutes les représentations graphiques que l'on peut obtenir avec Unicode n'est pas suffisant, il faut en plus que le système d'affichage possède les mécanismes de représentation idoines (ce que l'on nomme le moteur de rendu) capable de gérer les ligatures, variantes contextuelles et formes conjointes de certaines écritures. Au contraire, une police qui ne représente que certains caractères mais qui sait comment les afficher mérite mieux le terme de police Unicode.
Le moteur de rendu doit comporter dans certains cas des informations sur les coupures de lettres. Ainsi la lettre allemande s/z, lorsqu'elle se trouve sur une coupure, se traduit en deux s : un avant et un après la coupure.
Détails techniques
Bibliothèques logicielles
La bibliothèque multiplateforme ICU permet de manipuler des données unicodées. Un support d'Unicode spécifique à certaines plateformes (non compatible quant au code-source) est également fourni par les systèmes modernes (Java, MFC, GNU/Linux).
Partitionnement
Le partitionnement à jour peut être trouvé sur le site officiel d'Unicode. Cependant, vu le rôle important d'Unicode, (ISO 10646) on décrira ici les principaux blocs de caractères. Les noms français sont les noms officiels de l'ISO/CEI 10646, la norme internationale bilingue qui reprend les mêmes caractères qu'Unicode. Ils sont aussi officiels que les noms anglais.
# Note: La casse des noms de bloc n'est pas normative.
# « Latin de base » est donc équivalent à « LATIN DE BASE »
#
#
# Code de début ..Code de fin; nom du Bloc
0000..007F; Latin de base
0080..00FF; Supplément Latin-1
0100..017F; Latin étendu A
0180..024F; Latin étendu B
0250..02AF; Alphabet phonétique international (API)
02B0..02FF; Lettres modificatives avec chasse
0300..036F; Diacritiques
0370..03FF; Grec et copte
0400..04FF; Cyrillique
0500..052F; Supplément cyrillique
0530..058F; Arménien
0590..05FF; Hébreu
0600..06FF; Arabe
0700..074F; Syriaque
0780..07BF; Thâna
0900..097F; Dévanâgarî
0980..09FF; Bengali
0A00..0A7F; Gourmoukhî
0A80..0AFF; Goudjerate
0B00..0B7F; Oriya
0B80..0BFF; Tamoul
0C00..0C7F; Télougou
0C80..0CFF; Kannara
0D00..0D7F; Malayalam
0D80..0DFF; Singhalais
0E00..0E7F; Thaï
0E80..0EFF; Lao
0F00..0FFF; Tibétain
1000..109F; Birman
10A0..10FF; Géorgien
1100..11FF; Jamos hangûl
1200..137F; Éthiopien
13A0..13FF; Chérokî
1400..167F; Syllabaires autochtones canadiens
1680..169F; Ogam
16A0..16FF; Runes
1700..171F; Tagalog ou tagal
1720..173F; Hanounóo
1740..175F; Bouhid
1760..177F; Tagbanoua
1780..17FF; Khmer
1800..18AF; Mongol
1900..194F; Limbu
1950..197F; Taï-le
19E0..19FF; Symboles khmers
1D00..1D7F; Supplément phonétique
1E00..1EFF; Latin étendu additionnel
1F00..1FFF; Grec étendu
2000..206F; Ponctuation générale
2070..209F; Exposants et indices
20A0..20CF; Symboles monétaires
20D0..20FF; Signes combinatoires pour symboles
2100..214F; Symboles de type lettre
2150..218F; Formes numérales
2190..21FF; Flèches
2200..22FF; Opérateurs mathématiques
2300..23FF; Signes techniques divers. 2336 à 237A = symboles APL
2400..243F; Pictogrammes de commande
2440..245F; Reconnaissance optique de caractères
2460..24FF; Alphanumériques cerclés
2500..257F; Filets
2580..259F; Pavés
25A0..25FF; Formes géométriques
2600..26FF; Symboles divers
2700..27BF; Casseau
27C0..27EF; Divers symboles mathématiques - A
27F0..27FF; Supplément A de flèches
2800..28FF; Combinaisons Braille
2900..297F; Supplément B de flèches
2980..29FF; Divers symboles mathématiques-B
2A00..2AFF; Opérateurs mathématiques supplémentaires
2B00..2BFF; Divers symboles et flèches
2E80..2EFF; Formes supplémentaires des clés CJC
2F00..2FDF; Clés chinoises (K'ang-hsi ou Kangxi)
2FF0..2FFF; Description idéophonographique
3000..303F; Symboles et ponctuation CJC
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Jamos de compatibilité hangûl
3190..319F; Kanboun
31A0..31BF; Bopomofo étendu
31F0..31FF; Extension phonétique katakana
3200..32FF; Lettres et mois CJC cerclés
3300..33FF; Compatibilité CJC
3400..4DB5; Supplément A aux idéophonogrammes unifiés CJC
4DC0..4DFF; Hexagrammes du Classique des mutations ou Yi-king
4E00..9FA5; Idéophonogrammes unifiés CJC
A000..A48F; Syllabaire yi des Monts frais
A490..A4CF; Clés yi
AC00..D7A3; Hangûl
D800..DB7F; Demi-zone haute
☒DB80..DBFF; Partie à usage privé de la demi-zone haute
DC00..DFFF; Demi-zone basse
☒E000..F8FF; Zone à usage privé
F900..FAFF; Idéogrammes de compatibilité CJC
FB00..FB4F; Formes de présentation alphabétiques
FB50..FDFF; Formes A de présentation arabes
FE00..FE0F; Sélecteurs de variante
FE20..FE2F; Demi-signes combinatoires
FE30..FE4F; Formes de compatibilité CJC
FE50..FE6F; Petites variantes de forme
FE70..FEFF; Formes B de présentation arabes
FF00..FFEF; Formes de demi et pleine chasse
FFF0..FFFF; Caractères spéciaux
10000..1007F; Syllabaire linéaire B ou syllabaire mycénien
10080..100FF; Idéogrammes du linéaire B
10100..1013F; Nombres égéens
10300..1032F; Alphabet italique
10330..1034F; Gotique
10380..1039F; Ougaritique
10400..1044F; Déséret
10450..1047F; Shavien
10480..104AF; Osmanya
10800..1083F; Syllabaire chypriote
1D000..1D0FF; Symboles musicaux byzantins
1D100..1D1FF; Symboles musicaux occidentaux
1D300..1D35F; Symboles du Classique du mystère suprême
1D400..1D7FF; Symboles mathématiques alphanumériques
#
20000..2A6D6; Supplément B aux idéogrammes unifiés CJC
2F800..2FA1F; Supplément aux idéogrammes de compatibilité CJC
#
E0000..E007F; Étiquettes
E0100..E01EF; Supplément de sélecteur de variante
#
☒FFF80..FFFFF; Zone supplémentaire A à usage privé
☒10FF80..10FFFF; Zone supplémentaire B à usage privé
Les zones à usage privé indiquées par le symbole ☒ ne contiennent pas les mêmes œils d'une police à l'autre et doivent donc être évités.
- [http://www.unicode.org Page d'accueil du consortium Unicode] (anglais);
- [http://hapax.qc.ca traduction française officielle de l'ISO/CEI 10646 et Unicode] (français);
- [http://www.decodeunicode.org/ DecodeUnicode - Unicode WIKI], chaque charactère du BMP d'Unicode avec 50.000 gifs dans trois tailles (anglais, allemand)
- Chapitres 2, 3, et 4 du livre [http://www.oreilly.fr/catalogue/284177273X.html Fontes et codages] ;
- [http://www.cs.uu.nl/~otfried/Mule/unihan.html essai] sur le problème han (en anglais) ;
- [http://www.tron.org page d'accueil de TRON] ;
- [http://www.alanwood.net/unicode/ site recensant les différents blocs d'Unicode avec pages de tests, conseils et liens vers les polices permettant d'afficher les blocs en question] ;
- [http://unicode.coeurlumiere.com/ table des caractères Unicode de 1 à 65535] ;
- [http://www.unicode.org/reports/tr10/ la question du tri] ;
- [http://hapax.qc.ca/BabelMap_fr.html graticiel BabelMap (éditeur de police Unicode UTF8, UTF16, UTF32)] ;
- [http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8 and Unicode FAQ] de Markus Kuhn, article très complet (en anglais).
- [http://masculinehygiene.com/sburke/unicode_sliderule/ The Unicode Sliderule] : un outil web de saisie de caractères.
Langage de description de format de document XML (DSDL) :
- XML Schema - Relax NG - Schematron
Langage de transformation XML :
- XSLT - XQuery (forme XQueryX)
- STX
Langage de représentation de document :
- XSL-FO
Langage de représentation graphique vectorielle :
- SVG
Langage de représentation de formules mathématiques :
- MathML
Langage de représentation de document hypertexte :
- XHTML - Attention, le HTML bien qu'il soit également un "langage de représentation de document hypertexte" , n'est pas un dialecte XML. Il s'agit d'un "dialecte SGML".
Langage de traitement de formulaires :
- XFORM
Langage de représentation d'interfaces graphiques :
- UIML - XUL - XAML - MXML (Flex)
Langage de communication dédié aux services :
- SOAP
Langage de définition de règle :
- RuleML
Format d'échange de données lié à l'utilisation de stylet :
- InkML
Langage de définition d'un article de journal :
- NITF
Langage de définition d'un contenu informatif :
- NewsML
Langage de description d'ontologies :
- OWL
Attention
Les dialectes suivants ne sont pas des dialectes XML, bien qu'ils soient intimement lié à XML.
Langage de description de format de document XML :
- DTD
Langage de requète XML :
- XPath - XQuery (forme FLWR)
Langage de feuille de style :
- CSS
XML Schema
XML Schema est un langage de description de format de documentXML permettant de définir la structure d'un document XML. Un schéma XML est lui-même un fichier XML. La connaissance de la structure d'un document XML permet notamment de vérifier la validité de ce document. Un fichier de description de structure (XML Schema Description en anglais, ou fichier XSD) est donc lui-même un document XML.
Une instance d'un XML Schema est un peu l'équivalent d'une DTD. XML Schema amène cependant plusieurs différences avec les DTDs : il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD ; en revanche, il ne permet pas de définir des entités.
Ce langage de description de contenus de documents XML est lui-même défini par un schéma, dont les balises de définition s'auto-définissent (c'est un exemple de définition récursive).
Un exemple de fichier XSD :
Suivi d'un fichier xml valide :
De LatourJean1967-08-13
- [http://www.w3.org/XML/Schema La page sur XML Schema du W3C]
- [http://xmlfr.org/w3c/TR/xmlschema-0/ Traduction Française de la recommandation du W3C sur les schémas XML]
- [http://www.laltruiste.com/document.php?rep=coursschema Excellente documentation (ou tuto.) sur les schémas XML]
- [http://www.w3schools.com/schema/default.asp Autre tutoriel sur XSD (en Anglais)]
Catégorie:XMLja:XMLスキーマ
RDF
Resource Description Framework (RDF) est un modèle de graphes pour décrire les (méta-)données et permettre un certain traitement automatique des métadonnées. Une des syntaxes (sérialisation) de ce langage est RDF/XML. Il s'agit d'un dialecte XML développée par le consortium W3C.
En annotant des documents non structurés et en servant d'interface pour des applications et des documents structurés (par ex. bases de données, GED, etc. ) RDF permet une certaine interopérabilité entre des applications échangeant de l'information non formalisée et non structurée sur le Web.
Un document structuré en RDF est un ensemble de triplets. Un triplet RDF est une association :
Par exemple, le sujet peut être un document à commenter, l'objet, une propriété de ce document comme son titre et le prédicat, la valeur de cette propriété.
Ainsi, RDF en soi n'est pas un dialecte XML. Il est possible d'avoir recours à d'autres formalismes pour exprimer les triplets
RDF. RDF est simplement une structure de données constituée de nœuds et organisée en graphe.
Bien que RDF/XML — sa version XML proposée par le W3C — n'est qu'une sérialisation du modèle, elle est souvent appelée RDF. Un abus de langage désigne à la fois le graphe de triplets et la présentation XML qui lui est associée.
Chaque élément de ces triplets peut être un URI, un littéral ou une variable. Un document RDF ainsi formé correspond à un
multi-graphe orienté étiqueté. Chaque triplet correspond alors à un arc orienté dont le label est le prédicat, le nœud source est le sujet et le nœud cible est l'objet.
La sémantique d'un document RDF peut être exprimée en théorie des ensembles et en théorie des modèles en se donnant des contraintes sur le monde qui peuvent être décrites en RDF. RDF hérite alors de la généricité et de l'universalité de la notion d'ensemble. Cette sémantique peut être aussi traduite en formule de logique du
premier ordre, positive, conjonctive et existentielle :
ce qui est équivalent à :
Le W3C a prévu un mécanisme d'inférence pour la sémantique de RDF déduisant exclusivement et intégralement les conséquences des prédicats, sans que ce mécanisme ne fasse l'objet d'une recommandation.
RDF est une des bases du succès du Web sémantique .
Catégorie:XML
Synchronized Multimedia Integration Language (SMIL) est une spécification du W3C. L'objectif de SMIL est de permettre l'intégration de contenus multimédias diversifiés (images, sons, textes, vidéo, animations, flux de texte) en les synchronisant afin de permettre la création de présentations multimédias.
SMIL s'appuie sur le langage XML. La structure XML d'un document SMIL décrit le déroulement temporel et spatial des différents composants intégrés. En d'autres termes, SMIL permet d'indiquer le moment où un contenu sera affiché, pendant combien de temps et dans quelle partie de la fenêtre d'affichage.
Liens externes
Logiciels permettant de visualiser ou de modifier des présentations SMIL
- [http://www.oratrix.com/GRiNS/ GriNs], éditeur et lecteur de fichiers SMIL
- [http://www.real.com/player/ RealPlayer], lecteur SMIL 2.0
- [http://www.apple.com/fr/quicktime/ Apple Quicktime], lecteur SMIL 1.0
- [http://wam.inrialpes.fr/software/limsee2/ limsee2] éditeur smil WYSIWYG opensource.
Autres liens
- [http://www.w3.org/AudioVideo/ La page SMIL du W3C]
- [http://ramhurl.real.com/smildemohurl.ram?file=resources/samples/smilbasic/smilmarkup.smil Exemple de presentation SMIL] (ouvrir avec RealPlayer)
Scalable Vector Graphics
Catégorie:Format de données numériquesCatégorie:imagerie numériqueCatégorie:XMLCatégorie:XML]
Scalable Vector Graphics (SVG) est une spécification du W3C. SVG est un format basé sur XML permettant de décrire des ensembles graphiques vectoriels. Les coordonnées, dimensions et structures des objets vectoriels sont indiqués sous forme numérique dans le document XML. Un système spécifique de style (CSS ou XSL) permet d'indiquer les couleurs et les polices d'écriture à utiliser.
Ce format gère quelques formes géométriques de base (rectangles, ellipses), mais aussi des chemins (paths), qui utilisent les courbes de Bézier et permettent ainsi d'obtenir n'importe quelle forme. Le remplissage peut se faire à l'aide de dégradés (gradients en anglais) de couleurs de motifs (pattern) qui sont des objets SVG quelconques, ou de filtres (appelés shaders en imagerie 3D). On peut également appliquer des motifs le long des chemins (markers), et utiliser les fonctions de remplissage. Le canal alpha, pour la transparence, est géré à tous les niveaux.
Comme dans tout document XML, les objets sont gérés sous forme de hiérarchie, et le format permet l'intégration d'animations, ou sa manipulation par programmation, notamment grâce à des scripts qui peuvent être intégrés dans le SVG.
Un des intérêts majeurs de SVG est qu'il peut être inclus dans d'autres documents XML, comme par exemple des documents XHTML ou des documents XML devant être traités par XSL-FO. Une image SVG peut également être manipulée par l'intermédiaire du modèle Document Object Model.
SVG peut être visualisé nativement avec certains navigateurs web, comme Mozilla (fonctionnalité en développement et non intégrée aux versions officielles) et Firefox (dans sa version 1.5), ou à l'aide d'un plug-in pour d'autres.
Certaines interfaces graphiques l'utilisent pour la gestion et l'affichage d'icônes, et d'interface, comme X.org, GNOME, KDE ou certains téléphones portables.
Exemple
Description de trois objets géométriques simples, un rectangle, un cercle, un triangle, dont les deux derniers appartiennent à un groupe nommé « contenu » :
copie d'écran du résultat :
Image:Exemple.png
'Il faudrait permettre ici la visualisation de l'exemple en question au format SVG'
Liens externes, logiciels permettant de lire, d'afficher, de générer des documents SVG
Bibliothèques SVG
- [http://xml.apache.org/batik/index.html Apache Batik], APIJava permettant de générer des documents SVG
- [http://librsvg.sourceforge.net librsvg] est une bibliothèque spécialisée SVG, en permettant la manipulation et la conversion en bitmap (en mémoire ou en fichier jpg/png.
- [http://svg.kde.org/ KSVG] bibliothèque SVG du bureau KDE.
- [http://xsvg.org/ bibliothèque xsvg] utilisée par le projet X.org, utilisant [http://cairographics.org Cairo] pour l'acceleration matérielle du rendu, comme un des 2 moteurs SVG de Mozilla pour linux.
- [http://search.cpan.org/~ronan/SVG-2.30/ module Perl SVG]
- [http://freshmeat.net/projects/php_svggraph/ svgGraph], bibliothèque PHP + exemple + doc permettant de faire des histogrammes (ligne, barre) SVG en PHP
- http://www.openclipart.org/ Bibliothèque de clip art au format SVG, libre de droits (projet initié par les créateurs d' Inkscape)
Visualisation/plugin SVG
- [http://librsvg.sourceforge.net librsvg] bibliothèque SVG, contient un visualiseur et un pluginMozilla/Firefox SVG depuis la 2.8.0 (supporte les path, gradients, markers, filters).
- [http://svg.kde.org KSVG] KSVG est conçu comme un KPart pouvant être intégré notamment au navigateur web Konqueror.
- [http://www.adobe.com/svg/viewer/install/main.html Adobe SVG Viewer], visualiseur SVG, notamment comme pluginHTML - [http://www.smartgraphics.com/Viewer_prod_info.shtml Corel SVG Viewer], un autre visualiseur SVG (en anglais)
- Projet Mozilla navigateur Web, incluant l'affichage SVG (relativement limité). On peut y inclure le plugin de la librsvg.
- Opera navigateur Web, la version 8 inclue l'affichage SVG en sa version 1.1 Tiny sans plugin.
- Certains téléphones mobiles permettent la visualisation de documents SVG Tiny, une liste de téléphones est disponible sur le lien suivant [http://svg.org/special/svg_phones]
- Mozilla Firefox en version 1.5 intègre SVG 1.1 en natif sans plugin
Édition SVG
- Sodipodi, un logiciel libre de dessin vectoriel.
- Inkscape, un logiciel libre de dessin vectoriel spécialisé SVG (fork de Sodipodi).
- [http://www.nongnu.org/skencil skencil] (anciennement Sketch), est un éditeur vectoriel permettant l'import/export SVG.
- The GIMP Logiciel de dessin et animation orienté bitmap, gérant l'import et l'export des paths au format SVG, et la transformation d'images au format SVG, vers un bitmap grâce à la bibliothèque librsvg
- OpenOffice.org Draw, le module Draw de la suite OpenOffice.org permet l'exportation de graphiques au format SVG.
- [http://kde.org/areas/koffice/karbon/index.php Karbon 14], l'éditeur vectoriel de la suite KOffice supporte le format SVG.
- Scribus est un logiciel de PAO supportant le format SVG.
- [http://www.stacken.kth.se/project/pptout/ Passepartout] est un logiciel de PAO supportant le format SVG.
- [http://www.imagemagick.org Imagemagick] permet la manipulation et la conversion de fichiers svg par scripts, en ligne de commande et dans de nombreux langages.
- [http://www.orvinfait.fr/svg/svg.html Logiciel de dessin et d'animation de la SARL Orvinfait], Logiciel en ligne de création de SVG en français permettant de créer et d'animer des dessins, des textes et des images. Les formes des dessins peuvent être facilement créées et transformées grâce aux points de construction. Les positions de ces derniers peuvent être changées avec la souris. Grâce aux filtres, il est possible de donner des effets 3D aux textes, dessins et images.
- Amaya logiciel libre d'édition de contenus Web. Permet l'édition de fichiers SVG.
Environnement graphique utilisant le format SVG
- GNOME L'environnement graphique GNOME, gère les icônes et les dessins au format SVG, c'est pour ce bureau que la librsvg à été conçue à la base.
- X.Org L'environnement X11 libre X.org permet l'utilisation du format SVG, et l'accélération matérielle partielle des tracés SVG.
- KDE L'environnement graphique KDE permet également l'utilisation du format SVG
- [http://ptaff.ca/svg/ La page francophone du format SVG]
- [http://www.svgfr.org/ Portail francophone de la communauté SVG]
- [http://www.w3.org/Graphics/SVG/ La page SVG du site W3C]
- [http://www.svg.org SVG.org] Un site d'information sur le format SVG et ses applications
- [http://www.mozilla.org/projects/svg/ La page SVG de Mozilla]
- [http://david.bellot.free.fr/svg-cards Un jeu de cartes très détaillé entièrement duen SVG]
ja:SVGko:SVGth:Scalable Vector Graphicszh-min-nan:SVG
XML Schema
XML Schema est un langage de description de format de documentXML permettant de définir la structure d'un document XML. Un schéma XML est lui-même un fichier XML. La connaissance de la structure d'un document XML permet notamment de vérifier la validité de ce document. Un fichier de description de structure (XML Schema Description en anglais, ou fichier XSD) est donc lui-même un document XML.
Une instance d'un XML Schema est un peu l'équivalent d'une DTD. XML Schema amène cependant plusieurs différences avec les DTDs : il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD ; en revanche, il ne permet pas de définir des entités.
Ce langage de description de contenus de documents XML est lui-même défini par un schéma, dont les balises de définition s'auto-définissent (c'est un exemple de définition récursive).
Un exemple de fichier XSD :
Suivi d'un fichier xml valide :
De LatourJean1967-08-13
- [http://www.w3.org/XML/Schema La page sur XML Schema du W3C]
- [http://xmlfr.org/w3c/TR/xmlschema-0/ Traduction Française de la recommandation du W3C sur les schémas XML]
- [http://www.laltruiste.com/document.php?rep=coursschema Excellente documentation (ou tuto.) sur les schémas XML]
- [http://www.w3schools.com/schema/default.asp Autre tutoriel sur XSD (en Anglais)]
Catégorie:XMLja:XMLスキーマ
Cycle de développement
Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel. Ces cycles prendront en compte toutes les étapes de la conception d'un logiciel.
Cycle en cascade
Ce cycle est hérité du bâtiment.
Ce modèle repose sur les hypothèses suivantes
- on ne peut pas construire la toiture avant les fondations
- les conséquences d'une modification en amont du cycle ont un impact majeur sur les coûts en aval (on peut imaginer la fabrication d'un moule dans l'industrie du plastique)
Les phases traditionnelles de développement sont effectuées simplement les unes après les autres, avec un retour sur les précédentes, voire au tout début du cycle.
Le processus de développement utilisant un cycle en cascade exécute des phases qui ont pour caractéristiques :
- de produire des livrables définis au préalable
- de se terminer à une date précise
- de ne se terminer que lorsque les livrables sont jugés satisfaisants lors d'une étape de validation-vérification
Cycle en V
Pour pallier au problème de réactivité du modèle en cascade, le modèle du cycle en V a été imaginé. Ce modèle est une amélioration du modèle en cascade qui permet en cas d'anomalie, de limiter un retour aux étapes précédentes. Les phases de la partie montante, doivent renvoyer de l'information sur les phases en vis-à-vis lorsque des défauts sont détectés afin d'améliorer le logiciel.
De plus le cycle en V met en évidence la nécessité d'anticiper et de préparer dans les étapes descendantes les " attendus " des futures étapes montantes : ainsi les attendus des tests de validation sont définis lors des spécifications, les attendus des tests unitaires sont définis lors de la conception, etc.
Le cycle en V est devenu un standard de l'industrie du développement de logiciel et de la gestion de projet depuis les années 1980.
Le développement reprend les différentes étapes du cycle en V. Par l'implémentation de versions successives, le cycle recommence en proposant un produit de plus en plus complet.
Cycle itératif
On décorelle les activités avec les artéfacts car un artéfact est le produit issu d'une activité.
Ainsi, on applique un cycle de type roue de Deming sur la production d'une documentation, d'un code, d'un test, etc.
Rapporté à une activité de type gestion de projet, la première phase sera celle de
- la faisabilité : l'acceptation d'un nouveau besoin
- l'élaboration : on imagine comment on va le réaliser
- la fabrication : construction.
- la transition : tout est mis en œuvre pour livrer au client.
Le cycle itératif n'est pas une bijection avec le cycle en V du type
- faisabilité = spécifications - élaboration = architecture - fabrication = développment prototype - transition = tests
Sachant que chaque itération ne dépasse jamais huit semaines, cette tactique est donc impossible. En fait, l'idée est de livrer au plus tôt quelque chose qui puisse être testé par le client. On peut en effet réaliser plusieurs itérations sur une documentation telle que l'architecture.
De la même manière, si un document n'est qu'un des artéfacts parmi d'autres, il ne faut pas obtenir un document complet. On préfèrera utiliser la loi de Pareto : ne pas passer 80% de l'effort sur les 20% restant.
La différence entre un PDCA et une itération est la durée : elle doit être courte et régulière alors qu'une roue de Deming appliqué à une organisation de 300 personne prends plusieurs mois, voire plusieurs années.
Comparaison des approches Cascade, V et Itératif
Le cycle en V a pour origine l'Industrie Lourde. La particularité de ce milieu est que la phase qui suit nécessite bien plus de ressources que la précédente.
Par exemple, pour fabriquer un objet en Matière plastique,
# un Bureau d'étude va concevoir le produit,
# puis des empreintes de moules seront usinées et placées dans des carcasses pour recevoir de la matière plastique par injection
# et une fois que le prototype est correct, on passe à une phase de production.
Il faut savoir que pour un objet simple tel qu'un gobelet en plastique, la conception est une affaire d'une poignée de semaines (soit quelques milliers d'euros) alors qu'un moule (empreinte + carcasse) nécessite plusieurs mois de fabrication et plusieurs centaines de milliers d'euros.
Par conséquent, dans un tel contexte, pour bien gérer son projet, il est important de ne pas négliger la validation de chaque étape sous peine de le voir déraper.
Ce phénomène intervient sur des chantiers logiciels réunissant des dizaines voire des centaines de personnes. Les décision de l'équipe de direction ou d'architecte de projet impactent tellement d'ingénieurs pour de telles durée qu'il vaut mieux s'assurer de la validité de chaque étape.
Par ailleurs, pour limiter l'entropie du système constitué par l'équipe-projet, il est nécessaire de formaliser par des documents (voire des outils)
- les processus - les besoins
- les spécifications logicielles - l'architecture logicielle - les tests
Dans le cas d'un projet logiciel impliquant une douzaine de personnes pendant une à deux années, la configuration n'est plus la même ; en effet, avec de tels projet on dispose :
- d'une plus grande réactivité due à
- une proximité géographique
- une facilité (relative) de communication
- d'un facteur de coût limité entre chaque étape
Aussi, il est possible de s'orie