To jest stara wersja strony!


1. Wstęp

Celem tego dokumentu jest omówienie implementacji dedukcyjnego systemu bazodanowego DES, bazującego na języku Datalog. Największa część uwagi zostanie skupiona na praktycznych cechach narzędzia, jakkolwiek zawarte zostaną także uwagi o charakterze bardziej teoretycznym.

2. Informacje wstępne

2.1. Uwagi odnośnie instalacji

Instalacja narzędzia DES jest wyjątkowo prosta i intuicyjna – dla poszczególnych systemów operacyjnych, w przypadku ściągnięcia wersji wykonywalnej, polega po prostu na uruchomieniu pliku wykonywalnego EXE (Windows) bądź głównego skryptu (Linux).

2.1.1. MS Windows

W przypadku systemu operacyjnego MS Windows mamy do wyboru dwie możliwości:

- plik des.exe – uruchomienie DES w standardowej konsoli:

- plik deswin.exe – konsola dedykowana dla Windows:

2.2. Uwagi o różnych językach

DES ma postać konsoli, w której wprowadza się poszczególne polecenia. Chociaż przewodnim językiem komunikacji jest Datalog, to jednak istnieje także możliwość używania innych języków – Prologu i SQL. Komendy pozwalające na przełączanie się pomiędzy tymi trzeba językami to:

/datalog
/prolog
/sql

Tego typu komendy pozwalają na permanentne (do czasu kolejnego wpisania kolejnej tego typu komendy) przełączenie się na dany język.

Jeśli natomiast chcemy wpisać tylko jedne polecenie w danym języku, odmiennym od aktualnie używanego, należy wykonać nastepujące komendy:

/datalog polecenie
/prolog polecenie
/sql polecenie

2.3. Pomoc

Poniższe komendy służą do uzyskania różnego rodzaju przydatnych informacji:

/help – wypisuje listę dostępnych w danej chwili komend
/builtins – wypisuje listę wbudowanych komend i poleceń

3. Opis działania poszczególnych języków

3.1. Datalog

Jest to najważniejszy język DES, z którego to narzędzie wywodzi swoją nazwę. Składnia Datalogu jest bardzo podobna do odpowiednika w Prologu, jedyna różnica jest związana z pewnymi niuansami, o których szerzej za chwilę.

Poniżej punktuję ważne elementy składni języka Datalog:

  • Termy

    Podstawowe i najbardziej ogólne obiekty występujące w Datalogu. Dzielą się na dwie grupy:

    • Termy proste

      Podgrupa, dzieląca się na kolejne dwa rodzaje:

      • Stałe:
        • Stałe znakowe

          Mogą być dwojakiego rodzaju:
          • dowolny ciąg znaków alfanumerycznych (znaki alfabetu, liczby, znak podkreślenia _), rozpoczynający się od małej litery.
          • dowolny ciąg znaków alfanumerycznych oraz znaków białych, ograniczonony pojedynczymi cudzysłowami.
        • Liczby

          Wyróżniamy dwa rodzaje liczb w Datalogu:
          • Liczby całkowite

            Nie mogą występować w notacji wykładniczej, wartości ujemne zaczynają się minusem, wartości dodatnie NIE mogą zaczynać się od plusa, co ilustruję poniższym przykładem:



          • Liczby zmiennopozycyjne

            Mogą występować w notacji naukowej, w postaci aEb

            a jest ZAWSZE liczbą zmiennopozycyjną, natomiast b to liczba całkowita, która tylko w tym wypadku (jako wykładnik w notacji naukowej) może rozpoczynać się plusem.
            \\Pokazuje to poniższy przykład:



Zmienne

Oznaczamy je ciągiem znaków alfanumerycznych, rozpoczynającym się od:

dużej litery, znaku podkreślenia

Sam znak podkreślenia oznacza zmienną anonimową. Należy zwrócić uwagę, że wystąpienie zmiennej anonimowej w jakiejś formule jest uznawane za różne od jakiegokolwiek innego wystąpienia zmiennej anonimowej.

termy złożone

W Datalogu mają postać:

t(t1, t2, …, tn), gdzie:

t – symbol funkcyjny (funktor) t1 … tn - termy

Atomy

Są to wyrażenia postaci:

a(t1, t2, …, tn)

Gdzie:

a – predykat (relacja) t1 … tn – termy

Wyrażenie warunkowe

Jest to wyrażenie logiczne zawierające

conjunctions (/2) disjunctions (; /2) wbudowane operatory porównania stałe zmienne

Funkcje:

f(a1, … an)

gdzie a1 … an – argumenty

Dostępny jest tylko ograniczony zbiór funkcji wbudowanych

pl/miw/2009/piw09_des.1252288848.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0