Lekarstwo na nadmiar informacji

NQL to język pomocny w ujednoliceniu informacji pochodzących z wielu źródeł elektronicznych.

NQL to język pomocny w ujednoliceniu informacji pochodzących z wielu źródeł elektronicznych.

Liczba informacji, które docierają do użytkownika Internetu, z dnia na dzień rośnie. Coraz więcej stron internetowych oszałamia bogatą szatą graficzną lub nowatorskim układem. Z nostalgią wspominam sformalizowaną strukturę "świstaków" czy pierwszych bibliotek internetowych, gdzie interfejs był prosty, a mimo to pozwalał swobodnie poruszać się wśród masy wiadomości. Podobno w wielu amerykańskich korporacjach pojawiła się nowa kategoria pracowników, których zadaniem jest unifikacja wiadomości pochodzących z wielu źródeł: baz danych, dokumentów Office, portali internetowych, listów elektronicznych czy grup dyskusyjnych. Właśnie dla nich, a nie tylko programistów, jest przeznaczony język NQL (Network Query Language). Jego zadaniem jest zapewnienie narzędzi translacyjnych, które pozwolą napisać odpowiednie agenty, przekształcające informacje źródłowe, tak by można było je skategoryzować i później szybko odszukać. Dobrym przykładem może być agent, który gromadzi dane na temat określonej firmy. Odczytuje bieżący kurs akcji, dodaje go do informacji pochodzących z raportów kwartalnych i wiadomości przesyłanych pocztą, a ponadto wyszukuje informacje prasowe związane z daną firmą, reagując na określone słowa kluczowe.

Czyta wszystko

Język NQL współpracuje z wieloma różnymi źródłami danych. Ma wbudowane mechanizmy obsługi FTP, WWW, poczty elektronicznej, baz danych. Może odczytywać dowolne pliki (z separatorami lub o innej, bardziej złożonej strukturze). W NQL zawarty jest wyrafinowany parser HTML, który potrafi np. przy użyciu kilku instrukcji odczytać właściwą tabelę na rozbudowanej stronie WWW oraz ma rozszerzoną obsługę wyrażeń regularnych.

NQL współpracuje także (na platformie Win32) z dowolną aplikacją, którą można sterować przy użyciu OLE Automation. Może odczytywać informacje z dowolnej bazy danych (za pośrednictwem ODBC, ADO, OLEDB lub w przypadku korzystania z Javy może używać mostka JDBC-ODBC, Native API lub sterowników JDBC). W skrypcie określane są kwerenda i warunki przechodzenia w zbiorze wyników. Skrypt NQL może także zapisywać wynik swojego działania do bazy danych. W NQL rozbudowano wsparcie dla XML (zarówno jako formatu wejściowego, jak i wyjściowego, w którym NQL prezentuje wynik swojego działania). Źródłem danych dla NQL może być także wynik zwracany przez usługę sieciową. Z poziomu skryptu NQL można komunikować się z innymi aplikacjami przy użyciu SOAP.

NQL umożliwia odwoływanie się bezpośrednio do gniazdek TCP/IP, jednak w takim przypadku lepiej napisać parser, korzystając z innego narzędzia i potem ewentualnie zarejestrować go jako rozszerzenie NQL. W przypadku komunikacji opartej tylko na gniazdkach język NQL jest zbyt ubogi.

NQL może być klientem serwera OFX (Open Financial Exchange) - standardu wymiany informacji finansowych. Dzięki temu, podobnie jak aplikacje typu MS Money, może odczytywać dane o transakcjach itp. W podobny sposób możliwe jest , które np. automatycznie opłacają przy użyciu karty kredytowej dostęp do określonej informacji w sieci.

Ciekawostką jest to, że agent napisany w NQL może prezentować wyniki nie tylko jako dokumenty tekstowe, ale także w postaci graficznej (język zawiera zbiór funkcji pozwalających np. rysować proste wykresy) oraz w formie dźwiękowej dzięki interfejsowi text-to-speech.

NQL zawiera bardzo ciekawy mechanizm, tzw. Browser Recorder. Jest to narzędzie, które pozwala nagrywać "ruchy" użytkownika i na ich podstawie tworzy odpowiedni skrypt NQL.

Agenty pisane w NQL nie muszą podejmować decyzji tylko na podstawie logiki boole'owskiej. NQL ma wbudowane mechanizmy sieci neuronowych, logiki rozmytej, a także pozwala wykorzystywać złożone analizy statystyczne. Dzięki temu agent np. poszukuje w Internecie płyt z muzyką określonego gatunku i wybiera najkorzystniejsze oferty. Napisanie takiego agenta za pomocą klasycznej logiki wymagałoby bardzo rozbudowanego kodu. W tym przypadku logika rozmyta pozwala podejmować najbardziej optymalne decyzje na podstawie kilku liczb (np. ceny płyty, czasu trwania utworu czy wagi "typu muzyki"). Wytrenowana sieć neuronowa pozwala natomiast np. inteligentnie wybierać kolejno przeszukiwane witryny. Wszystkie te zaawansowane mechanizmy są dostępne za pośrednictwem prostej składni, np. przeprowadzenie testu istotności sprowadza się do wyrażeń postaci prob [PositiveTest|~HaveDisease], 0.10.

Język prosty i intuicyjny

NQL nie jest samodzielnym produktem dla ostatecznego użytkownika. Jest językiem skryptowym, który towarzyszy innym rozwiązaniom. Może być wykorzystywany przez programistów (współpracuje z niemal każdym językiem programowania: od Javy, przez C++, po VB). Można go także wykorzystać w językach do dynamicznego tworzenia stron WWW (ASP, JSP, Cold Fusion itp.). Producent zapewnia, że NQL będzie także dostępny jako usługa .NET.

Istnieje możliwość wykorzystania gotowych aplikacji, np. NQL ContentAnywhere, która powiąże informacje przetwarzane przez agenta NQL z dokumentem Office, stroną WWW lub prześle je do komputera naręcznego. Dostępne jest narzędzie NQL Web Parts, które pozwala tworzyć elementy Microsoft Digital Dashboard.

Język, którym posługuje się NQL, jest prosty i intuicyjny. Skrypt składa się z poleceń podobnych do tych, jakie użytkownik przekazywałby koledze, by ten mógł znaleźć daną informację w Internecie.

Producenci narzędzi dla programistów zapewniają, że dysponują już pakietami do przetwarzania XML - "uniwersalnego" formatu danych, który ma w prosty sposób uprościć komunikację między heterogenicznymi środowiskami. Nie dostrzegają jednak, że ów "plik XML" musi być najpierw w pewien sposób wygenerowany. Podstawowym zadaniem NQL jest dostarczenie mechanizmów, które pozwalają wydobyć informacje z różnych aplikacji, formatów czy nawet odczytać je dzięki automatycznemu otworzeniu sesji na komputerze zdalnym. Później NQL może zapisać je w postaci XML.


TOP 200