wtorek, 17 marca 2009

reszta językoprotokołu

To ciekawy temat. Miałem jeszcze wiele przemyśleń ale nie mogę ostatnio znaleźć czasu, żeby to wszystko napisać. Z drugiej strony zależy mi też na spisaniu tych rzeczy, bo to może się przydać, po pewnych modyfikacjach, jako pomysł na biznes. Jeżeli komuś spodobałby się pomysł, to zapraszam do dyskusji. Po to publikuję to na blogu, żeby zabrać jakieś opinie. Ale do rzeczy.
Zakładając, że problemy z doborem alfabetu liter i głosek zostały rozwiązane, należy jeszcze określić reguły tworzenia słów. Oczywiście każdemu, kto miał do czynienia z nauką obcego języka przyszłyby do głowy różne sposoby, np. tworzenie innego słowa przez dodanie końcówki do starego. To jednak tylko część historii, bo tradycyjne sposoby nie gwarantują spójności języka wystarczającej dla maszyn.

Trzeba by było zidentyfikować reguły tworzenia słów, które umożliwiałyby spójne utworzenie całego języka.
Pierwsza reguła: żeby nie było sytuacji takiej, że słowo tworzone dla jakiegoś znaczenia, na podstawie innych, istniejących słów może mieć nadane dwa różne ciągi znaków.
Na przykład w języku polskim mamy niejednoznaczne reguły tworzenia słów dla wynalazków przychodzących z zagranicy. Dla znaczenia 'komputer' można by utworzyć słowo "obliczacz", ale też można by wziąć słowo "computer" i spolszczyć je i mówić "komputer". Mamy więc dwie reguły, które prowadzą do nazwania tego samego znaczenia, co w jezykoprotokole spowodowałoby większą niedeterministyczność języka, a zatem zmieszanie i powolniejszą naukę u ludzi, i odcięłoby kolejny sposób automatyzacji rozwiązań w komputerach.
Zakładając, że udałoby się opracować dobre reguły tworzenia słów od istniejących, to które ma być tworzone od którego? Jeżeli przyjmiemy np. regułę tworzenia słowa o znaczeniu przeciwnym przez dodanie przedrostka 'mal', jak w Esperanto, to nadal jest problem, a mianowicie: czy mówić "zły" i "malzły", czy "dobry" i "maldobry". Trzeba by było np. przyjąć, że jest wybierane to ze znaczeń przeciwnych, które oznacza, że czegoś jest więcej, a jeśli to się nie nadaje, to wybieramy znaczenie uznawane za bardziej pozytywne (uzyskalibyśmy "dobry" i "maldobry"). Nie wierzę, że udałoby się wyodrębnić pozbawione uznaniowości reguły wybierania znaczeń. Obawiam się, że jest to zupełnie niemożliwe, ale można by pewnie podjąć próbę i objąć jasnymi regułami większość języka.
Druga reguła tworzenia języka brzmiałaby więc: dla każdego znaczenia powinno dać się jasno stwierdzić, czy przyporządkowane mu słowo będzie autonomiczne, czy utworzone od innych.

Można by iść w tych rozmyślaniach dalej w stronę opisania struktury procesu tworzenia słów. Gdyby wyobrazić sobie drzewo decyzyjne, które służyłoby na nadawania znaczeniom słów, można by określić, w jaki sposób to drzewo powinno być rozszerzane. Jeżeli ten proces miałby być zautomatyzowany (kusząca perspektywa), to pozostaje też pytanie, jakiego kształtu miałyby być dane wejściowe do tego drzewa. Oczywiście musiałyby to być znaczenia, ale jak byłyby opisane, i jak opisane byłyby relacje między nimi? Jeżeli w języku ludzkim (a do pewnego stopnia tak musiałoby być), to mamy problem jajka i kury, bo do ich opisania trzeba by było opracować sposób reprezentacji podobny do językoprotokołu.
A to na razie tylko słowotwórstwo...
Jeszcze gramatyka (w rozumieniu - "jak użyć razem kilka słów, żeby coś przekazać"). Pewnie musiałaby być podobna do gramatyk języków ludzkich, ale z drugiej strony oparta na znaczeniach. Znam kilka języków programowania, których gramatyki muszą być siłą rzeczy silnie powiązane ze znaczeniami i widzę, że podobieństwo do języka ludzkiego mogłoby być zupełnie nieosiągalne, w przeciwnym wypadku kod źródłowy wyglądałby jak tekst. Jak w językoprotokole poradzono by sobie z grupowaniem znaczeń nawiasami? Wyobrażam sobie, że można by wprowadzić krótkie spójniki o znaczeniu "począwszy od.." i "..skończywszy", więc nie byłoby to znowu takie nieintuicyjne, ale im więcej takich "nieludzkich" elementów, tym mniej atrakcyjny byłby język.

Gdyby nie głębokość powyższych trudności i duże prawdopodobieństwo podjęcia błędnej decyzji projektowej na początku, można by pokusić się o spisanie reguł i stworzenie internetowego systemu tworzenia tego języka, gdzie ludzie sami wkładaliby znaczenia i tworzyli słowa. Mogłoby się to komuś przydać z powodów wymienionych w poprzednim poście.
Może jak się trochę poduczę gramatyk...

Brak komentarzy:

Prześlij komentarz