Wprowadzenie
Mechanizm rozszerzeń serwera dLibra bazuje na bibliotece Java Plugin Framework (JPF). Podstawowym elementem w tym mechanizmie jest plik opisujący plugin JPF:
Code Block |
---|
|
<?xml version="1.0" ?>
<!DOCTYPE plugin PUBLIC "-//JPF//Java Plug-in Manifest 0.7" "http://jpf.sourceforge.net/plugin_0_7.dtd">
<plugin id="pl.psnc.dlibra.content" version="$Revision: 1.2 $"
vendor="PSNC">
<extension-point id="extraction.TextualContentExtractor">
<parameter-def id="class" />
<parameter-def id="order" />
</extension-point>
</plugin>
|
Powyższy plik definiuje tylko jeden punkt rozszerzenia serwera opisane poniżej.
Note |
---|
|
Interfejsy programistyczne wyszczególnione w poniższych opisach znajdują się w bibliotece programistycznej dlproj |
---|
| os |
---|
1 | dlibra-server-extension-api |
---|
| os |
---|
|
|
.
Zestaw rozszerzeń extraction.TextualContentExtractor
służy do ekstrakcji tekstu z plików z treścią publikacji. Dzięki temu możliwe jest indeksowanie treści publikacji niezależnie od jej formatu. Dla tekstowych formatów dokumentów, takich jak na przykład HTML, dostęp do tekstu jest niemal natychmiastowy. W przypadku innych formatów pliki muszą być w odpowiedni sposób przygotowane, żeby ekstrakcja tekstu była możliwa. Tylko wówczas rozszerzenia będą w stanie taki tekst uzyskać i przekazać do indeksacji.
Opisywane rozszerzenie przyjmuje dwa parametry:
class
- nazwa klasy, która implementuje interfejs programistyczny tego rozszerzeniaorder
- parametr odpowiadający za kolejność wybierania danego rozszerzenia (pozwala to na ustalenie, które z rozszerzeń będzie użyte w przypadku, gdy jest więcej niż jedno rozszerzenie obsługujące dany format treści)
Interfejs programistyczny (język Java) dla tego rozszerzenia to
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-api |
---|
2 | pl.psnc.dlibra.content.extraction.TextualContentExtractor |
---|
| os |
---|
|
. Bardziej szczegółowe informacje na temat jego działania znajdują się w dokumentacji programistycznej (JavaDocs).
Serwer dLibry dostarczany jest z preinstalowanym zestawem rozszerzeń tego typu. Należą do nich:
- Ekstrakcja tekstu z prostych formatów takich jak CHM, HTML, RTF, TXT (
dlproj |
---|
| os |
---|
1 | dlibra-server-extension-tce-basic |
---|
| os |
---|
|
). - Ekstrakcja tekstu z formatu DjVu (
dlproj |
---|
| os |
---|
1 | dlibra-server-extension-tce-djvu |
---|
| os |
---|
|
). - Ekstrakcja tekstu z formatów obsługiwanych przez zewnętrzny mechanizm LIUS (
dlproj |
---|
| os |
---|
1 | dlibra-server-extension-tce-lius |
---|
| os |
---|
|
). - Ekstrakcja tekstu z formatu PDF - (
dlproj |
---|
| os |
---|
1 | dlibra-server-extension-tce-pdf |
---|
| os |
---|
|
).
Rozszerzenia te opisano pokrótce poniżej.
Rozszerzenie basic
Rozszerzenie to posiada zestaw klas implementujących interfejs
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-api |
---|
2 | pl.psnc.dlibra.content.extraction.TextualContentExtractor |
---|
| os |
---|
|
i pozwalających wyciągać tekst z plików w następujących formatach:
- CHM - klasa
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-basic |
---|
2 | pl.psnc.dlibra.content.extraction.CHMTextualContentExtractor |
---|
| os |
---|
|
- HTML - klasa
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-basic |
---|
2 | pl.psnc.dlibra.content.extraction.HTMLTextualContentExtractor |
---|
| os |
---|
|
- RTF - klasa
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-basic |
---|
2 | pl.psnc.dlibra.content.extraction.RTFTextualContentExtractor |
---|
| os |
---|
|
- TXT - klasa
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-basic |
---|
2 | pl.psnc.dlibra.content.extraction.TXTTextualContentExtractor |
---|
| os |
---|
|
Rozszerzenie djvu
Rozszerzenie to pozwala wyciągnąć tekst z warstwy tekstowej plików w formacie DjVu (jeśli posiadają taką warstwę). Jest to realizowane przez klasę
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-djvu |
---|
2 | pl.psnc.dlibra.content.extraction.DjVuTextualContentExtractor |
---|
| os |
---|
|
Rozszerzenie lius
Rozszerzenie to wykorzystuje zewnętrzną bibliotekę LIUS (Lucene Index Update and Search), która umożliwia m.in. wyciąganie tekstu z plików w następujących formatach: MsWord, MsExcel, MsPowerPoint, RTF, PDF, XML, HTML, TXT, OpenOffice, ZIP, MP3, VCard, Latex i JavaBeans. Klasa rozszerzenia, która realizuje wyciąganie tekstu z wyżej wymienionych formatów plików to
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-lius |
---|
2 | pl.psnc.dlibra.content.extraction.LIUSTextualContentExtractor |
---|
| os |
---|
|
.
Rozszerzenie pdf
Wyciąganie tekstu z plików w formacie PDF oparte jest o zewnętrzną bibliotekę PDFBox. Klasa implementująca interfejs
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-api |
---|
2 | pl.psnc.dlibra.content.extraction.TextualContentExtractor |
---|
| os |
---|
|
i realizująca ekstrakcję tekstu z tego typu plików to
dljdoc |
---|
| os |
---|
1 | dlibra-server-extension-tce-pdf |
---|
2 | pl.psnc.dlibra.content.extraction.PDFTextualContentExtractor |
---|
| os |
---|
|
.