DEB

Z FI WIKI
Přejít na: navigace, hledání

O projektu

DEB je projekt, který si dal za úkol správu a dotazování velkých slovníků ve formátu XML. Vznikl jako pokračování projektu MAXXL a MAXXL2 (http://nlp.fi.muni.cz/projekty/maxxl2/diplomka/maxxl.pdf, http://nlp.fi.muni.cz/projekty/maxxl/, http://nlp.fi.muni.cz/projekty/lexdb/maxxl-doc/ ). Nyní se vytváří verze DEB2.

Hesla jsou vlastně XML dokumenty (jakékoli), mohou se jakkoli za běhu spravovat (přidávat, mazat...).

Struktura

Struktura.png
Striktní KLIENT-SERVER architektura. HTTP server je pouzit Webrick [1] [2], který má architekturu založenou na servletech -- samostatných třídách, které jsou 'mountovany' na zadaná URL. Funkční rozhraní pro jednotlivé typy slovníků (např. wordnet, ...) definují servlety. Ty se starají o překlad dotazů jednotlivým slovníkům (slovníková data uložená v XML databázi Berkeley DBXML. Server a servlety implementovány v Ruby.

Samotný server pak určuje, které servlety používá, a pod jakým odkazem. Na určitém stroji tak může být spuštěno více serverů (na určitém portu), které se mohou odkazovat na tentýž servlet pod různými názvy (na obrázku servlet pro přístup ke slovníku SSC v jednom serveru přístupný jako server:8001/ssc, v druhém jako server:8004/cz. Definice, které servlety server obhospodařuje, se děje při jeho startu (odkaz na ně, jejich přezdívka, definována v konfiguračních souborech). Pro jakoukoli změnu je nutno server restartovat.

Pro komunikaci se používá http protokol (uvažuje se o rozšíření o chráněný kanál https):

Dotaz na služnu služby: http ://[server]/[servlet]?[data dotazu]

Strukturu [data dotazu] si definují jednotlivé servlety samy. Popis těchto rozhraní (a dokumentace obecně) moc není. Prý bude.

Uvažuje i na SOAP variantě. Ta by pak vycházela z SOAP knihovny v ruby, server by byl opět postaven nad webrickem, moduly/tridy/instance poskytujici funkce by se opět jen mountují na určitá url (prostory jmen).

Dotazovací jazyk co používají servlety je postaven na XPath (resp. na tom, co umí DBXML).


Citace:

Pokud by se ale nasel nekdo, kdo by (v ruby!) toto udelat za mne, spolupracoval se mnou na uprave architektury soucasneho debu, aby
napriklad parametrem slo rict, jestli cely server a vsechny funkce byly pristupne budou prijtupne pomoci protokolu HTTP, nebo SOAP,   
nemel bych nic proti. Nejlepsi by asi bylo upravit server tak, aby na jednom portu poskytoval HTTP sluzby a na druhem stejne funkce  
pomoci SOAP....
Zasadni pro me je jazyk RUBY a integrace se stavajicim kodem. Nema smysl delat nejaky konvertor, ktery by prekladal SOAP volani na posilani HTTP pozadavku soucasnemu serveru, to by byla vyhozena prace....
Pokud jste ochoten se tento progresivni objektovy jazyk, ktery velmi rychle adoptuji novi vyvojari a migruje do nej rada javovych webovych projektu, v zakladech naucit, muzeme spolupracovat.


Aktuálně M.Povolný dodělával do serverové části další funkce (autentizace, ssl).

Klienti

Vzhledem k tomu, že server na dotaz vrací odpověď v XML, je možné buď na návratovou hodnotu použít nějaký XSLT styl a hned ji zobrazit, nebo ji předat klientskému software. Zatím všechny klienty, na kterých pracují, jsou vytvářeny v JavaScriptu(logika)+Mozilla XUL(GUI). Pro své spuštění tedy potřebují prohlížeč (Mozilla,Firefox...), umožňuje jim to ale multiplatformitu.

  • Lexánek - wordnet klient (má nahradit VisDic)
  • Slov - testovací (ke stažení na webu projektu)
  • Pro Ústav pro jazyk český se dělá obecná lexikální databáze

Autoři

...

Další informace

Informace získané v rámci konzultace s Adamem Rambouskem

Využití?

  • Jako BP či projekty do Javy implementovat klienty v Javě?
  • BP do Moderních značkovacích jazyků ohledně možnosti transformace XML odpovědí?
  • Propojení s CeWebS?