Infos ber Freehal und dessen Wissenserweiterung

Was ist Freehal: Freehal ist eine KI auf dem Wissensstand eines 2 jhrigen Kindes, das heit,    
                           Freehal muss noch sehr viel lernen.

Was ist Freehal nicht: Freehal ist keine perfekte KI, die auf alles und jedes eine Anwort parat
                                    hat.

Das heit fr jeden, der sich mit Freehal auseinandersetzen will, viel Zeit und Geduld inverstieren , einfach gesagt, wie mit einem kleinen Kind viel lernen.

Das Grundwissen , das Feehal im Auslieferungszustand hat, wird zwar stndig erweitert, nur ohne selbst Hand anzulegen wird Freehal nur selten den eigenen Ansprchen genge tun.


Grundlegendes zur Wissenserweiterung von Freehal

Freehal lernt durch Eingaben des Benutzers, diese Eingaben werden standartmig in der Datei facts.pro gespeichert. Ich rate jedoch jedem aus Grnden der bersichtlichkeit mehrere *.pro Dateien einzurichten. Beim Programmstart ladet Freehal das Wissen aus smlichen *pro Dateien die sich im Ordner lang_de in den Arbeitsspeicher.
Bei der Auslieferung von Freehal befinden sich schon mehrere *.pro Dateien in diesem Ordner.
In der word_types.brain Datei werden alle Wortarten gespeichert die FreeHal bei den Eingaben verarbeitet. In diesem Zusammenhang sei erwhnt , das es ungemein wichtig ist immer die richtige Wortart auszuwhlen, wenn Freehal bei der Eingabe danach fragt. Sonst kann es vorkommen , das Freehal die Eingabe nicht in die Datenbank bernimmt, oder eine falsche Antwort gibt. Bevor man also einen vermeintlichen Bug im Programm meldet sollte man sich vergewissern, das die Wortarten richtig definiert sind.

Die Abkrzungen in der word types.brain Datei bedeuten:

genus: s   => schlich
genus: f   => weiblich
genus: m  => mnnlich
genus:   => ohne Geschlechtsangabe, meistens Namen
type: n     => Nomen
type: adj  => Adjektiv
type: adv => Adverb
type: vt    => Verb
type: vi    => Verb
type: fw   =>Fragewort
type: prep =>Prposition
type: inter => allgemeiner Ausruf

Solltet ihr Fehler in der word.types.bain Datei finden, wre es nett wenn ihr diese im Forum posten wrdet.




Bei den Eingaben ist es uerst wichtig auf die Gro- Kleinschreibung zu achten sowie auf smtliche Satzzeichen. Klare einfache Stze helfen FreeHal diese korrekt zu verarbeiten und zu speichern. Viele Satzstellungsfehler lassen sich durch umndern der Eingabe vermeiden.
FreeHal reagiert nicht auf den sogenannten Chatslang also mit lol und gg werdet ihr bei Freehal nicht viel erreichen. Je mehr ihr Freehal  zu einem Thema lernt umso besser kann er die Informationen im semantischen Netz miteinander verknpfen. Hier ein kleines Beispiel was damit gemeint ist.

Mensch: Eine Orange ist ein Obst.
Mensch: Eine Orange wchst auf Bumen.
Mensch: Eine Orange  enthlt viel Vitamin C
Mensch: Die meisten Orangen werden in Kalifornien geerntet.
Mensch: Die Schalen von Orangen sind ungeniebar.
Usw.

Den genauen Funtionsumfang von FreeHal knnt ihr im Entwicklertagebuch nachlesen.
FreeHal wird stndig weiterentwickelt und etwas das heute noch nicht funktioniert, kann morgen schon implementiert sein. Scheut euch nicht Vorschlge und Anregungen im Forum zu posten.


Momentan stehen euch in Freehal folgende Features zur Verfgung:

Befehle: /STATUS   gibt den atuellen Status von Freehal aus.
        /GEN LIST  generiert aus allen *.pro Dateien im Ordner "knowledge" eine seperate Textdatei in der alle Daten so stehen, wie sie Freehal auch ausgibt.Damit knnt ihr Fehleingaben und
                   Satzstellungsfehler leichter herausfinden.

       /RK         Mit diesem Befehl wird Freehal veranlat die Datenbanken neu einzulesen, das ist hilfreich, wenn ihr in der Datenbank nderungen vornehmt. Freehal mu nicht mehr komplett neu 
                   gestartet werden.

 
Systemvariable:   $$month$$         - Monat (Zahl)
                  $$mday$$          - Tag des Monats (Zahl)
                  $$year$$          - Jahr (4-stellig)
                  $$yday$$          - Tag im Jahr
                  $$time$$          - Zeit: Stunde:Minute:Sekunde
                  $$wday$$          - Wochentag
                  $$randomname$$    - Zufallsname, aus der Datenbank entnommen



Hilfreiches fr das Lernen mit Freehal:



Wenn man am Datenbankeintrag sieht, dass dort etwas nichts stimmt, wie hier:...

ist <> wodka lemon <> mixgetraenk <> ein alkoholisches <>  <>  <>  <> <>  <>  <> 50

... dann kann man jetzt diesen Eintrg herauslschen und dreifach eingeklammert ( {{{X}}} ) die Wortart angeben. Zu beachten ist, dass kein Leerzeichen zwischen dem letzten Buchstaben und der ersten Klammer sein darf. Gltige Werte sind:

{{{VERB}}}
{{{NOUN}}}
{{{ADJ}}}
{{{PREP}}} (Prposition)
{{{PP}}} (Pronomen)
{{{ART}}} (Artikel)
{{{QUESTIONWORD}}} (Fragewort)
{{{KOMMA}}}

You:     Wodka Lemon ist ein alkoholisches{{{adj}}} Mixgetraenk
FreeHAL: Wieso ist Wodka Lemon ein alkoholisches Mixgetraenk??



Feature: Schlussfolgerung




          Die Vorraussetzung ist folgender Datenbankeintrag:

          A ist b gro, wenn A einen Durchmesser von B hat

          Datenbankeintrag:
          ist <> a <> b <> gross <> hat <> a <> einen durchmesser <> von b <> wenn <> <> 50

          Dann ist folgendes mglich:

          You: Wie gro ist Io?
          FreeHAL: Io hat einen Durchmesser von 3630 Kilometer. ;)

          Rekursiv ist die Schlussfolgerung auch mglich:

          You: Wenn A B gro ist, ist A B lang
          FreeHAL: Tja ! Hmm, Wie denkst Du ueber einen tasteninstrument?

          You: Wie lang ist Io?
          FreeHAL: Io hat einen Durchmesser von 3630 Kilometer.



          Die Buchstaben A bis H dienen Als Platzhalter (Variablen). 



Feature: Smalltalkfhigkeiten



         Beispiel 1 (Aussagesatz)


         Mit folgender Eingabe:

         A ist langweilig !=> lies doch ein Buch

         Datenbankeintrag:
         ist <> a <> nothing <> langweilig <> f=> <> lies <> doch ein buch <> <> <> <> 50

         ... wird folgendes mglich:

         You: Mir ist langweilig
         FreeHAL: Lies doch ein Buch.



         Beispiel 2 (Fragesatz)


         Mit folgender Eingabe:

         Dir ist auch langweilig !=> Das ist ganz normal

         Datenbankeintrag:
         ist <> mir <> nothing <> auch langweilig <> f=> ist <> das <> <> ganz normal <> <> <> 50

         ... wird folgendes mglich:

         You: Ist dir auch langweilig?
         FreeHAL: Das ist ganz normal.




        Das Symbol "!=>", das wie eine Konjunktion gehandhabt wird, steht vor einer vom User geforderten Antwort, die ein Aussagesatz sein soll. "?=>" steht vor einem Fragesatz, ".=>" gibt es nicht.

        Die Buchstaben A bis H dienen Als Platzhalter (Variablen). 

