Managementul informaţiei

280
Mihail Radu Solcan Managementul informaţiei

Transcript of Managementul informaţiei

Page 1: Managementul informaţiei

Mihail Radu Solcan

Managementul informaţiei

Page 2: Managementul informaţiei

Mihail Radu Solcan

Managementul informaţiei

Page 3: Managementul informaţiei

3

Curs pentru învăţământul la distanţă(master)

Bucureşti2005

JJ II J I Back J Doc Doc I

Page 4: Managementul informaţiei

c©2005 Mihail Radu Solcan.

Page 5: Managementul informaţiei

5

AvertismentTextul acestei cărţi reflectă experienţa autorului. El re-

flectă, de asemenea, o serie de preferinţe ale autorului.Este important să înţelegeţi că toate explicaţiile refe-

ritoare la folosirea computerului sunt rodul practicii per-sonale a autorului şi oglindesc în mod inevitabil şi limi-tele acestei practici. Toate soluţiile şi programele descriseîn carte au fost testate de către autor, inclusiv pe parcursulelaborării cărţii ca atare. Autorul nu-şi asumă însă nici unfel de răspundere directă sau indirectă pentru eventuale ne-ajunsuri sau daune care ar putea rezulta din folosirea cărţiisau a programelor de calculator prezentate în carte. Aceastăclauză concordă cu spiritul şi litera licenţelor programelorde computer folosite în carte.

JJ II J I Back J Doc Doc I

Page 6: Managementul informaţiei

6

Utilizarea programelor şi a soluţiilor descrise în carte tre-buie făcută de cititoare sau cititori pe propriul lor risc.

În sfârşit, autorul nu se angajează sub nici o formă săasigure sprijin în dezvoltarea de noi programe sau soluţiide aplicare a unor programe pentru nici o categorie de per-soane.

Multe denumiri sunt folosite de către firme sau creato-rii de programe individuali pentru a distinge produsele lor.Unele dintre ele sunt menţionate în carte, respectând formaproprie denumirii respective. Cititoarele şi cititorii trebuiesă ştie că aceste denumiri nu pot fi utilizate de către altefirme sau persoane individuale decât pentru desemnareaproduselor respective.

Pentru alte precizări şi informaţii suplimentare consul-taţi situl pe Internet al cursului.

JJ II J I Back J Doc Doc I

Page 7: Managementul informaţiei

Table of Contents1. Perspectiva algoritmică asupra informaţiei

1. Complexitatea informaţiei

2. Informaţie şi cunoaştere

3. Reflexivitatea în sensul lui Soros

4. Managementul şi tehnologia informaţiilor

5. Costuri şi beneficii2. Informaţia din texte

1. Căutarea informaţiilor cu ajutorul tiparelor1.1. Limbajul tiparelor de căutare în text1.2. Căutarea cu ajutorul grep

2. Capcanele sortării

Page 8: Managementul informaţiei

Table of Contents (cont.) 8

3. Textele ca surse de date3. Informaţia din dicţionare

1. Dicţionarul pentru corectorul ortografic

2. Managementul informaţiei din dicţionarele bi-lingve

3. Managementul definiţiilor lexicale4. Limbajul SQL

1. Un exemplu de bază de date SQLite

2. Căutarea în baza de date

3. Ordonarea informaţiilor

4. Prezentarea informaţiei din tabelele sqlite5. Managementul logic al informaţiilor

Toc JJ II J I Back J Doc Doc I

Page 9: Managementul informaţiei

Table of Contents (cont.) 9

1. Reţelele semantice

2. WordNet pentru utilizare

3. WordNet pentru meşterit3.1. Fişierele Prolog ale WordNet3.2. SWI-Prolog şi încărcarea WordNet3.3. Explorarea bazei de date3.4. Descoperirea conexiunilor dintre informaţii

6. Comunicarea informaţiilor

1. Avantajele folosirii bazelor de date

2. Vizualizarea informaţiilor2.1. Pachetul GraphViz2.2. Diagrame pentru argumente

Toc JJ II J I Back J Doc Doc I

Page 10: Managementul informaţiei

Table of Contents (cont.) 10

7. Proiecte

1. Structurarea arborescentă a informaţiilor1.1. Schema compoziţională

• Folosirea programului Leo • Folosirea VimOutli-ner-ului

2. Prezentarea proiectului

BibliografieIndice

Toc JJ II J I Back J Doc Doc I

Page 11: Managementul informaţiei

Table of Contents (cont.) 11

Lista figurilor

1 Modelul unei fişe de lectură . . . . . . . . . 16

2.1 O căutare simplă . . . . . . . . . . . . . . . 872.2 Căutarea unui cuvânt la început de rând . . 882.3 Căutarea unui cuvânt întreg . . . . . . . . . 892.4 Tipar de căutare care foloseşte punctul . . . 902.5 Un tipar de căutare mai complex . . . . . . 91

3.1 Exemplu de utilizare a corectorului aspell . . 1183.2 Căutare în dicţionarul român-englez al Radei

Mihalcea cu ajutorul DING . . . . . . . . . 119

Toc JJ II J I Back J Doc Doc I

Page 12: Managementul informaţiei

Table of Contents (cont.) 12

3.3 Căutare de definiţii în baza de date Dexon-line cu ajutorul programului Dixit . . . . . . 120

4.1 Crearea unei baze de date SQLite . . . . . . 1294.2 Crearea câmpurilor înregistrărilor dintr-un ta-

bel . . . . . . . . . . . . . . . . . . . . . . . 1304.3 Conţinutul fişierului bib.sql văzut cu Vim . . 1314.4 Tabelul carti în sqlitebrowser . . . . . . . . . 1324.5 Fişierul bibdata.sql . . . . . . . . . . . . . . 1334.6 Vizualizarea datelor din tabelul carti . . . . 1344.7 Extras dintr-un tabel sqlite . . . . . . . . . . 147

5.1 Un exemplu de reţea semantică . . . . . . . 1595.2 Startul WordNet . . . . . . . . . . . . . . . 160

Toc JJ II J I Back J Doc Doc I

Page 13: Managementul informaţiei

Table of Contents (cont.) 13

5.3 Pisica este un soi de. . . . . . . . . . . . . . . 1615.4 Un exemplu de utilizare a WordNet Connect 162

6.1 Fragment dintr-o sursă de date bibtex . . . . 2386.2 Raţiuni pro şi contra unei soluţii în problema

notării . . . . . . . . . . . . . . . . . . . . . 2396.3 Reprezentarea presupoziţiei problemei . . . . 2406.4 Versiunea modificată a diagramei argumen-

tării în problema notării . . . . . . . . . . . 241

7.1 Schemă compoziţională în Leo . . . . . . . . 2547.2 Schemă compoziţională în VimOutliner . . . 2597.3 Un proiect structurat cu ajutorul LATEX . . . 268

Toc JJ II J I Back J Doc Doc I

Page 14: Managementul informaţiei

Table of Contents (cont.) 14

7.4 Inserarea modulelor în alte module cu ajuto-rul LATEX . . . . . . . . . . . . . . . . . . . . 269

7.5 Prima pagină a proiectului formatat de LATEX 2707.6 A doua pagină a proiectului formatat de LATEX271

Toc JJ II J I Back J Doc Doc I

Page 15: Managementul informaţiei

Utilizarea manualului 15

Ghid de utilizare a manualului

Acest curs vă oferă o introducere în studiul managementuluiinformaţiei.

Cum trebuie folosit acest manual? Faceţi o primă lecturăpentru a vedea despre ce este vorba. Următoarele lecturitrebuie însă să ducă la pregătirea examenului.

Nu uitaţi, de asemenea, să folosiţi indicii de la sfârşitulmanualului. Indicele vă ajută să parcurgeţi manualul într-un mod neliniar.

Luaţi o foaie de hârtie normală, format A4, şi rupeţi-oîn patru. Obţineţi patru fişe. Luaţi una dintre ele şi trageţio linie orizontală la o distanţă de marginea de sus a fişeicare să vă permită să scrieţi un rând. Trageţi apoi o linie

Toc JJ II J I Back J Doc Doc I

Page 16: Managementul informaţiei

Utilizarea manualului 16

verticală pornind de la linia orizontală pe care tocmai aţitrasat-o. Rezultatul ar trebui să arate ca-n figura 1.

Figura 1: Modelul unei fişe de lectură

Aveţi acum modelul unei fişe de lectură. Ea este împăr-Toc JJ II J I Back J Doc Doc I

Page 17: Managementul informaţiei

Utilizarea manualului 17

ţită în trei „câmpuri“. În primul câmp puneţi o abrevierede genul „minf“ (Managementul informaţiei). Abreviereaaceasta este importantă pentru a recunoaşte repede desprece fişă este vorba, dacă se rătăceşte printre alte hârtii. Maiimportant este însă să notaţi acolo numărul capitolului sausecţiunii pe care o citiţi şi să adăugaţi un număr pentrualineatul pe care-l parcurgeţi. Numărul alineatului nu estepus explicit în text, dar îl puteţi stabili dumneavoastră.

În câmpul care ocupă cea mai mare parte a fişei veţi notaideea-cheie în alineatul respectiv. Este foarte important sănu copiaţi alineatul ca atare, ci să extrageţi doar tema încâteva cuvinte şi să precizaţi, tot în câteva cuvinte, ce sespune pe tema respectivă în alineatul dat.

Nu neglijaţi faptul că alineatul ar putea să introducă oîntrebare pe tema respectivă. Întrebările sunt foarte sem-

Toc JJ II J I Back J Doc Doc I

Page 18: Managementul informaţiei

Utilizarea manualului 18

nificative pentru că de la ele porneşte orice investigaţie. Încazul lor nu este atâta necesară o rezumare, o desprinderea aspectului-cheie, cât o analiză. Încercaţi să vedeţi de ceeste pusă întrebarea respectivă. Nu uitaţi niciodată să ana-lizaţi ce anume presupune întrebarea: acceptarea anumitorsensuri ale unor concepte, un anumit statut ontologic al re-ferentului unor termeni, existenţa unui tip de obiecte, derelaţii, anumite condiţii. Nu treceţi deci cu uşurinţă pestemodul în care sunt formulate interogaţiile.

În câmpul care a rămas liber veţi trece două cuvinte sauexpresii-cheie. Acestea sunt cuvinte pe care, de exemplu, leputeţi întâlni în indicele manualului. Pot fi, desigur, termenipe care i-aţi remarcat dumneavoastră. Un cuvânt vă ajută

Toc JJ II J I Back J Doc Doc I

Page 19: Managementul informaţiei

Utilizarea manualului 19

să identificaţi tema alineatului; celălalt cuvânt vă permitesă regăsiţi ceea ce se spune pe tema dată în alineat.1

Cu cele patru fişe pe care le-aţi confecţionat deja faceţi oprobă cu patru alineate diferite din manual. Acestea vor fiprimele fişe de lectură a manualului. Sondajul mai are însăşi rolul de a vă familiariza cu stilul manualului, pentru a-lputea parcurge mai rapid.

Când citiţi n-are desigur sens să faceţi o fişă de lecturăpentru fiecare alineat din manual. Nu are rost, de pildă, săfişaţi acest ghid introductiv. Fişele de lectură se fac pen-

1Mai multe sugestii privitoare la lucrul cu fişe găsiţi în MihailRadu Solcan, Eseul filosofic (Bucureşti: Editura Universităţii din Bu-cureşti, 2004). Cartea are şi o pagină de web cu informaţii suplimen-tare, pe care o puteţi accesa la adresa http://www.ub-filosofie.ro/~solcan/eft.

Toc JJ II J I Back J Doc Doc I

Page 20: Managementul informaţiei

Utilizarea manualului 20

tru capitolele numerotate, alegând de acolo alineatele careintroduc elemente noi.

Ţineţi fişele de lectură a manualului separat de alte fişe,într-un plic sau o cutie specială.

Separat de fişele de lectură a manualului, construiţi unmic „fişier“ cu cazuri (cu fişe de hârtie precum cele descrisemai sus!). Pentru fiecare caz reţineţi un număr de idei-cheie.Nu uitaţi să folosiţi descrieri structurale şi cuvinte-cheie înmodul prezentat mai sus.

Cazul 1.1, de pildă, ar putea fi prezentat pe cinci fişe.Cuvinte precum „problema“, „soluţii“, „tehnici“, „manage-ment“, „costuri“ sunt cuvinte-cheie obligatorii în cazul fişe-lor pentru cazuri din domeniul managementului. Desigur,un caz mai complicat s-ar putea să ceară recursul la maimult de cinci fişe. În contextul de faţă, cinci pare însă un

Toc JJ II J I Back J Doc Doc I

Page 21: Managementul informaţiei

Utilizarea manualului 21

număr rezonabil pentru fişele oricărui caz care ar putea con-stitui obiect de discuţie.

Cum alegeţi cazurile? Manualul foloseşte cazuri de ma-nagement al informaţiei familiare autorului. Găsiţi şi dum-neavoastră acele cazuri de management al informaţiei carevă sunt familiare.

Lăsaţi pe fişele cu cazuri, în câmpul principal, loc pentruadnotări ulterioare. Pentru a distinge de restul fişei acesteadnotări, puteţi folosi un creion sau un pix de altă culoare.

Pe exemplarul personal din manual sau din lucrări dinbibliografie nu este rău să faceţi evidenţieri şi sublinieri.Acestea au rolul de a pregăti elaborarea fişei de lectură. Deasemenea, ele uşurează o lectură rapidă ulterioară.

Cu cele două seturi cu fişe, cel cu fişele de lectură a ma-nualului şi cel cu fişele care descriu cazuri, veniţi la examen.

Toc JJ II J I Back J Doc Doc I

Page 22: Managementul informaţiei

Utilizarea manualului 22

Trataţi aceste fişe ca pe nişte bilete de examen. Respectaţideci formatul lor! Nu scrieţi totul pe foi mari şi nu puneţimai mult de o idee pe o fişă!

Toc JJ II J I Back J Doc Doc I

Page 23: Managementul informaţiei

CAPITOLUL 1. PERSPECTIVA ALGORITMICĂ ASUPRA INFORMAŢIEI23

Capitolul 1:Perspectiva algoritmică asupra informaţiei

Întâlnim adesea expresia „depozit de informaţii“. Este o me-taforă utilă, dar trebuie să sesizăm şi diferenţele. Nu te poţiplimba printr-un depozit de informaţii aşa cum te plimbiprintr-unul de materiale de construcţii. În depozitul cu ma-teriale de construcţii poţi pune mâna pe scânduri. Poţi eva-lua din ochi dimensiunile. Poţi compara desenul lemnului.

Într-un anume fel, şi-n depozitul de informaţii poţi eva-lua dimensiuni, compara sau sorta. Operaţiile aceste suntînsă mult mai abstracte. În practică, oamenii au nostalgiavizualului şi preferă tot soiul de interfeţe grafice colorate,pline de butoane şi decoraţiuni atunci când explorează ma-gaziile cu informaţii.

Toc JJ II J I Back J Doc Doc I

Page 24: Managementul informaţiei

CAPITOLUL 1. PERSPECTIVA ALGORITMICĂ ASUPRA INFORMAŢIEI24

Invizibilitatea informaţiei poate fi însă foarte înşelătoare.În întreprindere se poate lesne uita că informaţia serveşteacţiunea. Sentimentul că informaţiile ar avea ceva tainic ge-nerează ideea că informaţiile ar fi un lucru cu care se ocupădoar sectoare speciale ale întreprinderii. Folosirea compute-relor accentuează foarte mult acest sentiment. Programareacomputerelor are şi ea invizibilitate şi este înconjurată de oaură de mister.

În realitate legătura dintre informaţie şi scândurile dindepozitul de construcţii este mult mai mare decât se credeîndeobşte. Să zicem c-am vrea să ne facem un raft. Ne pro-curăm scândurile necesare, dar trebuie s-avem idee despreceea ce vrem să facem cu ele: trebuie s-avem idee cum să letăiem, s-avem idee cum le îmbinăm, s-avem idee cum fixăm

Toc JJ II J I Back J Doc Doc I

Page 25: Managementul informaţiei

CAPITOLUL 1. PERSPECTIVA ALGORITMICĂ ASUPRA INFORMAŢIEI25

toată construcţia la locul de destinaţie. Conceptul de idee,în asemenea contexte, se va dovedi mai valoros decât pare.

Mai sus am examinat doar o anume problemă: cea a con-struirii unui (anume) raft. Gândiţi însă din perspectiva uneiclase de probleme. Nu trebuie să fie probleme din matema-tică! Poate fi vorba şi despre desfacerea dopurilor de la sti-cle. Aici vom examina, în primul rând, dopul: este de plută,este un dop metalic precum cel de la sticlele de bere, esteun dop de sticlă de şampanie? După ce avem răspunsul,alegem modul adecvat de a proceda. Din nou avem însă oidee, o idee despre rezolvarea unei clase de probleme. Cu untermen generic, o astfel de idee se numeşte algoritm.

Conceptul de algoritm este unul foarte general. Nu văaşteptaţi la o definiţie care să facă apel la un concept maigeneral şi să evidenţieze ce anume distinge algoritmii de alte

Toc JJ II J I Back J Doc Doc I

Page 26: Managementul informaţiei

CAPITOLUL 1. PERSPECTIVA ALGORITMICĂ ASUPRA INFORMAŢIEI26

elemente din sfera conceptului respectiv. Cartea de faţă nunumai că nu-şi propune să discute la modul general aseme-nea concepte foarte abstracte, ci chiar adoptă perspectivameşterului.

Ce-ar fi de „meşterit“ însă în cazul informaţiilor? Răs-punsul este foarte simplu: programe de calculator! Chiar săle meşterim? Cititoarele şi cititorii pot proceda cum cred decuviinţă: dacă dezvoltă o pasiune pentru programare, potchiar să meşterească la programele respective; altfel, pot săle trateze ca pe nişte cazuri în care este implicat manage-mentul informaţiilor şi să citească despre ele.

Analogia cu meşteritul raftului din scânduri este acumdestul de simplă. Calculatoarele sunt capabile să stochezedate, înstructurate în diverse moduri. Aceste date sunt pre-lucrate, aşa cum prelucrăm scândurile: după o anumită idee.

Toc JJ II J I Back J Doc Doc I

Page 27: Managementul informaţiei

CAPITOLUL 1. PERSPECTIVA ALGORITMICĂ ASUPRA INFORMAŢIEI27

Cu alte cuvinte, folosim un algoritm sau o serie de algoritmipentru a aduce datele la o altă formă.

Adevărul este că prelucrarea datelor se poate face şi-ntr-un mod mult mai tradiţional, folosind mai degrabă creionulşi hârtia. Citiţi o carte mai veche de documentare, cum arfi cea editată de A. I. Mihailov et al.[6]. La urma urmei, lec-tura unei asemenea cărţi poate fi pusă tot sub grila manage-mentului informaţiei (mai ales la nivelul unei biblioteci saual unui institut de cercetare). Chiar dacă utilizarea calcula-toarelor este, ca să zic aşa, noutatea revoluţionară anunţatăîn cartea respectivă, tehnicile de bază descrise acolo ţin deepoca anterioară calculatoarelor. Oricum, în acel moment,calculatoarele personale nici nu fuseseră inventate. De ase-menea, nici Internetul nu fusese descoperit.

Toc JJ II J I Back J Doc Doc I

Page 28: Managementul informaţiei

Section 1: Complexitatea informaţiei 28

1. Complexitatea informaţiei

În această secţiune ne vom permite totuşi ceva teorie ab-stractă. În locul unor date ceva mai concrete, ne vom în-chipui că trebuie să generăm şiruri de semne 0 şi 1. Nu nepunem întrebarea la ce sunt bune aceste şiruri de semneatât de simple. Le tratăm drept ceea ce, la urma urmei, şisunt: nişte obiecte matematice.

Legendarul matematician rus Andrei Kolmogorov a avutideea examinării lungimii programelor care generează şiruriprecum cele descrise mai sus.

Cum adică „lungimea programelor“? Programele (unuicalculator fizic sau ale unuia abstract) sunt texte: acestetexte permit maşinii să facă ceea ce „ştie“. De pildă maşinapoate să adauge la un şir dat un 1 sau poate să-l şteargă

Toc JJ II J I Back J Doc Doc I

Page 29: Managementul informaţiei

Section 1: Complexitatea informaţiei 29

ş.a.m.d. Tot secretul constă în „citirea“ acestor programe decătre maşină. Programul nu conţine neapărat instrucţiuni;i.e. nu este neapărat nevoie ca algoritmul să fie dat în modexplicit. Programul poate să conţină doar o descriere; înacest caz, maşina şi programele deja stocate în ea vor generaalgoritmul, care – la rândul său – va produce rezultatuldorit.

Dacă programul poate fi o descriere, n-ar fi cel mai simpluca el să fie chiar şirul de 0 şi 1 pe care dorim să-l generăm?Nu tocmai. S-ar putea să nu fie chiar cea mai simplă soluţie.Dacă şirul are o regularitate în el, o instrucţiune scurtă s-arputea să-l genereze foarte uşor.1

Gregory Chaitin şi alţii au dezvoltat o întreagă teorie1Pentru exemple şi o discuţie mai amplă despre complexitatea Kol-

mogorov vedeţi, pe Internet, articolul pe această temă din Wikipedia.Toc JJ II J I Back J Doc Doc I

Page 30: Managementul informaţiei

Section 1: Complexitatea informaţiei 30

algoritmică a informaţiei. În această teorie conceptul demărime (size) a unui program joacă un rol deosebit. De-finiţia exactă este însă foarte sofisticată. Chaitin foloseştelimbajul Lisp pentru a lucra cu liste de simboluri. Mărimeaprogramului este mărimea programului scris în Lisp.2

Teoria lui Chaitin este foarte diferită de clasica teorie ainformaţiei formulată de Claude Shannon. Perspectiva luiShannon era cea a statisticii. Ea oferă în special un mo-del teoretic pentru electronică (pentru comunicaţiile elec-tronice).

Este important de reţinut din perspectiva teoretică a luiChaitin că informaţia este legată de liste de simboluri şi

2A se vedea Gregory Chaitin, Algorithmic Information Theory(Cambridge University Press, 1990), versiunea plasată de Chaitin peInternet, la 2 aprilie 2003, în special cap.6, pp.157 ş.u.

Toc JJ II J I Back J Doc Doc I

Page 31: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 31

algoritmii capabili să genereze respectivele liste. Se observăcă vorbim despre liste de simboluri şi nu doar despre listede cifre (care sunt şi ele simboluri – pentru numere). Nueste vorba doar de măcinarea unor numere enorme, ci deprelucrarea de liste de simboluri în general şi de limiteleacestei prelucrări.

2. Informaţie şi cunoaştere

Este informaţia tot una cu cunoaşterea, în sensul de cu-noaşterea de care dispun oamenii? Răspunsul depinde deperspectiva pe care-o adoptăm.

Din punctul de vedere prezentat în secţiunea 1, informa-ţia nu este formată doar din datele pe care le-am stoca încomputer. De pildă, am putea avea o listă cu tot felul de

Toc JJ II J I Back J Doc Doc I

Page 32: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 32

date despre pantofii pe care-i avem în depozit. Importanţisunt însă algoritmii cu care prelucrăm aceste date. Cu altecuvinte, avem atâta informaţie câte idei avem despre ceeace putem face cu datele respective. În orice caz, trebuie săştim să le extragem din calculator. Şi n-ar fi deloc rău săfacem acest lucru rapid.

Mulţi filosofi obiectează împotriva ideii c-am stoca încalculator cunoaştere. Doar pentru noi oamenii datele res-pective au un înţeles. Altfel spus, noi oamenii înţelegemce intră şi ce iese din computer. Computerul manevreazădoar nişte simboluri lipsite de înţeles pentru maşină. O facefoarte repede, mult mai repede decât noi, dar prelucreazăinformaţii, nu cunoaştere. Maşina are informaţii în sensulcă are şi datele, şi algoritmii care specifică modul lor deprelucrare.

Toc JJ II J I Back J Doc Doc I

Page 33: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 33

Mulţi experţi în management sunt şi ei convinşi că tre-buie să facem o distincţie între cunoaştere şi informaţie.Pentru cei de la Information Management Office de pe lângăguvernul Australiei, putem împărtăşi altora cunoaşterea decare dispunem, în vreme ce informaţia doar o răspândim.Cunoaşterea ar ţine de „trăirea umană şi de capacitateaoamenilor de a formula aprecieri complexe bazate pe expe-rienţa trecută“. Informaţia ar ţine de „datele ca atare, învreme ce cunoaşterea este «potenţial de acţiune»“.3

Ideea de mai sus că informaţia ar ţine doar de datele caatare mi se pare mai mult decât discutabilă. Fără algoritmidatele respective sunt precum inscripţiile într-o limbă pe

3Apud A Sample of Contributions to Worldwide ManagementPractices, pe situl www.brint.com.

Toc JJ II J I Back J Doc Doc I

Page 34: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 34

care n-o ştie nimeni. Simbolurile respective sunt ca niştedecoraţiuni ale suportului pe care sunt scrise.

Voi adopta totuşi aici ceea ce aş numi versiunea pesimistăa distincţiei dintre informaţie şi cunoaştere: informaţia esteceea ce manipulează computerele; doar oamenii operează cucunoaştere. S-ar putea ca această versiune pesimistă să fieeronată: distincţia dintre informaţie şi cunoaştere ar fi maidegrabă una graduală.

Fapt este că actualele tehnologii ale informaţiei nu nepermit să dăm exemple de programe de calculator caremanevrează informaţiile aşa cum manevrăm noi cunoaşte-rea. Luaţi orice program de traducere la care aveţi acces şipuneţi-l la „grea încercare“; va produce rezultate curioase.Am introdus, de pildă, versurile lui Shakespeare (As YouLike It 2/7):

Toc JJ II J I Back J Doc Doc I

Page 35: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 35

All the world’s a stage,And all the men and women merely players:They have their exits and their entrances;

într-un program de traducere4şi rezultatul a fost (în ger-mană):

Ein Stadium der ganze Welt,Und alle Männer und der Frauen Spieler bloß:Sie haben ihre Ausgänge und ihre Eingänge;

În germană, cuvântul „Stadium“ are sensul de stadiu saude stadion. Shakespeare vrea însă să spună că lumea este o

4Pe Internet, în decembrie 2005. Din motive de ordin etic, nu potindica locul. Programul este unul comercial. Nu cred că este etic să facipublicitate negativă, aşa cum nu este etic să faci publicitate pozitivă.După câte ştiu eu, alte programe ar da rezultate asemănătoare.

Toc JJ II J I Back J Doc Doc I

Page 36: Managementul informaţiei

Section 2: Informaţie şi cunoaştere 36

scenă.5Algoritmul pare a fi acelaşi şi pentru franceză, căcirezultatul este asemănător:

Une étape de tout le monde,Et tous les hommes et de femmes joueuses sim-

plement :Ils ont leurs sorties et leurs entrées ;

Versurile lui Shakespeare s-au frânt şi totul arată precumun morman de cuvinte din care ne este greu să înţelegemceva.

5Iată cum arată traducerea lui August Wilhelm von Schlegel:

Die ganze Welt ist BühneUnd alle Fraun und Männer bloße Spieler.Sie treten auf und geben wieder ab,

(pe situl www.william-shakespeare.de).

Toc JJ II J I Back J Doc Doc I

Page 37: Managementul informaţiei

Section 3: Reflexivitatea în sensul lui Soros 37

Prin urmare, orice persoană care răspunde de manage-mentul unei organizaţii, cel puţin în stadiul actual al dez-voltării tehnologiei, trebuie să ţină cont de diferenţa dintrecunoaştere şi informaţie.

3. Reflexivitatea în sensul lui Soros

George Soros nu este numai un om de afaceri de succes.În tinereţea sa a studiat filosofia (cu Karl R. Popper) şicultivă ideea că filosofia este importantă pentru strategiasa a investiţiilor.6

George Soros a formulat o teorie a reflexivităţii, care sedistanţează de o serie de asumpţii din manualele de econo-

6A se vedea biografia lui George Soros de pe situl Open SocietyInstitute.

Toc JJ II J I Back J Doc Doc I

Page 38: Managementul informaţiei

Section 3: Reflexivitatea în sensul lui Soros 38

mie. Soros susţine că preţurile de pe o piaţă nu sunt doarrodul jocului cererii şi al ofertei. Aşteptările celor care par-ticipă la schimburi joacă un rol important.7

Cercetătorii din ştiinţele naturii au de a face cu feno-mene care au loc independent de ceea ce cred oamenii sauzic oamenii. Acest lucru nu se întâmplă însă pe o piaţă fi-nanciară.8

Soros distinge între două funcţii: una, cea cognitivă, ex-primă dependenţa participanţilor într-un proces precum celde pe o piaţă financiară de situaţia de pe piaţă; cealaltăfuncţie, cea participativă, exprimă dependenţa situaţiei de

7George Soros[14, p.29].8George Soros[14, p.32]. În acest punct Soros se distanţează de

profesorul său, Karl R. Popper (v. The Alchemy of Finance[14, pp.35–40]).

Toc JJ II J I Back J Doc Doc I

Page 39: Managementul informaţiei

Section 3: Reflexivitatea în sensul lui Soros 39

pe piaţă de deciziile participanţilor, luate în funcţie de va-lorile furnizate de către funcţia cognitivă. Raportul carese stabileşte între cele două funcţii este denumit de cătreGeorge Soros reflexivitate9

George Soros a formulat iniţial teoria sa despre reflexivi-tate ca o speculaţie filosofică. Ulterior a testat însă aceastăteorie pe terenul care-i este cel mai familiar, cel al bursei devalori.

Reflexivitatea în sensul lui Soros este un concept util şipentru a înţelege ceea ce se-ntâmplă în cazul managementu-lui unei firme. Managerul nu este o persoană ale cărei deciziisă aibă eficienţă doar pentru că examinează în mod corecto serie de indicatori şi face o mulţime de calcule. Felul în

9George Soros[14, p.42].

Toc JJ II J I Back J Doc Doc I

Page 40: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 40

care este privit managerul de cei din firmă are o importanţăla fel de mare ca şi examinarea „indicatorilor“.

4. Managementul şi tehnologia informaţiilor

În cele ce urmează termenul „manager“ se referă la o per-soană, de gen feminin sau masculin, nu la un automat. Oasemenea persoană este prinsă în angrenajul reflexivităţiiîn sensul lui Soros.

Părintele managementului ca disciplină academică, PeterDrucker, vorbea despre cinci operaţii de bază în munca unuimanager:10

• stabilirea obiectivelor;• organizarea;

10Peter Drucker[1, p.400]Toc JJ II J I Back J Doc Doc I

Page 41: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 41

• crearea unei motivaţii la cei cu care lucrează;• măsurarea şi comunicarea rezultatelor;• dezvoltarea persoanelor cu care lucrează, inclusiv a

propriei persoane.

Care ar fi însă profilul muncii unui manager al informaţi-ilor? Dac-ar fi să imităm schema propusă de Peter Drucker,atunci managerul informaţiilor:11

• stabileşte obiectivele activităţilor legate de compute-rele firmei;

• organizează activităţile legate de computerele firmei;• crearea unei motivaţii la cei cu care lucrează;

11A se vedea şi descrierea rolului managerului informaţiilor pe situlMinisterului Muncii al SUA.

Toc JJ II J I Back J Doc Doc I

Page 42: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 42

• măsurarea şi comunicarea rezultatelor;• dezvoltarea persoanelor cu care lucrează cu compu-

tere, inclusiv a propriei persoane.Dacă ne amintim de reflexivitate, ne dăm imediat seama

că prima activitate (stabilirea obiectivelor) trebuie făcutăîn coordonare cu ceilalţi manageri ai firmei şi în funcţie deobiectivele fixate de managerul general al firmei. Nici cele-lalte activităţi nu pot fi scoase de sub cupola reflexivităţii.

Problema dezvoltării persoanelor care lucrează cu com-puterele este totdeauna una acută. Un computer cu pro-grame oricât de sofisticate este inutil dacă este folosit pre-cum vechile maşini de scris. Oferă personalului firmei numaisatisfacţia de a se destinde din când în când cu jocuri pecalculator.

Ce ar trebui să ştie persoanele care sunt manageri, dar nuToc JJ II J I Back J Doc Doc I

Page 43: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 43

manageri ai informaţiilor, despre managementul informaţi-ilor? În diversele cărţi care încearcă să răspundă la aceastăîntrebare există două strategii fundamental diferite:• Prima strategie este aceea de a privi sistemul de com-

putere al firmei ca pe un sistem făcut din cutii negre;persoanele care n-au atribuţii tehnice legate de acestesisteme ar trebui să-nţeleagă doar ce intră şi ce iesedin cutii.

• A doua strategie este cea a deschiderii cutiilor negre,pentru a vedea cum funcţionează.

Cartea de faţă adoptă a doua strategie, cea a deschideriicutiilor. Punctul nevralgic al acestei strategii este că des-chiderea cutiilor seamănă cu deschiderea cutiei Pandorei.Sistemele computerizate sunt cele mai complicate sistemeconcepute de om.

Toc JJ II J I Back J Doc Doc I

Page 44: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 44

Pentru a para efectul de tornado al complexităţii o stra-tegie ar fi cea a folosirii unor sisteme-jucărie. Noi am optatpentru o altă strategie: cea a „meşteritului“ cu programe decomputer cât se poate de reale. Nici măcar exemplele nusunt totdeauna foarte simple.

Fiecare caz de „meştereală“ poate să dea însă o ideedespre ceea ce se-ntâmplă efectiv în sistemul informaţio-nal. Scopul este s-avem o înţelegere mai bună a ceea cese-ntâmplă în sistem. George Soros vorbeşte despre defici-tul de înţelegere al celor care participă la schimburile pe opiaţă. Un deficit de înţelegere există şi atunci când interac-ţionăm cu sistemul informatic.

Cazurile reale pot fi uneori uimitoare din perspectiva de-ficitului de înţelegere. Am văzut firme care au achiziţionatbaze de date scumpe pentru a evidenţele lor electronice. În

Toc JJ II J I Back J Doc Doc I

Page 45: Managementul informaţiei

Section 4: Managementul şi tehnologia informaţiilor 45

practică reuşeau să instaleze sistemul doar pe un computeraflat undeva într-un birou. Restul computerelor erau preavechi pentru a instala pe ele noul sistem. Apoi nu se conce-puse nimic pentru a transfera automat datele de pe vechiulsistem pe noul sistem. Şi la urma urmei câte articole deinventar aveau în depozit? Câteva zeci de mii! Or sistemulachiziţionat va fi avut sens la sute sau poate milioane de ar-ticole de inventar. Managerii care au luat deciziile n-aveauefectiv idee despre ceea ce se-ntâmplă într-un sistem infor-matic.

Toc JJ II J I Back J Doc Doc I

Page 46: Managementul informaţiei

Section 5: Costuri şi beneficii 46

5. Costuri şi beneficii

Dacă parcurgem un bun manual de economie12vom desco-peri repede importanţa costurilor. Şi manualele de econo-mie matematică pentru manageri13ne vor convinge de im-portanţa analizei costurilor.

Rob Mattison, în cartea sa despre bazele de date[5], neprezintă o serie de cazuri în care managerii trebuie să iadecizii cu privire la bazele de date. Personajul său iniţialeste managerul unui mic magazin de pantofi. El ar puteaînvăţa şi singur să scrie programele pentru baza sa de date.

12Deosebit de potrivit pentru învăţarea tehnicilor standard din şti-inţa economică este manualul lui David Friedman[3]. Cartea este scrisăcu mult umor şi combină explicaţiile în limbaj natural cu tehnicile ma-tematice.

13A se vedea bunăoară cel al lui William F. Sharpe[13].

Toc JJ II J I Back J Doc Doc I

Page 47: Managementul informaţiei

Section 5: Costuri şi beneficii 47

Mattison crede că va recurge totuşi la consultanţă. De ce?Totul este o chestiune de evaluare a costurilor şi beneficiilor.

O prezentare sistematică a unui caz ar arăta precum ca-zul1.1, cel al anticarului.

Anticarul aflat în căutarea unei baze de date are o seriede opţiuni. Ar putea folosi, de pildă, o bază de date de tipSQLite, precum cea descrisă aici în capitolul 4? Desigur căda, dar cred c-ar trebui să apeleze la consultanţă.

Toc JJ II J I Back J Doc Doc I

Page 48: Managementul informaţiei

Section 5: Costuri şi beneficii 48

Adaptare după RobMattison[5, pp.1–2]

Tabelul 1.1: Cazul managerului anticariatuluiToc JJ II J I Back J Doc Doc I

Page 49: Managementul informaţiei

Section 5: Costuri şi beneficii 49

Nu este oare periculos faptul că oricine are acces la fi-şierul cu baza de date SQLite are acces la toate datele? Nucred că lucrul acesta are mare importanţă într-un mic ma-gazin. S-ar putea ca personajul nostru să fie oricum singurapersoană care foloseşte baza de date. Într-o firmă foartemare problema accesului selectiv la date s-ar pune desiguraltfel.

Managerii par a iubi de multe ori birourile luxoase, ma-şinile scumpe şi sistemele informatice costisitoare. Acesteasunt precum nişte blănuri scumpe. V-aţi întrebat vreodatăde ce unele animale au blana atât de bogată? Un cotoi fărăblană este o fiinţă care pare foarte pricăjită; blana îl facesă fie nu doar mai frumos, ci şi mai mare. Dacă pare maimare, atunci poate impresiona mai lesne prada sau adver-sarii. Blana este un atu din perspectiva luptei pentru supra-

Toc JJ II J I Back J Doc Doc I

Page 50: Managementul informaţiei

Section 5: Costuri şi beneficii 50

vieţuire. La urma urmei, lucrul acesta este valabil şi pentrumanageri. Ţine de reflexivitatea la care se referă GeorgeSoros: contează ceea ce cred alţii despre tine.

Programele de computer sunt şi ele învelite uneori în totfelul de blănuri: interfeţe grafice care-ţi iau ochii, tot felulde asistenţi care-ţi sar în ajutor. Nu trebuie însă niciodatăpierdute din vedere costurile acestor sisteme şi ceea ce facele efectiv. Un sistem mai prietenos reduce costurile legatede consultanţă. Este însă şi suficient de flexibil pentru a seadapta la obiectivele firmei? Ce se-ntâmplă dacă fişierele încare sunt stocate datele au un format secret şi producătorulrenunţă să le mai folosească în produsele sale şi nu dezvăluienici secretul formatului?

Am încercat s-aplic considerentele legate de costuri şibeneficii şi-n cazul cărţii de faţă. Toate exemplele folosesc

Toc JJ II J I Back J Doc Doc I

Page 51: Managementul informaţiei

Section 5: Costuri şi beneficii 51

programe care pot fi descărcate gratuit de pe Internet. For-matele fişierelor sunt publice. Mai mult decât atât, progra-mele au sursa deschisă. Este costul lor nul, din punctul devedere al cititoarei sau cititorului. Nici vorbă că nu. Pro-gramele mai trebuie şi instalate. Limbajul lor trebuie câtde cât învăţat ş.a.m.d. Informaţiile despre aceste programecontează!

Toc JJ II J I Back J Doc Doc I

Page 52: Managementul informaţiei

CAPITOLUL 2. INFORMAŢIA DIN TEXTE 52

Capitolul 2:Managementul informaţiei conţinute în

texte

Ni se întâmplă de multe ori să scriem pe petice de hârtie.La restaurant: notăm pe şerveţele nume, adrese, numere detelefon. Ne folosim poate de invitaţia la recepţie pentru anota idei.

Ca să-mi fac schiţa proiectului acestei cărţi am căutatprin geantă, prin buzunare o bucată de hârtie. Cu un creionam aşternut obiectivele principale ale proiectului pe o hârtiea cărei destinaţie iniţială era să slujească drept ambalaj. Înjurul computerului la care scriu această carte sunt tot felul

Toc JJ II J I Back J Doc Doc I

Page 53: Managementul informaţiei

CAPITOLUL 2. INFORMAŢIA DIN TEXTE 53

de fişe de hârtie cu nume, idei, numere şi alte notaţii dintrecele mai diverse.

Managerul modern s-ar putea să aibă pe birou un teancde fişe frumos tăiate, special pregătite pentru însemnări.Are probabil la îndemână şi acele hârtiuţe cu lipici carepot fi ataşate direct paginilor unei cărţi sau unui documenttrimis de cei care se ocupă cu finanţele organizaţiei sau cucomputerele şi aşa mai departe.

Hârtiile acestea reprezintă, în fond, un mare progres.Ideea ca atare de a nota ceva, de a ţine însemnări a re-prezentat un mare pas înainte. Folosirea hârtiei este relativrecentă. Oamenii şi-au făcut noduri la fulare sau chiar ţi-neau funii speciale cu noduri. Au scris pe cioburi de lut.Arheologii au o mare satisfacţie când descoperă asemeneaînsemnări. De multe ori ele nu sunt texte religioase sau

Toc JJ II J I Back J Doc Doc I

Page 54: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 54

scrieri literare. Sunt însemnări cu caracter comercial. Suntevidenţe ale unor vechi depozite ş.a.m.d. Cu alte cuvinte,sunt informaţiile cu care lucrau vechii manageri.

Managerul actual s-ar folosi desigur de computer, nu desfori, oase şi cioburi de lut. Locul cioburilor şi bucăţilorde hârtie este luat în acest caz de fel şi fel de fişiere. Cândproduci însă fişiere căutarea informaţiei stocate se face altfeldecât atunci când răscoleşti printre hârtii.

1. Căutarea informaţiilor cu ajutorul tiparelor

Fişierele de tip text au o importanţă crucială în compute-rele actuale. Utilizatorii obişnuiţi s-ar putea să le găseascăurâte: atunci când aceste fişiere sunt vizualizate pe ecran eleseamănă cu vechile pagini dactilografiate. Adevărul este că

Toc JJ II J I Back J Doc Doc I

Page 55: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 55

programele de calculator sunt scrise iniţial sub forma aces-tor fişiere! Acestea sunt sursele programelor care ne încântăapoi ochiul. Multe lucruri utile se pot face cu fişiere text.

Din păcate, sistemul de operare Windows nu includeunelte sofisticate pentru lucrul cu fişierele text. Dacă sun-teţi curioase sau curioşi şi vreţi să vedeţi cum funcţioneazăpe viu exemplele de mai jos, recomandarea mea ar fi să in-stalaţi un editor special pentru fişiere text. Cel pe care-lfolosesc eu se numeşte Vim. Găsiţi lesne o versiune pentruWindows la http://www.vim.org/.

Toată lumea ştie să caute cu Find. Pui şirul de semnecăutat (deobicei un singur cuvânt) şi-l regăseşti în textulafişat pe ecran. Este foarte raţional să procedezi aşa cândcauţi, de pildă, printr-o pagină de web foarte mare.

Meşterii într-ale informaticii recurg însă la tipare. PentruToc JJ II J I Back J Doc Doc I

Page 56: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 56

a regăsi informaţii într-un text folosesc un limbaj! Limba-jul expresiilor regulate cum se numeşte tehnic acest limbajeste adesea invizibil pentru ochiul muritorilor-utilizatori derând. Vezi doar casete de dialog frumos desenate şi tot felulde opţiuni.

1.1. Limbajul tiparelor de căutare în text

Adevărul este că nici un limbaj nu este uşor de învăţat. . . înpartea sa subtilă. Gândiţi-vă însă la marinarii care colindăporturile lumii. Un număr limitat de cuvinte din englezăsau malaieză sau altă limbă pot să-i ajute să se descurcefoarte bine. O astfel de versiune a limbajului tiparelor decăutare în text vă este propusă şi aici.

Am să folosesc chiar textul la care lucrez. Caut „ciob“într-un mod mai puţin uzual.

Toc JJ II J I Back J Doc Doc I

Page 57: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 57

Editorul Vim este un editor modal.1Ceea ce se-ntâmplă,de pildă, dacă apăs tasta „\“ depinde de modul în carese află editorul. Apăsaţi tasta „Esc“ şi veţi trece în modulcomandă al editorului. În acest mod al editorului, apăsareatastei pe care se află semnul „\“ mută cursorul pe ultimulrând al ecranului şi permite căutarea unei porţiuni de textcare se potriveşte cu tiparul descris în limbajul expresiilorregulate. În Figura 2.1 se vede exact acest lucru: cursorul afost mutat pe ultimul rând şi am scris „ciob“. Prima apariţiea lui „ciob“ a fost marcată cu un fond de culoare neagră.Când apăsăm tasta pe care scrie „Enter“ toate şirurile carese potrivesc cu tiparul căutat vor avea fondul galben.2

1Pentru mai multe informaţii despre Vim a se vedea anexele lacartea mea Eseul filosofic.

2Figurile sunt concepute pentru a fi văzute cu vizualizorul de pdf.

Toc JJ II J I Back J Doc Doc I

Page 58: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 58

Până aici nimic deosebit. Afară poate de faptul că modulde a căuta în texte pare cam chinuit. Să căutăm însă uncuvânt care se află la început de rând. Atenţie! Este vorbade rândurile logice, nu de cele vizuale. Cum eu scriu aicifiecare frază pe alt rând, aceasta înseamnă – cu oarecareaproximaţie – că rândurile logice sunt cele care încep cumajusculă. În orice caz, pentru a termina un rând apăstasta pe care scrie „Enter“. Parcă era undeva, la începutde rând cuvântul „Arheologii“. În Figura 2.2 se vede cumdecurge această căutare.

Dacă tiparul după care se caută se termină cu simbo-lul dolarului, atunci şirul de litere căutat este la sfârşitulrândului.

Măriţi-le pentru a le vedea detaliile. Tipărirea s-ar putea să conducăla rezultate nesatisfăcătoare.

Toc JJ II J I Back J Doc Doc I

Page 59: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 59

Cum căutăm un cuvânt întreg? În Figura 2.3 se vede căsecvenţa căutată este precedată de o bară oblică inversă ur-mată de deschiderea unei paranteze unghiulare şi se încheiecu bara oblică inversă urmată de închiderea parantezei un-ghiulare.

Dacă nu ne amintim un semn, putem pune un punct.Tot aşa am putea proceda dacă, dintr-un motiv sau altulnu putem introduce de la tastatură un semn. A se vedeaFigura 2.4.

O altă tehnică utilă este indicarea şirului sau intervaluluiîn care se află literele potrivite. Tiparul de mai jos

[em][an][gl][al][i]*eză

a fost folosit pentru a genera căutarea ilustrată în Figura 2.5.Steluţa pusă după [i] are următoarea semnificaţie: semnul

Toc JJ II J I Back J Doc Doc I

Page 60: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 60

(sau semnele) din paranteză apar o dată sau niciodată înexpresia care se potriveşte tiparului.

Cam acestea ar fi rudimentele unui limbaj de căutare. Însituaţiile uzuale nici nu este nevoie de mai mult. Pentru aafla însă şi alte lucruri despre limbajul tiparelor de căutarear trebui să consultaţi o carte special consacrată lor sau ocarte precum cea a lui Quigley[10, pp.67–79], care are uncapitol consacrat limbajului tiparelor de căutare în texte.

1.2. Căutarea cu ajutorul grep

Numele programului grep este format din primele litere carecompun sintagma „Global Regular Expression Print“. Esteo unealtă familiară meşterilor programatori care folosescsistemul de operare Unix.

Toc JJ II J I Back J Doc Doc I

Page 61: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 61

Pentru a avea unelte de programare Unix sub Windowstrebuie să le instalaţi separat. Puteţi folosi GnuWin32, unsistem care recurge direct la resursele Windows. Puteţi in-stala msys sau puteţi recurge la Cygwin. Citiţi cu atenţiedocumentaţia acestor sisteme înainte de a instala. În oricecaz, un sfat bun pare a fi acela de a instala iniţial o versiuneminimă, dar funcţională, a uneltelor Unix.

Desigur, sub un sistem Unix autentic, unelte precum grepvor funcţiona mult mai bine. Exemplele date în continuaresunt lucrate sub sistemul de operare GNU/Linux Fedora 3.

De fapt la ce este bun grep? Cu grep putem căuta prinmai multe fişiere deodată, fără să deschidem un editor. Săvedem un exemplu practic:

grep ^Arheologii *.tex02-text.tex:Arheologii au o mare satisfacţie

Toc JJ II J I Back J Doc Doc I

Page 62: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 62

când descoperă asemenea însemnări.

Deschideţi o consolă Unix sau, după caz, o fereastră MSdos(dacă aveţi unelte Unix instalate) sau o fereastră a emula-torului msys sau Cygwin. Tastaţi apoi numele uneltei grepurmat de o expresie scrisă în limbajul tiparelor de căutare(regular expression) şi apoi numele fişierului. Eu am folo-sit o steluţă urmată de „.tex“ pentru a indica orice fişieral cărui nume se termină în „.tex“. Dacă pun doar steluţa,căutarea are loc prin toate fişierele, inclusiv cele binare!grep Arheologii *.tex02-text.tex:02-text.tex:Arheologii au o maresatisfacţie când descoperă asemenea însemnări.Binary file minf.dvi matches

Am slăbit, de altfel, şi cerinţa ca „Arheologii“ să fie la în-ceputul rândului!

Toc JJ II J I Back J Doc Doc I

Page 63: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 63

Să revenim însă la căutarea iniţială. Ce răspuns am pri-mit? Mi s-a comunicat numele unui fişier, urmat de un semnde separare (două puncte) şi de un rând din text. Unealtagrep furnizează prin urmare şi contextul în care apare ter-menul căutat.

Grep are ceea ce se numesc în limbajul Unix-ului „op-ţiuni“. Să zicem, de pildă, că nu vreau să apară numelefişierului. Atunci procedez în felul următor:

grep -h ^Arheologii *.texArheologii au o mare satisfacţie cânddescoperă asemenea însemnări.

Opţiunea -h îi spune lui grep să nu afişeze numele fişierului.Observaţi felul în care este scrisă opţiunea. Grupul grep -hformează, de fapt, un singur bloc. Continuă să existe decitrei blocuri în comanda de mai sus: numele programului

Toc JJ II J I Back J Doc Doc I

Page 64: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 64

apelat, tiparul de căutare şi numele fişierului (fişierelor) încare se caută.

Comenzile date în consola unui sistem Unix sunt „co-menzi în linie“. Trebuie să acordăm o mare importanţă înaceste comenzi spaţiilor albe. Ele separă elementele din careeste făcută comanda. Este absolut nerecomandabil să folo-siţi spaţii albe în numele fişierelor.

Dacă ţineţi morţiş să aveţi spaţii albe în numele fişierelor,procedaţi ca-n exemplul de mai jos:

grep ^Arheologii 02-text\ copie.texArheologii au o mare satisfacţie cânddescoperă asemenea însemnări.

Bara oblică inversă nu face parte din numele fişierului. Tre-buie pusă însă înaintea spaţiului alb. Chiar şi aşa grep nu

Toc JJ II J I Back J Doc Doc I

Page 65: Managementul informaţiei

Section 1: Căutarea informaţiilor cu ajutorul tiparelor 65

poate afişa numele fişierului! Funcţionează ca şi cum ar aveaactivată opţiunea -h.

Ca manageri ai unei organizaţii gândiţi-vă, pornind dela acest exemplu banal, ce probleme creează pentru orga-nizaţia dumneavoastră lucrul cu computere care lucreazăatât sub Windows, cât şi sub Unix. Evident, un sistem decomputere hibrid este perfect posibil. Trebuie însă să nu fiţisurprinsă sau surprins când informaticienii dumneavoastrăvor solicita resurse sau vor trebui să găsească soluţii pentruproblemele legate de reţeaua hibridă de computere.

Să ne întoarcem acum la rândul care începe cu „Arheo-logii“. Între timp, am mai scris în fişierul respectiv, aşa c-artrebui să apară mai multe rânduri în rezultat. Ar fi bine săafişăm numărul rândului pe care apare expresia căutată.

grep -n ^Arheologii 02-text.texToc JJ II J I Back J Doc Doc I

Page 66: Managementul informaţiei

Section 2: Capcanele sortării 66

30:Arheologii au o mare satisfacţie când ...192:Arheologii au o mare satisfacţie când ...207:Arheologii au o mare satisfacţie când ...

Deşi n-am pus opţiunea -h, n-am decât numere pentru c-amindicat exact numele fişierului. Adăugarea lui -h ar puteafi însă o măsură prudentă. Verificaţi oricum felul în carefuncţionează grep.

2. Capcanele sortării

În exemplul care urmează nu conţinutul informaţiilor con-tează, ci modul în care sunt manevrate. Am creat un micfişier de tip text în care am trecut pe fiecare dintre celetrei rânduri o dată calendaristică şi valoarea unei unităţi de

Toc JJ II J I Back J Doc Doc I

Page 67: Managementul informaţiei

Section 2: Capcanele sortării 67

investiţii la un ipotetic fond mutual.3Iată ce conţine acestfişier:

1/31/69 4012/31/76 30012/31/84 3000

În Unix există o unealtă sort care sortează rânduriledintr-un fişier text. Chiar dacă sunteţi în Windows v-aş sfă-tui să eliminaţi programul sort, moştenit din vechiul msdosşi să folosiţi versiunea Unix a lui sort.

Să vedem ce rezultat produce apelarea lui sort:

sort curs1.txt3Exemplul este inspirat în mod liber din tabelul de la pagina 146 a

cărţii lui George Soros[14]. Valoarea unităţii de investiţii este în sensulNAVPS

Toc JJ II J I Back J Doc Doc I

Page 68: Managementul informaţiei

Section 2: Capcanele sortării 68

12/31/76 30012/31/84 30001/31/69 40

Datele calendaristice au fost sortate ca şi cum ar fi un text!Operez câteva modificări în fişier şi-l aduc la forma:

12/31/76 30001/31/69 4015/31/84 3000

Sortarea se va face acum altfel. Fireşte, se va face după luni!

01/31/69 4005/31/84 300012/31/76 300

Folosind subtilităţile programului sort din Unix pot sortadupă ani.

Toc JJ II J I Back J Doc Doc I

Page 69: Managementul informaţiei

Section 2: Capcanele sortării 69

sort -t/ -k3,3 curs2.txt01/31/69 4012/31/76 30005/31/84 3000

De data aceasta fişierul este văzut ca având pe fiecare rândcâmpuri. Bara oblică separă câmpurile. Semnul care ur-mează după opţiunea -t îi spune programului de sortarece separator să folosească. După opţiunea -k urmează nu-merele care arată câmpurile după care se sortează. Atenţieînsă la faptul că ultimul câmp cuprinde atât anul, cât şivaloarea unităţii de investiţii!

Având în vedere problemele ridicate de datele calendaris-tice cred că este mai prudent să folosim date calendaristicede forma „an-lună-zi“. Iată şi a treia formă a micului meufişier:

Toc JJ II J I Back J Doc Doc I

Page 70: Managementul informaţiei

Section 2: Capcanele sortării 70

76-12-31 30069-01-31 4084-05-31 3000

Chiar şi-n această formă datele calendaristice pot fi pro-blematice. Nu vă amintiţi de problema anului 2000? Dacărezultatele fondului sunt gândite pe termen lung? Ar puteafi vorba despre ceva de genul:

1976-12-31 3002069-01-31 403084-05-31 3000

Folosirea formei complete a anului este evident dezirabilăîn cazuri de acest tip.

Toc JJ II J I Back J Doc Doc I

Page 71: Managementul informaţiei

Section 2: Capcanele sortării 71

Cum s-ar face sortarea după valoarea unităţilor de inves-tiţii? Voi construi o a cincea formă a fişierului. În aceastăformă separ două câmpuri în felul următor:1969-01-31 : 04001976-12-31 : 00302004-05-31 : 3000

Cele două puncte de pe fiecare rând servesc drept separator.Pe primul câmp apar date calendaristice (într-o formă -sperăm - uşor de sortat) şi pe al doilea câmp apar valori aleunităţii de investiţii. M-am gândit că al doilea câmp estevăzut ca un text şi am pus zerouri pentru ca sortarea săaibă loc corect:1976-12-31 : 00301969-01-31 : 04002004-05-31 : 3000

Toc JJ II J I Back J Doc Doc I

Page 72: Managementul informaţiei

Section 2: Capcanele sortării 72

Valoarea acţiunilor ipoteticului fond este cea mai scăzutăla 31 decembrie 1976!

Adevărul este că sort din Unix poate recunoaşte numere.Un fişier de genul:

1969-01-31 : 4001976-12-31 : 302004-05-31 : 3000

poate fi sortat. Procedăm în felul următor:

sort -t: -k2,2 -n -b curs6.txt1976-12-31 : 301969-01-31 : 4002004-05-31 : 3000

Opţiunea -n îi spune programului sort să considere că are deface cu numere. Opţiunea -b cere ignorarea spaţiilor albe.

Toc JJ II J I Back J Doc Doc I

Page 73: Managementul informaţiei

Section 2: Capcanele sortării 73

S-ar putea ca ea să fie activată automat. Oricum, dacă opuneţi acest lucru n-are de ce să dăuneze.

Capcane chiar mai complicate întinde sortarea în mo-mentul în care am lucra cu un fişier cu nume de familieromâneşti. Să zicem că este vorba de data naşterii unorpersoane:

Stere : 1987-10-23Tomescu : 1979-03-15Ştefan : 1984-07-04

Sortarea lor după data naşterii nu prezintă nici o problemă.Tomescu este, evident, cel mai în vârstă. Ba pot sorta uşorşi-n ordine inversă:

sort -t: -k2,2 -b -r data-nasterii.txtStere : 1987-10-23

Toc JJ II J I Back J Doc Doc I

Page 74: Managementul informaţiei

Section 2: Capcanele sortării 74

Ştefan : 1984-07-04Tomescu : 1979-03-15

Pentru a sorta în ordine inversă folosesc opţiunea -r.Sortarea după nume este însă problematică. În calculator

literele au asociate nişte coduri. Programul sort se foloseşte,de fapt, de aceste coduri pentru a sorta. În fond trebuie săsorteze după un criteriu! Problema este că S are, de pildă,codul 83 şi T are codul 84, iar Ş are codul 350. Astfel numele„Ştefan“ va fi fi în fruntea listei la sortarea fără opţiuni:

sort data-nasterii.txtŞtefan : 1984-07-04Stere : 1987-10-23Tomescu : 1979-03-15

Sortarea în ordine inversă nu rezolvă desigur problema:

Toc JJ II J I Back J Doc Doc I

Page 75: Managementul informaţiei

Section 2: Capcanele sortării 75

sort -r data-nasterii.txtTomescu : 1979-03-15Stere : 1987-10-23Ştefan : 1984-07-04

Gândiţi-vă la ce probleme creează celelalte litere româneşticare au diacritice. Mai ales că ele au coduri numerice diferiteîn diverse sisteme de coduri!4

Soluţionarea problemei de mai sus depăşeşte cadrul cărţiide faţă. Putem oferi doar o sugestie. Experimentând ca maisus (sau citind sursa programului sort) putem să ne dămseama că literele alfabetului englez sunt corect sortate. Deasemenea, sunt corect sortate cifrele. O idee ar fi să înlocuim

4Diferenţele acestea de coduri se simt lesne în paginile de web.Renunţarea însă la diacritice în paginile de web nu cred că este osoluţie.

Toc JJ II J I Back J Doc Doc I

Page 76: Managementul informaţiei

Section 2: Capcanele sortării 76

pe S cu S1 şi pe Ş cu S2. Acesta ar fi un prim pas. Apoisortăm şi resubstituim pentru a obţine literele româneştinormale.

Într-un plan mai general, din perspectiva managemen-tului informaţiei, sortarea unui fişier de tip text ne oferădouă principii utile. Ambele principii pornesc de la ideea cătrebuie să acordăm atenţie operaţiilor pe care vrem să leexecutăm cu informaţiile respective. Desigur, mai devremesau mai târziu, vrem, să zicem, să le sortăm. Atunci trebuiesă fim atente şi atenţi la faptul că forma în care este stocatăinformaţia contează (vezi mai sus problema formei datei ca-lendaristice). Primul principiu este deci acela că informaţiilenoastre trebuie să aibă o formă care să ne permită să ope-răm lesne cu ele. Al doilea principiu ne spune că este bine

Toc JJ II J I Back J Doc Doc I

Page 77: Managementul informaţiei

Section 3: Textele ca surse de date 77

să dăm o structură explicită fişierelor. A se vedea mai susintroducerea unui separator pentru câmpurile unui rând.

3. Textele ca surse de date

Deşi sintagma sună pompos, „baze de date“, în fapt noiam avut de a face parţial în secţiunile 1 şi 2 cu baze date.Pentru a avea de a face cu o bază de date ne trebuie maiîntâi un fişier de genul celor în care am înscris cursurileunităţilor de investiţii la un fond mutual. Aceasta este sursanoastră de date. Mai avem nevoie şi de un limbaj pe care să-l înţeleagă programe cu care introducem şi extragem datedin sursa noastră de date. Evident, programe precum grepşi sort joacă doar parţial acest rol. Limbajul programuluigrep este limitat la căutarea cu ajutorul tiparelor. Limbajulpe care-l înţelege sort este limitat la operaţiuni de sortare.

Toc JJ II J I Back J Doc Doc I

Page 78: Managementul informaţiei

Section 3: Textele ca surse de date 78

Un limbaj veritabil de manevrare cu sursele de date esteawk. Creatorii awk sunt trei vestiţi specialişti în ştiinţa com-puterelor: Alfred Aho, Brian Kernighan şi Peter Weinber-ger. Ei au scris şi o carte despre awk. Puteţi citi despre Aho,Weinberger şi Kernighan în enciclopedia Wikipedia pe In-ternet.

Pentru a lucra cu awk vă trebuie mai întâi un editor detexte precum Vim ca să scrieţi fişierele cu sursele de date.Acestea sunt fişiere de tip text, precum versiunea extinsă afişierului cu valorile unităţilor de investiţii:

1969-01-31 301972-12-31 1001976-12-31 3001978-12-31 5001979-12-31 1000

Toc JJ II J I Back J Doc Doc I

Page 79: Managementul informaţiei

Section 3: Textele ca surse de date 79

1981-12-31 7001984-05-31 3000

Mai avem nevoie, de asemenea, de programul awk caatare. Orice distribuţie Linux include acest program. Deasemenea, dacă instalaţi unelte de programare Unix subWindows aveţi posibilitatea de a folosi awk. În exemplelede mai jos awk este apelat într-o consolă a unui sistem Li-nux, respectiv Fedora Core 3.

În awk avem posibilitatea să folosim tiparele de căutareaşa cum au fost ele introduse în secţiunea 1. Pot să caut,de pildă, un anumit an în fişierul de mai sus:

awk ’/1981-[0-9][0-9]-[0-9][0-9]/’ curs7.txt1981-12-31 700

Se observă că ziua şi luna sunt descrise ca perechi formate

Toc JJ II J I Back J Doc Doc I

Page 80: Managementul informaţiei

Section 3: Textele ca surse de date 80

din cifre din intervalul care începe cu 0 şi se termină cu 9.Aş fi putut pune doar anul în tipar, dar lucrul acesta ar firiscant în cazul unui fişier real, unde anul ar putea coincidecu un şir de cifre aflat pe alt câmp.

Pe lângă tipare, limbajul awk ne permite să ne referimla acţiuni. Cea mai simplă acţiune este cea de afişare aconţinutului unui câmp. În sursa noastră de date primulcâmp conţine ani:

awk ’{print $1}’ curs7.txt1969-01-311972-12-311976-12-311978-12-311979-12-311981-12-31

Toc JJ II J I Back J Doc Doc I

Page 81: Managementul informaţiei

Section 3: Textele ca surse de date 81

1984-05-31

Cuvântul-cheie print din limbajul awk desemnează după cumne dăm uşor seama o comandă de afişare. Câmpurile suntdesemnate prin semnul dolarului urmat de numărul câmpu-lui. În sursa de date câmpurile sunt separate prin tab-uri.

Putem combina tiparele cu acţiunile în felul următor:

awk ’/1981-[0-9][0-9]-[0-9][0-9]/{print $2}’ curs7.txt700

Atenţie la semnele de punctuaţie! Ghilimelele simple închidporţiunea scrisă în limbaj awk. Barele oblice cuprind întreele tiparul. Acţiunea este indicată de ceea ce este pus întreacolade. La început este, evident, invocat awk, iar la sfârşiteste indicat fişierul cu sursele de date.

Dacă nu se introduce explicit o altă specificaţie, fiecare

Toc JJ II J I Back J Doc Doc I

Page 82: Managementul informaţiei

Section 3: Textele ca surse de date 82

rând din sursa de date reprezintă pentru awk o înregistrare(record, în limba engleză). Este vorba desigur despre rându-rile logice, separate prin apăsarea tastei pe care scrie „En-ter“. Dacă nu se introduce altă specificaţie, câmpurile uneiînregistrări sunt separate prin spaţii albe (obţinute prinapăsarea taste pentru spaţiu alb sau a tastei „Tab“).

Putem afla cu ajutorul awk numărul de câmpuri din fie-care înregistrare:

awk ’{print "Numărul de câmpuri: "NF}’ curs7.txtNumărul de câmpuri: 2Numărul de câmpuri: 2Numărul de câmpuri: 2Numărul de câmpuri: 2Numărul de câmpuri: 2Numărul de câmpuri: 2

Toc JJ II J I Back J Doc Doc I

Page 83: Managementul informaţiei

Section 3: Textele ca surse de date 83

Numărul de câmpuri: 2

În comanda awk de mai sus ghilimelele duble indică o por-ţiune de text. Această porţiune este afişată ca atare de cătreawk. Perechea de majuscule NF este numele unei variabileinterne awk. Într-un limbaj de programare o variabilă esteprecum un sertar sau o cutie în care ţin valori. În acest caz,awk are din construcţie un sertar în care ţine valoarea pen-tru numărul de câmpuri. Această valoare se poate schimbadesigur de la o înregistrare la alta. De aici şi numele de„variabilă“.

Limbajul awk are multe construcţii familiare celor careştiu alte limbaje de programare. Are însă şi multe elementesubtile, bine adaptate lucrului cu sursele de date. Iată, depildă, cum pot extrage pentru fiecare înregistrare din sursa

Toc JJ II J I Back J Doc Doc I

Page 84: Managementul informaţiei

Section 3: Textele ca surse de date 84

mea de date luna din data calendaristică aflată pe primulcâmp:

awk ’{split($1,dc,"-");print dc[2]}’ curs7.txt01121212121205

După cum am văzut mai sus acţiunile sunt invocate în aco-lade. Aici avem de a face cu două acţiuni. Prima este aceeade „spargere“ (în engleză split) a primului câmp. Ar tre-bui ceva mai multă familiarizare cu limbajele de progra-mare pentru a înţelege mai exact sintaxa acestei acţiuni.

Toc JJ II J I Back J Doc Doc I

Page 85: Managementul informaţiei

Section 3: Textele ca surse de date 85

Chiar dacă vă lipsesc asemenea cunoştinţe, puteţi vedea căparanteza rotundă cuprinde trei elemente (numite tehnic„argumente“) ale acţiunii: un prim element indică numărulcâmpului, al doilea arată că se va introduce o variabilă bo-tezată „dc“, iar al treilea element indică separatorul folositîn notarea datei calendaristice. Astfel datele calendaristicede pe primul câmp vor fi desfăcute în trei bucăţi. Nu ră-mâne decât să indicăm awk a doua acţiune: cea de afişarea lunii (ea fiind a doua „bucată“ din data calendaristică).

Programul awk este într-un fel uimitor. El ilustrează fe-lul în care se poate construi o maşinărie complexă de ex-tras date din aparent modeste fişiere de tip text. Maşinăriaaceasta este, de pildă, utilizată intens de cei care adminis-trează computere cu sisteme de operare de tip Unix. S-ar

Toc JJ II J I Back J Doc Doc I

Page 86: Managementul informaţiei

Section 3: Textele ca surse de date 86

putea, de asemana, ca ea să se ascundă undeva în spateleunor interfeţe grafice pline de butoane şi casete de dialog.

Toc JJ II J I Back J Doc Doc I

Page 87: Managementul informaţiei

Section 3: Textele ca surse de date 87

Figura 2.1: O căutare simplăToc JJ II J I Back J Doc Doc I

Page 88: Managementul informaţiei

Section 3: Textele ca surse de date 88

Figura 2.2: Căutarea unui cuvânt la început de rând

Toc JJ II J I Back J Doc Doc I

Page 89: Managementul informaţiei

Section 3: Textele ca surse de date 89

Figura 2.3: Căutarea unui cuvânt întreg

Toc JJ II J I Back J Doc Doc I

Page 90: Managementul informaţiei

Section 3: Textele ca surse de date 90

Figura 2.4: Tipar de căutare care foloseşte punctul

Toc JJ II J I Back J Doc Doc I

Page 91: Managementul informaţiei

Section 3: Textele ca surse de date 91

Figura 2.5: Un tipar de căutare mai complex

Toc JJ II J I Back J Doc Doc I

Page 92: Managementul informaţiei

CAPITOLUL 3. INFORMAŢIA DIN DICŢIONARE 92

Capitolul 3:Managementul informaţiei conţinute în

dicţionare

Unul dintre cele mai interesante dicţionare ale limbii ro-mâne este Dicţionarul invers (Bucureşti: Editura Acade-miei, 1957). La prima vedere nu pare mare lucru. Pare doaro listă de cuvinte ce se întinde pe mai mult de şapte sutede pagini. La o privire mai atentă te va şoca bogăţia voca-bularului limbii române. Ai toate şansele să găseşti aproapela tot pasul cuvinte pe care nu le înţelegi. Omul grăbitva strâmba din nas pentru că n-are şi explicaţia cuvinte-lor respective. Utilitatea dicţionarului invers este însă alta.Ordonarea cuvintelor din listă este făcută examinând întâiultima literă. Toate cuvintele care se termină cu litera „a“

Toc JJ II J I Back J Doc Doc I

Page 93: Managementul informaţiei

CAPITOLUL 3. INFORMAŢIA DIN DICŢIONARE 93

vor fi puse la începutul dicţionarului. Apoi ele sunt ordo-nate după a doua literă din finalul lor şi aşa mai departe.Consultând acest dicţionar poţi afla care sunt substantivelecare se termină în a sau care sunt adjectivele care se terminăîn e sau în re.

Dicţionarul invers este desigur în primul rând un instru-ment de lucru, o unealtă pentru lingvişti. Este însă şi unexcelent exemplu de management al informaţiei. O simplăordonare diferită a materialului permite obţinerea rapidăde informaţii. Să culegi toate adjectivele terminate în e esteo treabă considerabil mai complicată dacă te-ai sluji de undicţionar în care cuvintele sunt ordonate normal, după lite-rele de la începutul lor.

Exemplul dicţionarelor nu este câtuşi de puţin fără le-gătură cu managementul unor lucruri mult mai puţin sacre

Toc JJ II J I Back J Doc Doc I

Page 94: Managementul informaţiei

CAPITOLUL 3. INFORMAŢIA DIN DICŢIONARE 94

decât cuvintele limbii române. Până şi-n cazul celui maiumil depozit te poţi ciocni de liste cu materiale, aparaturăetc.

Dimensiunile listelor contează. În acest capitol vom aveade a face cu liste foarte mari. Ceea ce ar pute fi rezolvat încazul unor liste scurte printr-o simplă examinare vizuală de-vine o problemă complicată în cazul unei liste foarte lungi.Nu ordonăm nici normal, nici invers, nici altfel lista de cum-părături pe care o alcătuim zilnic în casă. Aceasta este unsimplu petic de hârtie pe care sunt scrise câteva cuvinte.Problema organizării listei s-ar pune însă cu totul altfel dac-ar fi vorba despre 300 000 de cuvinte sau mult mai mult.

Toc JJ II J I Back J Doc Doc I

Page 95: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 95

1. Dicţionarul pentru corectorul ortografic

Pentru a corecta fişierele din care se compune sursa cărţii defaţă folosesc un corector ortografic creat de Kevin Atkinsonşi denumit aspell. Corectorul aspell este parte integrantădin Linux Fedora Core1Precum toate celelalte programe dinaceastă distribuţie aspell este un program cu sursă deschisă(şi modificabilă, atâta timp cât respecţi licenţa GNU). Piesape care vreau s-o înlocuiesc şi să o examinez este chiar listade cuvinte de care se foloseşte corectorul.

Invocarea corectorului se face din linia de comandă, pre-cum în cazul de mai jos:

1Există şi versiuni pentru Windows ale corectorului aspell, inclusivo interfaţă grafică, botezată freespell. Ca deobicei aş recomanda însăutilizarea aspell sub Linux.

Toc JJ II J I Back J Doc Doc I

Page 96: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 96

aspell --lang ro -c 02-text.tex

La început se tastează numele corectorului. Opţiunea –langeste cea care indică limba textului care va fi corectat. Existăun mod standard de a nota limbile. În cazul limbii românenotaţia este „ro“. Opţiunea -c indică programului că trebuiesă verifice (în limba engleză check) fişierul denumit „02-text.tex“. Atenţie la faptul că acesta este un fişier de tiptext, nu unul binar!

Să vedem acum ce rezultate produce invocarea corecto-rului. Ceea ce vedeţi în figura 3.1 este o consolă urxvt încare apare textul, cu sublinieri, sugestii şi un meniu carepermite operarea corecturilor. Cuvântul „Managerul“ estepus pe un fond de culoare neagră pentru că n-a fost găsitde către aspell în dicţionar. Tot pe baza dicţionarului aspellface o serie de sugestii.

Toc JJ II J I Back J Doc Doc I

Page 97: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 97

Dicţionarul cu care lucrează aspell este creat dintr-o listăde cuvinte cu o comandă de genul:

aspell --lang=ro create master ./ro.rws < ro.wl

În Unix perechea de semne ./ îi spune programului să creezero.rws în directorul curent (în directorul unde a fost apelataspell). Tot acolo trebuie să se afle o listă de cuvinte. Eu ambotezat lista mea de cuvinte ro.wl.2Dicţionarul ro.rws are oformă specială, pe care o poate folosi aspell, dar care nu estelesne lizibilă pentru noi.

Cum facem ca dicţionarul ro.rws să devină funcţional?Asta depinde de versiunea programului aspell. Eu am insta-

2Puteţi găsi pe Internet un pachet gata pregătit pentru limba ro-mână. Eu descriu aici felul în care se poate construi un propriul dic-ţionar.

Toc JJ II J I Back J Doc Doc I

Page 98: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 98

lat versiunea 0.60 pentru că aceasta poate lucra cu texteîn unicod. În acest caz, ro.rws trebuie copiat în directorul/usr/lib/aspell-0.60. Mai trebuie puse acolo fişierele ro.dat,ro.multi şi ro_affix.dat. Fişierul ro.dat are un conţinut degenul:

name rocharset iso8859-2affix rospecial - -*-soundslike generic

Observaţi mai ales rândul al doilea, unde se spune că dicţio-narul de limba română foloseşte setul de caractere iso8859-2.Nu vă faceţi probleme dacă textul dumneavoastră este scrisîn codificarea utf-8 a sistemului unicod. Versiunea 0.60 aprogramului aspell descifrează corect textul respectiv, dar

Toc JJ II J I Back J Doc Doc I

Page 99: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 99

foloseşte un dicţionar iso8859-2. De altfel, pentru limba ro-mână nici nu este nevoie de întreaga putere a unicod, ca-pabil să reprezinte texte scrise în limbi din India sau înjaponeză. Versiunile mai vechi ale aspell nu pot corecta însătexte scrise în unicod.

Fişierul ro.multi are un conţinut destul de simplu:

add ro.rws

El spune aspell să folosească pentru română dicţionarul ro.rws.Dacă vreţi să faceţi pe ucenica-vrăjitoare sau ucenicul-vrăjitor,atunci acordaţi atenţie faptului că eu am desemnat românadoar cu ro.

Despre fişierul ro_affix.dat voi spune mai multe mai jos.El lipseşte de altfel din pachetul pentru limba română depe Internet. Sistemul poate funcţiona şi fără el.

Toc JJ II J I Back J Doc Doc I

Page 100: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 100

Piesa pe care o putem însă examina vizual şi care con-stituie dicţionarul ortografic de bază este lista de cuvinte.Explicarea felului în care am construit lista de cuvinte pecare o folosesc efectiv ar depăşi scopurile acestei cărţi. Înesenţă, este vorba despre extragerea de cuvinte din propri-ile mele cărţi şi din surse liber accesibile pe Internet.3Pescurt, este nevoie de un program care să transforme texteîn liste de cuvinte. Apoi aceste liste sunt sortate, dublurilesunt eliminate şi listele sunt combinate într-o singură listă.Se pune desigur problema şi unui examen vizual al listei,

3Lista de cuvinte pentru limba română este deocamdată un proiectaflat în lucru. Când proiectul respectiv va atinge un stadiu acceptabilde dezvoltare am de gând să afişez lista de cuvinte şi dicţionarul peInternet şi să le plasez sub licenţa GPL.

Toc JJ II J I Back J Doc Doc I

Page 101: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 101

precum şi confruntarea ei cu dicţionare ortografice tipărite.Acest proces este desigur laborios.

Să examinăm însă lista de cuvinte ca atare. Lista mea, înforma ei actuală, are 288771 de intrări. Ar fi impropriu săvorbesc despre cuvinte, deoarece lista cuprinde şi forme aleaceluiaşi cuvânt. În jurul cuvântului „manager“ lista aratăîn felul următor:

managementmanagementulmanagementuluimanagermanagerimanagerialmanagerialămanageriale

Toc JJ II J I Back J Doc Doc I

Page 102: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 102

managerialimanageriimanagerilor

Forma articulată „managerul“ lipseşte din listă. Această ab-senţă ridică o problemă interesantă.

Are oare rost să adaug fiecare formă, cu mâna, pe măsurăce o găsesc? Lista ar creşte foarte mult. În plus, ar fi şi foartemulte operaţii şi corecturi de făcut manual. Aici intervinerolul fişierului ro_affix.dat. Să ne uităm în lista de cuvintela nişte termeni precum „fir“ şi „cadru“:

....cadru/N....fir/N....

Toc JJ II J I Back J Doc Doc I

Page 103: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 103

Bara oblică este un separator, un semn special care-i spuneprogramului aspell că urmează un aşa-numit „steag“. Stea-gul este o literă. Am ales aici o literă care să sugereze că estevorba despre substantive neutre. În ro_affix.dat se află defi-niţiile necesare pentru steaguri. De exemplu, pentru steagulN definiţia ar putea arăta aşa:

SFX N Y 11SFX N 0 e [^aeiouă]SFX N 0 ul [^aeiouă]SFX N 0 ului [^aeiouă]SFX N 0 ele [^aeiouă]SFX N 0 elor [^aeiouă]SFX N u e [^aeiouăâî]uSFX N 0 l [^aeiouăâî]uSFX N 0 lui [^aeiouăâî]u

Toc JJ II J I Back J Doc Doc I

Page 104: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 104

SFX N 0 le [^aeiouăâî]uSFX N u ele [^aeiouăâî]uSFX N u elor [^aeiouăâî]u

Pe primul rând stă scris că este vorba despre sufixe, că stea-gul este N, că se combină eventual cu prefixe şi că definiţiacare urmează are 11 rânduri. Cele 11 rânduri sunt divizateîn cinci coloane. Primele două coloane coincid cu cele depe primul rând. A treia coloană indică dacă trebuie sau nueliminat ceva din finalul cuvântului înainte de a adăuga su-fixul. Dacă se pune 0 (zero), atunci nu se taie nimic. Perândul şase se vede însă că trebuie eliminat u. Sufixele carese adaugă sunt pe coloana a patra. Pe coloana a cincea estetiparul finalului cuvântului din listă. Pe primele cinci rân-duri tiparul spune că respectivul cuvânt nu se termină în

Toc JJ II J I Back J Doc Doc I

Page 105: Managementul informaţiei

Section 1: Dicţionarul pentru corectorul ortografic 105

vocală. Pe ultimele şase rânduri tiparul ne spune că estevorba de cuvinte terminate în consoană plus u.

Programul aspell are comenzi speciale care ne permit sătestăm steagurile, pe măsură ce le definim:

echo fir/N | aspell --lang ro expandfir firelor firele firului firul fire

Primul rând este la consolă (în linia de comandă, cu altecuvinte) şi este urmat evident de o apăsare pe „Enter“. Aldoilea rând ne arată cum expandează fir/N. Chiar dacă n-aveţi aspell instalat puteţi citi documentaţia pe Internet.

Putem testa şi a doua parte a definiţiei steagului N înfelul următor:

echo cadru/N | aspell --lang ro expandcadru cadrelor cadrele cadrule cadrului cadrul cadre

Toc JJ II J I Back J Doc Doc I

Page 106: Managementul informaţiei

Section 2: Managementul informaţiei din dicţionarele bilingve 106

Folosirea sufixelor sau prefixelor definite în ro_affix.datne ajută să comprimăm lista. Comprimarea informaţiei esteimportantă. Ceea ce am văzut mai sus este însă şi un exem-plu practic de comprimare. Comprimarea utilizează faptulcă anumite părţi ale informaţiilor noastre se repetă. Estesuficient să stocăm undeva tiparul comun şi să notăm doarce tipar este folosit într-un punct sau altul.

2. Managementul informaţiei din dicţionarele bi-lingve

Pentru a construi un dicţionar bilingv simplu putem folosistructuri de genul celor studiate în capitolul 2. De pildă, pepagina de web a Radei Mihalcea, de la University of NorthTexas, puteţi găsi, sub licenţă GPL, un dicţionar român-englez.

Toc JJ II J I Back J Doc Doc I

Page 107: Managementul informaţiei

Section 2: Managementul informaţiei din dicţionarele bilingve 107

Este interesant să căutăm prin dicţionarul Radei Mihal-cea cu ajutorul grep:

grep -hw curent romanian-english.txtcurent <> coursecurent <> currentcurent <> dailycurent <> draughtcurent <> fluentcurent <> fluentlycurent <> generallycurent <> instantcurent <> legalcurent <> presentcurent <> runningcurent <> trend

Toc JJ II J I Back J Doc Doc I

Page 108: Managementul informaţiei

Section 2: Managementul informaţiei din dicţionarele bilingve 108

curent <> usualcurent <> usually

Opţiunea -hw combină opţiunile -h, care cere să nu se afişezenumere de linie, şi -w, care cere ca tiparul să fie confruntatdoar cu cuvinte întregi.4

Se observă că Rada Mihalcea foloseşte drept separatorcombinaţia de semne <>. Am putea folosi sort pentru asorta după al doilea câmp. Un editor precum Vim ne poateajuta apoi să decupăm al doilea câmp şi să-l punem peprima poziţie. Se obţine astfel un dicţionar englez-român.N-are însă prea mare rost să facem aceste manevre. grep nepoate veni în ajutor.

4Dacă nu punem opţiunea -w ne vom trezi cu toate rândurile încare apare şirul definit în tiparul de căutare.

Toc JJ II J I Back J Doc Doc I

Page 109: Managementul informaţiei

Section 2: Managementul informaţiei din dicţionarele bilingve 109

În căutarea de mai sus ajunge să adăugăm un singur r şiobţinem un efect interesant:

grep -hw current romanian-english.txtcurent <> currentcurs <> currentuzitat <> currentvalabil <> current

Ideea de a folosi grep cu astfel de dicţionare am văzut-oprima dată la Frank Richter în programul DING (DIctio-nary Nice Grep). Când îl descarci de pe Internet DING areautomat instalat un dicţionar german-englez. Nu este dificilînsă să-i adaugi dicţionarul Radei Mihalcea.

Cu dicţionarul român-englez al Radei Mihalcea, căutărilecu ajutorul DING arată în felul următor:

Toc JJ II J I Back J Doc Doc I

Page 110: Managementul informaţiei

Section 2: Managementul informaţiei din dicţionarele bilingve 110

Combinând două programe puse sub licenţa GPL în felularătat aici, putem obţine un instrument de lucru excelent.Licenţa GPL este foarte importantă în acest caz: ea garan-tează accesul la surse. Programul obţinut este extrem deflexibil. Poate fi adaptat la cele mai diferite întrebuinţări.

Chiar fără să ştim prea multe despre managementul in-formaţiilor putem să construim instrumentele de lucru adec-vate organizaţiei noastre. Inutil să spun că o organizaţie arputea folosi forţa colectivului ei pentru a dezvolta - în si-tuaţiile discutate mai sus - liste de cuvinte adaptate spe-cificului ei, dicţionare potrivite cu specificul muncii şi alteinstrumente.

Ideea este însă departe de a fi aceea că exemplele de maisus au doar o semnificaţie practică. Ele sunt interesante şipentru felul în care pun în lumină aspectele teoretice ale

Toc JJ II J I Back J Doc Doc I

Page 111: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 111

organizării muncii de stocare şi de prelucrare a informa-ţiei. Dicţionarul român-englez al Radei Mihalcea este, deexemplu, un produs colateral al muncii ei de cercetătoareîn domeniul prelucrării limbajului natural cu ajutorul calcu-latoarelor. Lucrul acesta se vede, de altfel, din seriile subtilede sinonime pe care le conţine dicţionarul.

3. Managementul definiţiilor lexicale

Voi începe această secţiune cu o invitaţie la o călătorie peInternet. Mergeţi la pagina de web a lui Cătălin Frâncu.Veţi găsi acolo o trimitere către „copilul“ său favorit: o for-midabilă colecţie de definiţii lexicale disponibile pe Internet.

Cătălin Frâncu a iniţiat alcătuirea colecţiei de definiţii şise ocupă cu partea tehnică a proiectului Dexonline.

Toc JJ II J I Back J Doc Doc I

Page 112: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 112

Dacă vreţi să examinaţi definiţiile din proiectul Dexon-line şi fără a vă conecta la Internet puteţi descărca pro-gramul dixit. Dixit este scris de către Octavian Procopiuc.Programul foloseşte baza de date a proiectului Dexonline.Dixit este disponibil atât în versiune Linux, cât şi-n ver-siune Windows. Figura 3.3 ne oferă un exemplu de căutarede definiţii cu ajutorul Dixit.

Dacă reuşiţi să instalaţi Dixit veţi vedea că foloseşte unfişier dixit.qdb. Aceasta este sursa de date. Ce înseamnă însăextensia qdb? Despre ce fel de baze de date este vorba? Bazaaceasta de date este creaţia lui Mikio Hirabayashi. Proiectulse numeşte QDBM (Quick Database Manager).

Quick Database Manager-ul nu era parte a distribuţieiFedora Core 3 instalate pe computerul meu, aşa că a trebuitsă-l adaug. Dacă dispuneţi de un sistem Linux care foloseşte

Toc JJ II J I Back J Doc Doc I

Page 113: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 113

pachete rpm, atunci următoarea căutare vă va spune cevadespre ceea ce este instalat pe sistemul cu care este scrisăcartea de faţă:

rpm -q qdbmqdbm-1.8.33-1rpm -q qdbm-develqdbm-devel-1.8.33-1

Citiţi evident documentaţia de pe pagina proiectului QDBMpentru a şti mai bine ce şi cum să instalaţi.

Să vedem acum câteva comenzi simple ale QDBM. Osursă de date (un depozit, ca să folosesc metafora din proiec-tul QDBM) este creată cu o comandă de genul:

dpmgr create dic.qdb

Am creat practic un fişier qdb.Toc JJ II J I Back J Doc Doc I

Page 114: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 114

Adăugarea de informaţii la sursa de date se face în felulurmător:

dpmgr put dic.qdb pisica "Mamifer carnivor de talie micăşi cu ghearele ascuţite, retractile."

Comanda invocă mai întâi managerul bazei de date. Ur-mează comanda put (adaugă în depozitul de date). Dupăaceea trebuie pus numele fişierului în care sunt stocate da-tele. După numele fişierului urmează o cheie. Eu am folositdrept cheie cuvântul „pisica“. Ceea ce vedeţi în finalul co-menzii între ghilimele este o valoare asociată cu cheia res-pectivă. Eu am folosit aici o versiune prescurtată a uneidefiniţii găsite în proiectul Dexonline.

Secretul unei baze de date QDBM este foarte simplu: in-trările din baza de date sunt formate dintr-o pereche cheie-valoare. De altfel, informaticienii numesc o astfel de struc-

Toc JJ II J I Back J Doc Doc I

Page 115: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 115

tură de date „dicţionar“. Felul în care este organizat în in-terior un fişier qdb iese în afara sferei de interese a cărţii defaţă. Ideea de bază este că un astfel de fişier are o structurăcare permite optimizarea căutărilor. Aşa se face că Dixitgăseşte atât de repede informaţiile dintr-o bază de peste unsfert de milion de definiţii lexicale.

Eu am în fişierul meu dic.qdb doar o definiţie. Să vedemtotuşi cum o extrag de acolo:

dpmgr get dic.qdb pisicaMamifer carnivor de talie mică şi cu gheareleascuţite, retractile.

Nu este greu de văzut c-am folosit cheia pentru a regăsivaloarea asociată ei.

Toc JJ II J I Back J Doc Doc I

Page 116: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 116

Fişierele de genul lui dic.qdb nu sunt fişiere de tip text.Putem însă să le transformăm în fişiere de tip text.

dpmgr exportdb dic.qdb dic.txt

Fişierul dic.txt este de tip text şi poate fi lesne citit.Aceste minime cunoştinţe ne permit acum să înţelegem

ce se petrece în spatele interfeţei grafice a programului Di-xit. Voi folosi tot cheia „pisica“:

dpmgr get dixit.qdb pisica<Id>32424</Id> <N>PISICA</N> <D>@PIS’IC~A, @

$pisici, $ s.f. @I.@ @1.@ Mamifer domestic carnivor dinfamilia felinelor, cu corpul suplu, acoperit cu blan~adeas~a \si moale de diferite culori, cu capul rotund,cu botul foarte scurt, cu maxilarele puternice \si cughearele retractile \si ascu\tite ...

Toc JJ II J I Back J Doc Doc I

Page 117: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 117

N-am reprodus decât începutul rezultatului acţiunii de cău-tare a valorii asociate cheii „pisica“. Se vede că valoarearespectivă are o structură. Se văd de asemenea formatărilefolosite în proiectul Dexonline pentru literele româneşti.

Proiectul Dexonline este în sine un proiect remarcabil.Îmi este de folos şi când scriu cartea de faţă şi i-ar fi demare utilitate oricui scrie un text în limba română. Din-colo de această utilitate practică a proiectului respectiv amavut însă posibilitatea să mai facem un pas înainte în lumeabazelor de date.

Toc JJ II J I Back J Doc Doc I

Page 118: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 118

Figura 3.1: Exemplu de utilizare a corectorului aspell

Toc JJ II J I Back J Doc Doc I

Page 119: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 119

Figura 3.2: Căutare în dicţionarul român-englez al RadeiMihalcea cu ajutorul DING

Toc JJ II J I Back J Doc Doc I

Page 120: Managementul informaţiei

Section 3: Managementul definiţiilor lexicale 120

Figura 3.3: Căutare de definiţii în baza de date Dexonlinecu ajutorul programului Dixit

Toc JJ II J I Back J Doc Doc I

Page 121: Managementul informaţiei

CAPITOLUL 4. LIMBAJUL SQL 121

Capitolul 4:Limbajul SQL

Dacă studiaţi o carte de informatică pentru managementulfirmei, precum cea scrisă de profesorul Ioan Radu şi cola-boratorii săi[11], veţi găsi acolo o descriere conceptuală afluxurilor care asigură aducerea la zi a informaţiilor şi obţi-nerea de informaţii din baza de date. Nici un program dincele descrise în cartea amintită nu se descurcă de fapt fără aavea acces la informaţii. O bună bază de date este esenţialăpentru funcţionarea oricărei organizaţii moderne.

Studiind capitolele anterioare v-aţi dat desigur seamacă pentru a interacţiona cu o sursă de date trebuie să fo-losim un limbaj. Pentru bazele de date „de întreprindere“există un limbaj standard: SQL. Numele limbajului vine

Toc JJ II J I Back J Doc Doc I

Page 122: Managementul informaţiei

CAPITOLUL 4. LIMBAJUL SQL 122

de la iniţialele componentelor sintagmei „Structured QueryLanguage“. Adevărul este că SQL e mai mult decât un lim-baj de căutare în sursele de date. Toate bazele de date im-portante înţeleg SQL şi poţi face o sumedenie de operaţiicu ajutorul SQL.

Problema cea mare a bazelor de date „de întreprindere“este că sunt destul de greu de instalat acasă sau pe com-puterul de la serviciu pe care am vrea să învăţăm SQL. Înprincipiu, lucrul acesta este posibil — chiar şi pe un sistemWindows98. Administrarea bazei de date este însă dificilă(mai ales în cazul începătorilor sau al persoanelor care vorsă-şi facă doar o idee despre SQL). Soluţia pe care v-o pro-pun aici este să folosiţi SQLite.

Autorul principal al SQLite este D. Richard Hipp. Ma-rele avantaj al SQLite este că sursa de date este într-un

Toc JJ II J I Back J Doc Doc I

Page 123: Managementul informaţiei

CAPITOLUL 4. LIMBAJUL SQL 123

singur fişier şi nu trebuie să porneşti nici un fel de serverpentru a avea acces la ea. Este o soluţie excelentă pentrucei care învaţă SQL. Este, de asemenea, o soluţie de luatîn seamă în practică: pentru bazele de date ale paginilor deweb, de exemplu. În întreprindere trebuie să fiţi însă atenţila problemele de securitate a datelor: cine are acces la fi-şierul cu datele stocate de SQLite are acces la toate datele.Accesul nu este selectiv.

Pentru învăţarea SQL (dacă porniţi de la zero) carteascrisă de Ben Forta[2] este excelentă. Nu folosiţi însă exem-plele din traducerea românească. Cel puţin versiunea din2002, pe care am citit-o, este plină de erori. Trebuie săştii deja SQL ca să foloseşti exemplele de acolo. Descăr-caţi exemplele de pe situl autorului. În limita capacităţilorSQLite, exemplele de pe situl autorului merg fără probleme,

Toc JJ II J I Back J Doc Doc I

Page 124: Managementul informaţiei

CAPITOLUL 4. LIMBAJUL SQL 124

iar dacă nu ştiţi decât prea puţină engleză traducerea româ-nească este totuşi utilă pentru a prinde sensul exemplelor.

Programul SQLite se poate descărca de pe Internet. SQ-Lite este, de pildă, parte a Fedora 3 extra. Exemplele dateîn continuare sunt lucrate cu sqlite-2.8.16. Această versiunea SQLite este în principal şi-n atenţia lui Chris Newmanîn cartea sa despre SQLite[8].1SQLite este disponibilă atâtpentru Linux, cât şi pentru Windows. Consultaţi situl SQ-Lite pentru a vedea ce vi se potriveşte.

Instalarea programului SQLite nu este deloc complicată.Trebuie să fiţi doar atente şi atenţi să aveţi acces la execu-tabilul sqlite. În Unix aceasta înseamnă că puteţi purta undialog de acest gen:

1Există şi sqlite3. Aceasta este versiunea pe care o dezvoltă înprezent D. Richard Hipp.

Toc JJ II J I Back J Doc Doc I

Page 125: Managementul informaţiei

CAPITOLUL 4. LIMBAJUL SQL 125

which sqlite/usr/bin/sqlite

Citiţi însă cu grijă instrucţiunile de instalare.Programul SQLite ca atare este un instrument apelat

prin intermediul comenzii în linie (într-o consolă Unix sauo fereastră MSDos). S-ar putea să vreţi să aveţi la îndemânăşi o unealtă care are interfaţă grafică. Pentru aceasta descăr-caţi sqlitebrowser. SQLite Database Browser este capabil săcreeze baze de date de tip SQLite. Atenţie însă la proble-mele de compatibilitate. Pentru exemplele din această cartefolosesc versiunea 1.1, care creează baze de date compatibilecu SQLite 2.x (vedeţi ce scrie în meniul Help la About).

Toc JJ II J I Back J Doc Doc I

Page 126: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 126

1. Un exemplu de bază de date SQLite

Conform principiului acestui manual ar trebui ca fiecare sălucreze cu exemple familiare. Cum eu lucrez într-o univer-sitate unele dintre „articolele de inventar“ cel mai frecventîntâlnite sunt cărţile. Aşa că exemplul meu foloseşte cărţi.Puteţi vedea însă alte exemple în cartea lui Forta[2] sau înalte cărţi despre SQL.

Pentru crearea bazei de date deschid sqlitebrowser şi apăsprima iconiţă din stânga sau merg în meniul File şi apăsNew. Apare o fereastră de dialog precum cea din Figura 4.1.Eu am ales drept nume pentru fişierul în care SQLite sto-chează datele „bib.db“ pentru că „bib“ aminteşte de cărţi,iar „db“ este extensia standard pentru aceste baze de date.

În continuare, va apărea imediat o altă casetă de dialog.

Toc JJ II J I Back J Doc Doc I

Page 127: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 127

În ea trebuie să precizaţi numele câmpurilor şi tipurile dedate care vor fi stocate în câmpurile unei înregistrări. Ideeade câmp al unei înregistrări ne este deja familiară. Ce nune este familiar este conceptul de table (tabel). O bază dedate SQLite poate conţine mai multe tabele. Dau un numetabelului şi apoi apăs Add. Apare o nouă casetă de dialog(a se vedea Figura 4.2). Câmpul botezat „inv_id“ va stocanumere. Aceste numere sunt unice pentru fiecare carte.

Adevărul este că sqlitebrowser este mai bun ca vizualizorrapid al unei baze de date, dar este o unealtă cam nesigurăcând trebuie creat un tabel. Eu m-am slujit de un fişierbib.sql, precum cel din Figura 4.3 şi de o comandă în liniepentru a crea tabelul carti din bib.db, aşa cum se vede el înFigura 4.4. Am folosit comanda în linie (comanda dată înconsolă sau fereastră MSDos):

Toc JJ II J I Back J Doc Doc I

Page 128: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 128

sqlite bib.db < bib.sql

pentru a crea fişierul ca atare şi tabelul respectiv.Pentru a pregăti date în vederea introducerii în tabelul

carti am construit un alt fişier sql, botezat bibdata.sql. Puteţivedea în Figura 4.5 cum apare acest fişier în fereastra graficăa editorului Vim.

Din nou, introducerea datelor ca atare se face printr-ocomandă în linie:

sqlite bib.db < bibdata.sql

Putem folosi sqlitebrowser-ul pentru a vedea datele intro-duse (v. Figura 4.6).

Toc JJ II J I Back J Doc Doc I

Page 129: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 129

Figura 4.1: Crearea unei baze de date SQLite

Toc JJ II J I Back J Doc Doc I

Page 130: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 130

Figura 4.2: Crearea câmpurilor înregistrărilor dintr-un tabel

Toc JJ II J I Back J Doc Doc I

Page 131: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 131

Figura 4.3: Conţinutul fişierului bib.sql văzut cu Vim

Toc JJ II J I Back J Doc Doc I

Page 132: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 132

Figura 4.4: Tabelul carti în sqlitebrowser

Toc JJ II J I Back J Doc Doc I

Page 133: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 133

Figura 4.5: Fişierul bibdata.sqlToc JJ II J I Back J Doc Doc I

Page 134: Managementul informaţiei

Section 1: Un exemplu de bază de date SQLite 134

Figura 4.6: Vizualizarea datelor din tabelul carti

Toc JJ II J I Back J Doc Doc I

Page 135: Managementul informaţiei

Section 2: Căutarea în baza de date 135

2. Căutarea în baza de date

Este important să ne dăm seama că fişierul bib.db este ojucărie. Are un singur tabel şi cinci înregistrări. O bază dedate reală poate să fie imensă. În timp ce, dacă ne uităm înFigura 4.6, ne facem rapid o idee despre datele din tabel,într-un tabel real acest lucru n-ar fi posibil. Aici ne vine înajutor limbajul SQL.

Instrucţiunile SQL sunt destul de transparente pentrucine ştie limba engleză. În continuare deschid sursa de datebib.db cu ajutorul sqlite şi cer să fie afişat conţinutul câm-pului aut:

[solcan@baloo 04-sql]$ sqlite bib.dbSQLite version 2.8.16Enter ".help" for instructions

Toc JJ II J I Back J Doc Doc I

Page 136: Managementul informaţiei

Section 2: Căutarea în baza de date 136

sqlite> SELECT aut...> FROM carti;

FortaFoucaultRothbardNolaWittgenstein

Observaţi că apare un prompt sqlite> specific manageruluibazei de date. După SELECT aut am apăsat tasta „Enter“.De asemenea, după FROM carti; am apăsat tasta „Enter“.Nu uitaţi să puneţi punct şi virgulă!

Programul sqlite are o istorie a comenzilor; dacă apă-saţi pe tasta cu săgeata în sus sau pe cea cu săgeata în josputeţi naviga printre comenzi. N-are rost să tastaţi de maimulte ori aceeaşi comandă. De asemenea, puteţi transforma

Toc JJ II J I Back J Doc Doc I

Page 137: Managementul informaţiei

Section 2: Căutarea în baza de date 137

lesne o comandă într-altă comandă. Istoria comenzilor func-ţionează şi după promptul ...> ceea ce mi se pare o ideeextraordinar de bună.

Pot selecta şi mai multe câmpuri o dată. De exemplu,dacă vreau să văd aşa-numitele fapte legate de publicare(locul, editura, anul) procedez în felul următor:

sqlite> SELECT adr, ed, an...> FROM carti;

Bucuresti|Teora|2002Pitesti|Paralela 45|2005Bucuresti|Inst.Mises Romania|2005Bucuresti|ALL|2001Bucuresti|Humanitas|2004

Cred că este foarte important să experimentaţi cu ase-

Toc JJ II J I Back J Doc Doc I

Page 138: Managementul informaţiei

Section 2: Căutarea în baza de date 138

menea comenzi. Puteţi experimenta, de pildă, cu condiţiilecăutării descrise mai jos.

Căutarea descrisă anterior era necondiţionată. La un vo-lum mare de date asemenea căutări mai mult ne-ar încurca.Să încercăm să găsim autorii şi titlurile pentru cărţile carecostă mai puţin de 20 de RON.

sqlite> SELECT aut, titlu...> FROM carti...> WHERE pret<20;

Forta|SQLRothbard|BaniiNola|Diavolul

Condiţia este pusă după cuvântul-cheie WHERE. Dacă ampune pret>20 aceasta ar însemna că valoarea din câmpulpret este mai mare de 20. Semnificaţia operatorului = este

Toc JJ II J I Back J Doc Doc I

Page 139: Managementul informaţiei

Section 2: Căutarea în baza de date 139

desigur evidentă. Operatorul != serveşte la negarea egali-tăţii.

O construcţie interesantă este BETWEEN . . . AND . . .(cuvinte care înseamnă în engleză între . . . şi . . . ). Efectulei poate fi văzut mai jos:

sqlite> SELECT aut, titlu...> FROM carti...> WHERE pret BETWEEN 17 AND 21;

Forta|SQLFoucault|A supravegheaRothbard|Banii

Toc JJ II J I Back J Doc Doc I

Page 140: Managementul informaţiei

Section 3: Ordonarea informaţiilor 140

3. Ordonarea informaţiilor

Închipuiţi-vă că titlurile din baza de date reprezintă căr-ţile achiziţionate de o bibliotecă. Ele sunt înregistrate pemăsură ce sunt cumpărate. Pentru a regăsi informaţia saupentru a construi un catalog al bibliotecii ar trebui să sor-tăm informaţiile.

Să vedem puţin titlurile cărţilor din baza de date:

SELECT titlu FROM carti;SQLA supravegheaBaniiDiavolulCercetari

Toc JJ II J I Back J Doc Doc I

Page 141: Managementul informaţiei

Section 3: Ordonarea informaţiilor 141

Nu sunt evident în ordine alfabetică. Să le ordonăm alfabe-tic!

sqlite> SELECT titlu FROM carti...> ORDER BY titlu;

A supravegheaBaniiCercetariDiavolulSQL

Putem experimenta ordonări după diverse câmpuri.Putem ordona descendent:

sqlite> SELECT titlu FROM carti...> ORDER BY pret DESC;

Cercetari

Toc JJ II J I Back J Doc Doc I

Page 142: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 142

A supravegheaBaniiSQLDiavolul

4. Prezentarea informaţiei din tabelele sqlite

Înainte de a spune câte ceva despre prezentarea informaţieidin tabelele sqlite, ar trebui reamintit un principiu impor-tant al învăţării oricărui program: află cum ieşi din progra-mul respectiv! Aţi văzut probabil că sqlite are o comandă.help, apelând la care obţinem ajutor:

sqlite bib.dbSQLite version 2.8.16Enter ".help" for instructions

Toc JJ II J I Back J Doc Doc I

Page 143: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 143

sqlite> .help.............................exit Exit this program.header(s) ON|OFF Turn display of headers on or off.help Show this message.mode MODE Set mode to one of "line(s)",

"column(s)","insert", "list",or "html"

............................

.width NUM NUM ... Set column widths for "column" mode

Eu am selectat din mesajele sqlite doar pe cele relevanteaici. Se vede în orice caz că .exit este o comandă de ieşiredin program.

În continuare puteţi vedea un exemplu de afişare a infor-maţiei pe coloane:

Toc JJ II J I Back J Doc Doc I

Page 144: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 144

sqlite> .mode columnsqlite> .headers onsqlite> SELECT aut, titlu FROM carti

...> ORDER BY pret DESC;aut titlu------------ ----------Wittgenstein CercetariFoucault A supravegRothbard BaniiForta SQLNola Diavolul

Informaţiile din tabelele sqlite pot fi lesne incluse în pa-gini de web. În continuare se vede cum sqlite produce unfragment de cod html (pe care-l putem insera într-un tabelhtml).

Toc JJ II J I Back J Doc Doc I

Page 145: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 145

sqlite> .mode htmlsqlite> SELECT aut, titlu FROM carti

...> ORDER BY pret DESC;<TR><TH>aut</TH><TH>titlu</TH></TR><TR><TD>Wittgenstein</TD><TD>Cercetari</TD></TR><TR><TD>Foucault</TD><TD>A supraveghea</TD></TR><TR><TD>Rothbard</TD><TD>Banii</TD></TR><TR><TD>Forta</TD><TD>SQL</TD>

Toc JJ II J I Back J Doc Doc I

Page 146: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 146

</TR><TR><TD>Nola</TD><TD>Diavolul</TD></TR>

În Figura 4.7 se poate vedea tabelul produs cu ajutorulsqlite.

Includerea informaţiei din tabelele sqlite în paginile deweb se poate face automat, cu ajutorul unor programe (scriseîn limbajul php). Obţinem astfel o pagină de web în careinformaţia este adusă la zi în mod dinamic (fără intervenţiimanuale, ca mai sus).

Toc JJ II J I Back J Doc Doc I

Page 147: Managementul informaţiei

Section 4: Prezentarea informaţiei din tabelele sqlite 147

Figura 4.7: Extras dintr-un tabel sqlite

Toc JJ II J I Back J Doc Doc I

Page 148: Managementul informaţiei

CAPITOLUL 5. MANAGEMENTUL LOGIC AL INFORMAŢIILOR148

Capitolul 5:Managementul logic al informaţiilor

Ideea pe care o prezentăm în acest capitol este foarte simplă:este ideea de a folosi forţa logicii predicatelor în construcţiaşi administrarea de baze de date. Aplicaţiile practice aleacestei idei ne conduc către domeniul cu rezonanţă de filmştiinţifico-fantastic al inteligenţei computaţionale.

1. Reţelele semantice

Vom începe cu elemente de teoria reprezentării cunoaşteriiîntr-un program de computer. Dacă termenul „cunoaştere“vi se pare nepotrivit în acest context, gândiţi în termeni de

Toc JJ II J I Back J Doc Doc I

Page 149: Managementul informaţiei

Section 1: Reţelele semantice 149

informaţii (stocate în calculator) despre ceea ce ştiu oame-nii.

De exemplu, eu ştiu câte ceva despre pisica din casa noas-tră şi despre ceea ce ştiu despre pisica din casă:

• ştiu că este un cotoi;• ştiu că pisica din casă este color-point (i.e. mascată);• ştiu că un cotoi este un soi de animal;• ştiu că un cotoi are blană.

Desigur mai ştiu multe alte lucruri, dar ceea ce parefrapant este felul în care pot conecta toate aceste cunoş-tinţe într-o reţea. Reprezentarea grafică din Figura 5.1 este

Toc JJ II J I Back J Doc Doc I

Page 150: Managementul informaţiei

Section 1: Reţelele semantice 150

inspirată de un exemplu din cartea lui LiMin Fu[4, p.286,fig.11.2(c)].1

Reţeaua semantică este formată din „noduri“ conectateîntre ele prin „săgeţi“. Se observă că în fiecare nod este o eti-chetă, care arată conţinutul semantic al nodului respectiv.Săgeţile sunt, de asemenea, etichetate.

Dacă examinăm Figura 5.1 simţim imediat că reţeauapoate fi extinsă. Putem spune ceva despre „animal“ şi aşamai departe. Foarte interesant ar fi apoi să traducem toatăaceastă schemă într-un limbaj de calculator. Am putea pro-grama atunci calculatorul ca să producă inferenţe: din in-formaţia cu privire la faptul că pisica noastră este un cotoi

1LiMin Fu are un câine, ceea ce nu-i cazul familiei mele! A se vedeaşi pagina mea de web.

Toc JJ II J I Back J Doc Doc I

Page 151: Managementul informaţiei

Section 2: WordNet pentru utilizare 151

şi din informaţia că un cotoi are blană am putea trage oconcluzie cu privire la faptul că şi pisica noastră are blană.

Dacă sursele de informaţii organizate în felul descris maisus ar fi uriaşe, concluziile n-ar mai fi atât de evidente camai sus. Am putea stoca şi extrage informaţii într-un modlogic, fără ca ele să fie şi evidente pentru noi.

2. WordNet pentru utilizare

Nu ştiu dacă v-aţi gândit vreodată ce programe extraordi-nare sunt disponibile în mod gratuit pe Internet. Vă do-riţi un dicţionar al limbii engleze pe ecranul computeruluidumneavoastră? WordNet este un dicţionar absolut fabulos,uşor de instalat şi nu foarte greu de folosit.

Toc JJ II J I Back J Doc Doc I

Page 152: Managementul informaţiei

Section 2: WordNet pentru utilizare 152

WordNet este creaţia unui colectiv de cercetătoare şi cer-cetători de la Laboratorul de Ştiinţa Cogniţiei al Universi-tăţii Princeton, coordonat de faimosul psiholog George A.Miller. WordNet are o pagină de pe care poate fi descărcat.

Instalarea WordNet nu ridică probleme majore. Aş pu-tea spune că sub Windows decurge chiar fără probleme. Încazul Linux trebuie să acordăm atenţie legăturilor simbo-lice către bibliotecile de funcţii pe care le foloseşte Word-Net. Ele trebuie create în caz că WordNet emite un mesajde eroare în care spune că nu găseşte o anume bibliotecă.Evident, biblioteca respectivă trebuie să existe efectiv însistem. Interfaţa grafică WordNet foloseşte Tcl/Tk. Citiţiinstrucţiunile de instalare WordNet cu atenţie. Dacă aveţidificultăţi o soluţie este şi o căutare pe Internet: probabil

Toc JJ II J I Back J Doc Doc I

Page 153: Managementul informaţiei

Section 2: WordNet pentru utilizare 153

cineva s-a lovit deja de problema respectivă şi i-a găsit orezolvare.

WordNet foloseşte reţele semantice. Alegerea reţelelor se-mantice de către George A. Miller şi colectivul de la Prin-ceton nu este întâmplătoare: ea reflectă teoriile lor desprememoria umană.

Să vedem însă cum decurge practic lucrul cu WordNet.Fie dintr-o consolă, fie din caseta de dialog Run Applicationchemaţi wnb, care este interfaţa grafică a WordNet. Eu unulrămân la interesul pentru pisici şi introduc în caseta SearchWord cuvântul cat. Nu uitaţi să apăsaţi pe tasta „Enter“!Trebuie să apară (în funcţie de versiunea WordNet desigur)ceva de genul a ceea ce puteţi vedea în Figura 5.2.

Ceea ce puteţi face în continuare este mult mai intere-sant. De pildă, puneţi 1 în caseta Senses. Aceasta înseamnă

Toc JJ II J I Back J Doc Doc I

Page 154: Managementul informaţiei

Section 2: WordNet pentru utilizare 154

că vă interesează doar un prim sens. Aveţi apoi o alegereîntre substantiv (Noun) şi verb, în cazul cuvântului „cat“.La alte cuvinte alegerea va fi diferită (mai există adjectiveşi adverbe în WordNet). Apăsaţi butonul Noun şi aveţi dinnou de făcut o alegere.2Eu vă propun să alegem Hypernyms.Ceea ce rezultă se vede în Figura 5.3.

Reţeaua semantică construită de către WordNet este multmai complexă decât cea din Figura 5.1. Până să ajungemla „animal“ trecem prin nodul „carnivor“ şi prin nodul „ma-mifer“ şi alte două noduri. Urmăriţi sensul săgeţilor duble!

WordNet vă poate oferi, de asemenea, o sumedenie deinformaţii despre sinonimele unui cuvânt sau despre anto-nime.

2Ar fi bine să studiaţi documentaţia WordNet pentru a înţelegemai bine terminologia folosită de echipa de cercetare de la Princeton.

Toc JJ II J I Back J Doc Doc I

Page 155: Managementul informaţiei

Section 2: WordNet pentru utilizare 155

WordNet are noţiunea de meronim. Aceasta înseamnă căputeţi afla care sunt „părţile“ fiinţei sau ale obiectului etc.Pisica are, de pildă, labe, mustăţi şi aşa mai departe.

Închipuiţi-vă aplicaţiile mai pedestre ale meronimelor!Să zicem că aţi avea de gospodărit un depozit. Orice obiectdin acel depozit ar avea părţi. Un avion, de pildă, are osumedenie de piese. Putem organiza toate informaţiile des-pre componentele avionului cu ajutorul unei baze logice dedate.

Informaţiile despre o organizaţie pot fi şi ele sistemati-zate cu ajutorul unei baze logice de date. Organizaţia areşi ea componente. Există, de asemenea, posibilitatea de asistematiza în acest fel atribuţiile şi aşa mai departe.

Să revenim însă la WordNet ca atare. Din punctul de ve-dere al practicii scrisului (în limba engleză) WordNet oferă

Toc JJ II J I Back J Doc Doc I

Page 156: Managementul informaţiei

Section 2: WordNet pentru utilizare 156

informaţii extrem de utile. Eu unul simt, de pildă, deseorinevoia de a găsi ce anume este a kind of. . . . De pildă, wildcateste un fel de pisică. Evident, house cat este un fel de pisicăşi aşa mai departe. În terminologia WordNet aceşti termenise numesc „hiponime“. Recursul la hiponime dă culoare şiconcreteţe scrisului. În sensul acesta WordNet este şi uninstrument de lucru preţios, nu doar unul pentru cercetare.

Există multe aplicaţii care folosesc baza de date a Word-Net, inclusiv aplicaţii comerciale. Eu mă voi referi aici la oaplicaţie fără caracter comercial, WordNet Connect. Insta-larea acestei aplicaţii este ceva mai pretenţioasă, dar puteţisă vă faceţi o idee despre ea citind pagina de web a progra-mului.

Un exemplu de utilizare a WordNet Connect (pe scurt,wnconnect) aveţi şi-n Figura 5.4.

Toc JJ II J I Back J Doc Doc I

Page 157: Managementul informaţiei

Section 2: WordNet pentru utilizare 157

Aşa cum sugerează şi numele aplicaţiei, wnconnect iden-tifică drumuri prin reţeaua semantică. Poate stabili cel maiscurt drum sau poate afişa toate drumurile care leagă douăcuvinte din baza de date WordNet. De exemplu, dacă soli-cit o legătură între tiger şi cat aflu că tiger,Panthera_tigriseste o instanţiere a big_cat,cat.

Mai interesant este dacă încerc să găsesc o legătură întrecat şi sleepy (somnoroasă). Programul examinează 91708noduri. Se duce mai întâi pe direcţia către fiinţă. Acest ter-men este apoi conexat cu stările de conştiinţă. Apoi se faceo legătură cu unaware (a nu fi conştient, a nu-ţi da seama).De aici este făcută o legătură cu stările de somnolenţă.

Programul wnconnect este capabil să reprezinte şi graficdrumurile identificate prin baza de date. Graficele pot săapară în fereastra principală a programului (v. un exemplu

Toc JJ II J I Back J Doc Doc I

Page 158: Managementul informaţiei

Section 2: WordNet pentru utilizare 158

în Figura 5.4) sau pot fi afişate şi salvate cu ajutorul unuiprogram separat.

Toc JJ II J I Back J Doc Doc I

Page 159: Managementul informaţiei

Section 2: WordNet pentru utilizare 159

Figura 5.1: Un exemplu de reţea semantică

Toc JJ II J I Back J Doc Doc I

Page 160: Managementul informaţiei

Section 2: WordNet pentru utilizare 160

Figura 5.2: Startul WordNet

Toc JJ II J I Back J Doc Doc I

Page 161: Managementul informaţiei

Section 2: WordNet pentru utilizare 161

Figura 5.3: Pisica este un soi de. . .

Toc JJ II J I Back J Doc Doc I

Page 162: Managementul informaţiei

Section 2: WordNet pentru utilizare 162

Figura 5.4: Un exemplu de utilizare a WordNet Connect

Toc JJ II J I Back J Doc Doc I

Page 163: Managementul informaţiei

Section 3: WordNet pentru meşterit 163

3. WordNet pentru meşterit

Când descărcaţi de pe Internet WordNet nu se poate să nubăgaţi de seamă că vă este oferită şi sursa bazei de date. Vise spune că sursa este scrisă în Prolog.

Ce este este Prolog? Un limbaj de calculator. Numele săuvine de la sintagma „programare logică“. Dacă se-ntâmplăsă ştiţi logica predicatelor, atunci înţelegeţi mai uşor sintaxalimbajului Prolog.

Prolog este un limbaj cu vechi state de serviciu (în lumeaatât de nouă a programelor de calculator). A fost creat deAlain Colmerauer la Universitatea Aix-Marseille, acum maibine de treizeci de ani. Robert. A. Kowalski, pe acea vremela Universitatea din Edinburgh (mai apoi la Imperial Co-

Toc JJ II J I Back J Doc Doc I

Page 164: Managementul informaţiei

Section 3: WordNet pentru meşterit 164

llege din Londra) a contribuit mult la dezvoltarea bazelorteoretice ale Prolog.

Prolog n-are o faimă deloc bună printre programatori.Citiţi, de exemplu, ce scrie despre Prolog Nikolai Bezroukovpe situl Open Source Software Educational Society.

În câteva cuvinte, putem spune că Prolog este un limbajdeclarativ. Limbajele de calculator obişnuite sunt limbajeimperative, cu ajutorul acestor limbaje spunem calculato-rului ce să facă, cum să acţioneze. În Prolog, ca şi-n logică,lucrăm cu enunţuri. Spre deosebire de logică, Prolog rapor-tează aceste enunţuri la o bază de date. Prolog ne spunedacă enunţul corespunde sau nu cu ceva din baza de date.Dacă folosim variabile în enunţurile noastre, Prolog ne co-munică ce anume din baza sa de date s-ar potrivi cu varia-bilele din enunţurile noastre.

Toc JJ II J I Back J Doc Doc I

Page 165: Managementul informaţiei

Section 3: WordNet pentru meşterit 165

Din cele spuse mai sus se deduce destul de lesne că, dinperspectiva funcţionalităţii sale, Prolog se înrudeşte cu lim-baje precum SQL. Nu este, prin urmare, o întâmplare căun limbaj cu origini logico-filosofice îşi are locul său într-ocarte despre managementul informaţiilor.

Pentru a lucra direct cu sursele de date WordNet aveţinevoie de un mediu de dezvoltare Prolog. În exemplele demai jos eu folosesc SWI-Prolog. Trebuie să descărcaţi ver-siunea care vi se potriveşte, Linux sau Windows. În princi-piu, instalarea SWI-Prolog este neproblematică. Eu preferversiunea Linux, cu apelarea SWI-Prolog dintr-o consolă.Este foarte sigură. Nu uitaţi că aveţi de a face, în cazulWordNet, cu o bază de date uriaşă!

Când instalaţi sursele Prolog ale WordNet observaţi de-sigur că aveţi de a face cu o serie de fişiere care încep cu

Toc JJ II J I Back J Doc Doc I

Page 166: Managementul informaţiei

Section 3: WordNet pentru meşterit 166

wn_ şi se termină cu extensia pl. Acestea sunt fişierele Pro-log ale WordNet. Nu toate sunt foarte mari. Chiar şi pecele mai mari le puteţi vedea cu uşurinţă cu ajutorul Vim.S-ar putea ca abia acum să înţelegeţi avantajele tiparelorde căutare. Încercaţi să căutaţi ceva în wn_g.pl şi veţi simţirapid nevoia de a apela la tipare de căutare. Fişierul de pecalculatorul meu are 115424 de rânduri.

3.1. Fişierele Prolog ale WordNet

Pentru o foarte bună descriere a fişierelor Prolog ale Word-Net apelaţi la studiul Sarei Witzig[15]. Am folosit şi eu aceststudiu pentru a mă documenta în vederea elaborării acesteisecţiuni. Este scris simplu, clar şi pe alocuri oferă informaţiichiar mai explicite decât cele ale autorilor WordNet.

Sarah Witzig începe cu descrierea fişierului wn_s.pl. EaToc JJ II J I Back J Doc Doc I

Page 167: Managementul informaţiei

Section 3: WordNet pentru meşterit 167

presupune desigur că ştiţi Prolog. Eu nu voi presupune acestlucru. Aşa c-ar trebui să aflaţi mai întâi câte ceva desprepredicatele Prolog.

Dacă examinaţi wn_s.pl cu ajutorul Vim veţi constata căfişierul este compus din rânduri care au toate aceeaşi formă.Am să iau câteva dintre aceste rânduri drept exemplu:

s(102037911,1,’domestic_cat’,n,1,0).s(102037911,2,’house_cat’,n,1,0).s(102037911,3,’Felis_domesticus’,n,1,0).s(102037911,4,’Felis_catus’,n,1,0).

Dacă ignorăm ceea ce se află în interiorul parantezelor ro-tunde, dar reţinem virgulele, obţinem o structură de forma:

s( , , , , , ).

Toc JJ II J I Back J Doc Doc I

Page 168: Managementul informaţiei

Section 3: WordNet pentru meşterit 168

Acesta nu este nimic altceva decât un predicat Prolog. Totfişierul nu face decât să definească acest predicat.

Gândiţi-vă la ceva de genul:

parinti(maria, ana, ion).

Structura aceasta din Prolog ar corespunde cu propoziţia„Părinţii Mariei sunt Ana şi Ion“. Dacă procedăm ca maisus obţinem o formă cu lacune:

parinti( , , ).

Acesta nu este altceva decât un predicat. Este desigur logicsă spunem că nu toate modurile de a umple lacunele conducla propoziţii adevărate. Aşa cum noi gândim în termeni deadevăr şi fals, Prolog se uită în baza de date pentru a afladacă enunţul corespunde sau nu cu ceea ce se află în bazasa de date.

Toc JJ II J I Back J Doc Doc I

Page 169: Managementul informaţiei

Section 3: WordNet pentru meşterit 169

Să revenim acum la conţinutul fişierului wn_s.pl. El de-fineşte un singur predicat, care are şase asemenea „lacune“,şase locuri în care conţinutul introdus variază. Tehnic vor-bind, acestor „lacune“ le putem zice argumente. Voi simpli-fica predicatul din wn_s.pl şi voi reţine doar trei argumente.Folosind exemplul de mai sus lucrurile ar arăta aşa:

s(102037911,’domestic_cat’,n).s(102037911,’house_cat’,n).s(102037911,’Felis_domesticus’,n).s(102037911,’Felis_catus’,n).

Acum este mai uşor de explicat ideea-cheie a bazei de dateWordNet.

Observaţi că primul argument este un număr din nouăcifre. Este acelaşi pentru toate cele patru rânduri simplifi-cate. WordNet grupează cuvintele în ceea ce autorii bazei

Toc JJ II J I Back J Doc Doc I

Page 170: Managementul informaţiei

Section 3: WordNet pentru meşterit 170

de date numesc „synset“-uri (mulţimi de unu sau mai multesinonime). Fiecare synset primeşte un număr unic. Primulargument ia deci drept valoare acest număr al unui synset.

Argumentul de pe poziţia a doua este pus între ghilimele.În felul acesta sistemul Prolog ştie că trebuie să trateze ar-gumentul respectiv ca pe un text (nu încearcă să găseascăîn el cuvinte-cheie Prolog sau alte elemente ce ţin de maşi-năria programării în Prolog). Uitându-ne la valoarea celuide al doilea argument ştim că domestic_cat, house_cat, Fe-lis_domesticus şi Felis_catus sunt elemente ale synsetului102037911.

Al treilea argument indică doar faptul că avem de a facecu un substantiv. Prescurtarea vine de la cuvântul englezescnoun.

Să mergem mai departe cu descrierea fişierelor WordNet.Toc JJ II J I Back J Doc Doc I

Page 171: Managementul informaţiei

Section 3: WordNet pentru meşterit 171

Dacă vă uitaţi doar la dimensiunile lor nu se poate să nuvă fi sărit în ochi fişierul wn_g.pl. Acum nu este greu să nedăm seama că el defineşte un predicat cu două argumente:primul argument are drept valori numerele synseturilor; aldoilea argument are drept valori glose.

Folosind numărul de synset pentru pisici domestice dămpeste:

g(102037911,’(any domesticated member of thegenus Felis)’).

Acum începem să ghicim şi rostul sistemului Prolog. Casă facem asemenea căutări cu mâna ar fi imposibil — dinpricina dimensiunilor fişierelor. Adevărul este că şi-n cazulunor programe care ar n-ar avea căutări optimizate timpulde lucru ar creşte considerabil.

Toc JJ II J I Back J Doc Doc I

Page 172: Managementul informaţiei

Section 3: WordNet pentru meşterit 172

Fişierul wn_hyp.pl conţine definiţia, de fapt, tot pentruun singur predicat. Putem însă să gândim lucrurile şi puţinaltfel. Fiecare rând ne spune, pentru un synset, care estesynsetul care conţine cuvinte cu un sens mai general decâtcel din primul synset. În terminologia WordNet acestea suntbotezate „hipernim“-uri. Evident, dacă luăm relaţia în sensinvers, dăm peste „hiponim“-uri.

În felul acesta avem o serie bogată de legături în reţeauasemantică.

Căutând cu ajutorul Vim în fişierul wn_hyp.pl dau pesterândul următor:

hyp(102037911,102037721).

Primul număr ne este deja cunoscut. Este numărul synse-tului pentru pisici domestice. Al doilea număr mă trimite

Toc JJ II J I Back J Doc Doc I

Page 173: Managementul informaţiei

Section 3: WordNet pentru meşterit 173

la noţiunea de pisică. Reţeaua semantică a englezei diferăaici de cea a românei, dar chiar şi-n română noţiunea de pi-sică este mai generală decât aceea de pisică de casă: existăşi pisici sălbatice. În engleză, spre deosebire de română, şileii, tigrii (toate felinele) sunt „pisici“ (cats).

Cele trei fişiere prezentate până acum constituie inimabazei de date a WordNet. Pentru celelalte fişiere consul-taţi documentaţia WordNet sau articolul scris de SarahWitzig[15].

3.2. SWI-Prolog şi încărcarea WordNet

În cazul oricărui mediu de dezvoltare de programe este im-portant să ştii să-l porneşti şi să-l opreşti. Să vedem cetrebuie făcut în cazul SWI-Prolog:

Toc JJ II J I Back J Doc Doc I

Page 174: Managementul informaţiei

Section 3: WordNet pentru meşterit 174

pl% /home/solcan/.plrc compiled 0.00 sec, 420 bytesWelcome to SWI-Prolog (Multi-threaded, Version 5.4.6)Copyright (c) 1990-2003 University of Amsterdam.SWI-Prolog comes with ABSOLUTELY NO WARRANTY.This is free software,and you are welcome to redistributeit under certain conditions.Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

1 ?- halt.

Pornirea se face tastând pl şi „Enter“. Oprirea se face tas-tând halt. şi „Enter“. Nu uitaţi punctul final din comandade oprire! Prolog, ca limbaj declarativ, nu ştie — ca să spun

Toc JJ II J I Back J Doc Doc I

Page 175: Managementul informaţiei

Section 3: WordNet pentru meşterit 175

aşa — de semnul de exclamare. Ştie de ceva care se terminăcu punct.

Următorul pas este reprezentat de încărcarea fişierelorWordNet. Lucrurile se petrec în felul următor:

1 ?- consult(wn_s).% wn_s compiled 2.91 sec, 26,139,232 bytes

Yes2 ?- consult(wn_g).% wn_g compiled 1.84 sec, 20,209,196 bytes

Yes3 ?- consult(wn_hyp).% wn_hyp compiled 0.74 sec, 6,070,392 bytes

Toc JJ II J I Back J Doc Doc I

Page 176: Managementul informaţiei

Section 3: WordNet pentru meşterit 176

Cuvântul-cheie este consult. Atenţie la faptul că nu se puneşi extensia din numele fişierelor.

Am încărcat deci trei dintre fişierele WordNet. Adevăruleste că încărcarea în acest mod a mai multor fişiere, defiecare dată când „consultăm“ baza de date, ar fi foartelaborioasă. Comenzile de mai sus nu pot fi puse însă caatare într-un fişier şi încărcate de acolo. Pentru uzul meupersonal mi-am alcătuit un fişier, botezat wn.pl, care asigurăîncărcarea fişierelor WordNet:

:- ensure_loaded(’wn_ant.pl’).:- ensure_loaded(’wn_at.pl’).:- ensure_loaded(’wn_cls.pl’).:- ensure_loaded(’wn_cs.pl’).:- ensure_loaded(’wn_der.pl’).:- ensure_loaded(’wn_ent.pl’).

Toc JJ II J I Back J Doc Doc I

Page 177: Managementul informaţiei

Section 3: WordNet pentru meşterit 177

:- ensure_loaded(’wn_fr.pl’).:- ensure_loaded(’wn_g.pl’).:- ensure_loaded(’wn_hyp.pl’).:- ensure_loaded(’wn_mm.pl’).:- ensure_loaded(’wn_mp.pl’).:- ensure_loaded(’wn_ms.pl’).:- ensure_loaded(’wn_per.pl’).:- ensure_loaded(’wn_ppl.pl’).:- ensure_loaded(’wn_sa.pl’).:- ensure_loaded(’wn_sim.pl’).:- ensure_loaded(’wn_s.pl’).:- ensure_loaded(’wn_vgp.pl’).

Dacă scrieţi un asemenea fişier folosiţi Vim sau Emacs orialt editor de texte. Poate fi şi Notepad, dar nu Word, careare alte utilizări decât scrierea de programe.

Toc JJ II J I Back J Doc Doc I

Page 178: Managementul informaţiei

Section 3: WordNet pentru meşterit 178

Să vedem cum decurge acum încărcarea fişierelor Word-Net:

1 ?- consult(wn).% wn_ant.pl compiled 0.07 sec, 639,964 bytes% wn_at.pl compiled 0.01 sec, 83,368 bytes% wn_cls.pl compiled 0.08 sec, 607,348 bytes% wn_cs.pl compiled 0.00 sec, 14,408 bytes% wn_der.pl compiled 0.38 sec, 3,439,500 bytes% wn_ent.pl compiled 0.00 sec, 26,636 bytes% wn_fr.pl compiled 0.18 sec, 1,537,296 bytes% wn_g.pl compiled 1.54 sec, 19,940,484 bytes% wn_hyp.pl compiled 0.73 sec, 6,070,348 bytes% wn_mm.pl compiled 0.10 sec, 781,576 bytes% wn_mp.pl compiled 0.06 sec, 553,160 bytes% wn_ms.pl compiled 0.00 sec, 50,824 bytes

Toc JJ II J I Back J Doc Doc I

Page 179: Managementul informaţiei

Section 3: WordNet pentru meşterit 179

% wn_per.pl compiled 0.07 sec, 634,060 bytes% wn_ppl.pl compiled 0.00 sec, 10,380 bytes% wn_sa.pl compiled 0.03 sec, 263,976 bytes% wn_sim.pl compiled 0.18 sec, 1,421,004 bytes% wn_s.pl compiled 3.26 sec, 26,404,536 bytes% wn_vgp.pl compiled 0.01 sec, 140,300 bytes% wn compiled 6.71 sec, 62,620,312 bytes

Yes

3.3. Explorarea bazei de date

Prolog, ca şi alte limbaje de programare, foloseşte variabile.Atâta doar că, pentru a le înţelege bazele conceptuale, arfi bine să ştim logica predicatelor. Dacă n-avem cunoştinţe

Toc JJ II J I Back J Doc Doc I

Page 180: Managementul informaţiei

Section 3: WordNet pentru meşterit 180

de logica predicatelor, cred că o bună soluţie o reprezintămeşterirea de mici programe Programe prolog.

Putem începe cu dialoguri directe cu sistemul Prolog:

7 ?- s(X,_,’cat’,n,_,_).

X = 102037721

Yes

Pe măsură ce dialogăm cu sistemul Prolog acesta afişeazănumere urmate de un semn de întrebare: sistemul aşteaptăsă i se indice un „scop“. Felul în care i-am indicat eu un scopseamănă destul de bine cu operaţiunea de simplificare a pre-dicatului s în secţiunea 3.1. În locul argumentelor care au

Toc JJ II J I Back J Doc Doc I

Page 181: Managementul informaţiei

Section 3: WordNet pentru meşterit 181

valori care nu mă interesează pun un spaţiu subliniat.3Douădintre argumente au valorile fixate de către mine.4În sfârşit,drept prim argument am pus o variabilă. Convenţia Prologeste că numele variabilelor încep cu litere mari. Eu am fo-losit chiar o singură majusculă.

După ce apăs „Enter“ sistemul caută să vadă dacă poatepune ceva în locul lui X în aşa fel încât să obţină un enunţcare se găseşte în baza sa de date. Dacă găseşte o valoarepentru X, atunci o afişează şi aşteaptă apăsarea unei taste.Dacă apăs „Enter“ căutarea se încheie. Dacă apăs pe tasta

3Atenţie! Aceste spaţii subliniate sunt foarte importante. Sistemulştie că predicatul s are şase argumente.

4Atenţie şi la poziţia în care se află ’cat’ şi n! Ordinea argumentelorcontează.

Toc JJ II J I Back J Doc Doc I

Page 182: Managementul informaţiei

Section 3: WordNet pentru meşterit 182

pe care este semnul pentru punct şi virgulă, atunci căutareacontinuă.

Un exemplu de continuare a căutării:

9 ?- s(X,_,’cat’,n,_,_).X = 102037721 ;X = 102043683 ;X = 102877229 ;X = 102879203 ;X = 103475580 ;X = 109269334 ;X = 109500444 ;No

Dacă mă folosesc de numerele descoperite (care sunt nu-mere de synseturi), pot să descopăr glose:

Toc JJ II J I Back J Doc Doc I

Page 183: Managementul informaţiei

Section 3: WordNet pentru meşterit 183

10 ?- g(102037721, N).N = ’(feline mammal usually having thick soft furand being unable to roar; domestic cats; wildcats)’ ;No11 ?- g(102037911, N).N = ’(any domesticated member of the genus Felis)’ ;No

Să explorăm acum mai atent un synset:

4 ?- s(202047097,Ord,Cuvant,Cat,Sens,F).

Ord = 1Cuvant = experienceCat = vSens = 3F = 8 ;

Toc JJ II J I Back J Doc Doc I

Page 184: Managementul informaţiei

Section 3: WordNet pentru meşterit 184

Ord = 2Cuvant = receiveCat = vSens = 4F = 22 ;

Ord = 3Cuvant = haveCat = vSens = 3F = 220 ;

Ord = 4Cuvant = get

Toc JJ II J I Back J Doc Doc I

Page 185: Managementul informaţiei

Section 3: WordNet pentru meşterit 185

Cat = vSens = 7F = 36 ;

Ord = 5Cuvant = undergoCat = vSens = 1F = 13 ;

No

De data aceasta am fixat numărul synsetului, dar în restam folosit doar variabile. Variabila Ord are drept valoarenumărul de ordine al cuvântului în synset. Numerele aces-tea de ordine sunt unice. Variabila Cuvant are rolul pe care-l

Toc JJ II J I Back J Doc Doc I

Page 186: Managementul informaţiei

Section 3: WordNet pentru meşterit 186

sugerează numele ei. Variabila Cat are drept valoare catego-ria gramaticală. Variabila Sens are drept valoare un număr;numărul acesta este cu atât mai mic cu cât sensul respectival cuvântului este mai des uzitat. Valoarea variabilei F estetot o frecvenţă: numărul de apariţii într-un corp de textefolosit drept referinţă de către echipa de cercetare WordNet.

Extragerea de informaţii nu trebuie făcută neapărat dintr-un singur synset. S-ar putea să vreau să văd un cuvânt înapariţiile sale în toate synseturile din care face parte:

7 ?- s(SynSet,Ord,’cat’,Cat,Sens,F).

SynSet = 102037721Ord = 1Cat = nSens = 1

Toc JJ II J I Back J Doc Doc I

Page 187: Managementul informaţiei

Section 3: WordNet pentru meşterit 187

F = 18 ;

SynSet = 102043683Ord = 2Cat = nSens = 7F = 0 ;

SynSet = 102877229Ord = 2Cat = nSens = 6F = 0 ;

SynSet = 102879203

Toc JJ II J I Back J Doc Doc I

Page 188: Managementul informaţiei

Section 3: WordNet pentru meşterit 188

Ord = 2Cat = nSens = 5F = 0 ;

SynSet = 103475580Ord = 5Cat = nSens = 4F = 0 ;

SynSet = 109269334Ord = 1Cat = nSens = 3

Toc JJ II J I Back J Doc Doc I

Page 189: Managementul informaţiei

Section 3: WordNet pentru meşterit 189

F = 0 ;

SynSet = 109500444Ord = 2Cat = nSens = 2F = 0 ;

SynSet = 200074101Ord = 6Cat = vSens = 2F = 0 ;

SynSet = 201371307

Toc JJ II J I Back J Doc Doc I

Page 190: Managementul informaţiei

Section 3: WordNet pentru meşterit 190

Ord = 1Cat = vSens = 1F = 0 ;

No

Am extras, după cum se vede lesne, informaţii despre cu-vântul ’cat’. Puteţi face o comparaţie cu Figura 5.2.

3.4. Descoperirea conexiunilor dintre informaţii

În secţiunea 3.3 am folosit dialogurile directe cu sistemulSWI-Prolog. Ele au desigur limitele lor. Sunt, în fond, ope-raţiuni de căutare manuală când vine vorba de conexiuni:

Toc JJ II J I Back J Doc Doc I

Page 191: Managementul informaţiei

Section 3: WordNet pentru meşterit 191

identifici un număr de synset, cauţi apoi glose şi alte ope-raţiuni de acest gen.

Cum Prolog este un limbaj complet, se pot scrie însăprograme care să caute ele prin baza de date. În fapt, oriceprogram Prolog, oricât de simplu descrie o căutare sau oregulă de căutare. Cel mai simplu program, în orice limbajde programare, este cel care scrie pe ecran ceva de genul„Salut lume!“.5Iată-l aici în acţiune în cazul Prolog:

4 ?- consult(obs/salutare).% obs/salutare compiled 0.00 sec, 620 bytes

Yes5Acest program se scrie deobicei când vrei să testeze dacă merge

compilatorul sau interpretorul pentru limbajul respectiv. Desigur, esteşi primul program pe care-l scrii când înveţi un limbaj de programare.

Toc JJ II J I Back J Doc Doc I

Page 192: Managementul informaţiei

Section 3: WordNet pentru meşterit 192

5 ?- salutare.Salut lume!

Yes

Am pornit SWI-Prolog din dosarul (folder -ul) în care se aflăfişierele Prolog ale WordNet. Pentru a nu amesteca obser-vaţiile mele cu aceste fişiere am creat un dosar obs. În acestdosar se află fişierul salutare.pl; observaţi modul în care de-curge consultarea acestui fişier. Trebuie neapărat indicatăcalea către el.

De regulă, programele Prolog sunt mult mai scurte de-cât programele în alte limbaje de programare. Nu aşa staulucrurile şi-n cazul salutare.pl, care este ceva mai complicatdecât omoloagele sale într-alte limbaje:

% prologToc JJ II J I Back J Doc Doc I

Page 193: Managementul informaţiei

Section 3: WordNet pentru meşterit 193

salutare :-write(’Salut lume!’),nl.

Primul rând este un comentariu. Comentariile sunt ignorateatunci când SWI-Prolog examinează fişierul. Ceea ce reţinesistemul Prolog ar putea fi tradus cam aşa în româneşte:acţiunea de salutare reuşeşte dacă reuşeşte acţiunea de ascrie în terminal (pe ecran, cu alte cuvinte) semnele Salutlume! şi reuşeşte acţiunea de a trece pe un rând nou.

Semnul :- este săgeata implicaţiei din logică, orientatăînsă către stânga. Logicienii ar înţelege desigur mult maiuşor următoarea notaţie:6

6Am folosit programul plTeX, creat de Michael A. Covington, pen-tru a transforma codul Prolog.

Toc JJ II J I Back J Doc Doc I

Page 194: Managementul informaţiei

Section 3: WordNet pentru meşterit 194

salutare←write(’Salut␣lume!’),nl.

Observaţi şi modul elegant în care este notat spaţiul alb dinmesajul care va fi afişat pe ecran.

Cum nu dispunem în setul de bază de semne cu carelucrează computerele de săgeata îndreptată către stânga,trebuie să lucrăm cu combinaţia :- care sugerează pe „sededuce din“.

Dacă examinaţi atent dialogul cu sistemul Prolog (v. pa-gina 193), observaţi că sistemul încheie dialogul cu Yes. Nor-mal, „căutarea“ a reuşit. Următorul program provoacă însăun dialog care se încheie cu No:

% prolog

Toc JJ II J I Back J Doc Doc I

Page 195: Managementul informaţiei

Section 3: WordNet pentru meşterit 195

salut :-write(’Salut lume!’),nl,!, fail.

Să vedem ce se-ntâmplă când consultăm programul demai sus şi-l punem să „caute“, să vadă dacă reuşeşte salut:

2 ?- consult(obs/salut).% obs/salut compiled 0.01 sec, 812 bytes

Yes3 ?- salut.Salut lume!

NoToc JJ II J I Back J Doc Doc I

Page 196: Managementul informaţiei

Section 3: WordNet pentru meşterit 196

Era şi normal să se încheie dialogul cu No. Căutarea faileste, prin convenţie, căutarea care nu reuşeşte niciodată.

Folosirea semnului exclamării într-un program Prologeste o chestiune ceva mai complicată. Aici ne putem mul-ţumi cu ideea că el opreşte anumite manevre de căutare înbaza de date. Marele avantaj al Prolog este tocmai acela căoptimizează căutările în baza de date.

Prolog este un limbaj universal. Orice program scris înalt limbaj poate fi tradus în Prolog. Ca multe alte limbajede programare Prolog este însă mult mai bun într-o anumedirecţie: căutarea în baza sa de date.

Partea cea mai interesantă a unui program Prolog estecolecţia de reguli de căutare. În continuare, este listat unprogram care caută să vadă ce alţi membri există într-unsynset:

Toc JJ II J I Back J Doc Doc I

Page 197: Managementul informaţiei

Section 3: WordNet pentru meşterit 197

% prolog

memset(Cuvant) :-s(SynSet,_,Cuvant,_,_,_),s(SynSet,Ord,Membru,Cat,_,_),write(SynSet),write(’ > ’),write(Ord),write(’ > ’),write(Membru),write(’/’),write(Cat), nl,fail, !.

Aici există o singură regulă, cea pentru cătarea şi afişarea

Toc JJ II J I Back J Doc Doc I

Page 198: Managementul informaţiei

Section 3: WordNet pentru meşterit 198

altor membri ai synseturilor. Să vedem ce se-ntâmplă con-cret:

8 ?- consult(obs/memset).% obs/memset compiled 0.00 sec, 776 bytes

Yes9 ?- memset(’cat’).102037721 > 1 > cat/n102037721 > 2 > true_cat/n102043683 > 1 > big_cat/n102043683 > 2 > cat/n102877229 > 1 > Caterpillar/n102877229 > 2 > cat/n102879203 > 1 > cat-o’-nine-tails/n102879203 > 2 > cat/n

Toc JJ II J I Back J Doc Doc I

Page 199: Managementul informaţiei

Section 3: WordNet pentru meşterit 199

103475580 > 1 > kat/n103475580 > 2 > khat/n103475580 > 3 > qat/n103475580 > 4 > quat/n103475580 > 5 > cat/n103475580 > 6 > Arabian_tea/n103475580 > 7 > African_tea/n109269334 > 1 > cat/n109500444 > 1 > guy/n109500444 > 2 > cat/n109500444 > 3 > hombre/n109500444 > 4 > bozo/n200074101 > 1 > vomit/v200074101 > 2 > vomit_up/v200074101 > 3 > purge/v

Toc JJ II J I Back J Doc Doc I

Page 200: Managementul informaţiei

Section 3: WordNet pentru meşterit 200

200074101 > 4 > cast/v200074101 > 5 > sick/v200074101 > 6 > cat/v200074101 > 7 > be_sick/v200074101 > 8 > disgorge/v200074101 > 9 > regorge/v200074101 > 10 > retch/v200074101 > 11 > puke/v200074101 > 12 > barf/v200074101 > 13 > spew/v200074101 > 14 > spue/v200074101 > 15 > chuck/v200074101 > 16 > upchuck/v200074101 > 17 > honk/v200074101 > 18 > regurgitate/v

Toc JJ II J I Back J Doc Doc I

Page 201: Managementul informaţiei

Section 3: WordNet pentru meşterit 201

200074101 > 19 > throw_up/v201371307 > 1 > cat/vNo

Să vedem un program elementar de căutare de glose pen-tru un cuvânt dat prin baza de date WordNet:

% prolog

cautare(Cuvant) :-s(SynSet,_,Cuvant,Cat,_,_),g(SynSet,Glosa),write(Cuvant),write(’/’),write(Cat),write(’ ’),write(Glosa), nl,

Toc JJ II J I Back J Doc Doc I

Page 202: Managementul informaţiei

Section 3: WordNet pentru meşterit 202

fail, !.

cautare_a(Cuvant) :-s(SynSet,_,Cuvant,a,_,_),g(SynSet,Glosa),write(Cuvant),write(’/’),write(’a’),write(’ ’),write(Glosa), nl,fail, !.

cautare_n(Cuvant) :-s(SynSet,_,Cuvant,n,_,_),g(SynSet,Glosa),

Toc JJ II J I Back J Doc Doc I

Page 203: Managementul informaţiei

Section 3: WordNet pentru meşterit 203

write(Cuvant),write(’/’),write(’n’),write(’ ’),write(Glosa), nl,fail, !.

cautare_v(Cuvant) :-s(SynSet,_,Cuvant,v,_,_),g(SynSet,Glosa),write(Cuvant),write(’/’),write(’v’),write(’ ’),write(Glosa), nl,

Toc JJ II J I Back J Doc Doc I

Page 204: Managementul informaţiei

Section 3: WordNet pentru meşterit 204

fail, !.

Voi încărca programul cautare.pl şi voi căuta glose pentrudiversele înţelesuri ale substantivului ’cat’ (pisică):

6 ?- consult(obs/cautare).% obs/cautare compiled 0.00 sec, 1,780 bytes

Yes7 ?- cautare_n(’cat’).cat/n (feline mammal usually having thick soft fur andbeing unable to roar; domestic cats; wildcats)cat/n (any of several large cats typically ableto roar and living in the wild)cat/n (a large vehicle that is driven by caterpillartracks; frequently used for moving earth inconstruction and farm work)

Toc JJ II J I Back J Doc Doc I

Page 205: Managementul informaţiei

Section 3: WordNet pentru meşterit 205

cat/n (a whip with nine knotted cords;"British sailors feared the cat")cat/n (the leaves of the shrub Catha edulis whichare chewed like tobacco or used to make tea;has the effect of a euphoric stimulant;"in Yemen kat is used daily by 85% of adults")cat/n (a spiteful woman gossip; "what a cat she is!")cat/n (an informal term for a youth or man;"a nice guy"; "the guy’s only doing it for some doll")

No

Putem compara informaţiile obţinute cu cele din Figura 5.2.Momentul cel mai important în programul de mai sus

ţine de modul în care sunt folosite variabilele Cuvant şiSynSet. Variabilei Cuvant îi dăm o valoare atunci când îi in-

Toc JJ II J I Back J Doc Doc I

Page 206: Managementul informaţiei

Section 3: WordNet pentru meşterit 206

dicăm sistemului un scop (îi spunem să vadă dacă reuşeştecăutarea unor glose pentru ’cat’ ca substantiv). Dacă valoa-rea lui Cuvant se potriveşte cu un element al unui synset,atunci variabila SynSet capătă o valoare. Această valoare,la rândul ei, este folosită pentru o căutare: căutarea uneiglose potrivite. În felul acesta am operat o conexiune întreinformaţiile din baza de date. În fond, am inferat, am deduso nouă informaţie din baza de date.

Căutarea unor conexiuni în baza de date nu reuşeşte în-totdeauna. Următorul program Prolog caută cuvinte simi-lare:

% prolog

similare(Cuvant) :-s(SynSet1,_,Cuvant,Cat1,_,_),

Toc JJ II J I Back J Doc Doc I

Page 207: Managementul informaţiei

Section 3: WordNet pentru meşterit 207

sim(SynSet1,SynSet2),s(SynSet2,_,Similar,Cat2,_,_),write(Cuvant),write(’/’),write(Cat1),write(’ :=: ’),write(Similar),write(’/’),write(Cat2), nl,fail, !.

Spre dezamăgirea mea, nu găsesc termeni similari pentru’cat’:

10 ?- consult(obs/similare).% obs/similare compiled 0.00 sec, 868 bytes

Toc JJ II J I Back J Doc Doc I

Page 208: Managementul informaţiei

Section 3: WordNet pentru meşterit 208

Yes11 ?- similare(’cat’).

No

Nu este nici o eroare în eşecul căutării de mai sus. Wor-dNet defineşte relaţii de similaritate între adjective. În senstehnic, în WordNet, între cuvintele care au categoriile gra-maticale a sau s. Adjectivul ’good’ este similar cu:

22 ?- similare(’good’).good/s :=: advantageous/agood/s :=: ample/agood/a :=: good-hearted/sgood/a :=: kind/sgood/a :=: kindly/sgood/a :=: openhearted/s

Toc JJ II J I Back J Doc Doc I

Page 209: Managementul informaţiei

Section 3: WordNet pentru meşterit 209

good/s :=: close/agood/s :=: complete/agood/s :=: discriminating/agood/s :=: operative/agood/s :=: fortunate/agood/s :=: fresh/agood/s :=: genuine/agood/s :=: echt/agood/a :=: bang-up/sgood/a :=: bully/sgood/a :=: corking/sgood/a :=: cracking/sgood/a :=: dandy/sgood/a :=: great/sgood/a :=: groovy/s

Toc JJ II J I Back J Doc Doc I

Page 210: Managementul informaţiei

Section 3: WordNet pentru meşterit 210

good/a :=: keen/sgood/a :=: neat/sgood/a :=: nifty/sgood/a :=: not_bad(p)/sgood/a :=: peachy/sgood/a :=: slap-up/sgood/a :=: swell/sgood/a :=: smashing/sgood/a :=: good_enough/sgood/a :=: goodish/sgood/a :=: redeeming(a)/sgood/a :=: satisfactory/sgood/a :=: acceptable/sgood/a :=: solid/sgood/a :=: suitable/s

Toc JJ II J I Back J Doc Doc I

Page 211: Managementul informaţiei

Section 3: WordNet pentru meşterit 211

good/a :=: superb/sgood/a :=: well-behaved/sgood/a :=: well_behaved/sgood/a :=: hot/sgood/a :=: angelic/sgood/a :=: angelical/sgood/a :=: beatific/sgood/a :=: saintlike/sgood/a :=: saintly/sgood/a :=: sainted/sgood/a :=: beneficent/sgood/a :=: benevolent/sgood/a :=: gracious/sgood/a :=: white/sgood/a :=: worthy/s

Toc JJ II J I Back J Doc Doc I

Page 212: Managementul informaţiei

Section 3: WordNet pentru meşterit 212

good/a :=: goody-goody/sgood/a :=: redemptive/sgood/a :=: redeeming(a)/sgood/a :=: saving(a)/sgood/s :=: healthful/agood/s :=: healthy/agood/s :=: intellectual/agood/s :=: nice/agood/s :=: opportune/agood/s :=: pleasing/agood/s :=: reputable/agood/s :=: righteous/agood/s :=: skilled/agood/s :=: sound/agood/s :=: superior/a

Toc JJ II J I Back J Doc Doc I

Page 213: Managementul informaţiei

Section 3: WordNet pentru meşterit 213

No

Programe mai sofisticate decât cele de mai sus mi-aratrage atenţia când o căutare are sau n-are sens. Chiar şiaşa ne putem face o idee, meşterind programe Prolog degenul celor de mai sus, despre căutarea în bazele logice dedate.

Toc JJ II J I Back J Doc Doc I

Page 214: Managementul informaţiei

CAPITOLUL 6. COMUNICAREA INFORMAŢIILOR 214

Capitolul 6:Comunicarea informaţiilor

Informaţiile care ar sta stocate în baze de date sau care aravea o formă puţin sugestivă n-ar fi utile organizaţiei. Doarinformaţiile care sunt comunicate sunt informaţii folositoareorganizaţiei.

Raman şi Sharma[12] disting între comunicarea orală şicomunicarea scrisă. Comunicarea orală include interviurile,comunicarea ocazională în grup, şedinţele etc. Comunica-rea scrisă include scrisorile, rapoartele, proiectele, manua-lele ş.a.

Indiferent de forma comunicării, un lucru este deosebitde important atunci când ne gândim la informaţiile pe care

Toc JJ II J I Back J Doc Doc I

Page 215: Managementul informaţiei

CAPITOLUL 6. COMUNICAREA INFORMAŢIILOR 215

le includem în mesajele noastre: auditoriul. Includerea deinformaţii în mesaj nu este un scop în sine. Ele trebuie săaibă un rost şi o şansă de a fi înţelese de către publiculcăruia ne adresăm.

O altă idee importantă – de această dată la nivelul orga-nizaţiei – este aceea de a evita ambuteiajele informaţionale,gâtuirile în circuitul informaţiilor, comunicarea de repetateori a aceloraşi informaţii. Informaţiile trebuie să circule linpe canalele de comunicare ale organizaţiei.

În sfârşit, trebuie avansate recomandări numai pe bazacântăririi cu grijă a argumentelor în favoarea unei soluţii saua alteia. Comunicarea trebuie să fie centrată pe argumente.Forma în care sunt prezentate argumentele este însă reco-mandabil să fie una vizuală. Formalismele abstracte cap-

Toc JJ II J I Back J Doc Doc I

Page 216: Managementul informaţiei

Section 1: Avantajele folosirii bazelor de date 216

tează mai greu interesul. Un grafic sau o imagine pot să-lmenţină treaz sau să-l stârnească.

1. Avantajele folosirii bazelor de date

Principalul pericol care pare a pândi managementul infor-maţiei într-o organizaţie este ruptura dintre informaţiilestocate şi comunicare.

Nu vi s-a-ntâmplat să daţi de mai multe ori aceleaşi infor-maţii? Cineva vi le-a cerut, le-a folosit, dar nu s-a priceputsă le stocheze în aşa fel încât să le poată folosi şi altă-dată.

Nu doar managerii (sau mai precis subordonatele şi sub-ordonaţii lor) suferă din pricina rupturii dintre stocul deinformaţii şi comunicare. L-am auzit nu demult pe un ca-dru didactic suspinând că i se cerea lista de lucrări în altă

Toc JJ II J I Back J Doc Doc I

Page 217: Managementul informaţiei

Section 1: Avantajele folosirii bazelor de date 217

formă decât până atunci. Avea lista în format electronic,dar acest format era cel al Word-ului. Se gândea desigurcât timp va pierde pentru a reface lista („tăind şi lipind“).

Un exemplu foarte frecvent de management greşit al in-formaţiei îl oferă autoarele sau autorii de diverse lucrări,disertaţii şi teze. Bibliografia lucrării, disertaţiei sau tezeieste alcătuită sub forma unui text mai mult sau mai pu-ţin frumos formatat. Cum faci să păstrezi însă un formatuniform în listă? Ce te faci dacă vrei să treci localitateaînaintea editurii? Sau dacă introduci noi titluri? Obţinereaunui rezultat bun cere ore întregi de muncă.

Soluţia la problema de mai sus este folosirea unei bazede date. De pildă, în cazul bibliografiei acestei cărţi folosesco bază de date numită bibtex. Un fragment din baza de dateeste vizibil în Figura 6.1.

Toc JJ II J I Back J Doc Doc I

Page 218: Managementul informaţiei

Section 1: Avantajele folosirii bazelor de date 218

Sursa datelor unei baze bibtex este într-un fişier al căruinume are extensia bib. Sursa de date se compune din înre-gistrări. Fiecare înregistrare are un tip. În Figura 6.1 suntdoar înregistrări de tipul book (carte). Există însă şi altetipuri de înregistrări. Fiecare tip de înregistrare are câm-purile sale. Numele acestor câmpuri sunt urmate de semnulegal şi sunt colorate aparte în Figura 6.1. Conţinutul infor-maţiilor stocate în câmpuri este sugerat de numele acestora.În sfârşit, o înregistrare are o etichetă unică. De exemplu,cartea lui George Soros are eticheta soros.

Ca şi-n cazul oricărei baze de date, pe lângă sursa dedate avem nevoie şi de programe care să preia datele şi săle plaseze acolo unde dorim. În cazul de faţă este vorbadespre programul bibtex.

Cum ştie însă programul bibtex ce formă vrem să dăm

Toc JJ II J I Back J Doc Doc I

Page 219: Managementul informaţiei

Section 1: Avantajele folosirii bazelor de date 219

bibliografiei? Pentru aceasta programul foloseşte foi de stil.Schimbarea foii de stil ne permite să schimbăm forma biblio-grafiei. Foaia de stil ne permite, de asemenea, să ignorămo serie de câmpuri ale bibliografiei. În cazul cărţii lui PeterDrucker, de exemplu, am folosit câmpul cv, creat ad hoc,pentru a introduce câteva date despre părintele manage-mentului ca disciplină academică.

Utilizarea bibtex este importantă nu doar din perspectivalistei bibliografice finale. În fapt bibtex creează un fişier pecare-l înţelege programul LATEX. În limbajul LATEX se potda comenzi pentru introducerea unor trimiteri la bibliogra-fie. În felul acesta informaţia bibliografică este integratădinamic în textul cărţii: dacă introduc un nou titlu în bi-bliografie, sistemul trimiterilor se actualizează automat.1

1Detalii despre utilizarea practică a bibtex găsiţi în anexele la car-

Toc JJ II J I Back J Doc Doc I

Page 220: Managementul informaţiei

Section 1: Avantajele folosirii bazelor de date 220

În multe alte situaţii secretul este acelaşi ca şi-n cazulbibliografiei. Ce rost are să ţii liste cu angajaţi sau angajateîn formatul Word? Sau diverse informaţii despre ei sau ele?Trebuie să te chinui mult ca să transformi un fişier Wordîntr-o sursă de date.

A pune de la început informaţiile într-o bază de date şia asigura un flux optim al lor până ajung să fie comunicateeste un lucru absolut esenţial.

În secţiunea 2 vom prezenta, de altfel, un program caredesenează grafuri. Este important să ne gândim la un astfelde program şi din perspectiva conectării cu bazele de date.De exemplu, programul wnconnect, introdus la pagina 156

tea mea Eseul filosofic (Bucureşti: Editura Universităţii din Bucureşti,2004) sau în pagina de web a cărţii.

Toc JJ II J I Back J Doc Doc I

Page 221: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 221

ş.u., foloseşte această posibilitate pentru a crea grafuri fo-losind informaţiile din baza de date WordNet.

2. Vizualizarea informaţiilor

Comunicarea informaţiilor este mult mai eficientă dacă esteînsoţită şi de o prezentare grafică a legăturii dintre infor-maţii.

Programele pentru foi de calcul includ, de regulă, şi apli-caţii care construiesc grafice: cu bare, sub forma „feliilorunei plăcinte“, cu diverse linii etc. Ce te faci însă dacă tre-buie să construieşti repede o diagramă cu noduri şi săgeţi?O astfel de reprezentare grafică este ideală pentru prezen-tarea sugestivă a dependenţei informaţiilor unele de altele.

Poate v-aţi întrebat cu ce pachet am construit Figura 5.1.

Toc JJ II J I Back J Doc Doc I

Page 222: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 222

Cu pachetul GraphViz. GraphViz este un proiect cu sursădeschisă, dezvoltat la AT&T.

Sub Linux Fedora Core 3, de exemplu, am instalat pache-tul (folosind arhiva graphviz-2.6.tar.gz) în felul următor. Caroot am transferat pachetul arhivat în /usr/src/redhat/SOURCESşi am tastat (din directorul respectiv!) într-o consolă:

rpmbuild -tb graphviz-2.6.tar.gz

Restul rezolvă sistemul Fedora. Pentru instalare se folosescrpm-urile din /usr/src/redhat/RPMS/i386 în felul uzual:

rpm -Uvh graphviz-2.6-1.i386.rpmrpm -Uvh graphviz-devel-2.6-1.i386.rpmrpm -Uvh graphviz-tcl-2.6-1.i386.rpmrpm -Uvh graphviz-doc-2.6-1.i386.rpmrpm -Uvh graphviz-graphs-2.6-1.i386.rpm

Toc JJ II J I Back J Doc Doc I

Page 223: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 223

Instalaţi în orice caz primul rpm şi pe cel care conţine do-cumentaţia. Documentaţia este foarte bogată şi extrem deutilă pentru învăţarea limbajului folosit de programele dinpachetul GraphViz.

2.1. Pachetul GraphViz

De îndată ce veţi vedea că elaborarea unui graf cu GraphVizpresupune scrierea unui program s-ar putea să daţi înapoişi să ziceţi „asta nu-i pentru mine“. „Sunt un om grăbit;am puţin timp“ nu-i un bun argument aici. Dezvoltarea dediagrame cu GraphViz se face foarte repede.

Într-un excelent articol despre GraphViz, publicat de Li-nux DevCenter pe 6 mai 2004, Michele Simionato explicăavantajele GraphViz şi elementele sale de bază. Ideea dinprimul alineat al articolului este tocmai aceea că GraphViz

Toc JJ II J I Back J Doc Doc I

Page 224: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 224

este pachetul ideal pentru cine are de făcut mâine o prezen-tare şi n-are gata diagramele. Asta se poate întâmpla, depildă, dacă vreţi să prezentaţi o schimbare în organigramaorganizaţiei sau în multe alte situaţii.

Pentru a lucra cu GraphViz aveţi nevoie de un editorprecum Vim sau Emacs. Cea mai simplă diagramă (în afarăde cea vidă) pare a fi cea scrisă de mine în fişierul prim.dot:

// dot

graph test {

A

}

Într-o consolă, daţi apoi o comandă de genul:Toc JJ II J I Back J Doc Doc I

Page 225: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 225

dotty prim.dot

Apare o fereastră grafică şi-n ea un cerc în care stă scris A.Dacă vreţi o săgeată între două noduri, graful devine

ceva mai „complicat“ de programat:

// dot

digraph test {

Nod1Nod2

Nod1 -> Nod2

}

Toc JJ II J I Back J Doc Doc I

Page 226: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 226

Cum dăm conţinut nodurilor grafului? Simplu:// dot

digraph test {

Nod1 [label="Continutul primului nod"]Nod2 [label="Continutul celui de-al doilea nod"]

Nod1 -> Nod2

}

Cum etichetăm muchiile (conexiunile) dintre nodurilegrafului? Punem, ca şi-n cazul nodurilor, un text între ghi-limelele din label="". De exemplu:// dot

Toc JJ II J I Back J Doc Doc I

Page 227: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 227

digraph test {

Nod1 [label="Continutul primului nod"]Nod2 [label="Continutul celui de-al doilea nod"]

Nod1 -> Nod2 [label="Eticheta pe sageata"]

}

Cum inversăm direcţia săgeţii?

// dot

digraph test {

Nod1 [label="Continutul primului nod"]Toc JJ II J I Back J Doc Doc I

Page 228: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 228

Nod2 [label="Continutul celui de-al doilea nod"]

Nod1 -> Nod2 [label="Eticheta pe sageata", dir=back]

}

Dacă studiaţi comparativ paşii de mai sus vă puteţi daseama imediat care sunt diferenţele şi cum fiecare cores-punde cu o modificare în imaginea pe care-o vedeţi în fe-reastra grafică.

Marele avantaj al GraphViz este că pot fi scrise programecare preiau informaţii dintr-o bază de date şi le introduc întextul programelor GraphViz. Apoi aceste programe sunttransformate în grafuri. În felul acesta procesul de prezen-tare a reţelei informaţiilor poate fi automatizat.

Toc JJ II J I Back J Doc Doc I

Page 229: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 229

2.2. Diagrame pentru argumente

Anumite şcoli filosofice au un adevărat cult pentru argu-mentare. Orice idee trebuie susţinută cu argumente, în tra-diţia de gândire a unor asemenea şcoli.

Argumentele sunt importante nu doar pentru filosofi. Laurma urmei, sunt prezente în discuţiile de zi cu zi. Suntimportante însă şi-n procesele de comunicare în care suntangajaţi managerii.

Pe scurt, ideea în favoarea căreia pledez aici este că n-ajunge să susţii cu convingere o decizie. N-ajung simpleleinformaţii. Trebuie oferite argumente.

Din fericire, argumentele formulate în limbajul naturalpot fi vizualizate şi cu ajutorul tehnicilor logicii informale.În comunicările managerilor cred că aceste reprezentări vi-

Toc JJ II J I Back J Doc Doc I

Page 230: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 230

zuale nu sunt doar suficiente, ci chiar mai eficiente decâtformalizările matematice.

Ceea ce sugerez în continuare urmează linia din cartea luiC.A.Missimer[7]. Utilizez însă grafurile construite cu ajuto-rul GraphViz.

C.A.Missimer[7, p.16] ne spune că orice argument argu-ment porneşte de la o problemă. Nu este desigur uşor în-totdeauna să descoperim problema aflată în discuţie. Dacăauzim însă pe cineva susţinând că n-ar trebui date note laşcoală,2atunci ne dăm seama că problema în discuţie estecea a notării în şcoală.

Fiind dată o problemă, diverse părţi pot să avanseze răs-2De altfel, mai nou, şi la noi în ţară, în primele patru clase, se dau

calificative (nu tradiţionalele note de la 1 la 10).

Toc JJ II J I Back J Doc Doc I

Page 231: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 231

punsuri diferite sau chiar diametral opuse. De pildă, uniipot fi pentru note, alţii contra lor.

Miezul unui argument constă din raţiunile avansate înfavoarea unei soluţii. Dacă soluţiile sunt opuse, precum închestiunea notării, atunci putem vizualiza destul de lesneaceste raţiuni (a se vedea Figura 6.2, construită pornind dela Figura 3–3 din Good Arguments [7, p.35]).

Cântărirea raţiunilor în favoarea unei soluţii sau a alteiaeste o parte importantă a argumentării.

Figura 6.2 este construită folosind un fişier argcarg.dotcu următorul conţinut:

// dot

digraph test {

Toc JJ II J I Back J Doc Doc I

Page 232: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 232

Problema [label="Trebuie renuntat la note?", shape=rect ]Da [label="Da", color=blue]Nu [label="Nu", color=red]{rank=same; Da Nu}

Da -> Problema [label="ratiuni contra notare", dir=back]Nu -> Problema [label="ratiuni pro notare", dir=back]}

Pentru a obţine fişierul argcarg.png, care conţine imagi-nea ca atare, se foloseşte următoarea comandă (într-o con-solă):dot argcarg.dot -Tpng -o argcarg.png

Un manager poate să argumenteze pro sau contra des-chiderii unei noi filiale a organizaţiei. Poate să argumenteze

Toc JJ II J I Back J Doc Doc I

Page 233: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 233

pro sau contra unui nou magazin sau a introducerii în fabri-caţie a unui produs ş.a.m.d. În toate aceste situaţii trebuieproduse raţiuni în favoarea concluziei avansate şi trebuieindicate temeiuri pentru superioritatea acestor raţiuni înraport cu cele în favoarea unor concluzii diferite.

Această carte tratează problema managementului infor-maţiei. N-avem drept scop discutarea modului în care dove-zile disponibile înclină balanţa în favoarea unei concluzii saua alteia. Aşa ceva face obiectul unui cărţi despre gândireacritică, argumentare şi logică informală. Aici ne intereseazăfelul în care se poate manevra cu informaţiile conţinute înargumente şi modul în care ele pot fi prezentate grafic câtmai sugestiv.

Unul dintre elementele cele mai importante legate deargumentare este identificarea presupoziţiilor. Modul de a

Toc JJ II J I Back J Doc Doc I

Page 234: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 234

pune problema ca atare poate să conţină presupoziţii. Chiardacă pare o întrebare de om necioplit, legendara chestiunedin Vechea Grecie „Ai pierdut coarnele?“ are meritele ei. Neatrage atenţia asupra presupoziţiilor problemei: trebuia săam ceva ca să pot pierde acel ceva. Odată scoase la lumină,presupoziţiile pot fi reprezentate grafic.

Figura 6.3 este obţinută prin adăugarea a trei rânduri înfişierul argcarg.dot:

Presupozitie [shape=rect]{rank=sink; Presupozitie}Presupozitie -> Problema

Se observă indicarea destul de evidentă a rank-ului (rangu-lui) presupoziţiei în graf.

Multe cărţi de argumentare insistă asupra elementelor de

Toc JJ II J I Back J Doc Doc I

Page 235: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 235

susţinere intermediare. Concluzia este avansată pe temeiulunor constatări intermediare. Am putea, de exemplu, sus-ţine că notele încurajează reproducerea necritică a lecţiilor.

De asemenea, un autor precum C.A.Missimer[7, cap.7]insistă şi asupra importanţei prescripţiilor. Dacă am ajungela concluzia că trebuie renunţat la note, atunci trebuie săfacem o recomandare.

Pentru a introduce elementele intermediare în sprijinulconcluziei, precum şi recomandări, putem modifica codul depână acum al grafului pentru a ajunge la forma următoare(comparaţi formele anterioare cu aceasta pentru a detectaschimbările):

// dot

digraph test {Toc JJ II J I Back J Doc Doc I

Page 236: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 236

Problema [label="Trebuie renuntat la note?", shape=rect ]Da [label="Da", color=blue]Nu [label="Nu", color=red]{rank=same; Da Nu}

Sustinere -> Problema [label="ratiuni", dir=back]Da -> Sustinere [label="ratiuni", dir=back]Recomandare -> Da [dir=back]Nu -> Problema [label="ratiuni pro notare", dir=back]

Presupozitie [shape=rect]{rank=sink; Presupozitie}Presupozitie -> Problema

Toc JJ II J I Back J Doc Doc I

Page 237: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 237

}

Rezultatul este cel din Figura 6.4.

Toc JJ II J I Back J Doc Doc I

Page 238: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 238

Figura 6.1: Fragment dintr-o sursă de date bibtexToc JJ II J I Back J Doc Doc I

Page 239: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 239

Figura 6.2: Raţiuni pro şi contra unei soluţii în problemanotării

Toc JJ II J I Back J Doc Doc I

Page 240: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 240

Figura 6.3: Reprezentarea presupoziţiei problemei

Toc JJ II J I Back J Doc Doc I

Page 241: Managementul informaţiei

Section 2: Vizualizarea informaţiilor 241

Figura 6.4: Versiunea modificată a diagramei argumentăriiîn problema notăriiToc JJ II J I Back J Doc Doc I

Page 242: Managementul informaţiei

CAPITOLUL 7. PROIECTE 242

Capitolul 7:Managementul informaţiilor conţinute în

proiecte

Termenul „proiect“ este ambiguu.1Un proiect poate fi con-ceput drept proiect-ca-idee. În acest caz, miezul său esteformat dintr-un şir de obiective, bifate pe măsură ce suntatinse.

Un proiect poate fi înţeles drept proiect-ca-propunere.Deobicei este vorba de o propunere prezentată unei comi-sii care aprobă resursele financiare solicitate prin proiect.Comisiei i se prezintă ceva care arată mai degrabă ca o

1O serie de exemple interesante de folosire a termenului „proiect“găsiţi, de exemplu, pe situl factbites.

Toc JJ II J I Back J Doc Doc I

Page 243: Managementul informaţiei

CAPITOLUL 7. PROIECTE 243

carte. În orice caz, există multe elemente menite să-i ajutepe membrii comisiei să se documenteze mai bine: descrieri,tabele, grafice şi multe altele.

Managementul informaţiilor diferă în cazul proiectului-ca-idee de cel din cazul proiectului-ca-propunere. Proiectul-ca-idee presupune un mod de stocare a informaţiilor carefacilitează generarea ideilor şi organizarea lor într-un modcoerent. În cazul proiectului-ca-propunere ideile trebuie săexiste deja. Aici forma în care sunt prezentate contează.Evaluatoarele sau evaluatorii trebuie convinşi că ideile res-pective pot fi transpuse în practică şi că fondurile alocatevor fi cheltuite eficient.

Îţi trebuie deci un proiect-ca-idee pe care, dacă nu dis-pui direct de fondurile necesare, trebuie să-l transformi într-un proiect-ca-propunere. O dată obţinute fondurile, proiec-

Toc JJ II J I Back J Doc Doc I

Page 244: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 244

tul trebuie dezvoltat, ceea ce ridică noi şi interesante pro-bleme legate de managementul informaţiilor. În principiuînsă, dezvoltarea proiectului presupune obiective, resurse şitermene. Informaţiile cu privire la obiective, resurse şi ter-mene sunt cele care trebuie organizate cât mai potrivit.

1. Structurarea arborescentă a informaţiilor

Metafora arborelui este lesne inteligibilă dacă ne gândim lastructura unei cărţi de factură academică. Cartea ca atareeste „rădăcina“ arborelui.2Capitolele sunt precum crengilecare se desprind din trunchi. Din capitole se desprind alte

2Nu uitaţi că este vorba despre o metaforă! „Rădăcina“ combină,de fapt, rădăcina şi trunchiul „arborelui“ până la punctul în care începsă se desprindă ramurile.

Toc JJ II J I Back J Doc Doc I

Page 245: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 245

ramuri: secţiunile. Procesul poate evident continua. Impor-tant este că o secţiune se poate „desprinde“ (poate faceparte) doar dintr-un capitol.

Ca şi o carte, ideile unui proiect ni le putem reprezentaîntr-o formă arborescentă. Proiectul ca atare reprezintă ră-dăcina. Ideile-cheie reprezintă ramurile principale ale arbo-relui. Pe măsură ce proiectul se conturează ideilor-cheie lecorespund obiectivele principale ale proiectului. Asemenearamurilor care se desprind din alte ramuri, din obiectivele-cheie se desprind alte obiective ş.a.m.d.

Asemenea structuri arborescente pot fi realizate, de pildă,în limbajul XML. XML a fost conceput ca limbaj pentru In-ternet, dar are multiple alte aplicaţii; e.g. stocarea de date.Pentru legătura dintre validitatea unui document XML şio structură arborescentă se poate vedea comentariul din

Toc JJ II J I Back J Doc Doc I

Page 246: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 246

Lee Anne Phillips[9, p.40]. Matematic vorbind, un arboreeste un graf (care nu conţine circuite). Ca orice graf, arenoduri şi muchii. Spre deosebire de graful desenat de LeeAnne Phillips, de regulă, arborii din cărţile de informaticăau rădăcina sus (pentru că noi citim paginile de sus în jos).Nodurilor terminale li se mai spune şi frunze.

1.1. Schema compoziţională

Corpul uman are o structură de rezistenţă: scheletul. O clă-dire are şi ea o structură de rezistenţă. Despre o carte aca-demică putem spune că are o schemă, un plan care leagăideile din carte într-o structură coerentă. Tot aşa şi despreun proiect putem spune că are la bază o schemă pe care sebrodează întreaga compoziţie.

În limba engleză se foloseşte termenul outline (schiţă)Toc JJ II J I Back J Doc Doc I

Page 247: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 247

pentru a desemna osatura unui proiect. Adevărul este căschiţa aceasta poate căpăta amploare şi am preferat aicisintagma „schemă compoziţională“.

Ideea de bază este cea a organizării arborescente a sche-mei compoziţionale. Dacă ne gândim la osatura proiectuluica fiind alcătuită din obiective, atunci schema compoziţio-nală va avea drept ramuri principale obiectivele majore aleproiectului. Subobiectivele sunt asemenea unor ramuri carese desprind din ramurile principale.

Cred că numărul obiectivelor majore ale unui proiect tre-buie să fie limitat. Memoria de lucru nu ne permite să pro-cesăm decât şapte (plus sau minus două) obiective.3Putem

3A se vedea George A. Miller, The Magical Number Seven, Plus orMinus Two: Some Limits on Our Capacity for Processing Information,articol publicat iniţial în The Psychological Review, 1956, vol. 63, pp.

Toc JJ II J I Back J Doc Doc I

Page 248: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 248

însă formula subobiective ale obiectivelor principale şi aşamai departe.

Numărul total al obiectivelor s-ar putea să fie considera-bil. Informaţiile conţinute în schema proiectului vor fi greude manevrat pur manual. Ne vom pune în mod firesc în-trebarea dacă nu putem primi ceva ajutor din partea unorprograme de computer.

81-97. În acest studiu celebru Miller discută limitele memoriei de lucruumane. Interesant este că putem însă opera cu module de informaţii,care la rândul lor pot încorpora alte module de informaţii ş.a.m.d.Nu putem prelucra desigur decât şapte module simultan. Pot folosiun modul de genul „anul căderii Constantinopolului“, combinat cu„anul declanşării Revoluţiei Franceze“ şi „anul naşterii lui Caragiale“pentru a ţine minte numărul „145317891852“. Numărul respectiv areprea multe cifre pentru a opera cu el în mod direct în memoria delucru.

Toc JJ II J I Back J Doc Doc I

Page 249: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 249

• Folosirea programului Leo

O alegere interesantă pentru schema conceptuală a proiec-tului o reprezintă programul Leo. Programul este scris decătre Edward K. Ream. Are o pagină de web. Poate fi re-lativ uşor instalat. Atenţie însă la faptul că este scris înlimbajul python. Citiţi instrucţiunile de instalare pentrusistemul dumneavoastră de operare şi vedeţi dacă aveţi saunu instalată versiunea potrivită pentru python.

Leo este un program sofisticat. Poate face foarte multelucruri, dar şi presupune unele cunoştinţe avansate de pro-gramare pentru anumite utilizări ale sale. Nu aveţi însănevoie de asemenea cunoştinţe pentru a construi schemeconceptuale. Practic, ar fi bine să parcurgeţi partea de ou-tlining a meditaţiilor (tutorial) la utilizarea Leo oferite deEdward K. Ream pe Internet.

Toc JJ II J I Back J Doc Doc I

Page 250: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 250

Exemplul pe care-l voi utiliza aici va fi chiar acela al cărţiide faţă. În Figura 7.1 puteţi vedea, în parte, schema com-poziţională a cărţii. Dacă studiaţi puţin interfaţa graficăa programului Leo, veţi vedea că are trei panouri. Panouldin dreapta-sus este destinat mesajelor privitoare la func-ţionarea Leo. Voi ignora aici acest panou. Mă voi concentraasupra celorlalte panouri.

În panoul din stânga-sus vedeţi desenat un arbore alobiectivelor conţinute de proiectul acestei cărţi. De pildă,am drept obiectiv să scriu despre explorarea informaţieiconţinut în texte. Un subobiectiv al acestui obiectiv esteprezentarea tiparelor de căutare.

Dacă un nod al arborelui are pe el semnul „+“ puteţi daun clic şi arborele expandează. Dacă semnul este „-“ putem

Toc JJ II J I Back J Doc Doc I

Page 251: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 251

executa operaţia inversă (evident, nu pe imaginea din carte,ci-ntrun program real!).

Cum construim sau modificăm însă arborele? Putem fo-losi meniul Outline sau taste (apăsate în combinaţie atuncicând un nod este selectat).

CTRL-I serveşte la crearea unui nod nouCTRL-R mută nodul cu un nivel la dreapta (îl transformă

în copilul nodului de deasupra sa)CTRL-L mută nodul la stângaCTRL-U mută nodul mai susCTRL-D mută nodul în jos

Dacă folosiţi meniul Outline aveţi posibilitatea să Hoistun nod (să-l vizualizaţi separat de celelalte noduri). Me-toda aceasta este utilă când arborele este foarte mare. Se

Toc JJ II J I Back J Doc Doc I

Page 252: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 252

poate, de asemenea, folosi această metodă şi pentru a insera„copiii“ unei „ramuri“ a arborelui.

Deşi pare foarte inocent, panoul din partea de jos a in-terfeţei lui Leo are ascunde foarte multe posibilităţi. Ceamai simplă utilizare a sa este introducerea de text. Aceastăposibilitate este ilustrată şi-n Figura 7.1.

Putem scrie în panoul de jos şi fişiere întregi. De pildă,pot să scriu conţinutul unui fişier html (o pagină de web).Acest lucru trebuie semnalat în mod adecvat lui Leo. Ce-idrept, de aici începe şi partea mai complicată a lui Leo.Există un limbaj special al marcajelor folosite de către Leoîn asemenea fişiere.

Pe scurt, Leo poate evidenţia cu ajutorul culorilor sin-taxa folosită în panoul de jos. Leo poate salva şi ca fişiereseparate textele din panoul de jos.

Toc JJ II J I Back J Doc Doc I

Page 253: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 253

Având posibilităţile schiţate mai sus, Leo poate fi şi unmanager al proiectelor programatorilor. Toate fişierele unuiproiect pot fi gospodărite cu ajutorul Leo.

Toc JJ II J I Back J Doc Doc I

Page 254: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 254

Figura 7.1: Schemă compoziţională în Leo

Toc JJ II J I Back J Doc Doc I

Page 255: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 255

• Folosirea VimOutliner-ului

O altă posibilitate de construire a schemei conceptuale ooferă VimOutliner-ul lui Steve Litt. Pentru a folosi VimOu-tliner trebuie să aveţi instalat Vim şi să ştiţi să-l folosiţi.

VimOutliner este deosebit de util pentru a nota rapidideile care ne vin. Nivelul la care se plasează ideea respectivăîn arborele schemei compoziţionale este determinat foarteuşor prin introducerea de taburi la începutul rândului.

VimOutliner se bazează mai ales pe comenzi de la tasta-tură. În modul comandă al Vim-ului combinaţia « (apăsareade două ori a tastei pe care este inscripţionat semnul „<“)schimbă „nivelul“ de „desprindere“ al „ramurii“: ea se vadesprinde de pe un nivel imediat superior celui avut ante-rior. Operaţia inversă este » şi ea are un sens evident.

Toc JJ II J I Back J Doc Doc I

Page 256: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 256

Dacă sunteţi familiarizate sau familiarizaţi cu outliner-uldin programul Word, atunci puteţi înţelege rapid ideea deoutline implementată în VimOutliner.

În Figura 7.2 puteţi vedea un fragment al schemei idei-lor folosite pentru a construi cartea de faţă. Ca şi-n schemaconstruită cu ajutorul Leo, se poate identifica obiectivulprezentării posibilităţilor de a gestiona informaţia cuprinsăîn texte. Se observă desigur că VimOutliner colorează în moddiferit „ramurile“ arborelui. Obiectivele principale sunt co-lorate în roşu. Subobiectivele obiectivelor principale suntcolorate în albastru. Subobiectivele acestor obiective au cu-loarea mov.

În modul comandă al Vim este posibil să „rulăm“, „fa-cem sul“ (fold) subramurile unei ramuri. Puneţi cursorulpe ramura ale cărei subramuri vreţi să le rulaţi şi apăsaţi

Toc JJ II J I Back J Doc Doc I

Page 257: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 257

(succesiv) tastele zc. Desfăşurarea materialului rulat se faceprin apăsarea zo.

VimOutliner are o serie de comenzi care se dau după apă-sarea de două ori a tastei pe care este inscripţionată virgula.Atenţie însă la faptul că tastele trebuie apăsate rapid. Vimeste un editor pentru aşa-numita „metodă oarbă“ de tas-tare. Dacă staţi să căutaţi tastele după inscripţiile de peele, nu se obţin în VimOutliner efectele dorite.

Să vedem acum practic ce se poate face cu VimOutliner.Puteţi selecta (cu selecţia vizuală a Vim-ului) ramuri alearborelui şi apoi să apăsaţi „cb fără pauze. Apar nişte casete([_]) care pot fi bifate pe măsură ce obiectivele sunt atinse.

Bifarea obiectivelor se poate face apăsând „cx în modulcomandă. Cursorul trebuie poziţionat pe ramura pe carevrem s-o bifăm.

Toc JJ II J I Back J Doc Doc I

Page 258: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 258

Dacă folosim „cp putem create casete urmate de un pro-cent. Procentul se schimbă în funcţie de atingerea obiecti-velor subordonate.

Sub orice ramură a arborelui schemei compoziţionale pu-tem insera text. Pentru aceasta, pe un rând nou, punemdouă puncte urmate de un spaţiu. Rândurile care încep cudouă puncte urmate de un spaţiu reprezintă un text în careputem detalia observaţiile noastre despre resursele cu careputem atinge obiectivele şi termenele atingerii obiectivelor.

Toc JJ II J I Back J Doc Doc I

Page 259: Managementul informaţiei

Section 1: Structurarea arborescentă a informaţiilor 259

Figura 7.2: Schemă compoziţională în VimOutlinerToc JJ II J I Back J Doc Doc I

Page 260: Managementul informaţiei

Section 2: Prezentarea proiectului 260

2. Prezentarea proiectului

Pentru prezentarea proiectelor în faţa unor comisii de eva-luare trebuie folosit un sistem de tehnoredactare. Felul încare „arată“ proiectul contează. Sistemul de tehnoredactarear trebui să fie însă util nu doar pentru a produce tipăriturifrumoase, ci şi pentru un management eficient al informaţieiconţinute în proiecte.

Structura arborescentă este în continuare importantă,dar aici voi insista mai mult pe modularizarea informaţiei.

Sistemul de tehnoredactare pe care-l folosesc în exem-plele care urmează este LATEX. Nu este însă necesar să ştiţiLATEX pentru a înţelege exemplul din Figura 7.3. Conţinutulexemplului din Figura 7.3 reprezintă o adaptare a schemei

Toc JJ II J I Back J Doc Doc I

Page 261: Managementul informaţiei

Section 2: Prezentarea proiectului 261

pentru un proiect-ca-propunere din Raman şi Sharma[12,p.462].

Principiul de bază al LATEX este separarea conţinutuluide formă. Când utilizăm sistemul de tehnoredactare LATEXne concentrăm asupra conţinutului. De formă se îngrijeştesistemul de tehnoredactare.

Limbajul LATEX este relativ transparent. Din Figura 7.3se vede că documentul LATEX are un preambul şi un corp.În preambul putem preciza o serie de informaţii pe carele va folosi ulterior sistemul. De pildă, în comanda \aut-hor{} este inserată informaţia referitoare la numele autoa-rei/autorului. Această informaţie va fi folosită ulterior decătre sistem.

Practic, efect „pe hârtie“ au doar comenzile din corpuldocumentului. Acest corp începe cu o comandă care cere sis-

Toc JJ II J I Back J Doc Doc I

Page 262: Managementul informaţiei

Section 2: Prezentarea proiectului 262

temului să producă titlul (folosind informaţiile din pream-bul cu privire la autoare/autor şi titlu). Apoi sunt inclusedouă module: o scrisoare şi un proiect de contract.

Nu este rău ca propunerea să aibă nu doar un cuprins,ci şi liste cu figuri şi tabele, precum şi un rezumat. Evalua-toarele sau evaluatorii au nevoie de aceste elemente pentrua-şi face rapid o idee despre proiect. Nu trebuie să mizămniciodată pe faptul că vor sta să extragă cu migală infor-maţiile relevante din propunerea care le-a fost prezentată.N-au în principiu alocat timp pentru aşa ceva. Ceea ce faceste o evaluare a proiectului, nu o muncă de cercetare.

Modulele principale sunt precum capitolele unei cărţi,atâta doar că aici au un conţinut mai strict determinat:trebuie explicată problema pe care-şi propune să o rezolveproiectul, obiectivele care vor fi urmărite pentru a realiza

Toc JJ II J I Back J Doc Doc I

Page 263: Managementul informaţiei

Section 2: Prezentarea proiectului 263

soluţia propusă, metodele tehnice, activităţile manageriale,costurile şi, evident, eficienţa proiectului.

LATEX permite modularizarea foarte clară a conţinutuluiproiectului. În funcţie de necesităţi, putem adăuga, eliminasau permuta module. Comenzile folosite sunt deosebit desimple şi eficiente.

După cum se vede şi din Figura 7.3, proiectul includeconcluzii şi anexe. Anexele pot avea un conţinut divers, înfuncţie de proiect. De multe ori sunt însă puse în anexăgrafice, diagrame sau tabele. De asemenea, tot din anexeleproiectului face parte şi o bibliografie. Bibliografia poate săcuprindă cărţi, studii, rapoarte cu caracter tehnic, studiicu o circulaţie de multe ori foarte restrânsă, dar folosite înalcătuirea proiectului.

Rezultatul programului LATEX din Figura 7.3 seamănă,Toc JJ II J I Back J Doc Doc I

Page 264: Managementul informaţiei

Section 2: Prezentarea proiectului 264

din punctul de vedere al tehnoredactării, cu o carte. Ar fiprea multe pagini de inclus aici, aşa că pentru a da o ideeasupra a ceea ce produce LATEX am comprimat documentulşi l-am adus la forma unui articol.

În Figura 7.5 se văd titlul şi cuprinsul. Se observă şiadaptarea la limba română a tehnoredactării proiectului.Ea se poate face utilizând pachete LATEX speciale, utilizatetot ca nişte module suplimentare, introduse prin comenziîn preambul.

Pe a doua pagină a proiectului formatat de către sis-temul LATEX putem vedea că modulele principale sunt nu-merotate. Există pachete speciale LATEX care ne permit sădăm o numerotare aparte anexelor şi, evident, să facem tri-miteri la anexe. Aceste trimiteri sunt rezistente, ca să zicaşa, la schimbarea poziţiilor modulelor. Cu alte cuvinte,

Toc JJ II J I Back J Doc Doc I

Page 265: Managementul informaţiei

Section 2: Prezentarea proiectului 265

dacă eliminăm ceva din bibliografie, totul este renumero-tat automat şi trimiterile sunt modificate în consecinţă. Deasemenea, referirile la paginile din document sau din anexesau de la un modul la altul rezistă perfect la permutarea,inserarea sau eliminarea modulelor.

Comenzile de inserare a modulelelor pot fi date şi-n altemodule, nu doar în documentul principal (cel din Figura 7.3).Figura 7.4 ilustrează acest lucru în cazul anexelor.

Cum se prezintă conţinutul modulelor? Modulele LATEXcare conţin scrisoarea, proiectul de contract, descrierea pro-blemei, anexele ş.a.m.d. sunt fişiere de tip text. Există ma-nagere speciale pentru proiecte LATEX, care ne permit săgestionăm eficient aceste fişiere.4

4Unele informaţii despre asemenea sisteme sunt prezentate pe situlautorului acestei cărţi.

Toc JJ II J I Back J Doc Doc I

Page 266: Managementul informaţiei

Section 2: Prezentarea proiectului 266

La urmă, dar nu în ultimul rând ca importanţă, trebuiemenţionată problema transferării line a informaţiilor în pro-cesul de tehnoredactare a propunerii. Trebuie studiat (şiproiectat) cu atenţie modul în care informaţiile se trans-feră către fişierele LATEX (sau alte fişiere care ar fi folosite).Trebuie evitate operaţiile de retastare a materialului (ope-raţii care consumă timp şi pot introduce erori în conţinutulmaterialelor).

Trebuie prevăzut de asemenea un interval pentru elimi-narea erorilor, inclusiv a celor care ţin de forma finală adocumentului. În general procesul de eliminare a erorilortrebuie planificat cu grijă şi nu trebuie să ţină de improvi-zaţie.5

5Gândiţi-vă la analogia cu o editură, care n-are doar redactori,tehnoredactori, graficieni etc., ci şi corectori sau corectoare. Munca

Toc JJ II J I Back J Doc Doc I

Page 267: Managementul informaţiei

Section 2: Prezentarea proiectului 267

aceasta de eliminare a erorilor, între altele, dă diferenţa dintre o carteredactată doar de autoare sau autor şi una apărută într-o editură.

Toc JJ II J I Back J Doc Doc I

Page 268: Managementul informaţiei

Section 2: Prezentarea proiectului 268

Figura 7.3: Un proiect structurat cu ajutorul LATEXToc JJ II J I Back J Doc Doc I

Page 269: Managementul informaţiei

Section 2: Prezentarea proiectului 269

Figura 7.4: Inserarea modulelor în alte module cu ajutorulLATEX

Toc JJ II J I Back J Doc Doc I

Page 270: Managementul informaţiei

Section 2: Prezentarea proiectului 270

Titlul proiectului

Autoarea/autorul proiectului

3 decembrie 2005

Scrisoare de prezentare a proiectului

• Introducere (cu menµionarea clar  a scopului proiectului)

• Conµinutul scrisorii (principalele idei ale proiectului ³i motivelepe care le-ar avea cele/cei c rora le este adresat proiectul pentrua-l accepta)

• Concluzia scrisorii.

Propunere de contract

Cuprins

1 Problema 2

2 Obiective 2

3 Metode tehnice 2

4 Activit µi manageriale 2

5 Costuri (estimare) 2

6 Concluzii 2

Lista �gurilor

Figura 7.5: Prima pagină a proiectului formatat de LATEXToc JJ II J I Back J Doc Doc I

Page 271: Managementul informaţiei

Section 2: Prezentarea proiectului 271

Rezumat

Un rezumat care s  permit  evaluatorilor s -³i fac  rapid o idee despreproiect.

1 Problema

2 Obiective

3 Metode tehnice

Metode tehnice folosite pentru a atinge obiectivele.

Planuri tehnice de acµiune.

4 Activit µi manageriale

Descrierea activit µilor manageriale care vor � întreprinse în vedereaatingerii obiectivelor.

Prezentarea cali�c rii pe care o are personalul.

5 Costuri (estimare)

Estimarea costurilor pe care le implic  atingerea obiectivelor proiectu-lui.

6 Concluzii

Anexe

Anexe la proiect (gra�ce, tabele, diagrame suplimentare).

Bibliogra�e

[1] Meenakshi Raman ³i Sangeeta Sharma. Technical Communication:

Principles and Practice. New Delhi: Oxford University Press, 2004.

Figura 7.6: A doua pagină a proiectului formatat de LATEXToc JJ II J I Back J Doc Doc I

Page 272: Managementul informaţiei

Bibliografie 272

Bibliografie

[1] Peter Drucker. Management: Tasks, Responsabilities,Practices. New York: Harper & Row, 1985. Citată lap. 40.

[2] Ben Forta. SQL pentru începători. Bucureşti: Teora,2002. Citată la pp. 123 şi 126.

[3] David D. Friedman. Price Theory. Cin-cinnati,OH: South–Western, 1990. <http://www.daviddfriedman.com/Academic/Price_Theory/PThy_ToC.html>. Citată la p. 46.

[4] LiMin Fu. Neural Networks in Computer Intelligence.New Delhi: Tata McGraw-Hill, 2003. Citată la p. 150.

Toc JJ II J I Back J Doc Doc I

Page 273: Managementul informaţiei

Bibliografie 273

[5] Rob Mattison. Understanding Database ManagementSystems, ediţia a 2-a. New York: McGraw-Hill, 1997.Citată la pp. 46 şi 48.

[6] A. I. Mihailov, A. I. Ceornîi şi R. S. Ghilearevski. In-formatica documentară. Bucureşti: Editura Ştiinţifică,1970. Citată la p. 27.

[7] C. A. Missimer. Good Arguments. Englewood Cliffs,New Jersey: Prentice Hall, 1995. Citată la pp. 230, 231şi 235.

[8] Chris Newman. SQLite. Indianapolis: Sams, 2005. Ci-tată la p. 124.

[9] Lee Anne Phillips. XML. Bucureşti: Teora, 2001. Ci-tată la p. 246.

[10] Ellie Quigley. Unix Shells by Example. Upper SaddleRiver,NJ: Prentice Hall, 2005. Citată la p. 60.

Toc JJ II J I Back J Doc Doc I

Page 274: Managementul informaţiei

Bibliografie 274

[11] Ioan Radu, Minodora Ursăcescu şi Florin Ioniţă. In-formatică pentru managementul firmei. Bucureşti: Edi-tura „Tribuna Economică“, 2001. Citată la p. 121.

[12] Meenakshi Raman şi Sangeeta Sharma. Technical Co-mmunication: Principles and Practice. New Delhi: Ox-ford University Press, 2004. Citată la pp. 214 şi 261.

[13] William F. Sharpe. Introduction to Managerial Eco-nomics. New York: Columbia University Press, 1973.Citată la p. 46.

[14] George Soros. The Alchemy of Finance. New York:Wiley, 1994. Citată la pp. 38, 39 şi 67.

[15] Sarah Witzig. Accessing WordNet from Prolog [pe si-tul Prolog Natural Language Tools la Universitateadin Georgia]. <http://www.ai.uga.edu/mc/ProNTo/Witzig.pdf>, 2003, data accesării: 2005-10-01. Există

Toc JJ II J I Back J Doc Doc I

Page 275: Managementul informaţiei

Bibliografie 275

şi un pachet de programe asociat acestui studiu; pa-chetul poate fi descărcat de la http://www.ai.uga.edu/mc/ProNTo/Witzig.zip. [Cercetările publicate pesitul ProNTo sunt coordonate de profesorul Michael A.Covington]. Citată la pp. 166 şi 173.

Toc JJ II J I Back J Doc Doc I

Page 276: Managementul informaţiei

Indice

algoritm, 25, 27, 33argumente, 232, 234, 235aspell, 96, 98awk, 79, 80, 82–85, 87

baze de date, 78, 128, 150,157, 167, 198, 216, 220,223, 232

bibtex, 220–222etichetă unică, 221stil, 222

câmpuri, 70, 71, 81, 129, 221cazuri, 19, 26, 48codurile literelor, 75comenzi în linie, 64, 129

276

Page 277: Managementul informaţiei

Indice 277

comunicare, 217costuri, 46, 50cunoaştere, 33, 34, 150

date calendaristice, 70definiţii lexicale, 113dexonline, 113, 116, 118, 122dicţionar bilingv, 110dicţionar invers, 93dicţionar ortografic, 101dixit, 113, 122

fişa de lectură, 16

graf, 228, 249muchii, 230noduri, 229

GraphViz, 225, 226grep, 60, 63, 66, 108

hipernim, 174hiponim, 158, 174

inferenţe, 152informaţie, 30, 31, 33, 34, 54,

78, 150, 217, 218comprimarea – , 107structuri arborescente, 247

înregistrare, 83, 129, 221tipuri, 221

LATEX, 263Leo, 252

Toc JJ II J I Back J Doc Doc I

Page 278: Managementul informaţiei

Indice 278

logica predicatelor, 150, 166,170

managementul informaţiilor,41, 43, 94, 111, 237,246

manager, 40memoria

limite, 250meronim, 157

proiect, 245eliminarea erorilor, 269modularizarea, 267, 268obiectivele, 250prezentarea, 263

schema, 264, 265, 267schema compoziţională, 250,

253, 254, 258, 259, 261Prolog, 165–168, 170, 173, 182,

195, 198, 216căutare, 199fail, 198implicaţie, 196programe, 193variabile, 183, 208

QDBM, 114, 116

reţea semantică, 151, 152, 174reflexivitate, 39

sens, 155Toc JJ II J I Back J Doc Doc I

Page 279: Managementul informaţiei

Indice 279

sort, 68, 69, 73–76SQL, 123, 124, 128, 137, 167

căutare, 140căutare condiţionată, 140ordonare, 143

SQLite, 124, 126afişare, 146ajutor, 144mod html, 147

sqlitebrowser, 127supravieţuire, 49SWI-Prolog, 167, 176

comenzi, 177consult, 178dialoguri, 182

scop, 183synset, 172

tabel, 129tipare de căutare, 56, 80, 168

Vim, 55, 57, 180, 227, 259VimOutliner, 258

wnconnect, 158, 159WordNet, 153, 154, 157, 159,

167, 168, 173, 175, 177,178, 188, 211

XML, 248

Toc JJ II J I Back J Doc Doc I

Page 280: Managementul informaţiei

Versiune pentru ecran: 1 februarie 2006.Nu este permisă utilizarea ei decât în

scopuri personale!