Limbajul de marcare

Limbajul de marcare ( text ) în terminologia computerizată - un set de caractere sau secvențe de caractere inserate în text pentru a transmite informații despre afișarea sau structura acestuia. Aparține clasei de limbaje informatice . Un document text scris folosind un limbaj de marcare conține nu numai textul în sine (ca o secvență de cuvinte și semne de punctuație), ci și informații suplimentare despre diferitele sale secțiuni - de exemplu, o indicație de titluri, evidențieri, liste etc. cazuri complexe Un limbaj de marcare vă permite să inserați elemente interactive și conținut din alte documente într-un document.

Trebuie remarcat faptul că limbajul de marcare este Turing incomplet și nu este în general considerat un limbaj de programare .

Markup logic și vizual

Faceți distincția între marcajul logic și cel vizual. În primul caz, vorbim doar despre rolul pe care îl joacă această secțiune a documentului în structura sa generală (de exemplu, „această linie este titlul”). Al doilea definește exact cum va fi afișat acest element (de exemplu, „această linie ar trebui să fie afișată cu caractere aldine”). Ideea din spatele limbajelor de marcare este că reprezentarea vizuală a unui document ar trebui să derive automat din marcajul logic și să fie independentă de conținutul său imediat. Acest lucru simplifică procesarea automată a unui document și afișarea acestuia în condiții diferite (de exemplu, același fișier poate fi afișat diferit pe un ecran de computer, telefon mobil și imprimare, deoarece proprietățile acestor dispozitive de ieșire diferă semnificativ). Cu toate acestea, această regulă este adesea încălcată: de exemplu, atunci când creează un document într-un editor precum MS Word , utilizatorul poate face titluri aldine, dar nicăieri nu indică faptul că această linie este un titlu.

Exemple de limbaje de marcare

Limbajele de marcare sunt folosite oriunde este necesar pentru a obține text îmbogățit doar din text : în tipografie SGML , TeX , PostScript , RTF ), interfețe de utilizator ( Microsoft Word , OpenOffice ), World Wide Web ( HTML , XHTML ) , XML , WML , VML , PGML , SVG , XBRL ).

Pentru a scrie textele sursă ale Wikipedia , membrii săi folosesc un limbaj special de marcare (vezi Wikipedia: Cum să editați articole ) și pentru a afișa formule matematice complexe, limbajul TeX .

Limbaje de marcare ușoare

Limbile concepute pentru a adăuga cu ușurință și rapid formatarea datelor text sunt numite lightweight ( en:Lightweight markup language ). Caracteristicile unor astfel de limbi:

Ele sunt folosite acolo unde o persoană trebuie să pregătească text într-un editor de text obișnuit ( bloguri , forumuri , wiki -uri ) sau în cazul în care este important ca un utilizator cu un editor de text obișnuit să poată citi și textul. Iată câteva limbaje de marcare ușoare utilizate pe scară largă:

Istorie

Termenul „markup” (ca urmare a procesului cu același nume, ing. markup ) provine din expresia engleză „ marking up ” („marking (as a process)”, lit. „marking, marking”), luată din practica publicitară tradițională de a pune pe margini și în textul manuscrisului sau a corectării semnelor condiționate speciale înainte de a-l trimite la tipărire. Astfel, „markup men” au indicat tipul, stilul și dimensiunea fontului pentru fiecare parte a textului. În zilele noastre, marcarea textului este gestionată de editori, corectori, designeri grafici și, desigur, autorii înșiși.

GenCode

Ideea de a folosi limbaje de marcare în procesarea de text pe computer a fost cel mai probabil mediatizată pentru prima dată de William  W. Tunnicliffe la o conferință în 1967 . El însuși și-a numit propunerea „codificare universală” ( ing.  „codare generică” ). În anii 1970, Tunnicliffe a condus dezvoltarea standardului GenCode pentru industria editorială și mai târziu a devenit președintele unuia dintre comitetele Organizației Internaționale pentru Standardizare (ISO) care a creat SGML , primul limbaj descriptiv de marcare. Brian Reid ( ing. Brian Reid (informatician) ) în disertația sa, pe care a susținut-o în 1980 la Universitatea Carnegie ( ing. Carnegie Mellon University ), în dezvoltarea conceptului propus, a realizat o implementare practică a marcajului descriptiv.    

Cu toate acestea, cercetătorul IBM Charles Goldfarb este acum denumit „părintele” limbajelor de marcare .  Conceptul de bază i-a venit în 1969 în timp ce lucra la un sistem primitiv de management al documentelor conceput pentru firmele de avocatură. În același an, a luat parte la crearea limbajului IBM GML , care a fost introdus pentru prima dată în 1973 .

În 1975, Goldfarb s-a mutat din Cambridge, Massachusetts, în Silicon Valley , unde a devenit dezvoltator la Centrul de Cercetare IBM Almaden. Acolo, în 1978, a convins conducerea IBM să folosească GML în scopuri comerciale ca parte a Facilității de compoziție a documentelor  a companiei , după care GML a fost utilizat pe scară largă în afaceri timp de câțiva ani.

În 1978, au început primele dezvoltări, care au dus în cele din urmă la crearea standardului SGML , bazat pe GML și GenCode. Goldfarb însuși a prezidat ulterior comitetul SGML, care a fost adoptat de ISO ca standard în octombrie 1986 .

Unele implementări timpurii ale limbajelor de marcare pentru computere pot fi găsite în utilitățile de tipografie UNIX , cum ar fi troff și nroff . Acestea vă permit să inserați comenzi de formatare în textul unui document pentru a-l formata conform cerințelor editorului.

Disponibilitatea software-ului de publicare WYSIWYG ( ceea ce vedeți este ceea ce obțineți) a  înlocuit majoritatea acestor limbi în rândul utilizatorilor generali, deși munca serioasă de publicare încă folosește markup pentru structuri specifice non-vizuale. text, iar editorii WYSIWYG salvează acum cel mai adesea. documente în formate bazate pe limbaje de marcare.  

Τ Ε Χ

Un alt standard de publicare important este Τ Ε Χ , creat și îmbunătățit ulterior de Donald Knuth în anii 70 și 80 ai secolului XX. Τ Ε Χ a reunit posibilități mari pentru formatarea textului și descrierile fonturilor, în special pentru cărțile de matematică de calitate profesională. În prezent, Τ Ε Χ este standardul de facto în multe discipline științifice. Pe lângă Τ Ε Χ există LaTeX , care este un sistem de marcare descriptiv utilizat pe scară largă bazat pe Τ Ε Χ .

Scribe, GML și SGML

Prima limbă cu o distincție clară și distinctă între structura și tipul unui document a fost Scribe , care a fost creat și descris de teza de doctorat a lui Brian Reid în 1980. Scribe a fost revoluționar în numărul de moduri în care a fost procesat, nu în ultimul rând datorită introducerii ideii de stiluri care sunt separate de textul și gramatica actuală și controlează utilizarea elementelor descriptive. Scribe a fost influent în dezvoltarea limbajului GML (mai târziu SGML) și este, de asemenea, strămoșul direct al limbajelor HTML și LaTeX .

La începutul anilor '80 , ideea că markupul ar trebui să se concentreze pe aspectele structurale ale unui document și ar trebui să lase interpretului reprezentarea externă a documentului a dus la crearea SGML. Limbajul a fost dezvoltat de un comitet condus de Goldfarb. El a combinat idei din mai multe surse, inclusiv proiectul Tunnikofflick, GenCode. Sharon Adler, Anders Berglund și James A. Marke au fost, de asemenea, membri cheie ai comitetului SGML.

SGML a definit cu precizie sintaxa pentru includerea markupurilor în text și, de asemenea, a descris separat ce etichete sunt permise și unde (DTD - Document Type Definition). Acest lucru a permis autorilor să creeze și să utilizeze orice marcaj dorit, alegând ce etichete să folosească și dându-le nume în limbajul normal. Astfel, SGML ar trebui considerat un metalimbaj ; mai multe limbaje speciale de marcare au descins din acesta. Sfârșitul anilor 80 a fost cel mai semnificativ în apariția noilor limbaje de marcare bazate pe SGML, cum ar fi TEI și DocBook .

În 1986, SGML a fost publicat ca standard internațional de către ISO cu numărul 8879. SGML a găsit o largă acceptare și a fost utilizat pe scară largă în proiecte foarte mari. Cu toate acestea, s-a constatat, în general, că este greoaie și dificil de învățat, un efect secundar al limbii fiind că a încercat să facă prea multe și să fie prea flexibilă. De exemplu, SGML a creat etichete de final (sau etichete de început, sau chiar ambele) care nu au fost întotdeauna necesare, deoarece credea că acest marcaj va fi adăugat manual de personalul de asistență al proiectului, care ar aprecia economiile la apăsarea tastelor.

HTML

Până în 1991, utilizarea SGML a fost limitată la programe de afaceri și baze de date, în timp ce instrumentele WYSIWYG (care salvau documente în formate binare proprietare) au fost folosite pentru alte programe de procesare a documentelor. Acest lucru sa schimbat când Sir Tim Berners-Lee , după ce a aflat despre SGML de la colegul său Anders Berglund și alții de la CERN , a folosit sintaxa SGML pentru a crea HTML .  Limbajul avea asemănări cu alte limbaje de marcare bazate pe sintaxa SGML, dar a fost mult mai ușor de început, chiar și pentru dezvoltatorii care nu au făcut-o niciodată. Steven DeRose a susținut că HTML folosind marcajul descriptiv (și din SGML în special) a fost un factor major în dezvoltarea Web-ului, deoarece a fost conceput pentru a fi flexibil și extensibil (precum și alți factori, inclusiv conceptul de URL-uri și utilizarea liberă de către browsere). ).

Cu toate acestea, statutul HTML ca limbaj de marcare a fost contestat de unii informaticieni. Argumentul lor principal este că HTML restricționează plasarea etichetelor, solicitând ca ambele etichete să fie imbricate în alte etichete sau în etichetele principale ale documentului. Drept urmare, acești savanți consideră HTML un limbaj container care urmează un model ierarhic.

XML

XML (Extensible Markup Language) este un meta limbaj de marcare care este utilizat pe scară largă astăzi. XML a fost dezvoltat de World Wide Web Consortium în cadrul unui comitet prezidat de Jon Bosak. Scopul principal al XML este să fie mai simplu decât SGML și să se concentreze pe o problemă specifică - documentele de pe web. XML este un meta limbaj precum SGML, utilizatorii au voie să creeze orice etichete doresc (deci „extensibil”). Ceea ce a ajutat la creșterea XML a fost că fiecare document XML putea fi scris în același mod ca un document SGML, iar programele și utilizatorii care foloseau SGML puteau migra la XML destul de ușor.

Cu toate acestea, XML a pierdut multe dintre caracteristicile centrate pe om ale SGML care l-au făcut mai ușor de utilizat (până când cantitatea de markup a crescut și lizibilitatea și editabilitatea au fost restaurate la același nivel). Alte îmbunătățiri au remediat unele probleme SGML la nivel internațional și au făcut posibilă analizarea ierarhică a unui document chiar dacă nu era disponibil niciun DTD.

XML a fost conceput în primul rând pentru medii semi-structurate, cum ar fi documentele și publicațiile. Cu toate acestea, a rezultat într-un punct favorabil între flexibilitate și simplitate și a fost rapid adoptat de mulți utilizatori. În zilele noastre, XML este utilizat pe scară largă pentru a transmite date între programe. La fel ca HTML, poate fi descris ca un limbaj „container”.

XHTML

Din ianuarie 2000, toate recomandările către W3C s-au bazat mai degrabă pe XML decât pe SGML și a fost propus acronimul XHTML (Extensible HyperText Markup Language). Specificațiile de limbă au cerut ca documentele XHTML să fie formatate ca documente XML, acest lucru permite utilizarea XHTML pentru documente mai clare și mai precise folosind etichete din HTML.

Una dintre cele mai notabile diferențe dintre HTML și XHTML este regula conform căreia toate etichetele trebuie să fie închise: etichetele goale, cum ar fi < br /> , trebuie să fie ambele închise cu o etichetă de închidere standard sau o notație specială: < br /> (spațiu înainte „/” din eticheta de închidere este opțională, dar este adesea folosită deoarece unele browsere pre-XML (de asemenea, analizoare SGML) îl folosesc). Alte atribute din etichete trebuie să fie între ghilimele. În cele din urmă, toate etichetele și numele atributelor trebuie scrise cu litere mici pentru a fi citite corect; HTML nu face distincție între majuscule și minuscule.

Alte dezvoltări bazate pe XML

Multe dezvoltări bazate pe XML sunt acum utilizate , de exemplu, RDF (Resource Description Framework - Resource Description Framework) , XFORMS, DocBook , SOAP și OWL (Web Ontology Language) .

Caracteristici

O caracteristică comună a tuturor limbajelor de marcare este că amestecă textul documentului cu instrucțiunile de marcare într-un flux de date sau fișier. Nu este necesar, este posibil să izolați marcajul de text folosind pointeri, etichete, identificatori sau alte metode de coordonare. Acest „marcat separat” este tipic pentru reprezentarea internă a programelor care lucrează cu documente de marcare. Cu toate acestea, marcajul încorporat sau „interline” este mai acceptat în altă parte. De exemplu, iată o mică bucată de text marcată cu HTML:

< h1 > Anatidae </ h1 > < p > Familia < i > Anatidae </ i > include rațe, gâște și lebede, dar < em > nu </ em > urlătorii strâns înrudiți. </ p >

Codul instrucțiunii de marcare (cunoscut sub numele de tag -uri ) este înconjurat de paranteze unghiulare <ca acesta>. Textul dintre aceste instrucțiuni este textul documentului. Codurile h1 , p și em  sunt exemple de marcare structurală, ele descriu poziția, scopul sau sensul textului inclus în ele.

Mai precis, h1 înseamnă „acesta este un titlu de nivel întâi”, p înseamnă „acesta este un paragraf”, iar em înseamnă „acest cuvânt sau frază are un accent special”. Interpretul poate aplica aceste reguli sau stiluri pentru a afișa diferite părți ale textului folosind diferite tipuri de caractere, dimensiuni de font, indentare, culoare sau alte stiluri, după cum este necesar. Deci, o etichetă, h1 , de exemplu, ar putea fi redată cu caractere aldine mari sau, într-un document cu text monospațiat (cum ar fi o mașină de scris), ar putea fi subliniată sau ar putea să nu-și schimbe deloc aspectul. Iar conținutul etichetei em este de obicei afișat cu caractere cursive.

În schimb, eticheta i în HTML  este un exemplu de marcare vizuală; este de obicei folosit pentru a identifica caracteristicile specifice ale textului (utilizați caractere italice în acest bloc) fără explicații.

TEI (Tex Encoding Initiative) a publicat documente de orientare cuprinzătoare care specifică modul de codificare a textului în beneficiul umanității și al societăților științifice. Aceste manuale au fost folosite pentru a codifica documente istorice, lucrări specifice ale savanților, periodice și așa mai departe.

Utilizări alternative

În timp ce ideea de a folosi limbaje de marcare cu documente text a evoluat, aceasta a crescut utilizarea limbajelor de marcare în alte domenii. S-au propus să fie utilizate pentru a reprezenta diferite tipuri de informații, inclusiv liste de redare , grafică vectorială, servicii web, interfețe cu utilizatorul. Majoritatea acestor aplicații se bazează pe XML, deoarece este un limbaj foarte structurat și extensibil.

Utilizarea limbajului XHTML arată, de asemenea, că acesta poate fi combinat cu diferite limbaje de marcare ale aceluiași profil, cum ar fi XHTML+SMIL sau XHTML+MathML+SVG.