Cyc-console
Ten post z pewnością powinien mieć dłuższy wstęp, który, mam nadzieję uda mi się napisać niebawem. Otóż z pewnością powinienem napisać więcej o ontologii Cyc, bo bez tego narzędzie, które tutaj promuję nie wydaje się zanadto przydatne.
Gdyby jednak znalazł się ktoś, kto zna tę ontologię i co więcej – korzystał z wbudowanej weń konsoli, z pewnością uzna, że jest ona rodem z epoki przedpotopowej. Nie wspiera ona wielu zasadniczych koncepcji znanych choćby z konsoli Linuksa, a nawet najprostszych klawiszy specjalnych, takich jak <Home> i <End>.
Pracując nieustannie z Rubim i jego świetną konsoląirb
z dodatkiem Wirble, stwierdziłem, że
można by spróbować zrobić
podobną konsolę dla Cyc-a. Zasadniczo powinna ona posiadać następujące
własności:
- sensownie reagować na <Home>, <End>, strzałki itp.
- mieć wbudowaną historię poleceń
- wspierać kolorowane terminale
- sprawdzać ilość nawiasów, przed wysłaniem zapytania na serwer
- wspierać autouzupełnianie poleceń i symboli Cyc.
Jakiś czas temu zabrałem się za jej tworzenie i okazało się, że stworzenie takiej konsoli na bazie
irb
nie jest specjalnie trudne. Oczywiście, to co powstało jest w fazie alfa – w obecnej chwili
nie ma np. autouzupełniania, ale jest już historia poleceń (zapamiętywana pomiędzy uruchomieniami),
no i wykorzystanie biblioteki readline pozwala używać klawisze specjalne w normalny sposób.
Dla wszystkich zainteresowanych – kod może być pobrany z github.com/apohllo/cyc-console lub z wykorzystaniem Rubygems:
$ sudo gem install apohllo-cyc-console
(Od wersji 0.0.5 wystarczy wpisać sudo gem install cyc-console
).
W obu wypadkach wymagany jest gem apohllo-colors
, o którym pisałem w poprzednim poście.