Wszechsłownik

Podczas pracy z komputerem często natrafiamy na nieznany akronim. W przypadku informatyków jest to szczególnie częste - nowe technologie, zwłaszcza protokoły i standardy, pojawiają się bez przerwy od kilkunastu lat. Nazwy dużej części z nich są skomplikowane i dla uproszczenia zostają skrócone do z początku nic nie mówiących form typu HTTP, XML, SOAP, RTFM itd. Internauta wchodzi na jakąś witrynę i chcąc zrozumieć tekst w niej zawarty sięga po sprawdzoną wyszukiwarkę, podając poza skrótem niezbędne niekiedy dodatkowe słowo kluczowe (skróty mają to do siebie, że brzmią identycznie dla mnóstwa fraz).

Wyobraź sobie, że podczas pracy z komputerem musisz tylko najechać myszką na akronim, którego nie znasz, a wyświetlony zostanie “dymek” z jego rozwinięciem i jednozdaniowym opisem. Brzmi jak bajka?

Ponad rok temu wpadłem na pomysł, aby dobudować do przeglądarki internetowej wtyczkę o następującym działaniu: podczas przeglądania strony użytkownik ma możliwość włączenia trybu słownik (odpowiednia ikonka lub przytrzymanie jakiegoś klawisza, np. SHIFT). Gdy program działa w trybie słownik, najechanie myszką na dowolny akronim, które znajduje się w bazie danych wtyczki, powoduje wyświetlenie rozwinięcia i opisu tego akronimu.

Koncepcja wszechsłownika - przykład
Koncepcja wszechsłownika - przykład

Pomysł ten zrodził się z potrzeby: czytałem akurat jakąś stronę internetową i znalazłem na niej kilka skrótów, których nie znałem. Wygoda takiego rozwiązania jest w oczywiście większa niż każdorazowe skorzystanie ze strony wyszukiwarki, która dodatkowo nie ma charkteru słownika, lub szukanie odpowiedniego słownika w Sieci (o ile taki istnieje).

W krótkim czasie pomysł - także w rozmowach ze znajomymi - został rozbudowany. Możliwe rozszerzenia pierwotnego pomysłu i związane z nimi potrzeby techniczne lub wymagania wobec interfejsu obejmują:

  • różne słowniki
    • słowniki językowe (np. angielsko-polski) i ortograficzne
    • słowniki specjalistyczne (np. informatyczny, medyczny)
    • encyklopedie
    • bazy biografii
    • książki adresowe, telefoniczne
    • baza stron internetowych (adresów) jakiegoś rodzaju - po wskazaniu odnośnika wyświetlałby się opis strony, jej pozycja w rankingu lub inne informacje
  • tworzenie własnego zestawu dostępnych słowników
    • wprowadzić możliwosć wyboru aktywnych w danej chwili słowników (podczas czytania polskiej strony informatycznej nie chcemy słownika ortograficznego, tylko słownik polskich i angielskich terminów informatycznych)
    • jeśli do dyspozycji jest wiele słowników naraz, duża część słów będzie wielokrotnie zdefiniowana. Trzeba więc w interfejsie uwzględnić kilka pozycji definicji danego terminu (jak w zwyczajnym słowniku - kolejne znaczenia słowa)
    • program będzie działał szybciej, jeżeli dane będą umieszczone na komputerze użytkownika. Z drugiej strony gromadzenie wszystkich dostępnych w takiej usłudze słowników i aktualizowanie ich przez wszystkich użytkowników może być zbyt kosztowne (ciągłe przesyłanie danych + utrzymanie odpowiednich serwerów dostarczających takiej usługi). Jeśli usługa taka będzie płatna, do pewnego stopnia zostanie to zrekompensowane

Podobna funkcja przydałaby się oczywiście w każdej aplikacji, z którą pracujemy: programie pocztowym, edytorze tekstu itd. Oznacza to, że oprogramowanie realizujące ideę wszechsłownika musiałoby działać na poziomie systemu operacyjnego, a nie wewnątrz pojedynczej aplikacji (przeglądarki internetowej), czyli być osobnym programem. Jest do rozwiązania kilka problemów technicznych, np. wyekstrahowanie słowa znajdującego się pod kursorem myszy, ale sądzę, że da się przez nie przebrnąć. Łatwo też zauważyć, że w przypadku stron internetowych wszechsłownik praktycznie eliminuje potrzebę używania HTML-owego znacznika ABBR.

Od pewnego czasu producenci oprogramowania i autorzy usług internetowych stopniowo zbliżają się do tej koncepcji, wszędzie jednak są to rozwiązania oparte o osobne witryny, podczas gdy istota mojego pomysłu opiera się na wygodzie: nie musimy nigdzie się udawać, aby uzyskać odpowiedź na swoje wątpliwości.

Komentarze (15)

  1. Elsindel
    12.01.2005 o godzinie 15:05

    Zamierzam napisać program realizujący podstawową funkcjonalność (jako wtyczkę do Mozilli lub osobną aplikację), a następnie przetestować go z użytkownikami. Ktoś ma ochotę pomóc?

  2. Jeżu
    12.01.2005 o godzinie 20:39

    Bez malkontenctwa? Może ja coś wskuram… Nie, nie brzmi jak bajka. Wg mnie brzmi jak rozwiązanie z wielu słowników stosowane już od wielu (>5) lat! Więc chyba producenci nie muszą się do tej koncepcji więcej zbliżać?

  3. Elsindel
    12.01.2005 o godzinie 21:18

    Słucham?! Jakich słowników? Masz na myśli jakieś oddzielne aplikacje (takie, jak słownik języka polskiego PWN ostatnio dodany do Gazety Wyborczej) czy słowniki on-line?

    Te pierwsze, oddzielne, w oczywisty sposób nie spełniają podstawowego warunku, czyli integracji z innymi aplikacjami, oraz rozszerzalności. Te drugie integrują się w niewielkim stopniu (w najlepszym wypadku trzeba zaznaczyć tekst, kliknąć prawym przyciskiem myszy i wejść poprzez menu na odpowiednią stronę, na której wyświetlona zostanie definicja, co oznacza, że tracimy z oczu to, co przed chwilą robiliśmy). Dodatkowo druga opcja także nie oferuje żadnej integracji - jeden słownik, jeden “interfejs” (w tym wypadku wtyczka do przeglądarki).

    Chodzi o to, aby użytkownik mógł korzystać w jak najbardziej wygodny sposób ze słownika bez opuszczania bieżącego okna (dosłownie mówiąc) i aby mógł dobrać sobie własny zestaw słowników.

    Widziałeś gdziekolwiek oprogramowanie, które daje choćby jedną z tych możliwości?

  4. Jeżu
    12.01.2005 o godzinie 23:03

    Oddzielna aplikacja - słownik języka angielskiego, nie pamiętam już jaki… Pamiętam za to, że działał z przeglądarkami i edytorami, jakie miałem.

  5. Elsindel
    12.01.2005 o godzinie 23:09

    Aż nie chce mi się wierzyć… jak dokładniej wyglądała ta współpraca? Opisz ją, proszę, jeśli dobrze to pamiętasz (możesz mi ją opowiedzieć, jak się spotkamy ;)

    Widziałem kilka słowników (języka angielskiego głównie) i żaden z nich nie miał podobnej opcji, ale generalnie mam słabe rozeznanie w rynku aplikacji edukacyjnych i pokrewnych. Byłbym jednak zaskoczony, gdyby mając rozwiązanie pozwalające na integrację taką, o jakiej piszemy, producent nie poszedł za ciosem…

    W każdym razie w tym przypadku krytyczna jest opisana też rozszerzalność, inaczej słownik taki przyda się tylko niewielkiej grupie ludzi i jako taki zostanie niezauważony. Poza tym ciekaw jestem, jak rozwiązany jest interfejs - co konkretnie trzeba zrobić, żeby zobaczyć tłumaczenie jakiegoś wyrazu?

    Rozszerzalność zaś absolutnie musi uwzględniać Internet. Inaczej usługa nie będzie rozpowszechniona i nici z siły, jaką ze sobą niesie integracja, skoro obszar zastosowań będzie ograniczony.

  6. 14.01.2005 o godzinie 7:55

    > Wygoda takiego rozwiązania jest w oczywiście większa niż każdorazowe skorzystanie ze strony wyszukiwarki, która dodatkowo nie ma charkteru słownika, lub szukanie odpowiedniego słownika w Sieci (o ile taki istnieje).

    Oczywiście, że takie słowniki istnieją. Google w odpowiedzi na zapytanie ‘acronym dictionary’ na pierwszych dwóch miejscach podaje:

    http://www.acronymfinder.com/

    oraz

    http://www.ucc.ie/info/net/acronyms/acro.html

    Idea aplikacji wielosłownikowej nie jest nowa ale nie spotkałem się jeszcze z jej odmianą w postaci wtyczki do przeglądarki WWW.

  7. Elsindel
    14.01.2005 o godzinie 8:45

    Hmm.. ale to wciąż tylko zwyczajne słowniki, prawda? Zdaję sobie sprawę, że istnieją różne ciekawe słowniki i encyklopedie, również online, np. dosc stara juz encyklopedia twórczości Tolkiena. :)

    Główna idea to po pierwsze błyskawiczna dostępność słownika podczas przeglądania wszystkich stron WWW (lub - lepiej - korzystania z wszelkich aplikacji) bez konieczności opuszczania bieżącego okna połączona z dużą liczbą dostępnych słowników, pobieranych i aktualizowanych przez Internet.

    Jeżu mówi, że już kilka lat temu miał słownik realizujący częściowo pierwszą część pomysłu, są strony internetowe dokonujące wyszukiwania w wielu słownikach naraz lub przynajmniej udostępniające wiele słowników w jednym miejscu (zazwyczaj skupionych wokół jednej tematyki, np. słowniki Onetu czy słowniki Cambridge.

    Sądzę, że połączenie byłoby niesamowicie przydatne, ale chyba tylko ja tak sądzę ;P

  8. 16.01.2005 o godzinie 19:41

    Hmm. Bardzo ciekawy pomysł.

    Daje mnóstwo możliwości i poprawia interakcję użytkownika ze stroną. Szczególnie jeśli chodzi o strony internetowe, które są problemem dla osób nieznających języka w którym są one napisane.

    Jedyny problem to baza słów. Nie wyobrażam sobie ściągania 10 mb słownika dla każdego języka. Poza tym jak sam Pan wspomniał nowe terminy ukazują się dosłownie co chwilę, więc niektóre słowniki wypadałoby trzymać online.
    Technicznie nie jest to trudne do zaimplementowania rozwiązanie. W większości przeglądarki dają możliwość dodawania pluginów i specyfikacja jest dostępna na ich stronach internetowych.
    Jedyny problem to baza, ale wydaje mi się, że tak ciekawy pomysł spotkałby się z aprobatą Onetu czy PWN.

  9. 17.01.2005 o godzinie 20:36

    Elthan: dlaczego chcialbys sciagac slowniki, ktorych byc moze w ogole nie wykorzystasz? Webservice, tylko webservice…

  10. MBr
    21.01.2005 o godzinie 0:40

    Jak dobrze pamiętam, już jakieś pięć lat temu słownik Longman’a (Living Dictionary of Contemporary English), rozpowszechniany na płycie CD miał taką możliwość. Kontynuuje to do dzis i mozna znalezc szczegoly na stronie
    LDOCE . Polecam prezentacje we flashu i dzial pop-up dictinary.

    Poza tym słownik angielsko-polski YDP ma możliwość reagowania na słowa pojawiąjace się w schowku - wystarczy tylko skopiować niezrozumiały tekst i wyskakuje okienko z tłumaczeniem.

    Zaproponowana przez Kube idea nie jest zbyt nowa, ale fakt, że przyszla mu do głowy niezależnie, świadczy o tym, że 1) nie jest zbyt popularna, 2) nie istnieje popularne i dobre narzędzie działające w opisywany sposob.

    Co do wielosłownika, czy “słownika uniwersalnego” to wkraczamy w znowu dwie działki: 1) możemy stworzyć inteligentną aplikację potrafiącą przeszukiwać internet pod kątem wybranego przez użytkownika słowa i wyciągać z sieci znaczenia lub 2) namówić twórców różnych słowników do stosowania jednolitego formatu (np. XML) i o niego oprzeć zabawkę. Która idea jest bardziej realistyczna - trudno stwierdzić.

    Nie wiem, czy jest dobrym pomysłem pisanie pluginu do Mozilli, lepiej od razu pomyśleć o osobnej aplikacji. Jeśli udałoby się uniezależnić pomysł także od systemu operacyjnego, to już wogóle byłoby super. Wiem, jestem idealistą - ale nie większym niż Kuba ;)

  11. Elsindel
    21.01.2005 o godzinie 8:53

    Ad 10:

    Ja jestem zdecydowanie za stworzeniem prostego protokołu XML-owego, taka była pierwotna idea. Dostawcami słowników mogłyby być wówczas dowolne serwisy internetowe, gdyby zrobić ich katalog, wówczas użytkownicy mogliby poprzez interfejs np. przeglądarki lub tej hipotetycznej, osobnej aplikacji sami wybierać sobie w łatwy sposób potrzebne słowniki.

    Dodatkowo mogliby decydować, czy wybierają opcję pobrania całego słownika do siebie na dysk twardy, czy wolą pozostać przy słowniku on-line.

    Kwestia techniczna: uważam, że najlepszy byłby słownik działający “natychmiast”, tzn. przytrzymanie jakiegoś klawisza powodowałoby przejście w tryb słownika i wówczas wskazanie danego słowa natychmiast wyświetlałoby definicję. Gdybyśmy mieli słownik online - a nawet więcej, na przykład pięć słowników aktywnych - wówczas trzeba by się połączyć z każdym z nich i sprawdzić, czy jest definicja, a jeśli tak - pobrać ją. Narzut czasowy mógłby być znaczny nawet w przypadku szybkich serwerów, dlatego prawdopodobnie bardziej efektywne na dłuższą metę byłoby pobieranie słowników na dysk użytkownika lub jakieś inne techniki przybliżenia słowników do użytkowników Sieci.

    Po prostu oczekiwanie 10 sekund na sprawdzenie, co znaczy dane słowo, mogłoby zniechęcać. (Chyba żeby zrobić jakąś prioretyzację słowników i po prostu np. słownik angielsko-polski dla nas byłby najważniejszy, co w większości przypadków by wystarczało, albo gdyby zrobić właśnie menu kontekstowe z wyborem słownika - choć to, jak by nie było, dodatkowe kliknięcia, a ideałem byłaby po prostu warstwa słowników “nad” wszystkimi aplikacjami, działająca jak najbardziej samoczynnie).

    Plugin do Mozilli byłby o tyle dobry, że łatwo byłoby rozpowszechnić pomysł i znaleźć pomoc w programowaniu oraz wsparcie, jeśli idea by się sprawdziła, potem poszłoby już szybko ;)

    Powtarzam, że reagowanie na słowa w schowku to nie to, o co mi chodziło. Chodzi o warstwę, nakładkę na bieżącą aplikację (tę, która jest aktywna, lub nawet tylko tę, nad którą jest kursor myszki). Zaznaczanie tekstu i kopiowanie go do schowka to zbędny wysiłek, jeśli tylko technicznie można tego uniknąć, a w przypadku wszechsłownika chodzi przecież o wygodę…

  12. MBr
    23.01.2005 o godzinie 15:24

    Parę dodatkowych heurystyk

    Program działając w tle mógłby indeksować słowa występujące na stronach przejrzanych przez użytkownika i w wolnym czasie katalogować słowa, tam występujące, nawet jeśli użytkownik o nie nie zapytał.

    Mógłby przeglądać strony o “jeden link dalej” niż użytkownik i sprawdzać występujące w nich słowa. Mógłby w tle ściągnać z google’a lub innej przeglądarki strony zawierające dane hasło i sprawdzić z nich słowa.

    Po zadeklarowaniu listy słowników, które użytkownik chciałby wykorzystać, mogłyby być one ładowane z sieci po kawałku w tle.

    Wreszcie możnaby przeglądać dokumenty, które użytkownik ma na dysku i na tej podstawie ustalać zakres niezbędnego słownictwa.

    Komentarz

    Pisałeś, że nie byłoby dobrze, gdyby użytkownik musiał czekać 10 sekund na sprawdzenie pojedynczego słowa. Moim zdaniem, przy dobrze dobranych heurystykach i sensownym przewidywaniu zachowań użytkownika, takie przypadki zdarzałyby się sporadycznie, a w miarę używania słownika coraz rzadziej.

    Raczej nie spodziewam się, żeby użytkownik co 3 minuty zmieniał obszar swoich zainteresowań z fizyki kwantowej na operacje chirurgiczne czaszki, potem na kuchnie japońską, by skończyć na historii bitwy pod Gettysburgiem.

    Zmieniam moje zdanie co do pluginu do Mozilli czy Firefox’a, bo to rzeczywiście mógłby być dobry początek. Poza tym może złamałby monopol IE na przeglądarki internetowe. ;)

  13. 11.02.2005 o godzinie 1:15

    Idea jest b.piękna, ale…
    Nie wszystko co da się pomyśleć należy zrealizować. Wydaje mi się, że w szerszym zakresie nie da się tego zrealizować. Pomysł wygląda na nieskończone w granicy mnożenie informacji o informacji.

    Po pierwsze:
    Pluginy do tej czy innej przegl., skrypty itp. to szczegóły techniczne. Wyobraźcie sobie te powierzchnie dyskowe i kanały przesyłowe danych, które musiałyby być wyorzystywane dla zbierania wszystkiego o wszystkim.

    Po drugie:
    Struktura każdego tekstu jest taka, że duża jego część jest “watą gramatyczną” i służy jedynie do powiązania słów lub fraz znaczących w, dającą się względnie łatwo czytać, całość. Zwyczajnie nie ma potrzeby sięgać do ich definicji(np.) stale a nawet często. Czy jest potrzebne sprawdzenie def. słowa “is” w języku ang. w dowolnym tekście?

    Po trzecie:
    Ideą Sieci jest powiązanie informacji rozproszonej, a nie gromadzenie jej na czyimś komputerze. Należałoby raczej tworzyć i doskonalić programy samouczące, które zapamiętują automatycznie najczęściej używane linki. Idea Sieci opiera się na gromadzeniu niezbędnych adresów, a nie wszystkich. “Wszystkoizm” prowadzi zawsze do zapchania kanałów o dowolnej przepustowości. Patrz opowiadanie Lema “Ananke”.
    W normalnych tekstach

    Po czwarte:
    Ilości kodu na stronie liquid są naprawdę zawrotne. Ciężar takich stron również ma swoje znaczenie(kanały przesyłowe).

    Przeglądanie strony projektu liquid było dla mnie uciążliwe po prostu.

    Krytyka jest oczywiście skrótowa. Nie krytykuję personalnie.
    Jedank taka dyskusja jest b.pożyteczna, bo samo dotarcie do informacji staje się coraz większym problemem. Łatwiej jest robić wynalazki na nowo niż dotrzeć do informacji czy w ogóle istnieją.

  14. 11.02.2005 o godzinie 1:31

    Jeszcze jedno:
    potrzebna definicja nie zawsze znajduje się w słowniku, może znajdować się na stronach www i to kilku. Dopiero zestawienie ich ze sobą da zrozumienie znaczenia niezrozumiałego określenia (dość pokrętnie wypadło). Zdarza się coraz częściej szczególnie w informatyce czy fizyce, że w słowniku nie ma definicji szukanego określenia.
    Był kiedyś taki projekt IBM-a wyszukiwarki:
    http://www.almaden.ibm.com/cs/k53/clever.html
    zarzucony teraz. Tworzył rankingi linków i szukał węzłów sieci informacji na dany temat.

  15. 13.07.2006 o godzinie 18:33

    Program, który jest bardzo blisko realizacji mojego pomysłu, to Babylon — ostatnio pojawiła się nowa jego wersja oznaczona numerem 6:

    http://www.babylon.com/

Napisz komentarz

Musisz być zalogowany, aby dodać komentarz.