Merkintäkieli

Merkintäkieli ( teksti ) tietokoneterminologiassa - joukko merkkejä tai merkkijonoja, jotka on lisätty tekstiin välittämään tietoa sen näytöstä tai rakenteesta. Kuuluu tietokonekielien luokkaan . Sivunkuvauskielellä kirjoitettu tekstidokumentti ei sisällä vain itse tekstiä (sanojen ja välimerkkien sarjana), vaan myös lisätietoa sen eri osioista - esimerkiksi otsikoiden, korostuksia, luetteloita jne. monimutkaiset tapaukset Merkintäkielen avulla voit lisätä dokumenttiin interaktiivisia elementtejä ja sisältöä muista asiakirjoista.

On huomattava, että merkintäkieli on Turingin epätäydellinen , eikä sitä yleensä pidetä ohjelmointikielenä .

Looginen ja visuaalinen merkintä

Erota looginen ja visuaalinen merkintä. Ensimmäisessä tapauksessa puhumme vain siitä, mikä rooli asiakirjan tällä osalla on sen yleisessä rakenteessa (esimerkiksi "tämä rivi on otsikko"). Toinen määrittää, kuinka tämä elementti näytetään tarkalleen (esimerkiksi "tämä rivi tulee näyttää lihavoituna"). Merkintäkielten ideana on, että asiakirjan visuaalisen esityksen tulee automaattisesti johdettua loogisesta merkinnästä ja olla riippumaton sen välittömästä sisällöstä. Tämä yksinkertaistaa asiakirjan automaattista käsittelyä ja sen näyttämistä eri olosuhteissa (esimerkiksi sama tiedosto voi näkyä eri tavalla tietokoneen näytöllä, matkapuhelimella ja tulosteella, koska näiden tulostuslaitteiden ominaisuudet vaihtelevat merkittävästi). Tätä sääntöä kuitenkin rikotaan usein: esimerkiksi luodessaan dokumenttia editorissa, kuten MS Wordissa , käyttäjä voi lihavoida otsikot, mutta ei missään osoita, että tämä rivi on otsikko.

Esimerkkejä sivunkuvauskielistä

Sivunkuvauskieliä käytetään aina , kun tarvitaan RTF -tekstiä pelkästä tekstistä : typografiassa SGML , TeX , PostScript , RTF ), tietokoneen käyttöliittymissä ( Microsoft Word , OpenOffice ), World Wide Webissä ( HTML , XHTML ) , XML , WML , VML , PGML , SVG , XBRL ).

Wikipedian lähdetekstien kirjoittamiseen sen jäsenet käyttävät erityistä merkintäkieltä (katso Wikipedia: Artikkelien muokkaaminen ) ja monimutkaisten matemaattisten kaavojen näyttämiseen TeX -kieltä .

Kevyet merkintäkielet

Kieliä, jotka on suunniteltu helposti ja nopeasti lisäämään muotoilua tekstitietoihin , kutsutaan kevyeksi ( en:Lightweight markup language ). Tällaisten kielten ominaisuudet:

Niitä käytetään silloin, kun henkilön on valmisteltava tekstiä tavallisella tekstieditorilla ( blogit , foorumit , wikit ) tai missä on tärkeää, että tekstin voi lukea myös tavallisella tekstieditorilla. Tässä on joitain yleisesti käytettyjä kevyitä merkintäkieliä:

Historia

Termi "markup" (samannimisen prosessin tuloksena, eng. markup ) tuli englanninkielisestä lauseesta " marking up " ("marking (as a process)", lit. "marking, marking"), joka on otettu perinteisestä julkaisukäytännöstä tehdä erityisiä ehdollisia merkintöjä reunoihin ja käsikirjoituksen tekstiin tai oikoluku ennen sen painoon lähettämistä. Siten "merkintämiehet" osoittivat kunkin tekstin osan kirjasintyylin, tyylin ja kirjasinkoon. Nykyään tekstin merkitsemisestä huolehtivat toimittajat, oikolukijat, graafiset suunnittelijat ja tietysti kirjoittajat itse.

GenCode

Ajatuksen merkintäkielten käyttämisestä tietokoneen tekstinkäsittelyssä julkisti todennäköisesti ensimmäisen kerran William  W. Tunnicliffe konferenssissa vuonna 1967 . Hän itse kutsui ehdotustaan ​​"universaaliksi koodaukseksi" ( eng.  "generic coding" ). 1970 -luvulla Tunnicliffe johti GenCode -standardin kehittämistä julkaisuteollisuudelle ja myöhemmin hänestä tuli puheenjohtaja yhdessä kansainvälisen standardointijärjestön (ISO) komiteoista , joka loi SGML : n , ensimmäisen kuvailevan merkintäkielen. Brian Reid ( eng. Brian Reid (tietokonetieteilijä) ) toteutti väitöskirjassaan, jonka hän puolusti vuonna 1980 Carnegie Universityssä ( eng. Carnegie Mellon University ) ehdotetun konseptin kehittämisessä, toteutti kuvailevan merkinnän käytännössä.    

IBM :n tutkijaa Charles Goldfarbia kutsutaan kuitenkin nykyään yleisesti merkintäkielten "isäksi" .  Peruskonsepti tuli hänelle vuonna 1969 , kun hän työskenteli lakitoimistoille suunniteltua primitiivistä asiakirjanhallintajärjestelmää. Samana vuonna hän osallistui IBM GML -kielen luomiseen , joka otettiin käyttöön ensimmäisen kerran vuonna 1973 .

Vuonna 1975 Goldfarb muutti Cambridgestä Massachusettsista Piilaaksoon , jossa hänestä tuli kehittäjä IBM Almaden Research Centerissä. Siellä hän vuonna 1978 vakuutti IBM:n johdon käyttämään GML:ää kaupallisiin tarkoituksiin osana yrityksen Document  Composition Facilityä , minkä jälkeen GML:ää käytettiin laajasti liiketoiminnassa useiden vuosien ajan.

Vuonna 1978 aloitettiin ensimmäiset kehitystyöt, jotka lopulta johtivat SGML -standardin luomiseen , joka perustuu GML:ään ja GenCodeen. Goldfarb itse toimi myöhemmin SGML-komitean puheenjohtajana, jonka ISO hyväksyi standardiksi lokakuussa 1986 .

Jotkut tietokoneen merkintäkielten varhaiset toteutukset löytyvät UNIX -typografiaapuohjelmista , kuten troff ja nroff . Niiden avulla voit lisätä muotoilukomentoja dokumentin tekstiin muotoillaksesi sen editorin vaatimusten mukaisesti.

WYSIWYG - julkaisuohjelmiston  ( mitä näet, saat mitä saat) saatavuus on  syrjäyttänyt useimmat näistä kielistä tavallisten käyttäjien keskuudessa, vaikka vakavassa julkaisutyössä käytetään edelleen merkintöjä tietyille ei-visuaalisille rakenteille. tekstiä ja WYSIWYG-editorit nyt useimmiten säästävät asiakirjat merkintäkieliin perustuvissa muodoissa.

Τ Ε Χ

Toinen tärkeä julkaisustandardi on Τ Ε Χ , jonka Donald Knuth loi ja paransi myöhemmin 1900-luvun 70- ja 80-luvuilla. Τ Ε Χ on tuonut yhteen suuret mahdollisuudet tekstin muotoiluun ja kirjasinkuvauksiin, erityisesti ammattitason matematiikkakirjoissa. Tällä hetkellä Τ Ε Χ on de facto standardi monilla tieteenaloilla. Τ Ε Χ :n lisäksi on LaTeX , joka on laajalti käytetty kuvaava merkintäjärjestelmä, joka perustuu Τ Ε Χ :hen .

Scribe, GML ja SGML

Ensimmäinen kieli, jolla oli selkeä ja selkeä ero asiakirjan rakenteen ja tyypin välillä, oli Scribe , joka luotiin ja kuvattiin Brian Reidin väitöskirjassa vuonna 1980. Scribe oli vallankumouksellinen monissa eri käsittelytavoissa, ei vähiten siksi, että otettiin käyttöön ajatus tyyleistä, jotka ovat erillisiä varsinaisesta tekstistä ja kielioppista ja ohjaavat kuvailevien elementtien käyttöä. Scribe vaikutti GML-kielen (myöhemmin SGML) kehitykseen ja on myös HTML- ja LaTeX -kielten suora esi-isä .

80 -luvun alussa ajatus siitä, että merkintöjen tulisi keskittyä dokumentin rakenteellisiin näkökohtiin ja jättää asiakirjan ulkoinen esittäminen tulkin tehtäväksi, johti SGML:n luomiseen. Kielen kehitti Goldfarbin johtama komitea. Hän yhdisti ideoita monista lähteistä, mukaan lukien Tunnikofflick-projektista GenCode. Sharon Adler, Anders Berglund ja James A. Marke olivat myös SGML-komitean avainjäseniä.

SGML määritteli tarkasti syntaksin merkintöjen sisällyttämiselle tekstiin ja kuvaili myös erikseen mitkä tagit ovat sallittuja ja missä (DTD - Document Type Definition). Tämä antoi kirjoittajille mahdollisuuden luoda ja käyttää mitä tahansa merkintöjä, joita he halusivat, valita käytettävät tunnisteet ja antaa niille nimet normaalilla kielellä. Siten SGML:ää tulisi pitää metakielenä ; siitä on peräisin useita erityisiä merkintäkieliä. 80-luvun loppu oli merkittävintä uusien SGML-pohjaisten merkintäkielten, kuten TEI ja DocBookin , ilmaantumisen kannalta .

Vuonna 1986 ISO julkaisi SGML:n kansainvälisenä standardina numerolla 8879. SGML on saanut laajan hyväksynnän ja sitä on käytetty laajalti erittäin suurissa projekteissa. Yleensä se todettiin kuitenkin hankalaksi ja vaikeaksi oppia, kielen sivuvaikutuksena oli, että se yritti tehdä liikaa ja olla liian joustava. Esimerkiksi SGML loi lopputunnisteita (tai alkutunnisteita tai jopa molempia), joita ei aina tarvittu, koska se uskoi, että projektin tukihenkilöstö lisäisi tämän merkinnän manuaalisesti, mikä arvostaisi näppäinpainallusten säästöjä.

HTML

Vuoteen 1991 mennessä SGML:n käyttö rajoittui yritysohjelmiin ja tietokantoihin, kun taas WYSIWYG-työkaluja (jotka tallensivat asiakirjoja omissa binäärimuodoissa) käytettiin muissa asiakirjankäsittelyohjelmissa. Tilanne muuttui, kun Sir Tim Berners-Lee , saatuaan tietää SGML:stä kollegaltaan Anders Berglundilta ja muilta CERNissä , käytti SGML-syntaksia HTML :n luomiseen .  Kielellä oli yhtäläisyyksiä muihin SGML-syntaksiin perustuviin merkintäkieliin, mutta sen aloittaminen oli paljon helpompaa, jopa niille kehittäjille, jotka eivät olleet koskaan tehneet niin. Steven DeRose väitti, että kuvailevaa merkintää käyttävä HTML (ja erityisesti SGML:stä) oli tärkeä tekijä verkon kehittämisessä, koska se oli suunniteltu joustavaksi ja laajennettavaksi (samoin kuin muut tekijät, kuten URL-osoitteiden käsite ja selaimien vapaa käyttö ).

Jotkut tietotekniikan tutkijat ovat kuitenkin kiistäneet HTML:n aseman merkintäkielenä. Heidän pääargumenttinsa on, että HTML rajoittaa tunnisteiden sijoittamista edellyttämällä, että molemmat tunnisteet on sisäkkäin muiden tunnisteiden sisällä tai asiakirjan päätunnisteiden sisällä. Tämän seurauksena nämä tutkijat pitävät HTML:ää hierarkkista mallia noudattavana säilökielinä.

XML

XML (Extensible Markup Language) on nykyään laajalti käytetty metamerkintäkieli. XML:n kehitti World Wide Web Consortium Jon Bosakin johtamassa komiteassa. XML:n päätarkoituksena on olla yksinkertaisempi kuin SGML ja keskittyä tiettyyn ongelmaan - verkossa oleviin asiakirjoihin. XML on metakieli, kuten SGML, käyttäjät voivat luoda haluamansa tunnisteet (siis "laajennettavissa"). XML:n nousua auttoi se, että jokainen XML-dokumentti voitiin kirjoittaa samalla tavalla kuin SGML-dokumentti, ja SGML:ää käyttävät ohjelmat ja käyttäjät voivat siirtyä XML-muotoon melko helposti.

XML kuitenkin menetti monia SGML:n ihmiskeskeisiä ominaisuuksia, jotka helpottivat sen käyttöä (kunnes merkintöjen määrä kasvoi ja luettavuus ja muokattavuus palautettiin samalle tasolle). Muut parannukset korjasivat joitakin SGML-ongelmia kansainvälisesti ja mahdollistivat asiakirjan jäsentämisen hierarkkisesti, vaikka DTD:tä ei olisi saatavilla.

XML on suunniteltu ensisijaisesti puolirakenteisiin ympäristöihin, kuten asiakirjoihin ja julkaisuihin. Se kuitenkin johti joustavuuteen ja yksinkertaisuuteen, ja monet käyttäjät ottivat sen nopeasti käyttöön. Nykyään XML:ää käytetään laajalti tiedon siirtämiseen ohjelmien välillä. Kuten HTML, sitä voidaan kuvata "säilön" kieleksi.

XHTML

Tammikuusta 2000 lähtien kaikki suositukset W3C:lle ovat perustuneet XML:ään SGML :n sijaan , ja lyhennettä XHTML (Extensible HyperText Markup Language) on ehdotettu. Kielimääritykset vaativat, että XHTML-asiakirjat on muotoiltava XML-dokumenteiksi, mikä mahdollistaa XHTML:n käytön selkeämpiin ja tarkempiin asiakirjoihin HTML-tunnisteiden avulla.

Yksi huomattavimmista eroista HTML:n ja XHTML:n välillä on sääntö, jonka mukaan kaikki tunnisteet on suljettava: tyhjät tagit, kuten < br /> , on suljettava tavallisella lopputunnisteella tai erityisellä merkinnällä: < br /> (välilyönti ennen Lopputunnisteen "/" on valinnainen, mutta sitä käytetään usein, koska jotkin pre-XML-selaimet (myös SGML-jäsentimet) käyttävät sitä). Muut tunnisteiden attribuutit on oltava lainausmerkeissä. Lopuksi kaikki tunnisteet ja attribuuttien nimet on kirjoitettava pienillä kirjaimilla, jotta ne voidaan lukea oikein. HTML ei välitä kirjainkoosta.

Muut XML-pohjaiset kehitystyöt

Monet XML -pohjaiset kehitystyöt ovat nyt käytössä , esimerkiksi RDF (Resource Description Framework - resurssin kuvausympäristö) , XFORMS, DocBook , SOAP ja OWL (Web Ontology Language) .

Ominaisuudet

Kaikkien merkintäkielien yhteinen piirre on, että ne sekoittavat asiakirjan tekstin merkintäohjeisiin tietovirrassa tai tiedostossa. Se ei ole välttämätöntä, on mahdollista eristää merkinnät tekstistä osoittimilla, tarroilla, tunnisteilla tai muilla koordinointimenetelmillä. Tämä "erillinen merkintä" on tyypillinen merkintädokumenttien kanssa toimivien ohjelmien sisäiselle esitykselle. Upotettu tai "rivien välinen" merkintä on kuitenkin hyväksytty paremmin muualla. Tässä on esimerkiksi pieni pala tekstiä, joka on merkitty HTML:llä:

< h1 > Anatidae </ h1 > < p > Sukuun < i > Anatidae </ i > kuuluu ankkoja, hanhia ja joutsenia, mutta < em > ei </ em > läheisesti sukua olevat huutajat. </ p >

Merkintäohjekoodi (eli tagit ) on ympäröity kulmasuluilla <tältä>. Näiden ohjeiden välissä oleva teksti on asiakirjan teksti. H1 , p ja em koodit  ovat esimerkkejä rakenteellisista merkinnöistä, ne kuvaavat niihin sisältyvän tekstin paikkaa, tarkoitusta tai merkitystä.

Tarkemmin sanottuna h1 tarkoittaa "tämä on ensimmäisen tason otsikko", p tarkoittaa "tämä on kappale" ja em tarkoittaa "tällä sanalla tai lauseella on erityinen painotus". Tulkki voi soveltaa näitä sääntöjä tai tyylejä näyttääkseen tekstin eri osia käyttämällä erilaisia ​​kirjasimia, kirjasinkokoja, sisennystä, värejä tai muita tyylejä tarpeen mukaan. Joten tunniste, esimerkiksi h1 , voidaan hahmontaa suurella lihavoidulla kirjasintyypillä, tai asiakirjassa, jossa on yksivälisistä tekstiä (kuten kirjoituskone), se voidaan alleviivata tai se ei välttämättä muuta ulkoasua ollenkaan. Ja em-tunnisteen sisältö näytetään yleensä kursiivilla.

Sitä vastoin HTML -koodin i - tunniste on  esimerkki visuaalisesta merkinnästä; Sitä käytetään yleensä tekstin erityispiirteiden tunnistamiseen (käytä kursiivaa kirjasintyyppiä tässä lohkossa) ilman selitystä.

TEI (Tex Encoding Initiative) on julkaissut kattavat ohjeasiakirjat, joissa määritellään kuinka tekstiä koodataan ihmiskunnan ja tiedeyhteisöjen hyödyksi. Näitä käsikirjoja käytettiin koodaamaan historiallisia asiakirjoja, tutkijoiden erityisiä töitä, aikakauslehtiä ja niin edelleen.

Vaihtoehtoiset käyttötavat

Vaikka ajatus merkintäkielten käyttämisestä tekstidokumenttien kanssa on kehittynyt, tämä on lisännyt merkintäkielten käyttöä muilla alueilla. Niitä on ehdotettu käytettäväksi edustamaan erityyppisiä tietoja, mukaan lukien soittolistat , vektorigrafiikka, verkkopalvelut ja käyttöliittymät. Suurin osa näistä sovelluksista perustuu XML:ään, koska se on erittäin jäsennelty ja laajennettavissa oleva kieli.

XHTML -kielen käyttö osoittaa myös, että se voidaan yhdistää saman profiilin eri merkintäkieliin, kuten XHTML+SMIL tai XHTML+MathML+SVG.