[ leka @ 28.07.2003. 15:40 ] @

ovo je jedno zapravo generalno pitanje, ali meni konkretno treba nacin da indeksiram DocBook dokument (knjigu)...

Dakle problem je sledeci - imam XML fajl, koji je okej (validacija prosla) - sve prema standardu i zelim da napravim neku vrstu indeksiranja koje bih kasnije koristio u svojoj aplikaciji da lako i brzo citam delove te knjige. Indeksirao bih zapravo svaku rec koja je duza od 3 slova, svaki primer, svaki naslov, a takodje bi se koristili postojeci linkovi i indexi unutar samog fajla...

Da li neko ima ideju ili zna da postoji tako nesto vec?

Ako ne postoji - ima li ko zainteresovan da malo raspravljamo o realizaciji takvog projekta?

Pozdrav svima.
[ byTer @ 28.07.2003. 19:21 ] @
Ja sam poceo da proucavam te stvari. XMLDOM Bibliotekom moze da se to uradi iz VB aplikacije (mada ja vise gotivim ASP, jer vise gotivim delphi) Ide se od noda do noda i kad naidjes na trazeni onda ga izlistas. Jesi li mislio na tako nesto?
[ leka @ 28.07.2003. 19:34 ] @
Ne, nisam, ne zelim da mi aplikacija svaki put prolazi (POGOTOVO NE DOM-om!) kroz XML fajl (koji moze biti par Mb!) i trazi odredjeni tekst! :)
Zna se sta znaci pojam "indeksiranje" - zelim da INDEKSIRAM XML FAJL da bih odmah cim korisnik ukuca "kafa" nasao za sekundu-dve sve delove XML fajla gde se pojavljuje taj termin.

Da te podsetim, indeksiranje je pojam vezan prvenstveno za baze podataka - tabela se indeksira po nekoj koloni (kolonama) da bi se na najbrzi moguci nacin doslo do informacija (pozeljno u najmanjem mogucem broju direktnih pristupa (citanja/pisanja) fajlu)...
[ leka @ 28.07.2003. 19:44 ] @
Nisam zeleo da dodam jos nesto, sto dodatno otezava citav posao - ne zelim XPath u celoj prici!

Trazicu jos narednih par dana, a ako ne nadjem pocecu sam da pisem indekser, verovatno baziran na fantasticnom SQLite-u, jer mi treba kompletno integrisano resenje i besplatno (LGPL), jer ce projekat biti verovatno LGPL.
[ -zombie- @ 29.07.2003. 02:01 ] @
čekaj, a ja sam u prvom postu razumeo da želiš da nađeš odma i sekciju, poglavlje, paragraf ili kako se već u docbook-u zove najmanja jedinica dokumenta..

ako to želiš, ne znam kako to misliš bez xpath-a.. možeš samo da nađeš u kome od svih tih dokumenata se nalazi tražena reč, ali kako ćeš posle prikazati samo tu sekciju u celom fajlu? ako prikažeš ceo taj fajl (koji sam kažeš da može da bude par mb) onda mi to ne deluje previše korisno...


btw, jel SQLite ima nešto slično kao fullstring pretraživanje?
[ Last Man Standing @ 30.07.2003. 06:14 ] @
Da li bi sve to mogao jos malo da objasnis?

Evo par pitanja:

1. Da li se i kako problem o kome pises resava postojecim alatima?
2. Koji nedostatak postojecih alata resavas? Recimo, zasto se ne bi koristio full text search? (mozda je, na primer, dokument struktuiran)
3. Sta si gledao, a nije ti se dopalo i zasto? Recimo, sta nije u redu sa Xindices?
4. Zasto ne zelis da koristis XPath? Koje su alternative? Kako bi primenio SQLite na XML? (tj. da li bi i kako mapirao XML u relacionu bazu)
5. Ako ti se ne svidja DOM, sta je alternativa?
6. Sta tacno znaci kompletno integrisano resenje?

Kod DOM-a se ne prolazi svaki put kroz ceo dokument (to se radi SAX-om). On je vec u memoriji, gde je pretrazivanje (recimo mrskim XPath-om) najbrze. Nevolja je u inicijalnom vremenu da se formira DOM struktura, kao i u prostoru koji zauzima i to kad imas vise knjiga i vise korisnika (recimo 100 istovremenih citaoca).

Indeksiranje kao low level service je obicno vezano za fizicku strukturu podataka. Na primer, u relacionim bazama se indeksiraju redovi. Pretpostavljam da su sve strukture podataka za generalnu upotrebu vec izmisljene. Dakle, ako neces relacionu bazu, onda ces hijerarhijsku (opet XPath, sic!) ili neki graf (kako li tu indeksiranje izgleda) itd.
O cemu si tu razmisljao?
[ leka @ 30.07.2003. 12:01 ] @
Pre nego počnem sa odgovorima na tvoje pitanje reci mi samo ovo - da li ti misliš da ja ne znam šta (i kako) rade DOM i SAX parseri?

Odgovori:

1. Da li se i kako problem o kome pises resava postojecim alatima?

- Odgovor na ovo pitanje već postoji. A i sam si ga dao donekle.

2. Koji nedostatak postojecih alata resavas? Recimo, zasto se ne bi koristio full text search? (mozda je, na primer, dokument struktuiran)

- Zombie je u svom tekstu indirektno odgovorio na ovo pitanje. Prosto ja znam da ću naći termin "strtok" u DocBook-u koji se zove "The C Reference", ali da bih odgovarajuće formatirao tu stranu, moram da kreiram dobar HTML sa podacima iz XML-a .

3. Sta si gledao, a nije ti se dopalo i zasto? Recimo, sta nije u redu sa Xindices?

- Za Xindices nisam čuo uopšte, ali pretpostavljam da se ta stvar bavi više dobijanjem podataka iz nekih XML "baza".

4. Zasto ne zelis da koristis XPath? Koje su alternative? Kako bi primenio SQLite na XML? (tj. da li bi i kako mapirao XML u relacionu bazu)

Meni treba brzo rešenje, čak mi odgovara da XML obradim i prebacim u neku drugu (binarnu) formu koja je pogodnija za brzo "čupanje" podataka koji su bili u prvobitnom XML fajlu. - Da, SQLite (ili bilo kakva embeddable baza odgovara) je savršen za ono što mi treba jer njega mogu statički da ulinkam u svoju aplikaciju (browser).

5. Ako ti se ne svidja DOM, sta je alternativa?

DOM ne dolazi u obzir zbog već rečenog. DOM != brzina.

6. Sta tacno znaci kompletno integrisano resenje?

Pogledaj pod 4. i sam izvuci zaključak. Najprostije - zelim da razvijem jedan monolitni program koji čovek može instalirati bilo gde a da se ne boji da li ima zadnju xml-ovo ili xml-ono verzija 2.0.x ... Takođe će biti i multiplatformski...
[ leka @ 30.07.2003. 12:02 ] @
Citat:
-zombie-:
btw, jel SQLite ima nešto slično kao fullstring pretraživanje?


Mislim da nema (ako mislimo na isto).
[ Last Man Standing @ 30.07.2003. 15:37 ] @
Leko, moja pitanja su bila vise da organizujes svoje misli o tome sto zelis da radis, a ne da dovedu tvoju logiku u pitanje. Medjutim, posto ti je bilo mrsko da argumentovano odgovoris (ili ja nisam u stanju da razumem tvoje odgovore), necu da te smaram dalje. Nisam ljut, ali imam pametnija posla od rasprava na koje navode tvoji "odgovori". Siguran sam da znas sta su DOM i SAX, ali pogledaj sta si napisao. Sumiranje cinjenica nije soljenje pameti.

Xindices je Apache projekat. Cudi me da kao toliki ljubitelj open source-a nisi cuo i pogledao sta je to.
Srecno i vidimo se okolo. :)
[ byTer @ 30.07.2003. 15:59 ] @
Leko, sto se tice velikih fajlova bilo je nekih clanaka na builder.com o tome kako ih razbijati na blokove i analizirati. Izbrisao sam to, ali moze verovatno i dalje da se nadje...

I da... to se radi uz pomoc DOMa
[ leka @ 01.08.2003. 12:42 ] @

Ja zaista ne znam zasto tako reagujes...

Citat:
Last Man Standing:
Leko, moja pitanja su bila vise da organizujes svoje misli o tome sto zelis da radis, a ne da dovedu tvoju logiku u pitanje. Medjutim, posto ti je bilo mrsko da argumentovano odgovoris (ili ja nisam u stanju da razumem tvoje odgovore), necu da te smaram dalje. Nisam ljut, ali imam pametnija posla od rasprava na koje navode tvoji "odgovori". Siguran sam da znas sta su DOM i SAX, ali pogledaj sta si napisao. Sumiranje cinjenica nije soljenje pameti.

Xindices je Apache projekat. Cudi me da kao toliki ljubitelj open source-a nisi cuo i pogledao sta je to.
Srecno i vidimo se okolo. :)


Ako ti zelis da organizujes moje misli, onda je logicno da mislis da su moje misli neorganizovane :) - ja bogme tacno znam sta mi treba i da sam nasao resenje ne bih ovde nikoga nista pitao - jurio sam na web-u kao lud i nisam nista nasao (sto ne koristi XPath). Drugo, ono sto ti zoves "odgovorima" jesu odgovori, razmisli i sam. Na kraju pitanje - ko je spomenuo soljenje pameti?

Svejedno, s obzirom da sam video da ono sto meni treba ne mogu da nadjem, krenucu da napisem to sam. A rezultat cete uskoro (nadam se - ako me drugi poslovi ne pritisku) videti na delu. Naravno, kao GPL resenje...
[ leka @ 01.08.2003. 12:52 ] @
Elem pogledah konacno i Xindices - stvar je vezana bas za baze (XML baze) sto meni u ovom slucaju takodje ne odgovara. Stvar koristi XPath i mnogo je daleko od onoga sto meni treba. Ja zapravo nemam bazu podataka - ja imam jedan dokument koji moze sadrzati poglavlja, sekcije, subsekcije (5 nivoa gnezdjenja), dodatke, indekse, sadrzaj...

Elem sad shvatih da nisam dao najbolji primer onoga sto ja zelim da uradim - to je Microsoft-ov CHM. Ja zapravo zelim da od DocBook XML fajla napravim binarnu reprezentaciju istog, sa indeksiranim pojmovima iz knjige, tako da covek moze da istu cita, pretrazuje, stampa u par klikova...
[ tOwk @ 03.08.2003. 23:53 ] @
Možda bi želeo da malo proširiš scrollkeeper?

U svakom slučaju, ovo je sistem koji Gnom koristi za katalogizaciju i indeksiranje pomoći, pa bi bilo veoma lepo ako bi se i to našlo u njemu ;-)
[ leka @ 05.08.2003. 00:36 ] @
Hvala Danilo, naišao sam na Yelp već i svideo mi se, nisam pojma imao (nisam se baš toliko ni interesovao tada) da ispod svega toga leži ScrollKeeper. :) Još jednom hvala na korisnom linku!