Diferență între revizuiri ale paginii „Protocol de exportare a datelor v5”

De la dexonline wiki
Sari la navigare Sari la căutare
 
(Nu s-au afișat 7 versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
Dacă doriți să scrieți o aplicație care să transfere baza de date și să o folosească off-line, comunicați cu scriptul http://dexonline.ro/update4.php pentru a sincroniza periodic baza de date.
Dacă doriți să scrieți o aplicație care să transfere baza de date și să o folosească off-line, comunicați cu scriptul http://dexonline.ro/update5.php pentru a sincroniza periodic baza de date.


== Generalități ==
== Generalități ==
Linia 47: Linia 47:
=== Lexeme ===
=== Lexeme ===


"Lexemul" este un termen lingvistic pentru cuvânt. Un lexem este caracterizat printr-un identificator numeric unic, un nume, o descriere opțională (folosită pentru diferențierea omonimelor) și o listă de forme flexionare.
„Lexemul” este un termen lingvistic pentru cuvânt. Un lexem este caracterizat printr-un identificator numeric unic, un nume, o descriere opțională (folosită pentru diferențierea omonimelor) și o listă de forme flexionare.


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Linia 54: Linia 54:
     <Timestamp>1189683958</Timestamp>
     <Timestamp>1189683958</Timestamp>
     <Form>cop'il</Form>                                      ;; Forma poate include un apostrof înainte de vocala accentuată
     <Form>cop'il</Form>                                      ;; Forma poate include un apostrof înainte de vocala accentuată
    <EntryId>12345</EntryId>                                ;; Intrarea căreia îi aparține lexemul
     <Description>persoană</Description>                      ;; Opțional
     <Description>persoană</Description>                      ;; Opțional
     <InflectedForm>                                          ;; Formele flexionare
     <InflectedForm>                                          ;; Formele flexionare
       <InflectionId>1</InflectionId>
       <InflectionId>1</InflectionId>
       <Form>cop'il</Form>
       <Form>cop'il</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>3</InflectionId>
       <InflectionId>3</InflectionId>
       <Form>cop'ii</Form>
       <Form>cop'ii</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>5</InflectionId>
       <InflectionId>5</InflectionId>
       <Form>cop'ilul</Form>
       <Form>cop'ilul</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>8</InflectionId>
       <InflectionId>8</InflectionId>
       <Form>cop'iilor</Form>
       <Form>cop'iilor</Form>
     </Inflection>
     </InflectedForm>
   </Lexem>
   </Lexem>
   <Lexem id="57484">
   <Lexem id="57484">
     <Timestamp>1189683961</Timestamp>
     <Timestamp>1189683961</Timestamp>
     <Form>cop'il</Form>
     <Form>cop'il</Form>
    <EntryId>12346</EntryId>
     <Description>lăstar</Description>
     <Description>lăstar</Description>
     <Inflection>
     <InflectedForm>
       <InflectionId>1</InflectionId>
       <InflectionId>1</InflectionId>
       <Form>cop'il</Form>
       <Form>cop'il</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>3</InflectionId>
       <InflectionId>3</InflectionId>
       <Form>cop'ili</Form>
       <Form>cop'ili</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>5</InflectionId>
       <InflectionId>5</InflectionId>
       <Form>cop'ilul</Form>
       <Form>cop'ilul</Form>
     </Inflection>
     </InflectedForm>
     ...
     ...
     <Inflection>
     <InflectedForm>
       <InflectionId>8</InflectionId>
       <InflectionId>8</InflectionId>
       <Form>cop'ililor</Form>
       <Form>cop'ililor</Form>
     </Inflection>
     </InflectedForm>
   </Lexem>
   </Lexem>
   ...
   ...
Linia 107: Linia 105:
Precizări:
Precizări:


* Scriptul nu trimite informații despre ștergerea unui lexem. Când un lexem este șters în ''dexonline'', el este în mod automat disociat de toate definițiile cu care era asociat. Clientul dumneavoastră va primi noua tabelă de asocieri lexeme-definiții și va face și el disocierea. Nu este o problemă dacă clientul păstrează lexemul pe termen nelimitat, deoarece el nu mai este folosit, iar ștergerea unui lexem este o operație rară.
* Scriptul nu trimite informații despre ștergerea unui lexem. Clientul dumneavoastră va primi noua tabelă de asocieri intrări-lexeme și poate observa că lexemul nu mai apare în nicio asociere. Nu este o problemă dacă clientul păstrează lexemul pe termen nelimitat, deoarece el nu mai este folosit.
* Dacă cel puțin una din formele flexionare se modifică, întreg lexemul va fi resincronizat.
* Dacă cel puțin una din formele flexionare se modifică, întreg lexemul va fi resincronizat.
* Lexemul are întotdeauna cel puțin o formă flexionară. Echipa ''dexonline'' nu a terminat încă de etichetat toate lexemele și deci paradigmele unor lexeme sunt încă necunoscute. Totuși, chiar și acele lexeme au o singură formă flexionară identică cu forma lexemului.
* Lexemul are întotdeauna cel puțin o formă flexionară. Echipa ''dexonline'' nu a terminat încă de etichetat toate lexemele și deci paradigmele unor lexeme sunt încă necunoscute. Totuși, chiar și acele lexeme au o singură formă flexionară identică cu forma lexemului.
* Există lexeme cu modele de flexionare multiple, ca de exemplu ''monedă'' cu pluralele ''monede'' sau ''monezi''. Abordarea corectă ar fi să îmbrăcăm fiecare model de flexiune într-o etichetă <tt>&lt;Model></tt>. Totuși, pentru a nu modifica formatul din mers, vom lista toate modelele concatenat. Este posibil ca unele forme flexionare să apară de mai multe ori (cum ar fi singularul ''monedă'').
* Dacă un cuvânt are mai multe modele de flexionare (cum ar fi ''monedă-monede'' și ''monedă-monezi''), vor exista două lexeme separate.
* Nu vă recomandăm să folosiți numele lexemului (cel din câmpul form) pentru căutări. Folosiți formele flexionare pentru aceasta. De cele mai multe ori, numele lexemului coincide cu prima dintre formele flexionare, iar când nu este așa, există un motiv.
* Nu vă recomandăm să folosiți numele lexemului (cel din câmpul form) pentru căutări. Folosiți formele flexionare pentru aceasta. De cele mai multe ori, numele lexemului coincide cu prima dintre formele flexionare, iar când nu este așa, există un motiv.


=== Intrări ===
=== Intrări ===


Intrările grupează lexeme cu forme sau flexiuni diferite, dar cu sensuri identice. Exemple: ''căpșună'' (pl. ''căpșuni'') și ''căpșună'' (pl. ''căpșune''), ''tr'afic'' și ''traf'ic'' etc. Fiecare lexem aparține exact unei intrări. Majoritatea intrărilor vor cuprinde un singur lexem. Intrările sunt obiecte minimale. În afară de ID, ele conțin doar o descriere, de obicei egală cu forma lexemului cuprins (fără accent).
Intrările grupează lexeme cu forme sau flexiuni diferite, dar cu sensuri identice. Exemple: ''căpșună'' (pl. ''căpșuni'') și ''căpșună'' (pl. ''căpșune''), ''tr'afic'' și ''traf'ic'' etc. Intrările sunt asociate ''many-to-many'' cu definiții și cu lexeme. În rest, intrările sunt obiecte minimale. În afară de ID, ele conțin doar o descriere, de obicei egală cu forma unuia dintre lexeme (fără accent).


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
Linia 151: Linia 149:
* ''Dexonline'' indică abrevierile între două semne ''#''. De exemplu, ''#expr.#'' înseamnă ''expresie''. Vedeți și secțiunea despre abrevieri.
* ''Dexonline'' indică abrevierile între două semne ''#''. De exemplu, ''#expr.#'' înseamnă ''expresie''. Vedeți și secțiunea despre abrevieri.


=== Asocieri lexeme-definiții ===
=== Asocieri intrări-definiții ===


Această categorie exportă asocierile între lexeme și definiții, care sunt de tipul ''many-to-many'' (un cuvânt căutat poate produce mai multe definiții, iar o definiție poate fi afișată la căutarea mai multor cuvinte).
Această categorie exportă asocierile între intrări și definiții, care sunt de tipul ''many-to-many'' (un cuvânt căutat poate produce mai multe definiții, iar o definiție poate fi afișată la căutarea mai multor cuvinte).


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<LexemDefinitionMap>
<EntryDefinition>
   <Map lexemId="12345" definitionId="98723"/>      ;; Asociază lexemul 12345 cu definiția 98723
   <Map entryId="12345" definitionId="98723"/>      ;; Asociază intrarea 12345 cu definiția 98723
   <Map lexemId="12345" definitionId="98724"/>
   <Map entryId="12345" definitionId="98724"/>
   <Unmap lexemId="1234" definitionId="89071"/>    ;; Disociază lexemul 1234 de definiția 89071 -- numai în fișierele diff
   <Unmap entryId="1234" definitionId="89071"/>    ;; Disociază intrarea 1234 de definiția 89071 -- numai în fișierele diff
</LexemDefinitionMap>
</EntryDefinition>
</syntaxhighlight>
 
=== Asocieri intrări-lexeme ===
 
Această categorie exportă asocierile între intrări și lexeme, care sunt de tipul ''many-to-many'' (o intrare ca ''monedă'' poate conține mai multe lexeme ca ''monedă-monede'' și ''monedă-monezi'', iar un lexem ca ''broască'' poate fi parte din mai multe intrări omonime: animalul și mecanismul).
 
<syntaxhighlight lang="xml">
<EntryLexem>
  <Map entryId="12345" lexemId="98723"/>      ;; Asociază intrarea 12345 cu lexemul 98723
  <Map entryId="12345" lexemId="98724"/>
  <Unmap entryId="1234" lexemId="89071"/>    ;; Disociază intrarea 1234 de lexemul 89071 -- numai în fișierele diff
</EntryLexem>
</syntaxhighlight>
</syntaxhighlight>


Linia 210: Linia 220:
== Setul inițial de date ==
== Setul inițial de date ==


Când utilizatorul deschide pentru prima dată aplicația, sau dacă dumneavoastră doriți să obțineți un set complet de date pentru a-l livra împreună cu aplicația, accesați adresa http://dexonline.ro/update4.php?last=0. Veți primi un fișier XML cu legături către șase fișiere, în formatul:
Când utilizatorul deschide pentru prima dată aplicația, sau dacă dumneavoastră doriți să obțineți un set complet de date pentru a-l livra împreună cu aplicația, accesați adresa http://dexonline.ro/update5.php?last=0. Veți primi un fișier XML cu legături către șase fișiere, în formatul:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<Files>
<Files>
   <Full date="2011-09-18">
   <Full date="2017-04-22">
     <Abbrevs>http://static.dexonline.ro/download/xmldump/2011-09-18-abbrevs.xml.gz</Abbrevs>
     <Abbrevs>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-abbrevs.xml.gz</Abbrevs>
     <Inflections>http://static.dexonline.ro/download/xmldump/2011-09-18-inflections.xml.gz</Inflections>
     <Inflections>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-inflections.xml.gz</Inflections>
     <Sources>http://static.dexonline.ro/download/xmldump/2011-09-18-sources.xml.gz</Sources>
     <Sources>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-sources.xml.gz</Sources>
     <Definitions>http://static.dexonline.ro/download/xmldump/2011-09-18-definitions.xml.gz</Definitions>
     <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-definitions.xml.gz</Definitions>
     <Lexems>http://static.dexonline.ro/download/xmldump/2011-09-18-lexems.xml.gz</Lexems>
     <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-entries.xml.gz</Entries>
     <LexemDefinitionMap>http://static.dexonline.ro/download/xmldump/2011-09-18-ldm.xml.gz</LexemDefinitionMap>
    <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-lexems.xml.gz</Lexems>
     <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-edm.xml.gz</EntryDefinitionMap>
    <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-elm.xml.gz</EntryLexemMap>
   </Full>
   </Full>
   <Diffs>
   <Diffs></Diffs>
  </Diffs>
</Files>
</Files>
</syntaxhighlight>
</syntaxhighlight>


Aplicația trebuie să păstreze valoarea <tt>2011-09-18</tt> a atributului <tt>date</tt>. Aceasta este data setului de date care îi este servit. Dacă clientul solicită din nou actualizarea peste câtva timp, trebuie să apeleze scriptul http://dexonline.ro/update4.php?last=2011-09-18 pentru a primi noutățile survenite de la ultima sincronizare:
Aplicația trebuie să păstreze valoarea <tt>2017-04-22</tt> a atributului <tt>date</tt>. Aceasta este data setului de date care îi este servit. Dacă clientul solicită din nou actualizarea peste câtva timp, trebuie să apeleze scriptul http://dexonline.ro/update5.php?last=2017-04-22 pentru a primi noutățile survenite de la ultima sincronizare:


<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<Files>
<Files>
   <Full date="2011-10-09">
   <Full date="2017-05-06">
     <Abbrevs>http://static.dexonline.ro/download/xmldump/2011-10-09-abbrevs.xml.gz</Abbrevs>
     <Abbrevs>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-abbrevs.xml.gz</Abbrevs>
     <Inflections>http://static.dexonline.ro/download/xmldump/2011-10-09-inflections.xml.gz</Inflections>
     <Inflections>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-inflections.xml.gz</Inflections>
     <Sources>http://static.dexonline.ro/download/xmldump/2011-10-09-sources.xml.gz</Sources>
     <Sources>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-sources.xml.gz</Sources>
   </Full>
   </Full>
   <Diffs>
   <Diffs>
     <Diff date="2011-09-25">
     <Diff date="2017-04-29">
       <Definitions>http://static.dexonline.ro/download/xmldump/2011-09-25-definitions-diff.xml.gz</Definitions>
       <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-definitions-diff.xml.gz</Definitions>
       <Lexems>http://static.dexonline.ro/download/xmldump/2011-09-25-lexems-diff.xml.gz</Lexems>
       <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-entries-diff.xml.gz</Entries>
       <LexemDefinitionMap>http://static.dexonline.ro/download/xmldump/2011-09-25-ldm-diff.xml.gz</LexemDefinitionMap>
       <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-lexems-diff.xml.gz</Lexems>
    </Diff>
       <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-edm-diff.xml.gz</EntryDefinitionMap>
    <Diff date="2011-10-02">
       <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-elm-diff.xml.gz</EntryLexemMap>
       <Definitions>http://static.dexonline.ro/download/xmldump/2011-10-02-definitions-diff.xml.gz</Definitions>
       <Lexems>http://static.dexonline.ro/download/xmldump/2011-10-02-lexems-diff.xml.gz</Lexems>
      <LexemDefinitionMap>http://static.dexonline.ro/download/xmldump/2011-10-02-ldm-diff.xml.gz</LexemDefinitionMap>
     </Diff>
     </Diff>
     <Diff date="2011-10-09">
     <Diff date="2017-05-06">
       <Definitions>http://static.dexonline.ro/download/xmldump/2011-10-09-definitions-diff.xml.gz</Definitions>
       <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-definitions-diff.xml.gz</Definitions>
       <Lexems>http://static.dexonline.ro/download/xmldump/2011-10-09-lexems-diff.xml.gz</Lexems>
       <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-entries-diff.xml.gz</Entries>
       <LexemDefinitionMap>http://static.dexonline.ro/download/xmldump/2011-10-09-ldm-diff.xml.gz</LexemDefinitionMap>
      <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-lexems-diff.xml.gz</Lexems>
       <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-edm-diff.xml.gz</EntryDefinitionMap>
      <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-elm-diff.xml.gz</EntryLexemMap>
     </Diff>
     </Diff>
   </Diffs>
   </Diffs>
Linia 256: Linia 266:
</syntaxhighlight>
</syntaxhighlight>


Datele din secțiunea <tt>Full</tt> (abrevieri, flexiuni și surse) sunt întotdeauna servite integral. Datele din secțiunea <tt>Diffs</tt> (definiții, lexeme și asocieri) sunt servite în diferențe incrementale, generate de regulă săptămânal. Diff-urile din secțiunile <tt>Diff</tt> sunt servite în ordine cronologică.
Datele din secțiunea <tt>Full</tt> (abrevieri, flexiuni și surse) sunt întotdeauna servite integral. Datele din secțiunea <tt>Diffs</tt> (definiții, intrări, lexeme și asocieri) sunt servite în diferențe incrementale, generate de regulă săptămânal. Diff-urile din secțiunile <tt>Diff</tt> sunt servite în ordine cronologică.

Versiunea curentă din 1 iunie 2019 12:36

Dacă doriți să scrieți o aplicație care să transfere baza de date și să o folosească off-line, comunicați cu scriptul http://dexonline.ro/update5.php pentru a sincroniza periodic baza de date.

Generalități

  • Copierea, folosirea și redistribuirea definițiilor din dexonline sunt permise sub Licența Publică Generală GNU.
  • Puteți citi detalii despre formatarea definițiilor.
  • Acest protocol înlocuiește versiunile anterioare:
    • update3.php și update.php, care au fost retrase din folosință pe 4 aprilie 2012. Motivul este că protocoalele anterioare calculau un set de date particularizat pentru fiecare client, ceea ce încărca serverul. Noul protocol precalculează datele rezonabil de des (de obicei săptămânal).
    • update4.php, care rămâne disponibil după 2016, dar nu mai exportă date noi. Motivul este că schema bazei de date s-a modificat considerabil.

Date exportate

Surse

dexonline își preia definițiile din diferite surse, care de obicei se referă la un dicționar tipărit, identificat prin titlu, autor, editură și an de apariție. Lista de surse este întotdeauna exportată complet. Ea se modifică rar și vă recomandăm să o descărcați numai dacă observați că ați primit definiții care folosesc surse necunoscute.

<Sources>
  <Source id="1">
    <ShortName>DEX '98</ShortName>
    <Name>Dicționarul explicativ al limbii române</Name>
    <Author>Academia Română, Institutul de Lingvistică "Iorgu Iordan"</Author>
    <Publisher>Editura Univers Enciclopedic</Publisher>
    <Year>1998</Year>
  </Source>
  ...
</Sources>

Flexiuni

Această categorie exportă tipurile distincte de flexiuni folosite de dexonline, care reprezintă un subset al flexiunilor limbii române. Și această categorie este exportată complet, întrucât se modifică foarte rar (vă recomandăm să o transferați numai atunci când, la sincronizarea lexemelor, întâlniți o valoare nouă pentru parametrul InflectionId).

<Inflections>
  <Inflection id="1">
    <Description>Substantiv masculin, Nominativ-Acuzativ, singular, nearticulat</Description>
  </Inflection>
  ...
  <Inflection id="58">
    <Description>Verb, Indicativ, prezent, persoana a II-a, plural</Description>
  </Inflection>
  ...
</Inflections>

Lexeme

„Lexemul” este un termen lingvistic pentru cuvânt. Un lexem este caracterizat printr-un identificator numeric unic, un nume, o descriere opțională (folosită pentru diferențierea omonimelor) și o listă de forme flexionare.

<Lexems>
  <Lexem id="57483">
    <Timestamp>1189683958</Timestamp>
    <Form>cop'il</Form>                                      ;; Forma poate include un apostrof înainte de vocala accentuată
    <Description>persoană</Description>                      ;; Opțional
    <InflectedForm>                                          ;; Formele flexionare
      <InflectionId>1</InflectionId>
      <Form>cop'il</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>3</InflectionId>
      <Form>cop'ii</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>5</InflectionId>
      <Form>cop'ilul</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>8</InflectionId>
      <Form>cop'iilor</Form>
    </InflectedForm>
  </Lexem>
  <Lexem id="57484">
    <Timestamp>1189683961</Timestamp>
    <Form>cop'il</Form>
    <Description>lăstar</Description>
    <InflectedForm>
      <InflectionId>1</InflectionId>
      <Form>cop'il</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>3</InflectionId>
      <Form>cop'ili</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>5</InflectionId>
      <Form>cop'ilul</Form>
    </InflectedForm>
    ...
    <InflectedForm>
      <InflectionId>8</InflectionId>
      <Form>cop'ililor</Form>
    </InflectedForm>
  </Lexem>
  ...
</Lexems>

Precizări:

  • Scriptul nu trimite informații despre ștergerea unui lexem. Clientul dumneavoastră va primi noua tabelă de asocieri intrări-lexeme și poate observa că lexemul nu mai apare în nicio asociere. Nu este o problemă dacă clientul păstrează lexemul pe termen nelimitat, deoarece el nu mai este folosit.
  • Dacă cel puțin una din formele flexionare se modifică, întreg lexemul va fi resincronizat.
  • Lexemul are întotdeauna cel puțin o formă flexionară. Echipa dexonline nu a terminat încă de etichetat toate lexemele și deci paradigmele unor lexeme sunt încă necunoscute. Totuși, chiar și acele lexeme au o singură formă flexionară identică cu forma lexemului.
  • Dacă un cuvânt are mai multe modele de flexionare (cum ar fi monedă-monede și monedă-monezi), vor exista două lexeme separate.
  • Nu vă recomandăm să folosiți numele lexemului (cel din câmpul form) pentru căutări. Folosiți formele flexionare pentru aceasta. De cele mai multe ori, numele lexemului coincide cu prima dintre formele flexionare, iar când nu este așa, există un motiv.

Intrări

Intrările grupează lexeme cu forme sau flexiuni diferite, dar cu sensuri identice. Exemple: căpșună (pl. căpșuni) și căpșună (pl. căpșune), tr'afic și traf'ic etc. Intrările sunt asociate many-to-many cu definiții și cu lexeme. În rest, intrările sunt obiecte minimale. În afară de ID, ele conțin doar o descriere, de obicei egală cu forma unuia dintre lexeme (fără accent).

<Entries>
  <Entry id="12345">
    <Timestamp>1189683958</Timestamp>
    <Description>copil (persoană)</Description>     
  </Entry>
  ...
</Entries>

Definiții

<Definitions>
  <Definition id="9432">                                        ;; Exemplu de definiție adăugată sau modificată
    <Timestamp>1189656131</Timestamp>
    <UserName>ana_zecheru</UserName>
    <SourceId>1</SourceId>
    <Text>@FÁTA MORGÁNA@ s.f. Fenomen optic frecvent în regiunile calde, datorită căruia imaginile
obiectelor aflate la (sau dincolo de) orizont apar ca și cum s-ar reflecta într-o apă. ** Apariție
înșelătoare, iluzie trecătoare. - Cuv. it.</Text>
  </Definition>
  <Definition id="293845">                                      ;; Exemplu de definiție ștearsă -- numai în fișierele diff
    <Timestamp>1189680395</Timestamp>
    <Deleted/>
  </Definition>
</Definitions>

Precizări:

  • Este posibil ca, în cazul unei definiții șterse, să vă fie transmis un ID pe care clientul dumneavoastră să nu îl aibă în baza de date. Acest lucru se întâmplă când o definiție este ștearsă pe site fără să fi fost vreodată activă (inițial toate definițiile trimise pentru dexonline intră în starea temporară până când sunt moderate). În această situație, ignorați pur și simplu înregistrarea.
  • Dexonline indică abrevierile între două semne #. De exemplu, #expr.# înseamnă expresie. Vedeți și secțiunea despre abrevieri.

Asocieri intrări-definiții

Această categorie exportă asocierile între intrări și definiții, care sunt de tipul many-to-many (un cuvânt căutat poate produce mai multe definiții, iar o definiție poate fi afișată la căutarea mai multor cuvinte).

<EntryDefinition>
  <Map entryId="12345" definitionId="98723"/>      ;; Asociază intrarea 12345 cu definiția 98723
  <Map entryId="12345" definitionId="98724"/>
  <Unmap entryId="1234" definitionId="89071"/>     ;; Disociază intrarea 1234 de definiția 89071 -- numai în fișierele diff
</EntryDefinition>

Asocieri intrări-lexeme

Această categorie exportă asocierile între intrări și lexeme, care sunt de tipul many-to-many (o intrare ca monedă poate conține mai multe lexeme ca monedă-monede și monedă-monezi, iar un lexem ca broască poate fi parte din mai multe intrări omonime: animalul și mecanismul).

<EntryLexem>
  <Map entryId="12345" lexemId="98723"/>      ;; Asociază intrarea 12345 cu lexemul 98723
  <Map entryId="12345" lexemId="98724"/>
  <Unmap entryId="1234" lexemId="89071"/>     ;; Disociază intrarea 1234 de lexemul 89071 -- numai în fișierele diff
</EntryLexem>

Abrevieri

Această categorie exportă abrevierile folosite de dexonline, așa cum au fost ele moștenite din dicționarele originale. Această categorie este exportată complet. Vă recomandăm să o transferați numai atunci când, la sincronizarea definițiilor, întâlniți o abreviere necunoscută. Nu toate dicționarele au fost prelucrate pentru expandarea abrevierilor, dar le vom procesa pe toate, în timp.

<AbbrevList>
  <Sources>
    <Source id="0">
      <Section>"common"</Section>
    </Source>
    <Source id="1">
      <Section>"common"</Section>
      <Section>"dex"</Section>
    </Source>
    <Source id="2">
      <Section>"common"</Section>
      <Section>"dex"</Section>
    </Source>
    ...
  </Sources>
  <Section name="common">
    <Abbrev short="adj.">adjectiv</Abbrev>
    <Abbrev short="loc." ambiguous="1">locuțiune</Abbrev>
    <Abbrev short="bot." ambiguous="1">botanică</Abbrev>
    <Abbrev short="pl.">plural</Abbrev>
    <Abbrev short="sg.">singular</Abbrev>
    <Abbrev short="mil.">termen militar</Abbrev>
    ...
  </Section>
  <Section name="dex">
    <Abbrev short="a. cr.">înainte de Cristos</Abbrev>
    <Abbrev short="abr.">abreviat, abreviere</Abbrev>
    <Abbrev short="mil.">milion</Abbrev>
    ...
  </Section>
  ...
</AbbrevList>

Precizări:

  • Întrucât multe din dicționare folosesc sisteme asemănătoare sau chiar identice de abrevieri (de exemplu diversele ediții din DEX), am creat un sistem bazat pe secțiuni. În exemplul de mai sus, sursele sunt 0, 1, 2..., iar sursele 1 și 2 folosesc un set identic de abrevieri, compus din secțiunile common și dex.
  • Dacă o abreviere este definită în mai multe secțiuni, trebuie folosită valoarea din secțiunea definită mai târziu în eticheta <Source>. De exemplu, DEX folosește secțiunile common și dex și ambele definesc o abreviere pentru mil. În acest caz, trebuie folosită valoarea milion, nu termen militar. În practică nu avem încă o astfel de situație, dar anticipăm apariția ei pe măsură ce procesăm noi dicționare.
  • Când abrevierea are atributul ambiguous="1", înseamnă că varianta scurtă are și sens de sine stătător. De exemplu, loc. înseamnă locuțiune, dar poate fi și cuvântul loc (punct, poziție) la sfârșitul unei fraze. Similar, bot. înseamnă botanică, dar poate fi și cuvântul bot (gură de animal) la sfârșitul unei fraze.

Setul inițial de date

Când utilizatorul deschide pentru prima dată aplicația, sau dacă dumneavoastră doriți să obțineți un set complet de date pentru a-l livra împreună cu aplicația, accesați adresa http://dexonline.ro/update5.php?last=0. Veți primi un fișier XML cu legături către șase fișiere, în formatul:

<Files>
  <Full date="2017-04-22">
    <Abbrevs>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-abbrevs.xml.gz</Abbrevs>
    <Inflections>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-inflections.xml.gz</Inflections>
    <Sources>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-sources.xml.gz</Sources>
    <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-definitions.xml.gz</Definitions>
    <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-entries.xml.gz</Entries>
    <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-lexems.xml.gz</Lexems>
    <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-edm.xml.gz</EntryDefinitionMap>
    <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-22-elm.xml.gz</EntryLexemMap>
  </Full>
  <Diffs></Diffs>
</Files>

Aplicația trebuie să păstreze valoarea 2017-04-22 a atributului date. Aceasta este data setului de date care îi este servit. Dacă clientul solicită din nou actualizarea peste câtva timp, trebuie să apeleze scriptul http://dexonline.ro/update5.php?last=2017-04-22 pentru a primi noutățile survenite de la ultima sincronizare:

<Files>
  <Full date="2017-05-06">
    <Abbrevs>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-abbrevs.xml.gz</Abbrevs>
    <Inflections>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-inflections.xml.gz</Inflections>
    <Sources>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-sources.xml.gz</Sources>
  </Full>
  <Diffs>
    <Diff date="2017-04-29">
      <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-definitions-diff.xml.gz</Definitions>
      <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-entries-diff.xml.gz</Entries>
      <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-lexems-diff.xml.gz</Lexems>
      <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-edm-diff.xml.gz</EntryDefinitionMap>
      <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-04-29-elm-diff.xml.gz</EntryLexemMap>
    </Diff>
    <Diff date="2017-05-06">
      <Definitions>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-definitions-diff.xml.gz</Definitions>
      <Entries>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-entries-diff.xml.gz</Entries>
      <Lexems>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-lexems-diff.xml.gz</Lexems>
      <EntryDefinitionMap>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-edm-diff.xml.gz</EntryDefinitionMap>
      <EntryLexemMap>https://dexonline.ro/static/download/xmldump/v5/2017-05-06-elm-diff.xml.gz</EntryLexemMap>
    </Diff>
  </Diffs>
</Files>

Datele din secțiunea Full (abrevieri, flexiuni și surse) sunt întotdeauna servite integral. Datele din secțiunea Diffs (definiții, intrări, lexeme și asocieri) sunt servite în diferențe incrementale, generate de regulă săptămânal. Diff-urile din secțiunile Diff sunt servite în ordine cronologică.