Infos über Freehal und dessen Wissenserweiterung

Was ist Freehal: Freehal ist eine KI auf dem Wissensstand eines 2 jährigen Kindes, das heißt,    
                           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 heißt für 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 ständig erweitert, nur ohne selbst Hand anzulegen wird Freehal nur selten den eigenen Ansprüchen genüge tun.


Grundlegendes zur Wissenserweiterung von Freehal

Freehal lernt durch Eingaben des Benutzers, diese Eingaben werden standartmäßig in der Datei „facts.pro“ gespeichert. Ich rate jedoch jedem aus Gründen der Übersichtlichkeit mehrere „*.pro“ Dateien einzurichten. Beim Programmstart ladet Freehal das Wissen aus sämlichen „*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 erwähnt , das es ungemein wichtig ist immer die richtige Wortart auszuwählen, 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 Abkürzungen in der „word types.brain“ Datei bedeuten:

genus: s   => sächlich
genus: f   => weiblich
genus: m  => männlich
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 =>Präposition
type: inter => allgemeiner Ausruf

Solltet ihr Fehler in der „word.types.bain“ Datei finden, wäre es nett wenn ihr diese im Forum posten würdet.




Bei den Eingaben ist es äußerst wichtig auf die Groß- Kleinschreibung zu achten sowie auf sämtliche Satzzeichen. Klare einfache Sätze helfen FreeHal diese korrekt zu verarbeiten und zu speichern. Viele Satzstellungsfehler lassen sich durch umändern 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 verknüpfen. Hier ein kleines Beispiel was damit gemeint ist.

Mensch: Eine Orange ist ein Obst.
Mensch: Eine Orange wächst auf Bäumen.
Mensch: Eine Orange  enthält viel Vitamin C
Mensch: Die meisten Orangen werden in Kalifornien geerntet.
Mensch: Die Schalen von Orangen sind ungenießbar.
Usw.

Den genauen Funtionsumfang von FreeHal könnt ihr im Entwicklertagebuch nachlesen.
FreeHal wird ständig weiterentwickelt und etwas das heute noch nicht funktioniert, kann morgen schon implementiert sein. Scheut euch nicht Vorschläge und Anregungen im Forum zu posten.


Momentan stehen euch in Freehal folgende Features zur Verfügung:

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 könnt ihr Fehleingaben und
                   Satzstellungsfehler leichter herausfinden.

       /RK         Mit diesem Befehl wird Freehal veranlaßt 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 für 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 Einträg herauslöschen und dreifach eingeklammert ( {{{X}}} ) die Wortart angeben. Zu beachten ist, dass kein Leerzeichen zwischen dem letzten Buchstaben und der ersten Klammer sein darf. Gültige Werte sind:

{{{VERB}}}
{{{NOUN}}}
{{{ADJ}}}
{{{PREP}}} (Präposition)
{{{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 möglich:

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

          Rekursiv ist die Schlussfolgerung auch möglich:

          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: Smalltalkfähigkeiten



         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 möglich:

         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 möglich:

         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). 

