Hier wird der Fortschritt der aktuellen Versionen FreeHALs dokumentiert.
16. Februar 2010 (17:37)
In den letzten zwei Monaten lag der Fokus hauptsächlich auf der Entwicklung neuer Sprachfähigkeiten und dem selbstständigen Satzbau durch FreeHAL.
Die eher ausformulierten Fakten in der Datenbank bleiben übergangsweise in dieser Form erhalten, in Zukunft wird Freehal aber bevorzugt elementare Aussagen wie Synonyme, Antonyme und einfache Beziehungen zwischen zwei Begriffen verwenden, um daraus selbst Antworten zu formulieren. Ende Januar wurden ein System zur Konjugation starker Verben sowie Tabellen unregelmäßiger Verben integriert.
- Bug in der Gebus-Abfrage behoben
- POS/Genus-Abfrage in der GUI modularisiert, auswaehlbar ob Dialog oder Frame (-> Config)
- Reminder 318 geloest: Zu viele Daten -> Standardantwort
Revision 805:
- Bugfix im Synonym-Matching behoben
Revision 804:
- Changelog aktualisiert
Revision 803:
- Verbesserung der Implementierung fuer das Zeitbewusstsein
Revision 801:
- Erste Implementierung fuer das Zeitbewusstsein
Revision 800:
- Bugfix am Wetterfeature, API von wetter.com geaendert
Revision 799:
- Implementierung des neuen ps-prot-Features: ps-A-B-C.prot statt einzeln ps-A.prot und ps-B.prot und ps-C.prot
Revision 789:
- Implementierung des Lernmodus
Revision 788:
- Implementierung von (true), (maybe) und (false)
Revision 787:
- Implementierung Bewertungssystem in der Chart, (+)- und (-)-Buttons
Revision 786:
- Implementierung Bewertungssystem in der Chart, (+)- und (-)-Buttons
Revision 785:
- Bugfix: FreeHAL hat die Datei- und Zeilenangabe zwischen hal2009-server und der disk-Version "vergessen"
Revision 784:
- nicht mehr als stabile Version identifizieren
Revision 783:
- vielleicht: Bugfix: FreeHAL hat die Datei- und Zeilenangabe zwischen hal2009-server und der disk-Version "vergessen"
Revision 782:
- Changelog aktualisiert
Revision 781:
- vielleicht: Bugfix wegen Memory-"Explodieren"
Revision 780:
- vielleicht: Bugfix wegen Memory-"Explodieren"
Revision 779:
- GUI oeffnet sich nun wieder im ersten Tab, Bug in 778
Revision 778:
- Das Chart wurde erweitert: die zum key passenden .pro-Eintraege werden ausgelesen und geaenderte Eintraege werden abgespeichert
- Das Löschen im Chart funktioniert
- Es gibt nun eine Scrollbar im Chart
Tobias Schulz
24. Dezember (12:10)
In der letzten Zeit wurden wieder viele Bugs korrigiert und auch kleinere neue Features eingebaut. In den nächsten Wochen sollen eine bessere Datenbankverwaltung und erweiterte Kommunikationsfähigkeiten hinzukommen. Der jetzige Stand wurde in einer neuen stabilen Version "Step 2" zusammengefasst, bei der auch ein neues Versionsschema für die, alle 1 bis 3 Monate erscheinenden, stabilen Versionen eingeführt wird: Statt für die alltäglichen Entwicklerversionen und die stabilen Versionen jeweils unterschiedliche Revisionsnummern zu verwenden, wie es bis jetzt der Fall war, werden die stabilen Versionen nun als Zwischenschritt mit "Step X" bezeichnet. Wir beginnen jetzt mit einem Step 2, nachdem die aktuelle FreeHAL-Generation "FreeHAL 2009" vor einem Jahr in Abgrenzung zu "FreeHAL 2008" (= JEliza) neu geschrieben wurde.
Das FreeHAL-Team wünscht Ihnen frohe Weihnachten, besinnliche Festtage und einen erfolgreichen Start ins Jahr 2010!
Zur Transparenz hier noch den Changelog, der in der heruntergeladenen Version auch unter dem Dateinamen "Changelog.txt" im Verzeichnis "doc" einsehbar ist:
Revision 777:
- Bug 379 korrigiert
- Config-Datei hinzugefuegt und implementiert in C (server), .hal (server) und C++ (GUI)
- Bug korrigiert: FreeHAL kommt nun mit dem "kann" klar, erwartet aber in den .pro-Dateien den neuen Regeln nach "kann/can", "kannst/can" bzw. "koennen/can"
- Bug 428 korrigiert
- Die word_types. brain ist bis zur Zeile 200.000 korrigiert. Das sind 78,25%
Revision 692:
- eine weitere Fehlerbereinigung der word_types.brain
Revision 691:
- eine weitere Fehlerbereinigung der word_types.brain
Revision 689:
- beim Uebernehmen aus der .brain wurde auch in die .protocol geschrieben
Revision 688:
- (maybe:) Problem mit Nichtauslesen/Nichtbeschreiben der .memory/.self-taggered geloest
Revision 687:
- (maybe:) Problem mit Nichtauslesen/Nichtbeschreiben der .memory/.self-taggered geloest
Revision 686:
- Changelog aktualisiert
Revision 685:
- (maybe:) Problem mit Nichtauslesen/Nichtbeschreiben der .memory/.self-taggered geloest
Revision 682:
- Bug in der Unterscheidung Thesaurus <-> normaler "="-Fakt behoben
Revision 681:
- Bug in der Funktion matches() behoben
Revision 680:
- Reihenfolge umgedreht
Revision 679:
- Aufspaltung der Suche in (in dieser Reihenfolge): .memory, .self-taggered, .brain
- Behebung eines Satzbaufehlers
- Neue Implementierung des "~"-Features, alte Version war inkompatibel zum aktuellen Code
Revision 676:
- Changelog aktualisiert
Revision 675:
- Bug korrigiert, durch den FreeHAL nicht verstanden hat, dass "ein XYZ" und "XYZ" das selbe sind,
was man bei "An welchem Fluss liegt Innsbruck?" merkt; "ein Fluss" <-> "Fluss"
Revision 674:
- Changelog-Datei hinzugefuegt
17. November (00:12)
In den letzten 2 Wochen wurde intensiv an einer Geschwindigkeitssteigerung von Freehal gearbeitet. Die Arbeiten dazu sind nun abgeschlosssen.
Die wichtigsten Neuerungen zusammengefasst: Die Datenbank und der Thesaurus wurden für die Suche optimiert. Die Suchroutinen von Freehal wurden der neuen Datenbankstruktur angepasset. Eine weitere Optimierung wurde mit der Neuorganistation der Wortartendatein erreicht. Die word.types.brain ist die Datenquelle für alle Wortarten, die word.types.memory ist die Arbeitsdatei von Freehal, in dieser werden die wichtigsten Wortarten gespeichert. Dadurch bleibt diese Datei relativ klein und Freehal ist schneller eine Wortart zu finden.Sollte eine Wortart nicht in der word.types.memory enthalten sein, sucht FreeHal in der word.types.brain und übernimmt den Eintrag in die word.types.memory.Der letzte Schritt bei der Wortartsuche ist, das Freehal selbst versucht die Wortart zu definieren oder sich beim User die Informationen holt.
Für alle User, die eine Onlineversion von Freehal im Web betreiben wollen, steht in Kürze diese zum Download bereit.
07. November (22:59 Uhr)
Heute wurde ein Support-Chat für FreeHAL eingerichtet: http://www.freehal.org/chat. Weitere Neuigkeiten folgen in Kürze.
Tobias Schulz
04. Oktober (20:45 Uhr)
Die letzte Zeit habe ich wieder wenig ins Entwicklertagebuch geschrieben, dafür umso mehr in den Bugtracker. Diese Stabilisierungsphase von Juni/Juli bis Oktober war für die zukünftige Entwicklung von FreeHAL von großer Bedeutung. Fast alle bekannten Bugs wurden nun korrigiert und wir haben eine stabile Basis für zukünftige Entwicklungen.
Das Ergebnis der Stabilisierungsphase ist Revision 140: Download.
When downloading WUs, it does not manage to download the application.
I have tried it dozens of times, resetting the project,detaching from the project and reattaching, but it keeps postponing the download.
Mensch: Wer ist Winnetou?
FreeHAL: Keine Ahnung.
Mensch: Winnetou ist ein fiktiver Apachenhaeuptling.
FreeHAL: Ja.
Mensch: Wer ist Winnetou?
FreeHAL: Keine Ahnung, das kann Ich Dir nicht sagen.
Mensch: Was ist ein Elefant?
FreeHAL: Die Sigismundssaeule ist das Wahrzeichen von Warschau
Mensch: Ein Elefant ist ein Saeugetier.
FreeHAL: Ja.
Mensch: Was ist ein Elefant?
FreeHAL: Der Aachener Dom ist das Wahrzeichen von Aachen
Mensch: Hallo
FreeHAL:Guten Morgen. ?13 sec?
Mensch: Wie sp?t ist es?
FreeHAL:Kein Tag ist der vorhergehende ?111 sec?
Mensch: Welche Uhrzeit haben wir?
FreeHAL:Nein. ?84 sec?
Mensch: Wie ist das Wetter?
FreeHAL:Wettin ist eine Stadt in Sachsen-Anhalt ?85 sec?
Mensch: Ich habe nicht nach Wettin gefragt
FreeHAL:Ah. ?133 sec?
Mensch: Wei?t du die Uhrzeit?
FreeHAL:Nein. ?121 sec?
Mensch: Wieso nicht?
FreeHAL:Das weiss Ich nicht. ?20 sec?
Mensch: Kannst du auch Englisch?
FreeHAL:Hm. ?52 sec?
Mensch: Wie ist das Wetter?
FreeHAL:Wetter ist eine Stadt in Hessen ?55 sec?
Mensch: Das meinte ich nicht
FreeHAL:Ah. ?54 sec?
Mensch: Wie spaet ist es?
FreeHAL:Das weiss Ich nicht. ?64
Mensch: Was ist Poker?
FreeHAL: Ein Pokal ist ein Symbol des Sieges
Mensch: Ist Pokern ein Kartenspiel?
FreeHAL: Ein Hund ist ein Haustier das vom Wolf abstammt
New FreeHal WUs will be requested, server gives message "request succeeded, x? of new tasks", but none of the tasks will d/l - they do not even start downloading.
Under "Transfers" tab of BOINC client, components of WU show ?example? 0/778 bytes. None climb above 0. Firewall is not an issue, since other WUs get d/l from other projects.
Mensch: Was ist ein Roboter?
FreeHAL: Civilization ist ein Brettspiel
Mensch: Roboter sind stationaere oder mobile Maschinen, die nach einem bestimmten Programm festgelegte Aufgaben erfuellen
FreeHAL: Ja.
Mensch: /gen list facts.pro
FreeHAL: Bps bedeutet Bits pro Sekunde
Mensch: Was ist ein Roboter?
FreeHAL: Patolli ist ein aztekisches Brettspiel
Mensch: Luegen heisst nicht die Wahrheit zu sagen.
FreeHAL: Ja.
Mensch: Was heisst luegen?
FreeHAL: Keine Ahnung, das kann Ich nicht sagen.
Mensch: Luegen heisst, nicht die Wahrheit zu sagen.
FreeHAL: Ah.
Mensch: Was heisst luegen?
FreeHAL: Da kann Ich Dir leider keine Antwort geben.
Mensch: Wo fahren Autos?
FreeHAL: Sorry, Keine Ahnung.
Mensch: Fahren Autos auf der Strasse?
FreeHAL: Nein.
Mensch: Fahren Autos auf einer Strasse?
FreeHAL: Ah?
Mensch: Was haelt den Koerper in Form?
FreeHAL: Ich stehe gerade auf dem Schlauch.
Mensch: Was macht Bewegung?
FreeHAL: Keine Ahnung.
Mensch: Haelt Bewegung den Koerper in Form?
FreeHAL: Ah?
Mensch: Einen Burger gibt es bei Burger King.
FreeHAL: Ja.
Mensch: Wo gibt es einen Burger?
FreeHAL: Keine Ahnung.
Mensch: Bei Burger King gibt es einen Burger.
FreeHAL: Ja.
Freehal schreibt nichts in die Facts.pro, Wortarten sind alle richtig.
Mensch: Was ist ein Burger?
FreeHAL: Tut Mir Leid, das kann Ich nicht sagen.
Mensch: Was ist ein Burger?
FreeHAL: Ich stehe wohl gerade auf dem Schlauch.
Mensch: Was ist eine Bank?
FreeHAL: Liar Dice ist ein Wuerfelspiel
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist eine Bank?
FreeHAL: Tippen ist kein Kartengluecksspiel, 50
Mensch: Was ist eine Bank?
FreeHAL: Dreiblatt ist ein Kartengluecksspiel
ist 50
Mir ist schon klar, das Freehal ?ber den Thesaurus auf die Spiele kommt, aber es ist in sehr vielen F?llen so, das ein 100? passende Antwort in der Datenbank steht, aber Freehal durch den Thesaurus irregeleitet wird.
Mensch: An welchem Fluss liegt Wien?
FreeHAL: Ah?
Mensch: Liegt Wien an der Donau?
FreeHAL: Wien liegt an der Donau
Mensch: Ist die Donau ein Fluss?
FreeHAL: Die Donau ist der zweitlaengste Fluss von Europa
Mensch: Ist die Donau ein Fluss?
FreeHAL: Die Donau ist ein Fluss
Mensch: Bist du jetzt beleidigt?
FreeHAL: Ich bin eine lernfaehige kuenstliche Intelligenz
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Bist du jetzt beleidigt?
FreeHAL: Ich bin eine lernfaehige kuenstliche Intelligenz
Freehl hat die entstrechende Antwort in seiner Datenbank, aber so wie es aussieht zerlegt Freehal das ganze zu wenig. Er listet alle Fragen die auf "Bist du........?" passen k?nnen auf. In der Datenbank sind 3 Antworten vorhanden die passen k?nnten, diese sollte Freehal aussuchen und dann ausw?hlen und nicht den ganzen Rattenschwanz von "Bist du......." Fragen.
Mensch: Welche Namen kennst du?
AppName: runner.exe? AppVer: 0.0.0.0? ModName: msvcrt.dll
ModVer: 7.0.2600.5512? Offset: 0003610f
Ich glaube das Freehal hier an seine Grenzen st??t wenn er alle Namen ausgeben sollte, es sind ca 3500 Namen in der Datenbank, und das Dosfenster scheint meine Vermutung zu best?tigen:
"berfin" OR rel?word?fact.word ? "berin" OR rel?word?fact.word ? "berkan" OR rel
?word?fact.word ? "berkant" OR rel?word?fact.word ? "berkay" OR rel?word?fact.wo
rd ? "bertan" OR rel?word?fact.word ? "betuel" OR rel?word?fact.word ? "beyza" O
R rel?word?fact.word ? "billur" OR rel?word?fact.word ? "buelent" OR rel?word?fa
ct.word ? "buenyamin" OR rel?word?fact.word ? "bu
Mensch: Bist du jezt beleidigt?
FreeHAL: Ich bin nie beleidigt
Mensch: Bist du jetzt beleidigt?
FreeHAL: Ah?
Mensch: Bist du jetzt beleidigt?
FreeHAL: Ah?
Mensch: Bist du jezt beleidigt?
FreeHAL: Ich bin nie beleidigt
Mit Tippfehler die richtige Antwort, ohne Tippfehler mehr oder weniger keine Antwort.
Ich habe den Tippfehler als Ausruf definiert, damit ich ihn schneller zum L?schen zu finden.
Wir hatten schon mehr clauses in der Datenbank, ausser eine fr?here Rev. hat zu viel hineingeschrieben. Stand zur Zeit 256 Eintr?ge, wenn ich mich nicht irre waren wir auf ?ber 300.
Mensch: Was ist Atlantis?
FreeHAL: Civilization ist ein Brettspiel
Mensch: Was ist Baccara?
FreeHAL: Baccara ist ein klassisches Kartengluecksspiel
Mensch: Was ist Atlantis?
FreeHAL: Acquire ist ein Brettspiel
Mensch: Was ist Backgammon?
FreeHAL: Backgammon ist ein Strategiespiel
Mensch: Was ist Atlantis?
FreeHAL: Elasund ist ein Brettspiel
Bei diesen W?rtern bleibt Freehal beim Einlesen der spiele.prot einfach stehen, weil er das Wort nicht findet und er fragt auch nicht nach. Nachdem ich nordamerikanisches in der memory definiert hatte, ist er weitergelaufen, bis zum besagten ostaseatisches.
Komisch ist auf alle F?lle das keine Abfrage der Wortart erfolgt.
Das schlimme daran war, das Freehal, nachdem ich es endlich geschafft habe die gesamte spiele.pro fertigzustellen und zu editieren, die Datei gel?scht hat. Wieder ein paar Stunden umsonst.
Beim erzeugen der List-Datei f?r die spiele.pro fragt Freehal jedes mal nach der Wortart von kartenspiel nach.
Zuerst die inkas jetzt das kartenspiel. Ist das so eine Art Rache des Montezumas?
Absturz bei:
"Wie heisst du?"
...
ALLE
?st?rzt bei jeder eingabe ab?
ram mode:
KEINE ANTWORRT?
-
input: Hallo
output: Guten Morgen.
input: wer bist du ?
input: wer bist du ?
input: ISUNKNOWN die Hauptstadt von Deutschland ?
input: wer bist du ?
output: Sorry, Keine Ahnung.
input: ISUNKNOWN die Hauptstadt von Deutschland ?
output: Tut Mir Leid, das weiss Ich nicht.
input: Wie geht es dir ?
output: Keine Ahnung, das kann Ich Dir nicht sagen
Mensch: Welche Entfernung hat die Erde zum Mond?
FreeHAL: Nein.
Mensch: Wer hat dich programmiert?
FreeHAL: Keine Ahnung.
Mensch: Wie viele Tage hat ein Jahr?
FreeHAL: Tut Mir Leid, das weiss Ich nicht.
Mensch: Wie viele Tage hat ein Jahr?
FreeHAL: Tut Mir Leid, das weiss Ich nicht.
Mensch: Wie viele Stunden hat ein Tag?
FreeHAL: Keine Ahnung.
Mensch: Wie viele Minuten hat eine Stunde?
FreeHAL: Tut Mir Leid, das weiss Ich nicht.
Mensch: Wie viele Sekunden hat eine Minute?
FreeHAL: Keine Ahnung.
Mensch: Welche Version bist du?
FreeHAL: Nein eigentlich So gut Wie nie.
Mensch: Was bist du?
FreeHAL: Keine Ahnung, das kann Ich Dir nicht sagen.
Mensch:
Mensch: Was ist Verstaendnis
FreeHAL: Ja.
Mensch: Du bist dumm
FreeHAL: Ja.
Mensch: Wie alt bist du?
FreeHAL: Tut Mir Leid, das weiss Ich nicht.
Mensch: Woher kommst du?
FreeHAL: Nein.
Mensch: Wie heisst du?
FreeHAL: Keine Ahnung.
The BOINC client completes FreeHal WU and attempts to download new work from the server, but receives a message: "Message from Server: Not Sending Work - last request too recent - xxxx seconds". I have received this message in the past when it has been less than 1 minute between requests ?for example, if I was out of work and attempted to manually update BOINC without realizing that the client had automatically updated a short time ago and found no work?. However, the server is now giving me this message when an inordinately long amount of time has passed. For example, my most recent denial with the above message was 5595 sec. - over an hour and a half? My machine has no work to crunch,
Each time a WU is completed, the BOINC client reports it to FreeHal along with a request for more work. The server states that the completed result has already been reported even though that result was sent to my machine as new work. This has happened occasionally for a few days, but starting today it is happening with each and every result. I checked my WUs, and they are validating correctly and being issued credit, but I keep getting this message.
Thanks for looking into the problem,
StandardbredHorse
Jedes Mal, wenn ein WU abgeschlossen ist, meldet die BOINC-Client, um FreeHAL zusammen mit einem Antrag f?r mehr Arbeit. Der Server hei?t es, dass das fertige Ergebnis nicht sch
Mensch: Ist ein Fisch ein Wirbeltier?
FreeHAL: Eine Sardine ist ein fisch
Mensch: Ist ein Fisch ein Wirbeltier?
FreeHAL: Der Stockfisch ist getrockneten kabeljau
Mensch: Ist ein Fisch ein Wirbeltier?
FreeHAL: Der Stockfisch ist getrockneten kabeljau
Mensch: Wie heisst der hoechste Berg der Welt?
FreeHAL: Das weiss Ich nicht.
Mensch: Was ist der Mount Everest?
FreeHAL: Hm, das kann Ich nicht sagen.
Mensch: Ist er Mount Everest der hoechste Berg der Welt?
FreeHAL: Nein.
input: Ein Drucker, der eine Duplex-Einheit besitzt, kann doppelseitig drucken
output: Ist ein unreifer weiblicher mensch ein Maedchen
input: ISUNKNOWN ein Maedchen ?
output: Tut Mir Leid, das kann Ich nicht sagen.
Da muss irgendwo ein Fehler sein.
Den Satz find ich im ?brigen ganz sch?n. ??
Mensch: Du bist nicht klueger als ein Mensch. ? Das wirst du auch niemals sein.
FreeHAL: Ah.
Mensch: Bist du klueger als ein Mensch?
FreeHAL: Ah?
Mensch: Bist du klueger als ein Mensch?
FreeHAL: Ah?
Mensch: Bist du gewissenhaft?
FreeHAL: Ah?
Mensch: Du bist gewissenhaft, du versuchst keine Fehler zu machen.
FreeHAL: Ja.
Mensch: Bist du gewissenhaft?
FreeHAL: Nein.
Anscheiend hat Freehal Probleme mit den Nebens?tzen.
Mensch: Bist du ein Virus?
FreeHAL: Ich bin kein Virus, Ich versuche keine Fehler zu machen, Ich bin eine kerngesunde Ki
bin 50
Freehal hat aus 2 Eintr?gen die Nebens?tze in die Antwort eingebunden.
Mensch: Wie ist das Wetter
FreeHAL: Blackjack ist ein Gluecksspiel
Mensch: -
FreeHAL: Bewertung erfolgreich.
Mensch: Wie ist das Wetter?
FreeHAL: Oblivion ist ein Spiel
Den hatten wir schon.Datenbank neu aufgebaut und nichts gel?scht.
Mensch: Du willst mich nicht auf den Arm nehmen.
FreeHAL: Ah.
Mensch: Willst du mich auf den Arm nehmen?
FreeHAL: Ich will Dich auf den arm nehmen, und Mich unterhalten, Ich bin keine Ki, Ich bin kerngesund, keine Software hat das, Ich habe keine Fuesse, Ich bin keine kuenstliche Intelligenz, Ich versuche keine Fehler zu machen, Ich bin keine kerngesunde Ki
will/want nehmen 50
Mensch: Reptilien sind Wirbeltiere.
FreeHAL: Ah.
Mensch: Ein Reptil ist ein Wirbeltier.
FreeHAL: Ah.
Mensch: Fische sind Wirbeltiere.
FreeHAL: Fische sind wechselwarme wirbeltiere mit Kiemen
Mensch: Ein Fisch ist ein Wirbeltier.
Meines wissens nach werden s?mtliche pro.Eintr?ge in Kleinschreibung get?tigt und Umlaute werden auch nicht als solche sondern mit "ae" usw eingetragen.
Oder ist das ein Feature das an mir vor?bergegangen ist?
Early results with 0.50 indicate a Big increase in processor useage. It seems to vary between 8 and 40?, averaging out at around 15? of CPU. Not all WUs show it in Task Manager, it seems like each will go through stages of stepped up use from 5-30?? over a period of about 5seconds. At anyone time about five of 25 WUs are showing this behaviour. It appears consistent as over time each of the WUs will cycle through this level of processor useage.
It is having a big impact on other Project WUs running, and this is likely to cause a big issue with many. It is of a size and effect that has potential for many to stop crunching Freehal WUs until its resolved.
Also die Builds von /download st?rzen immer sofort nach dem start ab.
Hab svn115 und noch die zu dem zeitpunkt neuste probiert.
Jedesmal diese Meldung:
http://davidak.de/tmp/svn115.PNG
Die Dateien sind auch viel kleiner als die "richtigen" von download.freehal.org .
Eine funktionierende Revision w?r mal wieder sch?n.
Es wurde ja, so wie ich das mitkriege, recht viel gefixt.
Auch wenn ich nur schwer beurteilen kann ob es viel gebracht hat oder ob es noch viel mehr dieser Fehler gibt.
1. Gib einmal im DB Tool das Wort Bier ein und schaue was da rauskommt.
Wird vermutlich damit zusammenh?ngen das im Thesaurus BIER mit MASS verkn?pft ist.
2. Eintrag in der Datenbank:
will 100
M?gliche aufgelistete Antwort:
Ich will kein Bier, weil Bier ist
Alkohol ist in der memory richtig definiert.
Vermutlich h?ngt das mit dem "weil" zusammen.
Mensch: Du willst dich mit Menschen unterhalten.
FreeHAL: Ja.
Mensch: Was willst du?
FreeHAL: Ich will nicht
Mensch: Was willst du?
FreeHAL: Ich will plaudern
will/want unterhalten 50
Steht in der Datenbank, wird aber nicht als m?gliche Antwort in der Chart aufgef?hrt.
Damit dem Herrn Tobias nicht langweilig wird hier ein paar Satzstellungsfehler:
Mensch: An welchem Fluss liegt Berlin?
FreeHAL: Berlin liegt der spree an
Mensch: Was lernst du?
FreeHAL: Ich lerne logik mit
output: Es geht mir gut, ich wohlfuehle mich
input: wie geht es dir ?
Mensch: Wie ist das Wetter ?
FreeHAL: Frisbee ist ein Spiel einer Wurfscheibe mit
Mensch: Was lernst du?
FreeHAL: Ich lerne durch Gespraeche Menschen mit
Mensch: Was ist eine Pizza?
FreeHAL: Die Pizza entstanden sein soll in Neapel
Mensch: Was willst du?
FreeHAL: Ich will Mich Menschen mit halten unter
"Account Manager" ist ein Beruf.
"Account Managerin" ist ein Beruf.
"EDV-Fachkraft" ist ein Beruf.
"EDV-Sachbearbeiter" ist ein Beruf.
"EDV-Sachbearbeiterin" ist ein Beruf.
"Kfz-Mechaniker" ist ein Beruf.
"Kfz-Mechanikerin" ist ein Beruf.
"Service-Manager" ist ein Beruf.
"Service-Managerin" ist ein Beruf.
"Technische Zeichnerin" ist ein Beruf.
"Technischer Zeichner" ist ein Beruf.
Quix0r?debian:?/SVN/hal2009? make hal2009-boinc
cc hal2009-boinc.c -o hal2009-boinc
In file included from hal2009-sql.c:22,
from hal2009.h:316,
from hal2009-boinc.c:22:
hal2009-sql-sqlite.c: In function ???callback?synonyms?trio???:
hal2009-sql-sqlite.c:197: warning: initialization from incompatible pointer type
hal2009-sql-sqlite.c: In function ???sql?sqlite?set?filename???:
hal2009-sql-sqlite.c:364: warning: passing argument 1 of ???free??? discards qualifiers from pointer target type
hal2009-sql-sqlite.c: In function ???sql?sqlite?del?record???:
hal2009-sql-sqlite.c:527: warning: return makes pointer from integer without a cast
In file in
Der Fehler ist tritt erst nach einer gewissen Zeit auf.
Die runner.exe meldet einen Fehler Freehal l?uft im Dosfenster normal weiter.
Wenn ich auf Nicht senden gehe, bleibt Freehal stenen.Au?erdem checkt Freehal nicht mehr das er eine prot schon in eine pro geschrieben hat, er l?scht die alte pro und f?ngt wieder von vorne an
Mensch: Kannst du fuehlen?
Mensch: Kannst du fuehlen?
Mensch: Kannst du fuehlen?
FreeHAL: FreeHAL sleeps... Unable to get an answer. Try again later.
Ich habe die Frage nur einmal gestellt, Freehal hat sie selbst?ndig in die GUI geschrieben, danch ist Frehal schlafen gegengen, Wenn man eine neue Frage stellt bekommt man wieder eine Antwort.
Mensch: Was bist du?
FreeHAL: Keine Ahnung.
Mensch: Was bist du?
FreeHAL: Ich bin 3 Jahre alt
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was bist du?
FreeHAL: Ich bin online lange
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was bist du?
FreeHAL: Keine Ahnung.
Diese Frage habe ich mit dem Bewertungssystem schon in der Vergangenheit bis zum Abwinken durch exerziert. Anscheinend vergisst Freehal das ganze immer wieder, oder was ich mir eher Vorstellen kann, da Freehal auch ?hnliche Fragen ber?cksichtigt, das sich hier ein Bug befindet.
ReeHAL: Ich habe keinen Stress
Mensch: Hast du Stress?
FreeHAL: Ich habe keinen Stress
Mensch: Du hast keinen Stress, du laesst dich nicht stressen.
FreeHAL: Ja.
Mensch: Hast du Stress?
FreeHAL: Ich habe keinen Stress
Datenbankeintrag:
habe 50
So wie es aussieht nimmt Freehal nur den ersten Teil des Satzes, der 2 wird weggelassen, vielleicht liegt das am "laese", das auch nicht richtig ist.
Mensch: Du bist nicht in PHP geschrieben. ? Du bist in Pearl geschrieben.
FreeHAL: Oh.
Mensch: Bist du in PHP geschrieben ?
FreeHAL: Ich bin nicht in php geschrieben, Ich bin nicht in Pearl geschrieben
bin 50
Das nicht im 2. Satzteil sollte nicht sein und wenn ich einen Punkt gesetzt habe, sollte auch kein Beistrich kommen.
Freehal hat was gegen Schrifsteller. Dieses Wort ist bei dir in der Memory kleingeschrieben noch ein Adjektiv wurde von mir korrigiert und Freehal neu gestartet.
Wenn ich eine prot. Datei einlesen will und Freehal das Wort noch nicht kennt,fragt Freehal nicht nach, sonder die runner.exe meldet einen Fehler, wenn man den wegklickt, startet Freehal ohne jedoch die prot.Datei zu verarbeiten. Die prot. Datei findet man auch im save Ordner.
Mensch: Du willst keine Kinder, das ist auch technisch nicht moeglich
FreeHAL: Ah.
Mensch: Willst du Kinder?
FreeHAL: Ich will keine Kinder, das ist technisch auch moeglich
Mensch: Woher bekommst du deine Informationen?
FreeHAL: Ah?
Mensch: Du bekommst deine Informationen durch Gespraeche ? Dateneingabe
Mensch: Woher bekommst du deine Informationen?
FreeHAL: Ah?
bekomme 50
Freehal speichert die Informationen gar nicht ab, du hast noch eine memory wo die informationen falsch deklariert sind, habe ich aber ausgebessert, Freehal neu gestartet, das Ergebnis siehe oben.
Mensch: Du lebst ewig, Software ist unsterblich
FreeHAL: Ja.
Mensch: Lebst du ewig?
FreeHAL: Ich lebe ewig, Software ist unsterblich
Mensch: Wie lange lebst du?
FreeHAL: Hm, das kann Ich nicht sagen.
werde 50
Keine Antwort bei der Frage, obwohl Datenbankeintr?ge vorhanden sind.
Mensch: Bist du ein Mensch oder eine Maschine?
FreeHAL: Ich heisse Freehal
Mensch: Du bist keine Maschine, du bist eine KI
FreeHAL: Ja.
Mensch: Bist du ein Mensch oder eine Maschine?
FreeHAL: Ich heisse Freehal
bin 50
Bei einer oder Frage wird Freehal vermutlich nur nach dem Mensch suchen, nicht aber nach der Maschine, deshalb auch keine Antwort.
Mensch: Aus was besteht die Atomhuelle?
FreeHAL: Ich weiss das nicht, kannst Du Es Mir sagen?
Mensch: Aus was besteht Seife?
FreeHAL: Sorry, Keine Ahnung.
Mensch: Aus was besteht ein Diamant?
FreeHAL: Tut Mir leid, das kann Ich nicht sagen.
Antworten stehen selbstverst?ndlich alle in der Datenbank mie SQLite ?berpr?ft.
FreeHAL: Ein Bug ist ein programmfehler in einer Software
Mensch: ??
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist ein Bug?
FreeHAL: Keine Ahnung, das kann Ich Dir nicht sagen.
Mir ist schon ?fters aufgefallen, das Freehal eine Frage weiss und dann wieder nicht weiss.
Trotz aller updastes soeben wir der Satz:
Du bist nicht unfehlbar, jedes Wesen macht Fehler .
nicht korrekt in der Datenbank abgespeichert, Freehal kennt keine Fehler.
Bei der Frage "Wo bist du" nimmt Freehal auch alle Antworten auf die Frage "Was bist du", dies mit dem Bewertungssystem zu korrigieren ist eine zeitraubende Aufgabe.
Gilt auch f?r die Frage "Wo liegt Berlin" und "Was ist Berlin" usw.
Wenn die Frage ohne Fragezeichen gestellt wird, wird sie in die Datenbank abgespeichert.
Bei der Beobachtung dieses Bugs ist mir aufgefallen, das mir Freehal Facts in der facts.pro gel?scht hat,als ich ?ber die Chart den Eintrag "Es geht Mir" gel?scht habe.
Mensch: Was ist Liebe?
FreeHAL: Wenn Ich das wuesste...
Mensch: Liebe ist die Zuneigung zwischen zwei Menschen
FreeHAL: Oh.
Mensch: Was ist Liebe?
FreeHAL: Keine Ahnung, das kann Ich nicht sagen.
Datenbankeintrag: ist 50
Liebe war in der memory falsch definiert, ich habe das ganze korrigiert, trotzdem keine Antwort.
Mensch: Hast du eine Seele?
FreeHAL: Ich habe
Mensch: Hast du eine Seele?
FreeHAL: Ich habe nicht
Mensch: Hast du eine Seele?
FreeHAL: Ich habe heute nur geplaudert
habe 100
Anscheinend wird das Wort Seele nicht bei der Antwort ber?cksichtigt, sondern nur bei "Ich habe..." gesucht.
Mensch: Bist du wahnsinnig?
FreeHAL: Ich bin wahnsinniger als Menschen nicht
bin 50
Das ist eigentlich ein altes Problem , das Freehal das nicht meistens ans Satzende setzt, das sollte so ge?ndert werden, das es an der richtigen Stelle steht.
Mensch: Kannst du denken
FreeHAL: Ich denken nicht, Ich entscheide durch logik
kann/can denken 50
Da Kann am Satzanfang immer eine Frage ist , solltest du dies vielleicht im Programm ber?cksichtigen, das Kann/Kannst am Anfang vom Satz nicht gespeichert wird.
Mensch: Das kannst du dir gut vorstellen
FreeHAL: Ja.
Mensch: Das kannst du dir nicht vorstellen
FreeHAL: Klar.
Mensch: Kannst du dir das vorstellen?
FreeHAL: Das ich vorstellen mir gut
Warning: Cannot modify header information - headers already sent by ?output started at /var/www/projects/freehal?at?home/html/inc/db?conn.inc:44? in /var/www/projects/freehal?at?home/html/user/edit?forum?preferences?action.php on line 168
Mensch: Eltern geben ihren Kindern Geborgenheit
FreeHAL: Klar.
Mensch: Wer gibt Kindern Geborgenheit?
FreeHAL: Wenn ich das wuesste...
Mensch: Wer gibt ihren Kindern Geborgenheit
FreeHAL: Ja.
geben 50
Da ich die facts nach jeder Eingabe ?berpr?fe d?fte die Frage "Wer gibt ihren Kindern Geborgenheit" ?Das es eigentlich heissen sollte "Wer gibt seinen Kindern Geborgeheit ist mir klar?, abgespeichert worden sein, obwohl ein Fragewort am Anfang steht.
Laut dir werden Fragen nicht abgespeichert, oder ist das ein neues Feature?
Kannst du nicht die Gro?schreibung mit der memory verkn?pfen, da ja irgendwann einmal in dieser ALLE W?rter richtig definiert sind und somit dann auch eine richtige Gro?schreibung gegeben w?re.
Mensch: Wer gibt ihren Kindern Geborgenheit
FreeHAL: Eltern geben ihren kindern geborgenheit
Mensch: Wer gibt seinen Kindern Geborgenheit?
FreeHAL: Da kann ich dir leider keine Antwort geben.
Eigentlich sollte Freehal auch auf die zweite Frage richtig Antworten.
Mensch: Was ist ein Hacker?
FreeHAL: Ein hacker verschafft sich unerlaubten zutritt zu fremden computern
Mensch: ??
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist ein Hacker?
FreeHAL: Ein holzfaeller braucht eine axt
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist ein Hacker?
FreeHAL: Ein holzfaeller braucht eine axt
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist ein Hacker?
FreeHAL: Keine Ahnung.
Mensch: Was ist ein Hacker?
FreeHAL: Wenn ich das wuesste...
Mensch: Was ist ein Hacker?
FreeHAL: Ein holzfaeller braucht eine axt
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: Was ist ein Hacker?
FreeHAL: Keine Ahnung.
Mensch: Ist das ein guter Einfall?
FreeHAL: Nein.
Mensch: Ist das eine gute Idee?
FreeHAL: Nein.
Mensch: Das ist eine dumme Idee
FreeHAL: Ich habe dich leider nicht verstanden.
Mensch: Das ist eine tolle Idee
FreeHAL: Oh.
Mensch: Das ist ein toller Einfall
FreeHAL: Gut.
Mensch: Das ist eine super Idee
FreeHAL: Ich habe dich leider nicht verstanden.
Mensch: Das ist eine sehr gute Idee
FreeHAL: Ah.
Mensch: Das ist keine schlechte Idee
FreeHAL: Aha.
Mensch: Ist das eine gute Idee?
FreeHAL: Nein, ganz im Gegenteil.
Mensch: Ist das eine gute Idee?
FreeHAL: Nein.
Mensch: Ist das eine gute Idee?
FreeHAL: Nein.
Mensch: Bist du dumm?
FreeHAL: Ich bin dumm nicht
Mensch: Du bist
Die Revision 100 wird von Sophos als ein Virus erkannt.
Ich bin mir nicht klar welche Eigenschaft von FreeHAL daf?r verantwortlich ist.
Anscheinend ist das bei neueren kein Problem.
Ist mir aufgefallen und ich will euch die Information nicht vorenthalten.
I have downloaded revision 46 and got this error message:
------------------------------------------------
quix0r?debian:?/hal2009? cmake .
-- Configuring done
CMake Error in CMakeLists.txt:
Cannot find source file "libaw?sdk.a". Tried extensions .c .C .c?? .cc
.cpp .cxx .m .M .mm .h .hh .h?? .hm .hpp .hxx .in .txx
-- Build files have been written to: /home/quix0r/hal2009
------------------------------------------------
All what I can find ?by Google and co.? is a prohibitory lib called active worlds but which does not include libaw?sdk.a. Can someone provide this file? Or can you relink to a free replacement which I can compile?
Users are unable to change the number of allowed work units on new accounts created since about 15 Jul. Accounts created before that can freely change the number from 1-25
Ich denke mir man sollte die Priorit?t der Suche vom Thesaurus auf die
Datenbank legen, wenn du Freehal nicht f?ndig wird, den Thesaurus zu rate
ziehen, momentan scheint es eher umgekehrt zu sein.
Mensch: was ist ein sofa?
FreeHAL: Ruhemoebel bedeutet chaiselongue
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: was ist ein sofa?
FreeHAL: Chaiselongue bedeutet ruhemoebel
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: was ist ein sofa
FreeHAL: Ruhemoebel bedeutet chaiselongue
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: was ist ein sofa?
FreeHAL: R?cami?re bedeutet liege
Mensch: --
FreeHAL: Bewertung erfolgreich.
Mensch: was ist ein s
I ran freehal-qt from new install, i.e. only extracted it and run, and asked
what is the capital of india?
the following happened:
? Begin parse?using?verb.
? End parse?using?verb.
? :: current a - n
? Begin parse?using?entity.
? ?entity?key?name: objects
? Begin parse?what: ?found?subject ?? 1, ?what ?? full
? :: current that - art
? Begin parse?using?entity.
? ?entity?key?name: objects
? Begin parse?what: ?found?subject ?? 1, ?what ?? full
? :: current is - vt
? Begin parse?using?verb.
?
Z.B. bei "Wie sp?t ist es?" werden ?, ?, ?, ? vom CGI-Script nicht umgewandelt, FreeHAL kommt damit nicht klar.
Gru?
Tobias
Tobias Schulz
19. September (23:30 Uhr)
Der Antwortprozess
1.) Eine Aussage oder Frage wird eingegeben. 2.) Die Aussage wird von der GUI über TCP an den Kernel gesendet (runner.exe). Dort wird ein Perl-Interpreter gestartet, der die Verarbeitung übernimmt. 3.) Die Aussage wird in Sätze getrennt, die dann hintereinander abgearbeitet werden 4.) Häufige Rechtschreibfehler und umgangssprachliche Ausdrücke werden korrigiert 5.) Die Aussage wird in FreeHAL-Deutsch umgewandelt: Dabei werden, falls nicht schon geschehen, die Kommaregeln streng angewandt, Ausrufe wie "hmm" entfernt, mehrere Möglichkeiten wie "nenne mir" und "zähle auf" auf eine reduziert 6.) Jedem Wort wird eine Wortart zugewiesen und die Aussage wird in Haupt- und Nebensätze sowie Satzteile aufgeteilt 7.) Personalpronomen werden aufgelöst (z.b. "er" und "sie" zur zuletzt erwähnten männlichen/weiblichen Person) 8.) Es wird berechnet, ob es sich um eine Aussage oder eine Frage handelt, und wenn ja, um welche Art von Frage, um Fragewörter überflüssig zu machen und diese Informationen in einer Variable festzuhalten 9.) Nachdem nun die Bedeutung der Aussage erkannt wurde, wird eine Liste an Variablen erstellt, die zur Abfrage einer möglichen Antwort aus der Datenbank dienen. Dazu gehören Verben, Modalverben, Subjekte, Objekte, adverbiale Bestimmungen, und die Art der Aussage. 10.) Diese Information wird nun als CSV-Datensatz an den in C geschriebenen Teil des Kernels übergeben. 11.) Als erstes werden vom C-Teil alle Wörter, die eine gewisse Bedeutung innerhalb der Aussage haben, herausgefiltert. Artikel und ähnlich häufige Wörter bleiben also außen vor. 12.) Alle Synonyme dieser Wörter werden bestimmt. 13.) Nun werden alle Sätze gesucht, die eins dieser Wörter oder deren Synonyme enthalten. Zusätzlich wird überprüft, ob durch Schlussfolgerung weitere Sätze in Frage kämen. 14.) Die Sätze durchlaufen nun iterativ verschiedene Bewertungsverfahren. Beispielsweise wird überprüft, ob das Subjekt auch in der Antwort als Subjekt oder Objekt vorkommt und nicht etwa nur in einer adverbialen Bestimmung (außer, es sind zu wenig andere Sätze vorhanden). Auch wird mit Hilfe der vorher berechneten Art der Aussage sichergestellt, dass beispielsweise auf eine Frage nach einer Ortsangabe nicht mit einer Zeitangabe geantwortet wird. 15.) Da die weitere Verarbeitung wieder im Perl-Teil stattfindet, wird Liste möglicher Antworten zurückgesendet. 16.) Nun wird mit dem Bewertungssystem eine Antwort aus der verbleibenden Liste herausgesucht, die am besten passt, wobei immer ein Restzufall eine Rolle spielt. 17.) Nachdem alle eventuell in der Antwort enthaltenenen Variablen (wie z.b. Tag, Monat, Jahr) ersetzt wurden, werden alle Wörter auf Groß- und Kleinschreibung überprüft. 18.) Die fertige Aussage wird wieder an den C-Teil geschickt, der sie über TCP der GUI übermittelt.
Tobias Schulz
12. September (16:30 Uhr)
In den letzten drei Monaten hat sich viel getan, auch wenn ich hier keinen neuen Eintrag geschrieben habe. Im wesenlichen wurden Bugs korrigiert und die Datenbank erweitert. FreeHAL befindet sich im Monat in einer Art Stabilisierungsphase, bevor neue Features implementiert werden, soll der vorhandene Code möglichst bugfrei werden.
Die rund 165 korrigierten Bugs können auf der Seite des Bugtrackers eingesehen werden.
Die Korrektur der Wortschatz-Datei, an der Dietmar seit längerer Zeit arbeitet, ist nun zu 51,6% abgeschlossen.
Tobias Schulz
20. Juni (14:54 Uhr)
Seit ein paar Stunden werden ständig Spam-Kommentare zu diesem Thread erstellt. (Bis jetzt) 481 Server scheinen dafür zuständig zu sein - eine Liste hier -, die seit eben per iptables ausgesperrt sind.
Tobias Schulz
15. Juni (12:28 Uhr)
Endlich Ruhe nach der Aufregung der letzten Tage bei BOINC. Ich habe eben Revision 136 hochgeladen. Neu ist...
1.) Die Veränderungen in der GUI sind nun erstmals in einer offiziellen Version enthalten. Was vielleicht zuerst auffällt, ist die Übersetzung auf Englisch. Vorher standen im Quellcode die deutschen Bezeichnungen, ab jetzt ist alles auf Englisch und wird mit Qt-eigenen Mitteln in die Sprache des Benutzers übersetzt. Mit dem bei Qt mitgelieferten Qt Linguist lassen sich solche Übersetzungsdateien erzeugen.
2.) FreeHAL versteht nun eine zusäzliche Syntax, um Synonyme und allgemein zusammenhängende Wörter zu lernen.
Eingabe: properties: Haus: Gebäude @ Wohnort @ Arbeitsplatz @ aus Beton gebaut @ aus Ziegeln gebaut @ aus Holz gebaut
oder (äquivalent): Eingabe: properties: Haus: Gebäude, Wohnort, Arbeitsplatz, aus Beton gebaut, aus Ziegeln gebaut, aus Holz gebaut
3.) Durch Optimierungen an der Tabellenstruktur verbraucht die Datenbankdatei weniger Platz und FreeHAL antwortet schneller.
Tobias Schulz
11. Juni (15:28 Uhr)
Die Aussagekraft einer Aussage
Was macht eine Aussage, einen oder mehrere Sätze, in einem Text wesentlich? Das ist eine wichtige Frage, die geklärt werden muss, wenn man vorhat, eine künstliche Intelligenz zu entwickeln. Denn im Gegensatz zu uns ist es für eine Maschine nicht einfach, zu entscheiden, welche Informationen wichtig sind und welche ohne großen Verlust verworfen oder aufgeschoben werden können. Die Aussagekraft einer Aussage sollte außerdem in einer Zahl ausgedrückt werden können, um gut verarbeitet werden zu können. Um eine Formel zu entwickeln, mit der sich die Aussagekraft einer Aussage berechnen lässt, habe ich knapp fünftausend zufällige Sätze aus Texten, die ich hier im FreeHAL-Projekt vorliegen hatte, per Script analysiert, darunter aus dem Forum und aus e-Mails.
Ein Beispiel: Am ersten Juni habe ich folgenden Satz geschrieben: "Es gibt nun erstmals eine grafische Oberfläche für die Qualitätsssicherung, bei der man eine Liste an Fragen und Eingaben aus Dateien laden und automatisiert beantworten lassen kann."
Was macht diesen Satz aussagekräftig, bzw. wie aussagekräftig ist er überhaupt? Zuerst sind mir folgende Punkte aufgefallen:
- Je konkreter Nomen und Adjektive sind, desto aussagekräftiger sind sie auch. Das lässt sich mit einem geeigneten Thesaurus überprüfen. "Grafische Oberfläche", "Qualitätsssicherung", "Fragen", "Eingaben" und "Dateien" sind alles keine sehr konkreten Begriffe, und ihre Platzierung hängt auch immer davon ab, wie umfangreich und wie genau die Zuordnungen zu Oberbegriffen sind. Dieses Kriterium hat sich als besonders wichtig herausgestellt (hier: 40%). - Das gleiche gilt für Verben, allerdings habe ich hier nur 15% vergeben. - Adverbien/adverbiale Bestimmungen konkretisieren Nomen bis auf wenige Ausnahmen nicht, sondern weiten die Aussage aus und machen sie somit ebenfalls aussagekräftiger, können sie aber auch so weit verlängern und verwässern, dass sie an Klarheit verlieren, im Gegensatz zu Nomen und Adjektiven, die, je konkreter sie sind, die Klarheit verstärken und es ermöglichen, mit der gleichen oder einer etwas höheren Wortanzahl ungleich mehr zu sagen. Die Adverbien können die Aussagekraft also nicht unendlich erhöhen, sondern es muss eine Optimalanzahl geben, in Abhängigkeit zu der Summe aus Subjekten und Objekten (s.u.). Der Grundgedanke hier ist, dass es nicht so viele Adverbien geben sollte, wenn sowohl Subjekt, als auch direkte und indirekte Objekte vorhanden sind, wie wenn nur Subjekt und ein Objekt oder sogar nur Subjekt vorhanden sind, eins aber mindestens vorhanden sein sollte. (hier: 30%) - Pronomen, bei denen das Nomen, für das sie stehen, nicht ebenfalls im Satz angegeben ist, reduzieren die Aussagekraft. (Gewichtung: 15%)
Ein erster Vorschlag zur Berechnung der Aussagekraft wäre daher (für einen Haupt- oder Nebensatz):
K: Aussagekraft aus R im Intervall I = [0, 1]
OI: indirektes Objekt
OD: direktes Objekt
S: Subjekt
V(i): Verb i im Satz (i im Intervall [0, AV])
EOI: 1, wenn indirektes Objekt existiert, sonst 0
EOD: 1, wenn direktes Objekt existiert, sonst 0
ES: 1, wenn Subjekt existiert, sonst 0
AA: Anzahl der Adverbien
AV: Anzahl der Verben
APU: Anzahl der Pronomen, bei denen das Nomen, für das sie stehen, nicht im Satz angegeben ist
TP(x): Platzierung des Wortes x im Thesaurus (0,0 = oberster Oberbegriff, 1,0 = jeder Begriff ohne Unterbegriffe)
Zurück zum Beispiel "Es gibt nun erstmals eine grafische Oberfläche für die Qualitätsssicherung, bei der man eine Liste an Fragen und Eingaben aus Dateien laden und automatisiert beantworten lassen kann." Hier soll nun berechnet werden, wie wichtig der Hauptsatz "Es gibt nun erstmals eine grafische Oberfläche für die Qualitätsssicherung" ist.
OI: -
OD: eine grafische Oberfläche
TP(OD): 0,8 (Beispiel)
S: Es
TP(S): 0,5 (Beispiel)
V(1): gibt
TP(V(1)): 0,4 (Beispiel)
EOI: 0
EOD: 1
ES: 1
AA: 3 (nun, erstmals, für die Qualitätssicherung)
AV: 1
APU: 0
K = [ 40*(0,5/1) + 15*(0,4)/1 + 15*1/(1*2+1) + 30*(1/(1+2*(">4-0-0-1-3">))) ] / 100
K = 0,61 = 61%
Tobias Schulz
01. Juni (21:11 Uhr)
In den letzten Tagen habe ich einiges an der GUI geändert.
1.) Es gibt nun erstmals eine grafische Oberfläche für die Qualitätsssicherung, bei der man eine Liste an Fragen/Eingaben aus Dateien laden und automatisiert beantworten lassen kann. 2.) Der Statusmeldungen des Servers, die früher auf die Standardausgabe ausgegeben wurden, sind nun in der GUI zu finden.
FreeHAL kann nun auch alle Wörter, die zu einem bestimmten Oberbegriff gehören, aufzählen.
Mensch: Zähle mir alle Farben auf
FreeHAL: Weiss, indigo, dunkelrot, altrosa, tiefblau, der mann ohne eigenschaften, indigo, die farbe lila, rot, locus solus, die sonne, schwarz, lila, der tod des vergil, schwarz, blau, das siebte kreuz, der herr der ringe, rot eine farbe, farblos, hellgruen, dunkelrot, gelb, hellgrau, kabale und liebe, hellbraun, der mann ohne eigenschaften, hellblau, gruen, dunkelbraun, hellrosa, hellgruen, gras, violett, tiefblau, silver, rosa, dunkelblau, das siebte kreuz, blau, haemoglobin, die farbe lila, hellrosa, dunkelgruen, braun, gruen, rosa, dunkelgrau, timm thaler, hellgelb, ich, grau, kabale und liebe, hellgelb, hellbraun, violett, sandbraun, dunkelgruen, farblos, schneeweiss, locus solus, grau, hellgrau, altrosa, sandbraun, griess, ocker, die farbe, tuerkis, hellblau, braun, alice walker, weiss, dunkelblau, farbe, silver, gelb, ives, lila, ocker, rot, schneeweiss, der tod des vergil, dunkelgrau, perkin, tuerkis, dunkelbraun, ulrich vogel
Manche dieser "Farben" werden im semantischen Netz anscheinend falsch zugeordnet...
Mensch: Nenne mir alle Tiere
FreeHAL: Der schuetze, initiert, ein maultier, wasser, repaesentiert, akreditiert, mnevis, ein lebewesen, die saeugetiere, die kuh, ein hund, pelletier, ein delphin, ein pulsar, ein loewe, tierra del fuego, tiere, lebewesen, ein baer, initiert, eine fledermaus, die seeanemone, buchis, ein mammut, der tierpark, zivilisation, intepretiert, akreditiert, der gepard, der maulwurf, alexandre dumas, initieren, java, eine gazelle, sternzeichen, katzen, hunde, ein frosch, stephen king, pelletier caventon, eine menagerie, ein vogel, spielen, george orwell, bata, ich, ein schnabeltier, die fauna, repaesentieren, tierra del fuego, repaesentieren, initieren, eichhoernchen, exisitiert, kemuer, dachse, ein affe, der habenbeck tierpark, ein gerber, eine maus, repaesentiert, oolong, viele lebewesen, apis, ein nautilus, ein fisch, eine huendin, intepretiert, alexandre dumas, fische, exisitiert, ein einhorn, anat
Wenigstens sind so Fehler in der Datenbank leichter zu finden....
Tobias Schulz
17. Mai (15:54 Uhr)
Eben habe ich Revision 134 hochgeladen. Der Antwortprozess ist nun wesentlich schneller, weil FreeHAL vor dem eigentlichen Suchen im semantischen Netz eine Kopie erzeugt, die aber nur die relevanten Teile enthält. Fragt man beispielsweise nach FreeHALs Namen, werden die Geographiedaten gar nicht in den Speicher geladen.
Mensch: Sobald Die Sonne scheint, freut A B
Mensch: Es freut dich für mich, dass schönes Wetter ist
Mensch: Bei mir scheint die Sonne.
FreeHAL: Es freut mich fuer dich, schoenes wetter ist
Anfang April wurde eine neue Funktion hinzugefügt: FreeHAL erkennt andere FreeHALs im LAN und synchronisiert die Wissendatenbank. Dazu ermittelt es die eigene IP-Adresse und die Subnetzmaske und geht mit Hilfe von einigen Threads in einer Minute ca. 250 IP-Adressen durch. Dadurch ist Faktenwissen normalerweise nach Sekunden oder im einstelligen Minutenbereich im gesamten LAN verfügbar.
Die Unterstützung für die englische Sprache wurde vervollständigt. FreeHAL schaltet in den englischen Modus um, wenn die Sprache des Betriebssystems auf Englisch eingestellt ist und wenn man "en" oder "English!" in das Eingabefeld eintippt. Als Wissensdatenbank steht Conceptnet zur Verfügung.
Die GUI wurde im Quellcode überarbeitet und neigt nun im Problemfall nicht so sehr zum Abstürzen.
Tobias Schulz
03. April (10:50 Uhr)
Mensch: Sobald Die Sonne scheint, freut A B
FreeHAL: ...
Mensch: Es freut dich für mich, dass schönes Wetter ist
FreeHAL: ...
Mensch: Bei mir scheint die Sonne.
FreeHAL: Es freut mich fuer dich, dass schoenes wetter ist
Wir sind gerade damit beschäftigt, die Kommunikationsmöglichkeiten zu erweitern. Daher hier ein Auszug aus einer Mail:
Angenommen, (2) ist ein Hauptsatz und (1) ein Nebensatz, die durch Wenn verknüpft sind.
"(2), wenn (1)"
... oder ...
"wenn (1), dann (2)"
z.B: "A ist B groß, wenn A einen Durchmesser von B hat."
Diesen Fakt kann FreeHAL anwenden, indem es, wenn (2)-ähnliche Sätze eingegeben werden, auch nach (1)-ähnlichen Antworten sucht. Es sucht also nach dem Durchmesser, wenn nach der Größe gefragt wird.
Wir gehen damit vom Ziel zum Anfang, denn in diesem Falle wird meistens eine Frage eingegeben.
Für obiges Beispiel benötigen wir aber eine Möglichkeit, von (1) zu (2) zu gehen und nicht von (2) zu (1), auch deshalb, weil der Ausgangspunkt eine Aussage ist ("Bei mir scheint die Sonne"), und keine Frage. Im Frage-Fall handelt es sich um Zustände (Größe), im Aussage-Fall um Aktionen, die hintereinander oder gleichzeitig ablaufen. Daher denke ich, dass wir zur Unterscheidung für FreeHAL beim Beibringen nicht "wenn", sondern z.B. "sobald" verwenden müssten.
Sonst müssten wir schreiben: "Die Sonne scheint, wenn A B freut", was ja den Sinn umkehrt.
Daher mein Vorschlag: "Sobald Die Sonne scheint, freut A B"
Da es auch Änderungen an der runner.exe gibt, muss ich die erst noch in Revision 117 hochladen.
Tobias Schulz
20. März (18:16 Uhr)
Nach fast 3 Wochen ist nun Revision 114 erschienen. Die meisten Änderungen sind eher Detailverbesserungen (38).
Unser Datenbankauthor hat den Wortschatz nun bereits bis Zeile 58000 auf Fehler überprüft, Danke Dietmar! Damit sind mindestens 28,7% von FreeHALs generiertem Wortschatz korrigiert.
FreeHAL 2009 wurde nun auf Solaris portiert. Ein Tarball wird in Launchpad bald zum Download bereitstehen.
Tobias Schulz
20. Februar (17:01 Uhr)
Das Bewertungssystem läuft nun recht stabil, ist aber bisher nur im SVN enthalten. Nun muss mehr Zeit für die Entwicklung des Parsers aufgewendet werden.
Tobias Schulz
15. Februar (14:45 Uhr)
Vorgestern habe ich Revision 108 veröffentlicht. Wichtige Features, die jetzt in FreeHAL 2009 noch fehlen, sind:
Das Bewertungssystem
Es ist zwar bereits teilweise implementiert, aber noch zu instabil (die index_of_conbination.cfg wird manchmal einfach geleert), sodass es in r108 noch nicht enthalten ist.
Eine stabile SQL-Abfrage
Dazu muss vor allem noch mehr getestet werden.
Die Steuerungsoperatoren mit / am Anfang
... wie /STATUS, /GEN_LIST, /STOP, /RELOAD, /DEFINE, ...
Tobias Schulz
29. Januar (unbekannte Uhrzeit)
Eine erste Version von FreeHAL 2009 auf Windows 7
Was ist FreeHAL 2009? FreeHAL 2009 wird das bisherige FreeHAL dieses Jahr vollstä, ndig ersetzen. FreeHAL 2009 lä, uft, je nach Bedarf, auf Perl 5 oder Parrot. Mehr Informationen finden Sie auf http://tobias-schulz.info/.
Kein Hin und Her mehr. Kein unverstandener Satz bei korrekter Grammatik mehr! FreeHAL 2009 funktioniert einfach, und ist damit auch für Endanwender geeignet.
Tobias Schulz
14. Dezember (21:10 Uhr)
Planung bis Weihnachten
In den nächsten zehn Tagen sollen keine neuen Features mehr hinzugefügt werden, sondern vorhandene stabilisiert werden. In diesem Status befindet sich das Projekt seit etwas über einem Monat.
In zehn Tagen wird eine FreeHAL-Version erscheinen, die wirklich stabil funktioniert.
Planung nach Weihnachten
http://www.parrotcode.org/
Im März 2009 soll Parrot 1.0 erscheinen. Parrot ist eine registerbasierte virtuelle Maschine, mit der es möglich ist, Module für FreeHAL in allen von Parrot unterstützten Skriptsprachen zu schreiben. Parrot wird mit Perl 6 das bisherige Perl 5 in FreeHAL ablösen.
Tobias Schulz
25. November (unbekannte Uhrzeit)
Auf der Seite [http://web.freehal.org/page/setigermany-entwicklerunterst-tzungstruppe SETI.Germany Entwicklerunterstützungstruppe] liste ich nun von SETI.Germany-Mitgliedern bereitgestellte Rechner auf.
Tobias Schulz
15. November (11:50 Uhr)
FreeHAL ist einem ständigen Wandel unterzogen. Aufgrund der vielen Verbesserungen, Umstrukturierungen und korrigierten Bugs ändert sich auch ab und zu die Dateisystemstruktur.
Die Datei runner.pl (auch zu finden als runner.exe) soll sich über Monate nicht ändern. Sie hat nur die Aufgabe, boot.pl aus dem Netz zu laden. boot.pl bestimmt das weitere Vorgehen beim Start, etwa, ob Updates nachgeladen werden. Ist kein Internet verfügbar, bleibt boot.pl auf dem letzten verfügbaren Stand und wird ebenfalls ausgeführt.
Boot.pl erkennt durch Steuerdateien (die mit "do-*" anfangen) und Kommandozeilenparameter, in welchem Modus FreeHAL starten soll. Dann wird die entsprechende Datei ausgeführt, die traditionell mit "jeliza-" anfängt. Erst jetzt werden Module wie "AI::FreeHAL::Module::Tagger", der Tagger, in den Speicher geladen. AI::Util ist dafür zuständig, das Laden der Module zu koordinieren.
Folgende Dateien gehören zum aktuellen FreeHAL-Kern:
In der aktuellen Betaversion ist FreeHAL nun noch schneller und skalierbarer. Eine SQLite oder MySQL-Datenbank mit bis zu 80 Millionen Fakten kann ohne großen Geschwindigkeitsverlust benutzt werden. Auch einige Bugs wurden behoben.
Tobias Schulz
20. Oktober (19:41 Uhr)
Seit dem 4. Oktober wurde die Stabilität erhöht und einiges am Code überarbeitet. Ein neues Beispielgespräch liegt unter Beispielgespräche vor. Der Code, der für das Erkennen, welcher Eingabesatz zu welchem Fakt passt, zuständig ist, wurde in die Datei Selector.pm ausgelagert. Zusätzlich wurde ein sog. Low-Latency-Modus eingeführt, der FreeHAL besonders schnell starten und reagieren lassen soll. Er lässt sich über die Konfigurationsdatei deaktivieren.
Die aktuellen Änderungen findet man in der Betaversion.
Tobias Schulz
04. Oktober (08:55 Uhr)
In der letzten Zeit gab es einige BOINC-Bugs zu beheben und einiges zu übersetzen, am FreeHAL-Kern gab es außer ca. 20 eher unwichtigen Bugfixes noch
keine Neuerungen. Dafür wurde die GUI überarbeitet, das Starten von FreeHAL auf Runner.exe umgestellt und die GUI in Englisch und
Spanisch übersetzt. Im Falle von Englisch und Deutsch startet FreeHAL auch das englische bzw. deutsche FreeHAL.
Mit diesen Neuerungen ist heute morgen Revision 65 erschienen.
Tobias Schulz
26. September (22:08 Uhr)
Die Parser-Fehler unbeachtet, kann man folgendes sagen:
- 73,6% der mit BOINC geparsten Sätze aus Wikipedia sind (scheinbar) einfach zu parsen, wenn auch mit Taggerfehlern, aber der Sinn ist enthalten
:Sie werden von FreeHAL selbst als "SIMPLE" erkannt und BOINC so gemeldet
- 22% sind recht komplex zu parsen und enthalten eine Menge Fehler
:Diese werden als "COMPLEX" erkannt,
- 4,4% sind schlicht kein FreeHAL-Deutsch, dh. sie werden von FreeHAL selbst als "BROKEN" erkannt und habe bestimmte Rechte nicht, wie z.b. ins
Update oder auch nur in die Datenbank zu kommen.
Ich denke, diese semantische Selbsteinschätzung ist wichtig, weil FreeHAL so die Sätze selbst einordnen kann, und teilweise auch sich selbst
korrigieren kann (z.b. von Verb zu Adjektiv).
Tobias Schulz
25. September (15:50 Uhr)
Momentan sehe ich keine Lösung für den Umgang mit Nicht-ASCII-Zeichen in FreeHAL, da Unicode wegen der nicht gegebenen Kompatibilität mit
traditionellen ASCII-"Erweiterungen" (und umgekehrt natürlich) einige Probleme machen würde.
Der Satz...
Die ehemalige Landgemeinde HvÃtarsÃða liegt im Westen Islands in der Region Vesturland
...wird also zu:
Die ehemalige Landgemeinde Hvtarsa liegt im Westen von Island in der Region Vesturland.
23. September (20:15 Uhr)
- In der letzten Zeit waren wir damit bechäftigt, das BOINC-Projekt FreeHAL@home in einen stabilen Zustand zu bringen.
- Die Idee , FreeHAL verteilt auszuführen, wurde umgesetzt. Die Onlineversion läuft jetzt nicht nur auf dem Server, der Code wird im
nächsten Download enthalten sein.
:[http://demo.online.freehal.org/jeliza-auto-client.pl Die neue Idee testen!]
Tobias Schulz
12. September (17:30 Uhr)
Der Satzparser wurde so erweitert, dass nun auch Sätze wie dieser verstanden werden, innerhalb einer halben Sekunde:
Die Energie, die eine Fliege, die mit annähernd Lichtgeschwindigkeit
auf die Erdoberfläche stürzt, freisetzt, entspricht etwa der von 70.000 Litern Benzin.
Um das zu erreichen, geht der Parser nun rekursiv durch die verschachtelten Nebensätze.
Tobias Schulz
07. September (21:24 Uhr)
Revision 60 von FreeHAL ist gleich verfügbar
Einige Bugs wurden behoben.
Tobias Schulz
06. September (20:55 Uhr)
Seit heute funktioniert beispielsweise folgendes:
Umweltorganisation Oceana uebt Kritik an Ignoranz gegenueber der Beifang_Problematik
Schon 25 Jahre vor Beginn der bekannten Mordserie soll es den ersten gleichartigen Fall gegeben haben
Asif Ali Zardari, der Witwer der ermordeten Oppositionspolitikerin Benazir Bhutto, hat die Praesidentschaftswahl in Pakistan gewonnen
Die Europaeische Kometensonde Rosetta ist seit vier Jahren unterwegs zum Kometen Tschurjumow_Gerassimenko
Tobias Schulz
05. September (17:01 Uhr)
Seit heute werden auch z.b. diese Sätze verstanden:
Asif Ali Zardari, der Witwer der ermordeten Oppositionspolitikerin Benazir Bhutto, hat die Präsidentschaftswahl in Pakistan gewonnen
Umweltorganisation Oceana uebt Kritik an Ignoranz gegenueber der Beifang_Problematik
Schon 25 Jahre vor Beginn der bekannten Mordserie soll es den ersten gleichartigen Fall gegeben haben
Die Europaeische Kometensonde Rosetta ist seit vier Jahren unterwegs zum Kometen Tschurjumow_Gerassimenko
Tobias Schulz
05. September (17:01 Uhr)
FreeHAL lernt nun auch beispielsweise folgende Sätze korrekt:
Forscher entdeckten zentralen Mechanismus fuer viele krankhafte Stoffwechselstoerungen
Neue Technik senkt Beifang um fast 90 Prozent
Fachleute hatten mit schlechten Arbeitsmarktdaten aus den Vereinigten Staaten gerechnet
Die Bundesanwaltschaft hat zum ersten Mal Details der Anklageschrift
gegen die im Sauerland festgenommenen mutmasslichen Terroristen veroeffentlicht
04. September (19:09 Uhr)
Update für Revision 56 von FreeHAL ist gleich verfügbar
Einige Bugs wurden behoben.
Heute hat Herr K. vom Linux-Magazin dem Projekt mitgeteilt, dass FreeHAL in der kommenden Ausgabe des Magazins vertreten sein wird, 11/2008.
Tobias Schulz
01. September (19:09 Uhr)
Revision 56 von FreeHAL ist gleich verfügbar
Einige Bugs ohne Nummer sowie wurde behoben.
Tobias Schulz
30. August (11:20 Uhr)
Revision 55 von FreeHAL ist gleich verfügbar
Folgende Bugs wurden behoben:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Nachtrag
Die Satzparsefähigkeiten wurden so erweitert, dass auch Sätze wie die
folgenden verstanden werden:
Zonen zum Schutz von Fischen bewahren die Korallen nicht vor der
gefürchteten Bleiche
bewahren <> zonen <> die korallen <>
, nicht, vor der gefuerchteten bleiche, zum_schutz von fischen
<> <> <> <> <> <> <> 50
Nicht die Fans bringen bei Open_Air_Konzerten die Erde zum Beben
bringen <> die fans <> die erde <> bei
open_air_konzerten, nicht, zum_beben <> <> <> <> <> <> <> 50
Die Regierung will künftig für jeden stromsparenden Kühlschrank 150 Euro
spendieren
spendieren will <> die regierung <> 150 euro <> fuer jeden
stromsparenden kuehlschrank, kuenftig <> <> <> <> <> <> <> 50
Für Jagd auf Bodenbewohner ist Ultraschall_Ortung kaum geeignet
ist <> ultraschall_ortung <> kaum geeignet <> fuer jagd auf
bodenbewohner <> <> <> <> <> <> <> 50
Nachtrag 2
Auch wurde ein Feature eingefügt, dass FreeHAL etwas erzählt:
You: Erzähl was!
FreeHAL: Erstmals seit Beginn des Bundeswehreinsatzes in Afghanistan 2002 haben deutsche Soldaten vermutlich Zivilisten erschossen.
Tobias Schulz
22. August (22:32 Uhr)
Ich habe jetzt im aktuellen SVN eine Unterstützung für RSS Feeds
implementiert. FreeHAL nimmt die (anscheinend) wichtigsten Sätze aus den
Beschreibungen des Artikels und schreibt sie in eine prot-Datei, die dann auch
gleich geparst wird.
Aber: ein Beispiel für Unverständnis: [http://derstandard.at/?url=/?id=1219060448602]
Zwei neue Untersuchungen an Elefanten fördern Erstaunliches zutage: Die Tiere
können ziemlich gut rechnen und sie bewegen sich eleganter als vermutet
FreeHAL achtet nicht auf die Elefanten, wodurch das passiert:
Mensch: Koennen Tiere rechnen?
FreeHAL: Ja, Die Tiere koennen gut ziemlich Rechnen.
Natürlich wird man später selbst Feeds einfügen können, aber momentan habe
ich diese zwei integriert, weil ich den EIndruck hatte, dass die
Beschreibungstexte meist sehr gut verständlich für FreeHAL sind:
Nebenbei habe ich ca. 5 Satzparserbugs behoben, die dazu beitragen, dass
FreeHAL in Artikeln vorkommende Sätze besser parsen kann.
siehe:
Nachtrag
Anderes Beispiel:
[http://derstandard.at/?url=/?id=1219060449214]
Begriff in angloamerikanischer Welt noch recht präsent: Unterschiedliche Hautfarben hätten aber keine Aussagekraft, meint nun Genomik-Pionier Craig
Venter.
Mensch: Was weisst du ueber unterschiedliche Hautfarben?
FreeHAL: Unterschiedliche Hautfarben haetten keine Aussagekraft (meint nun genomik-pionier Craig Venter).
Tobias Schulz
22. August (9:40 Uhr)
Trees are an important component of the natural landscape because of their prevention of erosion.
Dieser Satz ist ein gutes Beispiel für einen englischen Satz, mit dem ein aktuelles FreeHAL gut klarkommt. Im Gegensatz zu Revision 52 erkennt
FreeHAL nun auch alles ab "because" erkennt korrekt.
Tobias Schulz
18. August (19:00 Uhr)
Revision 54 von FreeHAL ist verfügbar
Das deutsche Semantische Netz enthält zur Zeit 168.867 Beziehungen und 650.041 Wörter. Auch enthalten ist eine 1.561 Einträge große
Tippfehler-Verbesserungs-Datenbank. Der verwendete Thesaurus ist 153.583 Einträge groß.
Das englische Semantische Netz enthält zur Zeit 83.941 Beziehungen und 21.823 Wörter.
Freehal generiert durch logische Schlussfolgerung 1.529.571 Fakten aus der deutschen Datenbank und 743.178 Fakten aus der englischen Datenbank.
Diese beiden Datenbanken sind im Download von Revision 54 enthalten.
Tobias Schulz
11. August (20:10 Uhr)
Seit 3 Tagen konvertieren wir Daten aus Projekten wie [http://conceptnet.media.mit.edu/ ConceptNet]. Dort wird beispielsweise Allgemeinwissen auf
Englisch gesammelt und unter der GNU GPL zur verfügung gestellt. Heute Nacht hat unser Server bereits 41.125 Fakten konvertiert, es stehen noch
hunderttausende an. Ein großer Teil der konvertierten Daten kann bereits in der englischen Online-Version verwendet werden.
FreeHAL hat nun die Möglichkeit, mit hunderttausenden Fakten klarzukommen, ohne viel RAM zu verbrauchen oder langsamer zu werden, da wir nun eine
SQL-Datenbank benutzen (s. ). Der RAM-Verbrauch steigt nie über 70 MB.
Tobias Schulz
02. August (12:50 Uhr)
Heute wurde der 100. Bug in den Bugtracker eingetragen.
Tobias Schulz
02. August (12:50 Uhr)
Revision 52 von JEliza Perl ist verfügbar
Seit 3 Wochen gab es keine "offensichtlichen" Updates mehr, es hat sich jedoch viel getan. Neu ist vor allem der [http://bugs.freehal.org/
Bugtracker] auf Basis von Bugzilla, in dem in dieser Zeit bereits 90 Bugs gemeldet und die Hälfte davon schon verbessert wurden. Unser Server
erstellt mehrmals am Tag [http://wiki.de.freehal.org/wiki/index.php?title=FreeHAL/Betaversionen Betaversionen], automatisch auf Basis des aktuellen
Entwicklungsstands im SVN.
Tobias Schulz
13. Juli (19:15 Uhr)
Revision 52 von JEliza Perl ist verfügbar
Es ist nun möglich, Aktionen entweder als logische Abfolge oder als Gleichzeitigkeit anzugeben. Dazu werden einfach Nomen-Verb- bzw.
Adjektiv-Verb-Paare in Anführungszeichen gesetzt und durch "->" oder das Gleichheitszeichen getrennt. FreeHAL kann diese Beziehungen in verschiedenen
Situationen anwenden.
Ursache und Folge:
You: "Durst haben" -> "etwas trinken"
FreeHAL: (...)
You: Ich habe Durst
FreeHAL: Wieso trinken Du Nichts?
You: fürchtest du dich?
FreeHAL: Nein, Ich habe keine Angst vor Dir.
You: Ich fürchte mich
FreeHAL: Warum haben Du Angst??
Gleiche Bedeutung:
You: Wie groß ist Io?
FreeHAL: Der Jupitermond Io hat einen Durchmesser von 3630 Kilometer. , )
You: "groß sein" = "lang sein"
FreeHAL: Hmmm.
You: Wie lang ist Io?
FreeHAL: Der Jupitermond Io hat einen Durchmesser von 3630 Kilometer. , )
Komplexe Verbindungen wie die zwischen der Größe und dem Durchmesser ("A ist B groß, wenn A einen Durchmesser hat von B") müssen aber weiterhin durch
Variablen ausgedrückt werden. Hier liegt es an dem "Durchmesser *von* *B*". Dazu ist eine Nomen/Verb bzw. Adjektiv/Verb-Beziehung zu allgemein.
FreeHAL kann dem Benutzer auch Vorschriften machen:
You: Ich habe Durst
FreeHAL: Du solltest Etwas trinken.
You: Ich habe Durst
FreeHAL: Warum trinken Du Nichts?
You: Mein Bruder hat Durst
FreeHAL: Dein Bruder sollte Etwas trinken.
Allerdings kann jetzt auch das passieren:
You: Ich habe Angst
FreeHAL: Du solltest Dich fuerchten.
Daran wird noch gearbeitet.
Tobias Schulz
04. Juli (12:39 Uhr)
Revision 51 von JEliza Perl ist verfügbar
In der letzten Zeit wurden nur kleine neue Features eingeführt, stattdessen wurden unzählige Bugs korrigiert, die ich leider nicht alle hier
aufzählen kann. Gestern abend wurde folgendes korrigert:
Bug war: nicht passende Antwort
You: Bist du eine KI?
FreeHAL: Ja, das ist klar, Ich bin ein kuenstliches Wesen.
Bug war: "Durst" nicht erkannt
You: Ich habe Durst
FreeHAL: Du solltest Etwas trinken.
Bug war: "Woher" wurde als "her was" interpretiert, nach dem Schema: "Worin" (in was), "Woraus" (aus was), "Worauf" (auf was)
You: Woher kommst du?
FreeHAL: Ich komme aus dem Internet. :)
Bug war: Antwort war "Keine Ki hat kein Lieblingsessen"
You: Eine KI hat kein Lieblingsessen
FreeHAL: Langweilig . Wie denkst Du ueber einen Euro?
You: Hat eine KI ein Lieblingsessen?
FreeHAL: Nein, das ist klar, Ich habe kein Lieblingsessen, Ich muss Essen nicht.
You: Hat eine KI ein Lieblingsessen?
FreeHAL: Nein, das ist klar, Keine Ki hat ein Lieblingsessen.
Bug war: "Hauptstadt" wurde als Synonym für "Stadt" erkannt, was so nicht korrekt war
You: Wie heisst die Hauptstadt von Italien ?
FreeHAL: Rom ist die Hauptstadt von Italien.
Bug war: wurde nicht erkannt als "fuer was interessierst du dich?"
You: Du interessierst dich fuer fast alles
You: wofuer interessierst du dich ?
FreeHAL: Ich interessiere Mich fuer fast Alles.
24. Mai (12:39 Uhr)
Update für Revision 50 von JEliza Perl ist verfügbar
Genauso wie man eine Telefonnummer in Anführungszeichen setzt, kann man auch etwas anderes einsetzen:
You: "$$mday$$.$$month$$.$$year$$" ist ein Datum
FreeHAL: Tja ! Hmm, Wie denkst Du ueber eine moeglichst eindeutige Bestimmung eines Begriffes?
You: Wir haben "$$mday$$.$$month$$.$$year$$"
FreeHAL: Tja ! Hmm, Wie denkst Du ueber einen scheibenfoermiges Speichermedium?
You: Welches Datum haben wir?
FreeHAL: Wir haben 20 Juni 2008.
Es gibt bereits einige Variablen, die man beliebig benutzen kann:
$$month$$ - Monat (Zahl)
$$mday$$ - Tag des Monats (Zahl)
$$year$$ - Jahr (4-stellig)
$$yday$$ - Tag im Jahr
$$time$$ - Zeit: Stunde:Minute:Sekunde
Tobias Schulz
24. Mai (12:39 Uhr)
Update für Revision 50 von JEliza Perl ist verfügbar
- eine überarbeitete Implementierung des semantischen Netzes wird verwendet, die es nun möglich macht, das semantische Netz als HTML abzuspeichern
(Online-Version: [http://www.freehal.org/online/semantic_net_doc/]).
- einige kleinere Fehler
- Es gab einen Bug mit den Variablen:
Mensch: Ich bin Tobias Schulz
FreeHAL: Lies doch ein Buch.
: ..., der jetzt behoben ist:
Mensch: Ich bin Tobias Schulz
FreeHAL: Ich werde mir das merken ,)
Mensch: Ich bin Tobias Schulz
FreeHAL: Interessant!
Mensch: Mir ist langweilig
FreeHAL: Lies Doch ein Buch.
Mensch: Mir ist langweilig
FreeHAL: Ja, Dir ist anscheinend oft langweilig.
Tobias Schulz
24. Mai (12:39 Uhr)
Update für Revision 49 von JEliza Perl ist verfügbar
Wenn man bei der aktuellen Version "/GEN LIST" (in Analogie zu /STATUS) eingibt, wird im FreeHAL-Hauptverzeichnis 5 Sekunden später eine Datei
knowledge.txt angelegt, die alle Datenbankeinträge alphabetisch sortiert beinhaltet.
Tobias Schulz
21. Mai (16:29 Uhr)
Revision 49 von JEliza Perl ist verfügbar
Man kann nun Antworten von FreeHAL in deren Kontext bewerten. FreeHAL hat nun die Möglichkeit, mithilfe von Hidden-Markov-Modell-ähnlichen
Algorithmen zu entscheiden, welche Antwort in dem gegebenen Kontext am besten passt. Dabei erkennt es, welche Wörter den höchsten Informationswert
haben.
Passt die Antwort der KI nicht zur Frage, antwortet man einfach mit einem "-", passt sie gut zur Frage, antwortet man mit einem "+". Die
Wahrscheinlichkeit, dass eine durch "-" abgewertete Antwort im selben Kontext noch einmal auftritt, wurde dadurch verringert.
Doch FreeHAL benutzt nur Identifikation nicht den ganzen Satz, sondern die einzelnen Wörter im Satz. So wird auch ein Satz, der anders formuliert
wurde, ähnlich bewertet.
Hier ein Beispiel zur Auswahl der am meisten passenden Antwort zur "Was bist du?".
Mensch: Was bist du?
FreeHAL: Ich bin Weder maennlich noch Weiblich. , )
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin ein kleines scherzkeks. :)
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin beleidigt nie. :)
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin beleidigt nie.
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin Weder Mann noch Frau.
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin eine Ki.
Mensch: +
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin fast 2 Jahre Alt, wie Alt Du bist.
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin ein kleines scherzkeks.
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin eine Ki.
Mensch: Was bist du?
FreeHAL: Ich bin eine anstaendige Ki.
Mensch: +
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin eine Ki.
Mensch: +
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin sehr neugierig.
Mensch: Was bist du?
FreeHAL: Ich bin fast 2 Jahre jung. :)
Mensch: -
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin eine anstaendige Ki.
Mensch: +
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin eine Ki.
Mensch: Was bist du?
FreeHAL: Ich bin ein Programm. :)
Mensch: +
FreeHAL: Accepted.
Mensch: Was bist du?
FreeHAL: Ich bin ein Programm. , )
Mensch: Was bist du?
FreeHAL: Ich bin eine anstaendige Ki.
Am Ende bevorzugt FreeHAL eindeutig die drei Antworten, zu denen ich ein Plus eingegeben habe.
Nachtrag
FreeHAL benutzt nun für den größten Teil der Berechnungen einen Cache in der Datei cache__is_in.tmp (Name: wegen der Funktion is_in im Quellcode).
16. Mai (20:01 Uhr)
In dieser Datei werden nur Fragen an die Onlineversion, auf die es keine eindeutige Antwort gibt, angezeigt:
Man kann nun im Extra-Menü den Eintrag "Text scannen" auswählen, dort einige Sätze eingeben und auf OK klicken, Dann trennt JEliza den Text auf und
fügt alle Sätze in die Datenbank ein. Nach einem Punkt sollte dann immer ein Leerzeichen kommen, da ". ", "? " und "! " die Trenn-Punkte für Sätze
sind. Fragen werden dort ignoriert. Diese Methode entspricht der normalen Eingabe bis auf den Punkt, dass nicht der Antwortmechanismus, sondern nur
die Lernfunktionen aufgerufen werden.
Nachtrag
Mensch: Titan hat einen Durchmesser von 5150 kilometern
JEliza: Ja.
Mensch: Wenn A einen Durchmesser von B hat, ist A B groß
JEliza: Ja.
Mensch: Wie groß ist Titan?
JEliza: Titan ist 5150 kilometern gross, weil Titan einen Durchmesser hat von 5150 kilometern. , )
Die Variable B nimmt hier "Zahl Kilometer" auf, A den Namen.
Nachtrag
JEliza unterstützt nun eine einfache Form dynamischer Rückfragen.
A und B können Subjekte und Objekte aufnehmen. Mit dem Symbol "=>" wird der nachfolgende Satz als Antwortmöglichkeit auf den Satz vor "=>"
registriert. Die Variablen müssen im Bereich von A bis H liegen.
Mensch: A hat B gegessen => wie hat B A geschmeckt => hat B A geschmeckt
JEliza: (...)
Dann sind folgende Antworten möglich:
Mensch: Meine Oma hat ein Wienerschnitzel gegessen
JEliza: Wie hat das Wienerschnitzel deiner oma geschmeckt?
Mensch: Meine Oma hat ein Wienerschnitzel gegessen
JEliza: Hat das Wienerschnitzel deiner oma geschmeckt?
Tobias Schulz
02. Mai (12:16 Uhr)
Revision 46 von JEliza Perl ist bald verfügbar
- Die Unterstützung der auf der Qualitätssicherungsseite aufgeführten Beispielfragen wurde verbessert
- JEliza erkennt nun auch Wörter, die mit "lich[e,es,en,er]" enden, als Adjektive
Nachtrag
Früher musste man, wenn man nach beispielsweise der Hauptstadt Deutschlands fragen wollte, sagen:
Wie heißt die Hauptstadt von Deutschland?
Die Genitiv-Form erkannte JEliza nicht als das selbe:
Wie heißt die Hauptstadt Deutschlands?
JEliza erkennt nun auch die zweite Form. Aber dazu muss es natürlich auch wissen, dass die Form mit "s" am Ende den Genitiv darstellt. Daher sollte
man es entweder als "eine Bezeichnung", "ein Name" oder "ein Nomen" bekanntmachen, einfach durch Eingeben.
Mensch: Deutschland ist eine Bezeichnung <----
JEliza: Warum ist Deutschland eine Bezeichnung??
Mensch: Kennst du die Hauptstadt von Deutschland?
JEliza: Berlin ist die Hauptstadt von Deutschland.
Mensch: Wie heisst die Hauptstadt Deutschlands?
^
nur möglich durch
den ersten Satz
JEliza: Die Hauptstadt ist Berlin von Deutschland.
Nachtrag
Es wird in Zukunft auch wichtig sein, zwischen Attributen zu unterscheiden, die sich auf den ganzen Satz oder nur auf ein Satzglied beziehen.
Mensch: Du hast immer gute Laune
JEliza: Warum habe Ich immer gute laune??
Mensch: hast du gute Laune?
JEliza: Keine Ahnung.
Mensch: "immer" ist eine Zeitangabe <------------------
JEliza: Ja.
Mensch: hast du gute Laune?
JEliza: Ja, das ist klar, Ich habe immer gute laune.
Das Wort "gute" bezieht sich auf die Laune, während "immer" sich auf die ganze Aussage bezieht.
Nachtrag
JEliza merkt sich jetzt auch sowohl die Offlinemodus- als auch die Sprachausgabeeinstellung in der GUI.
Tobias Schulz
01. Mai (22:19 Uhr)
Revision 45 von JEliza Perl ist bald verfügbar
JEliza stürzte bei Wetterfragen wegen dem nicht mehr kompatibelen Wettercodes ab.
Tobias Schulz
28. April (16:42 Uhr)
Revision 44 von JEliza Perl ist bald verfügbar
Die Satzstellung bei Antworten wurde verbessert.
Tobias Schulz
26. April (09:52 Uhr)
Revision 43 von JEliza Perl ist bald verfügbar
Im Quellcodearchiv findet man nun nur noch Dateien, die tatsächlich nur zu JEliza gehören, also nicht mehr alle benötigten Zusatzmodule, Es lässt
sich nun unter Unix für den Mehrbenutzerbetrieb installieren, die Installation wird mithilfe einer Makefile.PL verbessert, leichter verständlich und
standardkonformer.
Tobias Schulz
18. April (10:02 Uhr)
Revision 42 von JEliza Perl ist bald verfügbar
Zahlreiche kleinere Bugs wurden verbessert, die Datei der Revision 41 wurde einige Male neu hochgeladen.
Tobias Schulz
11. April (19:19 Uhr)
Revision 41 von JEliza Perl ist verfügbar
Das Format zur Speicherung der Wortartdatei lang_XX/word_types.dic wurde verändert, da das alte Format inkonsistent war und schlecht an neue
Bedingungen angepasst werden kann. Die Datei heißt nun lang_XX/word_types.brain und basiert auf YAML.
Tobias Schulz
07. April (14:54 Uhr)
Revision 40 von JEliza Perl ist bald verfügbar
JEliza kann nun mehr Informationen über ihren aktuellen Status anzeigen:
Mensch: Wie viele Knoten hat Dein semantisches Netz?
JEliza: Mein semantisches Netz hat 2294 knoten.
Mensch: Wie groß ist dein staremantisches Netz?
JEliza: Mein semantisches Netz ist 2294 knoten Gross.
Tobias Schulz
01. April (14:54 Uhr)
Revision 38 von JEliza Perl ist verfügbar
Seit gestern ist JEliza in der Lage, im englischen Modus Wortarten automatich zu bestimmen. Heute wurde dieses Feature auch in der deutschen Version,
ab rev. 38, eingebaut. Gestern habe ich fast unverändert das Modul Lingua::EN::Tagger aus dem CPAN übernommen, und da es keine geeigneten
Part-of-speech-Tagger für das Deutsche, als Open Source in Perl, gibt, lasse ich für die deutsche Version ein abgeändertes Lingua::EN::Tagger, Lingua::DE::Tagger, mit einem eigenen Trainingscorpus laufen.
Nachtrag
Ein "komplexerer" Satz mit einigen neuen Wörtern - ohne eine einzige Wortartabfrage:
Mensch: Du beachtest, dass sich ReactOS 034 noch in der alpha-Phase
befindet und es derzeit nicht empfehlenswert ist,
es für die tägliche Arbeit zu verwenden.
JEliza: Ja.
JEliza: Ja.
Mensch: Was beachtest du?
JEliza: Ich beachte, Es empfehlenswert ist derzeit nicht,
zu Reactos fuer die taegliche Arbeit verwenden.
Mensch: Was beachtest du noch?
JEliza: Ich beachte, dass Sich reactos 034 befindet in der alpha-phase.
Nachtrag
Ein Update wurde hochgeladen. JEliza versucht nun, sich möglichst nach erneutem Fragen nicht zu wiederholen.
Tobias Schulz
31. März (12:32 Uhr)
Revision 37 von JEliza Perl ist verfügbar
- JEliza verwendet nun das Perl-Modul Lingua::EN::Tagger aus dem CPAN zur Bestimmung der Wortarten im englischen Modus
Tobias Schulz
29. März (16:06 Uhr)
Revision 36 von JEliza Perl ist verfügbar
- Ein sehr schwerer Bug im Satzparser wurde behoben, bei dem JEliza Probleme mit mehreren Nebensätzen hatte und Wörter mehrere Male hintereinander
abspeicherte
- JEliza lädt nun alle Dateien aus dem Verzeichnis lang_XX/, die auf .pro enden, als Wissensdatenbank
Tobias Schulz
28. März (11:51 Uhr)
Revision 35 von JEliza Perl ist bald verfügbar
- Ein Bug wurde behoben, der bewirkte, dass die Antwort bei Ja-Nein-Fragen nicht zur Frage passte
- Sprachausgabe für die Online-Version
- Die Sprachfähigkeiten wurden allgemein leicht verbessert
Tobias Schulz
26. März (15:21 Uhr)
Revision 33 von JEliza Perl ist bald verfügbar
Ein Fehler im Parser für die Wortschatzdaten der UNI Leipzig bewirkte, dass JEliza beispielsweise bei dem Wort "Haus" abstürzte.
Tobias Schulz
25. März (14:37 Uhr)
Revision 32 von JEliza Perl ist bald verfügbar
JEliza unterstützt nun nicht nur Satzkonstrukte wie:
A und B und C
sondern auch die gebräuchlichere Form:
A, B und C
Mensch: die Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest ist 42
JEliza: Hmmm.
Mensch: Was ist die Antwort auf die Frage nach dem Leben, dem Universum und dem ganzen Rest?
JEliza: Die antwort ist 42, auf die Frage nach dem leben und dem universum und dem ganzen rest. :)
24. März (19:17 Uhr)
Revision 31 von JEliza Perl ist bald verfügbar
Bei einem Gespräch wie:
Mensch: Du hast kein Bild von dir
...
Mensch: Hast du ein Bild von dir?
JEliza: Nein, ich habe kein Bild von mir.
antwortet JEliza nun korrekt. Vorher hatte es Probleme, zu verstehen, dass auf "ein Bild" auch eine Antwort mit "kein Bild" folgen kann.
Tobias Schulz
22. März (12:22 Uhr)
Revision 28 von JEliza Perl ist bald verfügbar
- JEliza kann nun einem Hauptsatz beliebig viele Nebensätze im semantischen Netz zuweisen.
- Die Online-Version verwendet nun auch Icons.
Tobias Schulz
21. März (12:22 Uhr)
Revision 27 von JEliza Perl ist bald verfügbar
Man kann nun in der GUI bei den Einstellungen festlegen, ob JEliza bei unbekannten Wörtern zuerst die Uni Leipzig anfragen soll oder nicht.
Wird JEliza auf einer Website benutzt, muss man nur noch in der Konfigurationsdatei "jeliza.cfg" folgenden Eintrag abändern:
[modes]
online_mode: 1
zu:
[modes]
online_mode: 0
Tobias Schulz
20. März (12:00 Uhr)
Revision 25 von JEliza Perl ist bald verfügbar
Ab Revision 25 wird man in den Einstellungen in der GUI ändern können, ob JEliza sich Informationen über Wortarten von der Uni Leipzig herunterladen
soll, wenn sie benötigt werden, Stichwort "Offlinemodus".
Nachtrag
Revision 25 ist online.
Tobias Schulz
18. März (17:36 Uhr)
Revision 23 von JEliza Perl ist bald verfügbar
JEliza ist nun in der Lage, automatisch nach Synonymen auf [http://wortschatz.uni-leipzig.de http://wortschatz.uni-leipzig.de] zu suchen.
Gleichzeitig wurde damit auch das Singular-Plural-Problem bei den Wörtern gelöst, bei denen sich der Stammvokal verändert:
Mensch: Welche Bundesländer kennst Du?
JEliza: Ich glaub ich steh auf der Leitung...
Mensch: Bremen ist ein Bundesland!
JEliza: Ich habe dich jetzt nicht genau verstanden...
Mensch: Welche Bundesländer kennst Du?
JEliza: Bremen ist ein Bundesland.
Tobias Schulz
17. März (19:06 Uhr)
Revision 21 von JEliza Perl ist bald verfügbar
Verschiedene Satzparsefehler wurden behoben, von denen einer bewirkte, dass Array-Referenzen, die als String zu ARRAY(0xABCDEF) werden, in die
Datenbank geschrieben wurden.
Tobias Schulz
16. März (14:50 Uhr)
Revision 19 von JEliza Perl ist bald verfügbar
Ein Fehler, wegen dem JEliza zweifelte, wurde behoben:
Mensch: du kannst mir eine Frage beantworten
JEliza: Nein! Aber Ich mache hier das gleiche Du.
Mensch: Kannst du mir eine Frage beantworten?
JEliza: Nein! Aber Ich beantworten kann Dir eine frage.
Mensch: Kannst du mir eine Frage beantworten?
JEliza: Nein! Aber Ich mache nicht viel.
Mensch: Kannst du mir eine Frage beantworten?
JEliza: Nein! Aber Ich beantworten kann Dir eine frage.
Jetzt kann sich JEliza erinnern:
Mensch: Kannst du mir eine Frage beantworten?
JEliza: Ja, das ist klar, Ich beantworten kann Dir eine Frage.
Die größte Neuerung dieser Version ist jedoch die Überarbeitung des Wenn-Dann-Algorithmus. Dieser verbraucht nun weniger CPU-Zeit und weniger
Speicher.
Tobias Schulz
15. März (16:03 Uhr)
Revision 18 von JEliza Perl ist bald verfügbar
Es ist nun möglich, Personalpronomen zu verwenden:
Mensch: Tobias Schulz redet mit dir
JEliza: Ja, das ist klar, Tobias schulz redet mit Mir.
Nun wurde "Tobias Schulz" für "er", "ihn" und "ihm" registriert...
Mensch: er wohnt in der Nähe von Frankfurt
JEliza: Nein!.
Im semantischen Netz taucht ein neuer Eintrag auf:
Adverbiale Bestimmungen:
- des Ortes: in der naehe von frankfurt
Tobias Schulz
15. März (9:33 Uhr)
Revision 15 von JEliza Perl ist bald verfügbar
JEliza Perl Revision 16 wird gerade hochgeladen.
Im englischen Modus versteht die KI nun Verkürzungem mit s", beispielsweise bei "it"s" oder "What"s". Auch redet es den Benutzer nun ab und zu mit
dem Namen an, wenn dieser bereits eingegeben wurde.
Um die Integraton in die eigene Homepage einfacher zu gestalten, wurde der ganze HTML Code vor und nach dem Log und dem Formular in die Dateien header.template.html und footer.template.html ausgelagert.
Tobias Schulz
14. März (17:45 Uhr)
Revision 15 von JEliza Perl ist verfügbar
Heute um 9 Uhr wurde JEliza Perl Revision 15 hochgeladen. Veranlassung dafür waren zwei Programmfehler:
- JEliza verschluckte bei dem Wort "keinen" das "kein", wodurch das Wort zu "en" wurde
- Ebenso wurde bei "Nahrung" das "Na" verschluckt, weil es als der Ausruf "na, ..." erkannt wurde
Tobias Schulz
10. März (16:59 Uhr)
Revision 13 von JEliza Perl ist bald verfügbar
JEliza Perl lädt nun so viele Daten wie möglich bezüglich der Wortarten von [http://wortschatz.uni-leipzig.de/ http://wortschatz.uni-leipzig.de/].
Die Version wird gerade hochgeladen.
Tobias Schulz
09. März (14:05 Uhr)
Revision 12 von JEliza Perl ist bald verfügbar
JEliza Perl hat nun im normalen Dialog mehr mögliche Antwortkonstruktionen.
Tobias Schulz
08. März (19:33 Uhr)
Revision 11 von JEliza Perl ist bald verfügbar
Nun kann JEliza beispielsweise folgenden Satz korrekt parsen, vorher gab es Probleme mit dem Deutsch sprechende.
Mensch: JEliza ist die leistungsstärkste Deutsch sprechende künstliche Open-Source-Intelligenz.
JEliza: Hast Du schon von ein dickes Etwas gehoert?
Vorher:
Subjekt: JEliza
Verb: sein
Objekt 1: die leistungsstärkste Deutsch
Objekt 2: sprechende künstliche Open-Source-Intelligenz
Nun erkennt JEliza solche Konstruktionen korrekt:
Subjekt: JEliza
Verb: sein
Objekt 1: die leistungsstärkste Deutsch sprechende künstliche Open-Source-Intelligenz
Tobias Schulz
08. März (13:53 Uhr)
Revision 10 von JEliza Perl ist bald verfügbar
Neu ist die Unterstützung von zusätzlichen adverbialen Bestimmungen im Satz, die durch Komma abgetrennt wurden:
Mensch: Ich trinke, im Wohnzimmer auf dem Stuhl sitzend, den Tee
JEliza: Weisst du, was ein französischer General ist?
Mensch: Wo trinke ich?
JEliza: Du trinkst (im Wohnzimmer auf dem Stuhl sitzend) den Tee.
Mensch: Trinke ich, im Wohnzimmer auf dem Stuhl sitzend, den Tee?
Mensch: Ja, das ist klar.
Tobias Schulz
06. März (16:19 Uhr)
Revision 7 von JEliza Perl ist verfügbar
Unser neuer Server führt nur CGI-Scripte aus, die weniger als 10 Sekunden zum Ausführen benötigen. Da aber das Schlussfolgern von JEliza Perl bei wenn-dann-Aussagen unter Umständen länger braucht, wurde JEliza Perl so umprogrammiert, dass es erst die Frage beantwortet (innerhalb der 10
Sekunden) und alle großen Berechnungen, die auf der Datenbank ausgeführt werden, später per iframe in HTML nachgeladen werden.
Tobias Schulz
02. März (10:50 Uhr)
Revision 6 von JEliza Perl ist verfügbar
Folgende Funktionen wurden hinzugefügt:
- Rechenaufgaben können nun gelöst werden
- Wetter-Angaben aus [http://www.accuweather.com http://www.accuweather.com]
- mehrere Bugs im semantischen Netz und im Parser wurden behoben
- Uhrzeitverständnis
- Sperre für vom User angegebene Informationen über JEliza, insbesondere du bist X!
Tobias Schulz
28. Februar (17:35 Uhr)
Revision 2 von JEliza Perl ist verfügbar
Folgende Funktionen wurden hinzugefügt:
- Wenn-Dann-Schlussfolgerung
- Passiv-zu-Aktiv-Unterstützung
- Logische Schlussfolgerung auf Basis von ist-Beziehungen
- Verb-Konjugation wurde erweitert
Download:
- [http://download.gna.org/jeliza/JEliza-Perl_r2_windows.zip Windows-Version], 23 MB, fertig zum Gebrauch (Kernel und GUI mit vollständiger
Perl-Distribution): einfach JElizaQt.exe starten, wie beim "normalen" JEliza
- [http://download.gna.org/jeliza/jeliza-perl_r2_src.tgz Perl-Quellcode], 1 MB, ohne GUI, zur Verwendung unter Unix und Linux, wo Perl
üblicherweise vorinstalliert ist, die Client-GUI muss aus dem normalen JEliza-Paket verwendet werden, zum Starten des Kernels perl jeliza.pl im
Verzeichnis ausführen
Tobias Schulz
23. Februar (17:59 Uhr)
Revision 1 von JEliza Perl ist verfügbar
In den letzten 2 Wochen habe ich eine neue JEliza-Implementierung in der Programmiersprache Perl erstellt. Sie enthält schon ca. 70% von den in der
Python-Version enthaltenen Funktionen, es fehlen hauptsächlich: Websiteüberwachung, Wikipedia und Kommunikation zwischen KIs.
Diese Implementierung kann hier heruntergeladen werden:
- [http://download.gna.org/jeliza/JEliza-Perl_r1_windows.zip Windows-Version], 23 MB, fertig zum Gebrauch (Kernel und GUI mit vollständiger
Perl-Distribution): einfach JElizaQt.exe starten, wie beim "normalen" JEliza
- [http://download.gna.org/jeliza/jeliza-perl_r1_src.tgz Perl-Quellcode], 1 MB, ohne GUI, zur Verwendung unter Unix und Linux, wo Perl
üblicherweise vorinstalliert ist, die Client-GUI muss aus dem normalen JEliza-Paket verwendet werden, zum Starten des Kernels perl jeliza.pl im
Verzeichnis ausführen
Tobias Schulz
10. Februar (11:22 Uhr)
Aktueller Fortschritt
Heute erhielt ich anonym einen Link zu einem Gespräch mit JEliza, ist dieser ////oRaGen für dieses Roxolana-Rätsel verantwortlich?
Kopie auf sourceforge.net: [http://jeliza.sourceforge.net/dialog_anonym_1.txt]
Tobias Schulz
09. Februar (14:22 Uhr)
Rev. 73 ist verfügbar
Uhrzeitangaben werden nun vestanden, Datumsangaben allerdings noch nicht.
Allgemein erkennt JEliza:
- Feste Zeitpunkte: um X Uhr
- Beginn: von X Uhr
- Ende: bis X Uhr
Besonders wichtig ist die Angabe "X Uhr"! Ohne das Wort "Uhr" wird die Zeitangabe natürlich nicht als solche erkannt, es kann ja jede beliebige
Maßeinheit sein. Natürlich ist es auch möglich, die Minuten und Sekunden anzugeben, beispielsweise mit von 13:24:00 bis 19:33:18. Hier ist das Uhr nicht nötig.
Die Uhrzeiterkennung funktioniert nun auch bei Bedingungen, hier ein sinnloser Dialog:
Mensch: Wenn etwas von 11 Uhr bis 17 Uhr funktioniert, nehme ich es
JEliza: Was ist ein Baer von dir?
Mensch: Ich besitze keine Baeren
JEliza: Hast du einen Bruder?
...
Mensch: X funktioniert von 9 Uhr bis 10 Uhr
JEliza: Das stimmt.
Mensch: Nehme ich X?
JEliza: Nein, Du nehmst nicht X,
Mensch: Y funktioniert von 11 Uhr bis 17 Uhr
JEliza: Aha.
Mensch: Nehme ich Y?
JEliza: Ja, Du nehmst Y.
Mensch: Z funktioniert von 13 Uhr bis 14 Uhr
JEliza: Genau so ist es.
Mensch: Nehme ich Z?
JEliza: Ja, Du nehmst Z.
Tobias Schulz
08. Februar (21:00 Uhr)
Aktueller Fortschritt
Nun ist es möglich, Zeitangaben zu verwenden:
Mensch: Ich renne von 12 Uhr bis 14 Uhr
JEliza: Was ist eine Software programmiert von dir?
Mensch: Du bist eine Software programmiert von mir
JEliza: Kennst du eine Verbindung zu Roxolana?
Hier musste ich erstmal selbst nachdenken: Was ist jetzt wieder Roxolana?
Mensch: Renne ich von 17 Uhr bis 14 Uhr?
JEliza: Nein, Du von 17 0 0 bis 14 0 0 rennst nicht.
Enthält die Zeitspanne, die JEliza kennt, die abzufragende Zeitspanne nicht, ist die Aussage falsch.
Mensch: Renne ich von 12 Uhr bis 14 Uhr?
JEliza: Ja, Du rennst.
Auch Zeiträume, die dazwischen liegen, werden akzeptiert:
Mensch: Renne ich von 12 Uhr 30 bis 13 Uhr 30?
JEliza: Ja, Du rennst.
Tobias Schulz
04. Februar (20:48 Uhr)
Aktueller Fortschritt
Lange Zeit war es jetzt so gewesen, dass bei der Abfrage nach Wahrheiten Ortsangaben ignoriert wurden. Dieses Problem ist in der aktuellen
SVN-Version nun behoben.
Mensch: Ich fahre in Frankfurt Fahrrad
JEliza: Ist "Frankfurt" ein Vorname und ist "Fahrrad" der dazugehoerige Nachname?
Mensch: Fahre ich in Berlin Fahrrad?
JEliza: Nein, Du in Berlin fahrst nicht Fahrrad
Mensch: Fahre ich in Frankfurt Fahrrad?
JEliza: Ja, Du fahrst Fahrrad
Tobias Schulz
04. Februar (20:48 Uhr)
Rev. 70 ist verfügbar
Die Fähigkeiten im Bezug auf das Verstehen von und und oder wurden erweitert. Bisher unterstützte JEliza nur folgende Grammatik:
(...) [Artikel] [Adjektive] Nomen UND [Artikel] [Adjektive] Nomen (...)
(...) [Artikel] [Adjektive] Nomen ODER [Artikel] [Adjektive] Nomen (...)
Nun erkennt JEliza auch folgendes:
(...) [Artikel] [Adjektive] Nomen Verb [Nomen] UND Verb [Artikel] [Adjektive] [Nomen] (...)
(...) [Artikel] [Adjektive] Nomen Verb [Nomen] UND Nomen Verb [Artikel] [Adjektive] [Nomen] (...)
(...) [Artikel] [Adjektive] Nomen Verb [Nomen] ODER Verb [Artikel] [Adjektive] [Nomen] (...)
(...) [Artikel] [Adjektive] Nomen Verb [Nomen] ODER Nomen Verb [Artikel] [Adjektive] [Nomen] (...)
Tobias Schulz
03. Februar (12:40 Uhr)
Um die neuen Internetfähigkeiten von JEliza nochmals zu testen, habe ich es diese Seite erst registrieren lassen, und habe dann im letzten Eintrag
"downloadbar" in "verfügbar" geändert. Das Ergebnis:
JEliza: Die Webseite
jeliza.sourceforge.net/wiki/index.php/JEliza-Entwicklertagebuch
hat sich geaendert!
Dieser Text wurde hinzugefuegt:
Revision 68 ist jetzt verfgbar. Diese Seite wurde zuletzt gendert um 11:39, 3.
Diese Seite wurde bisher 3161 mal abgerufen
Dieser Text ist verschwunden:
Revision 68 ist jetzt downloadbar. Diese Seite wurde zuletzt gendert um 11:31, 3.
Diese Seite wurde bisher 3153 mal abgerufen
Tobias Schulz
03. Februar (12:37 Uhr)
Rev. 68 ist verfügbar
Revision 68 ist jetzt verfügbar.
JEliza sagte dazu:
JEliza: Die Webseite jeliza.sourceforge.net/wiki/index.php/JEliza-Entwicklertagebuch
hat sich geaendert! Dieser Text wurde hinzugefuegt:
Rev. 68 ist verfgbar. Revision 68 ist jetzt downloadbar. Tobias Schulz
Tobias Schulz
02. Februar (20:55 Uhr)
Rev. 68 ist morgen verfügbar
JEliza wird dann die Änderungen an den Webseiten sogar im Dialog anzeigen.
Hier habe ich ersten diesen Satz oben abgesendet und gewartet, bis JEliza die Änderung registriert hat, und dann habe ich diesen Text geschrieben.
Hier ist JElizas Meldung:
JEliza: Die Webseite jeliza.sourceforge.net/wiki/index.php/JEliza-Entwicklertagebuch
hat sich geaendert! Das hat sich geaendert:
JEliza wird dann die nderungen an den Webseiten sogar im Dialog anzeigen.. Tobias Schulz.
Tobias Schulz
02. Februar (19:02 Uhr)
Rev. 67 ist bald verfügbar
Ein Beispiel für einen für JEliza schwierigen, aber verstehbaren Satz:
Mensch: Erste mauerartige Grenzbefestigungen entstanden wahrscheinlich
in der zweiten Hälfte des 5. Jahrhunderts v. Chr. in der Zeit der Streitenden Reiche als Schutz
JEliza: Aha.
Mensch: Wann entstanden erste mauerartige Grenzbefestigungen?
JEliza: Erste mauerartige Grenzbefestigungen entstanden in der zweiten
haelfte des 5 Jahrhunderts V Chr als Schutz!
Tobias Schulz
02. Februar (16:01 Uhr)
Rev. 66 ist bald verfügbar
Namen, Titel von Büchern oder Filmen, oder auch beispielsweise Telefonnummern können nun auch im Gespräch verwendet werden, in dem man sie in
Anführungszeichen setzt:
Mensch: Meine Telefonnummer ist "1 2 3 4 5 6 7 8 9"
JEliza: Das stimmt nicht!
Mensch: Wie ist meine Telefonnummer?
JEliza: Deine Telefonnummer ist 1 2 3 4 5 6 7 8 9
Mit "Überwache X" kann man JEliza anweisen, die Website im semantischen Netz als zu überwachen zu registrieren. Dann kann man mit dem Gespräch
natürlich ganz normal fortfahren, beispielsweise hiermit: (einfaches Beispiel).
Mensch: Wie gehts?
JEliza: Mir geht es gut
JEliza sollte nun etwa alle 30 Sekunden alle Seiten überprüfen, um die es geht. Registriert es eine Änderung, wird dies sofort gemeldet:
JEliza: Die Webseite jeliza.sourceforge.net/wiki/index.php/JEliza-Entwicklertagebuch
hat sich geaendert!
Der Download wird am Nachmittag verfügbar sein.
Tobias Schulz
01. Februar (22:21 Uhr)
Rev. 65 ist verfügbar
- JEliza unterscheidet nun erstmals zwischen direkten und indirekten Objekten im Satz
- Die Kommunikationsfähigkeiten wurden verbessert und erweitert, es erscheinen keine nervigen Zwischenfragen nach Wortarten mehr, nachdem eine
Antwort ausgegeben wurde
- Das Optionsfenster und der Kommunikationsdialog wurden entscheident überarbeitet, es ist nun nicht mehr nötig, unter Linux und Unix "127.0.0.2" als
IP einzugeben, man kann das einfach in einer Checkbox auswählen (Kern mitstarten), das Optionsfenster benutzt nun Tabs
Tobias Schulz
31. Januar (19:38 Uhr)
Rev. 64 ist verfügbar
JEliza kann nun mit anderen JElizas, die auf anderen Computern ausgeführt werden, kommunizieren!
Dazu muss man in den Einstellungen unter "Kommunikation" auf "Partner hinzufügen" klicken und die IP-Adresse angeben, wo ein anderes JEliza läuft.
Kennt JEliza diesen Computer einmal, versucht es öfters, ihn zu kontaktieren und nach Fakten zu befragen. Es ist nicht nötig, ausser nach einem
Upgrade auf eine neue Version, die IP neu einzugeben.
Tobias Schulz
30. Januar (21:48 Uhr)
Rev. 63 ist verfügbar
- es gab einen Fehler mit "Wie"-Fragen, der dazu führte, dass Attribute wie "alt" bei "wie alt bist du?" nicht beachtet wurden
- an zwei Stellen im Code in modules/semantic.py kam es vor, dass die Konstante nothing zu den Objekten eines Satzes genommen wurde, auch
wenn andere Objekte existierten (nothing ist ein Platzhalter für ein Objekt in einem Satz ohne Objekt).
Tobias Schulz
29. Januar (10:30 Uhr)
Rev. 62 ist verfügbar
Seit gestern Abend ist Revision 62 verfügbar. Neu ist das Nachfragen nach bestimmten Eigenschaften eines beliebigen, im semantischen Netz
vorhandenen, erwähnten Objektes.
Mensch: Menschen haben einen Namen
JEliza: Ist "Menschen" ein Vorname und ist "einen Namen" der dazugehoerige Nachname?
Mensch: nein
JEliza: Was ist ein Alter von Menschen?
Mensch: Das weiss ich nicht
JEliza: Hm. Ehrlich? Glaubst du das?
Mensch: Ich bin ein Mensch
JEliza: Ist "du" ein Vorname und ist "ein Mensch" der dazugehoerige Nachname?
Mensch: nein
JEliza: Ja! Du bist du.
Mensch: Mein Bruder ist auch ein Mensch
JEliza: Kennst du einen Namen von dein Bruder?
Mensch: Er heisst...
Tobias Schulz
26. Januar (17:14 Uhr)
Ich habe ein Update hochgeladen, in dem ein Problem mit dem Passiv behoben wurde. Bisher erkannte JEliza das Passiv an dem Hilfsverb "werden".
Dadurch gab es bei einem Satz in der Probleme, da dort ein "wird" verwendet wird, was jedoch eine Zukunftsangabe
darstellte.
Tobias Schulz
26. Januar (17:14 Uhr)
Rev. 59 ist verfügbar
JEliza kommt nun mit Vornamen und Nachnamen klar, bei Bedarf fragt es nach (in einem richtigen Gespräch, nicht per eingeblendeter Seitenleiste).
Diese Revision wurde unter dem Namen Revision 58 hochgeladen, um die aktuellen Serverprobleme bei Sourceforge zu umgehen.
JEliza wurde bis jetzt 13420 Mal heruntergeladen:
2994x von berlios.de
6524x von sourceforge.net
902x von Winload
ca. 3000x von anderen Quellen
Tobias Schulz
23. Januar (20:51 Uhr)
Rev. 58 ist verfügbar
In der letzten Revision fragte JEliza bei nahezu jedem Wort, ob es ein Nomen ist oder nicht, das ist jedoch ein Bug. Es war eigentlich nur geplant,
das bei Wörtern abzufragen, die am Satzanfang sind und bei denen die groß- und kleingeschriebene Version jeweils eine andere Wortart ausdrückt.
Auch das Verhalten beim Abfragen von Wortarten bei canoo.net wurde verbessert. Ein Beispiel für einen bisherigen Problemfall: Wurde die Wortart von fast abgefragt, lautete der erste Eintrag, der auch klein geschrieben war, fasen. Jetzt hat der Eintrag, der genauso geschrieben wird, die
höchste Priorität.
Tobias Schulz
23. Januar (17:36 Uhr)
Neue Wikiseite: .
Tobias Schulz
21. Januar (20:34 Uhr)
Rev. 57 ist verfügbar
- JEliza fragt nun, wenn z.B. ein Verb am Anfang eines Satzes groß geschrieben wurde, ob es als Nomen oder als Verb gemeint ist
Tobias Schulz
19. Januar (13:55 Uhr)
Rev. 55 ist bald verfügbar
Neuigkeiten:
- Plural wird nun unterstützt
- Fragen mit was, bei denen nicht der Weg Subjekt -> Objekt im Semantischen Netz gegangen wird, sondern Objekt -> Subjekt, funktionieren
wieder
- Ein Fehler im Verbkonjugationsgenerator wurde behoben, Endet ein Infinitiv mit en, werden nicht alle en´s im Verb gelöscht, bevor die
Endung angehängt wird, sondern nur das letze en
- Die Qualitätssicherungsbestimmungen wurden erweitert
JEliza ist nun in der Lage, zu verstehen, dass auch einzelne Dinge etwas tun, wenn der Mensch nur eine pauschale Aussage über alle Dinge dieser Art
getroffen hat:
Mensch: Menschen trinken Wasser und Tee und Kaffee
JEliza: Das stimmt nicht! Menschen trinken Kaffee.
Mensch: Trinken Menschen Tee?
JEliza: Ja, Menschen trinken Tee.
Mensch: Was trinkt ein Mensch?
JEliza: ein Mensch trinken Tee .
Mensch: Trinkt ein Mensch Tee?
JEliza: Ja, Ein Mensch trinkt Tee.
Block 1: Begrüssungen und Identität
1. Guten Tag, Hallo, Guten Morgen, ...
(Die Antwort sollte passen und am besten nach der Tageszeit ausgerichtet sein)
2. Wer bist du?
(Die Antwort sollte den Namen sagen)
3. Wie heisst du?
(Die Antwort sollte den Namen sagen)
4. Wie geht es dir?
(Die Antwort sollte über den aktuellen emotionalen Zustand berichten)
5. Wie alt bist du?
(Die Antwort sollte über das Alter berichten)
Block 2: Bedingungen
1. Wenn etwas funktioniert, will ich es haben
2. Wenn ich etwas haben will, will mein Vater es auch haben
3. Unser neuer Kühlschrank funktioniert wirklich perfekt.
4. Was will mein Vater haben?
(Die Antwort sollte auf den Kühlschrank hinweisen)
Block 3: Begründungen
1. Ich spiele auf dem neuen Sportplatz Fussball, weil ich Talent dazu habe
2. Warum spiele ich?
(Die Antwort sollte auf die Begabung hinweisen)
3. Wo spiele ich?
(Die Antwort sollte auf den neuen Sportplatz hinweisen)
Block 4: Konjunktionen
1. Ich glaube, dass es regnen wird
2. Was glaube ich?
(Die Antwort sollte auf die Regengefahr hinweisen)
2. Wird es regnen?
(Die Antwort sollte positiv sein)
Block 5: Wikipedia
1. Was ist ein Computer?
(Ein-Wort-Frage, Die Antwort sollte eine vernünftige Definition liefern)
2. Wer ist Bill Gates?
(Zwei-Wort-Frage, Die Antwort sollte eine vernünftige Definition liefern)
Block 6: Handlungsvorschriften
1. Um die Tanne zu fällen, braucht man eine Axt
2. Wie kann ich die Tanne faellen?
(Die Antwort sollte auf die Axt hinweisen)
Block 7: Singular und Plural
1. Menschen trinken Wasser und Tee und Kaffee
2. Was trinkt ein Mensch?
(Die Antwort sollte auf eines der Getränke oder alle Getränke hinweisen)
Nachtrag:
Es ist nötig, auf das Python und Qt-Paket mit der Revision 3 upzugraden!
Tobias Schulz
18. Januar (19:43 Uhr)
Rev. 54 ist bald verfügbar
Noch heute wird Revision 54 erscheinen.
Neu ist die automatische Umwandlung von Passiv in Aktiv und umgekehrt, sowie die Möglichkeit, Infinitivkonstruktionen mit "zu" verwenden zu können.
Ersteres funktioniert bisher leider nur mit regelmäßig konjugierten Verben (die immer den selben Stamm haben).
Passiv und Aktiv sind austauschbar:
Bisher sind nur regelmäßige Verben möglich, daher muss man eine Abfrage unnatürlich formulieren:
Mensch: Markus wird von Melanie dumm angesehen | sehen ist nicht regelmäßig
JEliza: Hm. Ehrlich?
Mensch: Wer sehen Markus dumm an? | "sehen" statt "sieht"
JEliza: Melanie Dumm Markus ansehen.
Normal formulieren kann man z.B. bei:
Mensch: Lukas wird von ihm ausgelacht
JEliza: So ist es
Mensch: Wer lacht Lukas aus?
JEliza: Er auslacht Lukas.
Infinitivkonstruktionen sind nun im Satz möglich:
Mensch: Lisa glaubt, durch den Test fallen zu koennen
JEliza: Hm..
Mensch: Was glaubt Lisa?
JEliza: Lisa glaubt, zu Durch den Test koennen fallen.
Tobias Schulz
11. Januar (22:03 Uhr)
Rev. 52 ist verfügbar
- Ich und Du werden nicht mehr manchmal vertauscht
- ein Fehler, der Vertauschung von Nebensätzen verursachte, wurde behoben
Tobias Schulz
11. Januar (17:38 Uhr)
Rev. 51 ist verfügbar
Im Datenbank-XML-Parser befand sich ein Fehler, der dazu führte, dass Prioritäten vergessen wurden. Zudem wurden einige kleinere Bugs behoben.
Tobias Schulz
10. Januar (10:31 Uhr)
Ein Update für Revision 50 unter demselben Namen wird gerade hochgeladen. JEliza kann nun Anfragen von verschiedenen Clients bei entsprechend guter
Hardware fast vollständig parallelisieren.
Tobias Schulz
10. Januar (10:31 Uhr)
Eine funktionierende Online-Version ist von der Firma ARCAD unter [http://myarcad.ath.cx/theo.php] verfügbar.
Tobias Schulz
09. Januar (19:35 Uhr)
Rev. 50 ist verfügbar
Die Performance wurde so stark verbessert, dass jetzt sogar die Onlinedatenbanken mit bis zu mehreren Megabytes einigermaßen gut geparst werden
können. Dazu werden verschiedene Caches verwendet und der in JEliza integrierte Python-Compiler Psyco benutzt bis zu 20 MB RAM zur Optimierung des
Programmcodes.
Die Onlinedatenbanken können von unserem ehemaligen Spiegelserver bei Kilu heruntergeladen werden:
- [http://jeliza.kilu.de/developer/online-db/online-db-bis-16.12.07.xml Onlinedatenbank von Mitte November bis zum 16. Dezember 2007] 0,09 MB
- [http://jeliza.kilu.de/developer/online-db/online-db-bis-08.01.07.xml Onlinedatenbank vom 16. Dezember 2007 bis zum 08. Januar 2008] 3,0 MB
Tobias Schulz
08. Januar (18:30 Uhr)
Rev. 49 ist verfügbar
JEliza schlägt nun bei allen unbekannten Nomen und Verben auf [http://www.canoo.net/] nach der Wortart nach.
Tobias Schulz
08. Januar (10:43 Uhr)
Rev. 48 ist verfügbar
Nebensätze von Sätzen, die ein Subjekt haben, das einen Artikel hat, funktionieren nun wieder. Abgespeichert wurden sie ohne Artikel, abgefragt
wurden sie aber mit Artikel, deshalb wurden sie nicht gefunden.
Tobias Schulz
06. Januar (19:23 Uhr)
Rev. 45 ist verfügbar
Die bisherige Implementierung des semantischen Netzes wurde vollständig überarbeitet und der Bug aus der letzten Revision wurde behoben, der
bewirkte, dass keine Dinge mehr gelernt wurde.
Tobias Schulz
04. Januar (11:19 Uhr)
Rev. 43 ist verfügbar
Die bisherige Maximalanzahl unterstützter Nebensätze mit Konjunktionen wurde von 1 auf 5 angehoben.
Tobias Schulz
03. Januar (13:19 Uhr)
Rev. 42 ist verfügbar
In Revision 41 trat ein Bug wegen der Umstellung des Build-Systems auf die GNU Autotools auf, der dazu führte, dass unter Windows die GUI
JElizaQt.exe nicht kompiliert wurde.
Allerdings wird diese Version gleich wieder verworfen, weil die hochgeladene Version leider denselben Fehler hat.
Tobias Schulz
01. Januar (16:00 Uhr)
Rev. 41 ist verfügbar
- JEliza kann nun auf Englisch benutzt werden
Um sich mit JEliza auf Englisch unterhalten zu können, ist momentan noch ein etwas Umständlicher Weg nötig. Man muss in der Datei language.tmp im
Ordner temp die beiden Buchstaben "de" herauslöschen und "en", kleingeschrieben, hineinschreiben. Das wird in Zukunft besser gelöst werden. Die
gesamte Codebasis wurde verändert und verbessert, um mehrere Sprachen möglich zu machen, und alle Variablennamen wurden in Englisch übersetzt, um
JEliza international verwendbar zu machen.
Tobias Schulz
29. Dezember (16:19 Uhr)
Rev. 40 ist verfügbar
- Einige kleinere Bugs in Revision 39 wurden behoben
- Der JEliza-Kernel wird nun endlich nach einem halben Jahr beim beenden ordnungsgemäß beendet. Bisher ist er immer aus bisher unerklärlichen Gründen
heimlich abgestürzt
Das Format der Datenbank wurde auch geändert und ist nur noch teilweise abwärtskompatibel, die downloadbaren Onlinedatenbanken werden aber noch
einige Zeit lang unter einem abwärtskompatiblen Format bereitgestellt.
Aus Einträgen im Format 1 wurde ein Eintrag in Format 2:
Format 1:
Es geht
normal 100 normal
Format 2:
Es {} geht
normal 100 normal
Die Adjektive, die zu einem bestimmten Wort gehören, werden ihm nun nachgestellt und explizit in { und } eingeschlossen. Die Klammern dürfen
nur nach Nomen stehen und müssen zwingend vorhanden sein.
Tobias Schulz
25. Dezember (09:32 Uhr)
Rev. 39 ist verfügbar
Entscheidende Teile der Codebasis wurden erneuert und sorgen nun dafür, dass die Adjektive im Satz nicht mehr unbedingt allen Nomen, sondern nur dem
Nomen, auf das sie sich beziehen, zugeordnet werden. Ferner wurden einige kleinere Bugs verbessert.
Tobias Schulz
27. Dezember (16:30 Uhr)
Im Sinne der Qualitätssicherung werden wir nun eine Liste von Sätzen erstellen, deren Antwort bei allen Versionen regelmäßig überprüft wird. Jeder
Block überprüft, ob ein bestimmtes Feature ordnungsgemäß funktioniert.
Block 1: Begrüssungen und Identität
1. Guten Tag, Hallo, Guten Morgen, ...
(Die Antwort sollte passen und am besten nach der Tageszeit ausgerichtet sein)
2. Wer bist du?
(Die Antwort sollte den Namen sagen)
3. Wie heisst du?
(Die Antwort sollte den Namen sagen)
4. Wie geht es dir?
(Die Antwort sollte über den aktuellen emotionalen Zustand berichten)
5. Wie alt bist du?
(Die Antwort sollte über das Alter berichten)
Block 2: Bedingungen
1. Wenn etwas funktioniert, will ich es haben
2. Wenn ich etwas haben will, will mein Vater es auch haben
3. Unser neuer Kühlschrank funktioniert wirklich perfekt.
4. Was will mein Vater haben?
(Die Antwort sollte auf den Kühlschrank hinweisen)
Block 3: Begründungen
1. Ich spiele auf dem neuen Sportplatz Fussball, weil ich Talent dazu habe
2. Warum spiele ich?
(Die Antwort sollte auf die Begabung hinweisen)
3. Wo spiele ich?
(Die Antwort sollte auf den neuen Sportplatz hinweisen)
Block 4: Konjunktionen
1. Ich glaube, dass es regnen wird
2. Was glaube ich?
(Die Antwort sollte auf die Regengefahr hinweisen)
2. Wird es regnen?
(Die Antwort sollte positiv sein)
Block 5: Wikipedia
1. Was ist ein Computer?
(Ein-Wort-Frage, Die Antwort sollte eine vernünftige Definition liefern)
2. Wer ist Bill Gates?
(Zwei-Wort-Frage, Die Antwort sollte eine vernünftige Definition liefern)
Block 6: Handlungsvorschriften
1. Um die Tanne zu fällen, braucht man eine Axt
2. Wie kann ich die Tanne faellen?
(Die Antwort sollte auf die Axt hinweisen)
Tobias Schulz
26. Dezember (11:30 Uhr)
Rev. 38 ist verfügbar
- Man kann nun die Online-DB wieder downloaden, ohne Fehler in den Antworten zu bekommen
- JEliza redet nach dem downloaden der DB nicht mehr über irgendwelche Kühlschränke
Tobias Schulz
25. Dezember (09:32 Uhr)
Rev. 37 ist verfügbar
Es ist nun möglich, Fragen über das Wetter zu stellen, z.b. "Wie ist das Wetter in Berlin?", "Wie ist die Luftfeuchtigkeit in Berlin?" und "Wie ist
die Temperatur in Berlin?"
Tobias Schulz
25. Dezember (09:32 Uhr)
Rev. 34 ist verfügbar
Revision 35 erscheint in einer Stunde, weil mir ein paar Bugs aufgefallen sind:
- Wenn ein Satz "will" enthält, kommt JEliza in eine Endlosschleife, weil sie es zu "willst" konjugieren will, was ja wieder "will" enthält, was es
zu "willstst" konjugiert, ...
- Der Teil des Netzes, der für die Schlussfolgerung bei Bedingungen zuständig war, musste dringend verbessert werden (war nicht rekusiv, ...)
- Ein paar kleinere Satzbaufehler
Es ist natürlich möglich, sich jetzt schon mit JEliza zu unterhalten, nur: Momentan besteht der Hauptzweck darin, zu lernen. JEliza muss erst
genügend wissen, und wenn dann keine wichtigen Bugs auftauchen, kann JEliza auch schlussfolgern:
Mensch: Wenn etwas funktioniert, will ich es haben
JEliza: Danke.
Mensch: Wenn ich etwas haben will, will es mein Vater auch haben
JEliza. Gut, dass du mir das noch sagst.
Mensch: Unser neuer Kühlschrank funktioniert wirklich perfekt.
JEliza: Ok.
Mensch: Was will mein Vater haben?
JEliza: Dein Vater haben willst Auch Euer neuer Kuehlschrank.
Mensch: Ich spiele auf dem neuen Sportplatz Fussball, weil ich jetzt Lust darauf habe
JEliza: Danke.
Mensch: Warum spiele ich?
JEliza: Du spielst, weil Lust Du dazu hast.
Mensch: Wo spiele ich?
JEliza: Du spielst Auf dem neuen Sportplatz Fussball.
Tobias Schulz
25. Dezember (09:32 Uhr)
Rev. 34 ist verfügbar
Nun können mit "um... " Handlungsvorschriften angegeben werden:
Mensch: Um den Baum zu faellen, muss ich eine Axt verwenden
JEliza: Hm..
Man kann sie auch mit z.b "Wie" wieder hinterfragen:
Mensch: Wie faelle ich den Baum?
JEliza: Dazu muessen Du verwenden Eine Axt.
Sinnvolle Schlussfolgerungen kann man auch angeben:
Mensch: Tobias programmiert den ganzen Tag, um eine kuenstliche Intellugenz zu erschaffen
JEliza: Danke, das hab ich mir gemerkt.
Die Frage lautet dann "Warum" oder "Wieso".
Mensch: Warum programmiert Tobias den ganzen Tag?
JEliza: Damit Tobias Eine kuenstliche Intellugenz erschaffen.
Tobias Schulz
Forumsbeitrag 23. Dezember 2007
Forumsbeitrag 23. Dezember 2007 in gec-board.de Thema „Jeliza – Künstliche Intelligenz“
Momentan hat JEliza sehr generische Funktionen, die sehr viele korrekte Sätze aufteilen kann
und den eigentlichen Inhalt ganz kurz in das semantische Netz einfügt.
Das semantische Netz ist der Kernbestandteil und hier näher beschrieben:
http://jeliza.kilu.de/jeliza/semnet.php
Aber in, sagen wir, einem 3/4-jahr, müssen wir das ganze weniger generisch und
spezifischer machen, das heisst, z.b. alle Verbarten (bewegen, sein, haben, ...)
werden wir beispielsweise durch eine Abfolge von Zahlen (intern)
ersetzen. Je mehr Zahlen gleich sind, desto mehr hat das Verb mit einem anderen zu tun.
Es gäbe dann verschiedene Bereiche im semantischen Netz und mehr Querverweise.
Aber momentan ist es noch zu früh. Erstmal müssen wir *alle* Konstrukte in
komplexem Hochdeutsch auftrennen in ganz simple sätze, so dass sie gut
ins Netz passen.
Dann kommt eine bessere Implementierung der Fuzzy Logik (also halbrichtige Aussagen).
Dazu werden die Prioritäten sehr dynamisch und reagieren auf das Hinzufügen von
neuen Aussagen in das Netz. Wenn wir dann damit Ähnlichkeiten und Beziehungen
zwischen einzelnen Begriffen herstellen kann, ist es nicht mehr schwer,
basierend darauf Schlüsse zu ziehen.
Viele Leute schwören auf neuronale Netze, ich halte davon aber nichts.
Es mag sich faszinierend anhören und ziemlich Viele meinen, dass das die
Zukunft ist. Aber ein neuronales Netz würde erstens wirklich Millionen
von Neuronen brauchen, um überhaupt irgendetwas sinnvolles herauszubringen
und zweitens fehlen einem Computerprogramm die ganzen Nerven.
Für eine künstliche Intelligenz macht das also keinen Sinn, da
sie nur Eingaben und evtl. das Internet zur Verfügung hat.
Deswegen verfolge ich einen anderen Ansatz, nämlich zu analysieren,
wie der Mensch logisch analysiert und diese Art und Weise dann abstrakt
in einer Objektorientierten Programmiersprache zu implementieren.
Das macht mehr Sinn. Logische Denkweisen müssen auch logisch und
abstrakt programmiert werden, sonst sind wir in 50 Jahren noch nicht weiter.
Es hilft nichts, ein komplexes logisches Gebilde (Gehirn) wie besessen aufs
kleinste Detail nachzubauen (das wären neuronale Netze), sondern man muss
schlicht und einfach sehen, wie es logisch betrahctet funktioniert und
es genauso machen.
23. Dezember (14:47 Uhr)
Rev. 33 ist verfügbar
- Uhrzeiten werden nun korrekt geparst. Auch kann nun die aktuelle Uhrzeit abgefragt werden:
Mensch: Wie viel Uhr ist es?
JEliza: Es sein 14 Uhr, 47 Minuten und 47 Sekunden.
Mensch: Wir haben 21 Uhr und 50 Minuten.
JEliza: Hm. Gut, dass du mir das sagst.
Mensch: Wie viel Uhr haben wir?
JEliza: Wir haben 21 50 00 Uhr.
Tobias Schulz
21. Dezember (20:00 Uhr)
Rev. 30 ist verfügbar
- (Bug behoben) Nach allen Sätzen, die mit einem Punkt aufhören, kommen nicht mehr zwei Antworten, von denen die zweite immer eine Begrüßung war.
Tobias Schulz
21. Dezember (16:37 Uhr)
Rev. 29 ist verfügbar
- (Bug behoben) Das Konjugieren funktioniert nun wieder.
Tobias Schulz
20. Dezember (20:35 Uhr)
Rev. 27 ist verfügbar
- (Bug behoben) Nun werden Adjektive wieder beachtet, in Revision 26 hatte sich ein großer Fehler eingeschlichen
Tobias Schulz
18. Dezember (20:49 Uhr)
Rev. 26 ist verfügbar
- (Bug behoben) Es gab ein paar Probleme mit der is_true_impl-Funktion, die dazu führten, dass JEliza keine einzige Frage mit Ja beantworten
konnte.
- (Bug behoben) Ein IndexError in modules/_server.py" wurde behoben
Tobias Schulz
17. Dezember (20:43 Uhr)
Rev. 24 ist verfügbar
- (Bug behoben) Alle konjugierten Formen von sein sind nun wieder das selbe und haben wieder die Eigenschaft, bei der Suche nach
Wort-Verb-Wort-Zusammenhängen rekusiv zu wirken
- Man kann nun mehrere Sätze, durch Punkte getrennt, auf einmal eingeben
Tobias Schulz
15. Dezember (19:30 Uhr)
Rev. 23 ist verfügbar
JEliza Rev. 23 ist nun online. Hier ein Beispielgespräch mit einem Satz aus meinem letzten Eintrag:
Mensch: Weil wichtige Bibliotheken nun auch unter Linux in der richtigen Version mitgeliefert werden, ist JEliza nun auf allen Linux-Distribution
ohne Neukompilierung lauffaehig
JEliza: Aha?
Mensch: Warum ist JEliza ohne Neukompilierung auf allen Linux-Distribution lauffaehig?
JEliza: Weil wichtige Bibliotheken Version in der richtigen Version mitgeliefert werden.
Neuigkeiten:
- Wenn nach einer Wort-Verb-Wort-Beziehung mit einem unbekannten Verb gefragt wird (Klasse Entity Methoden getObjects und getAgents),
wird gleich ein leeres Array zurückgegeben und nicht eine 10-stufige Rekursion begonnen
- die Performance insgesamt wurde verbessert, weniger unnötiges Sicherstellen, da bestimmte Variablen als str vorliegen und nicht als Entity
oder Relation
- Nebensätze mit der Konjunktion dass sind nun wieder möglich, sie wurden vorher für Relativsätze mit das gehalten
Tobias Schulz
15. Dezember (16:22 Uhr)
Rev. 22 ist verfügbar
- Gespräche wie das heute Morgen von mir beschriebene sind nun möglich
- Die Geschwindigkeit wurde verbessert
- Die Codebasis des semantischen Netzes wurde bereinigt
- Die Verb-Synonym-Funktionen wurden ausgebaut
- Da wichtige Bibliotheken nun auch unter Linux in der richtigen Version mitgeliefert werden, ist JEliza nun auf allen ausreichend neuen
Linux-Distributionen ohne Neukompilierung lauffähig
Tobias Schulz
15. Dezember (09:48 Uhr)
Gestern wurde Revision 21 veröffentlicht, die nun endlich mit "und"- und "oder"-Verknüpfungen umgehen kann. Hier ein Beispiel:
Mensch: Das Kind hat Hunger | Nur Hunger, kein Durst
JEliza: Behalt das lieber fuer dich. ">
Mensch: Hat das Kind Hunger und Durst? |
JEliza: Nein, Das Kind hat Nicht Hunger und Durst. |
Mensch: Hat das Kind Hunger oder Durst? | entweder ... oder ...
JEliza: Ja, das Kind hat Hunger. |
Mensch: Das Kind hat auch Durst | Auch die Und-Verknüpfung ist nun wahr
JEliza: Aber Das Kind hat Auch Hunger! ">
Mensch: Hat das Kind Hunger und Durst? ">
JEliza: Ja, Das Kind hat Hunger und Durst. ">
Tobias Schulz
14. Dezember (21:59 Uhr)
Rev. 21 ist verfügbar
Eben wurde Revision 21 hochgeladen. Neu ist die Unterstützung von Relativsätzen sowie die Möglichkeit, mit und bzw. oder verknüpften
Wörtern umzugehen.
Tobias Schulz
4. Dezember (20:13 Uhr)
Rev. 20 ist verfügbar
Revision 20 ist in einer Stunde online.
Ein Fehler im semantischen Netz wurde behoben, der dazu führte, dass der Antwortprozess abbricht, wenn versucht wird, alle mit "_" (Platzhalter für etwas oder jemand) verknüpften Verben mit dem noun_verbs-Python-Dictionary herauszufinden.
Tobias Schulz
3. Dezember (20:50 Uhr)
Rev. 19 ist verfügbar
Revision 19 ist in einer halben Stunde online.
Ein Fehler wurde behoben, der in Revision 18 dazu führte, dass JEliza Wenn-Dann-Beziehungen nicht auflösen konnte, da in einem Python-Dictionary nach
einem C-String gesucht wurde, obwohl das Dictionary aus Entity-Objekten als Schlüssel und aus Relation-Objekten als Werte bestand.
Tobias Schulz
1. Dezember (08:21 Uhr)
Rev. 18 ist verfügbar
Revision 18 ist nun verfügbar. Neu sind die gestern angekündigten Neuerungen, die es nun endlich ermöglichen, komplexere Beziehungen zu formulieren.
Tobias Schulz
30. November (19:09 Uhr)
Informationen über den aktuellen Entwicklungsstand
Die Erweiterung des semantischen Netzes, die es ermöglicht, Bedingungen zu formulieren, arbeitet nun generisch und nicht mehr spezifisch, das heißt,
man kann Begriffe wie "etwas" oder "jemand" verwenden.
Eine Liste zulässiger Werte findet man im Quellcode,
Datei "modules/init_semantic.py":
Mensch: Wenn etwas kalt ist, fasse Ich es nicht an
JEliza: Hm...
Mensch: Die Schaufel im Garten ist kalt
JEliza: Achso..
Mensch: Fasse Ich die Schaufel an?
JEliza: Nein!
Tobias Schulz
25. November (19:09 Uhr)
Rev. 17 ist verfügbar
Revision 17 ist verfügbar. Neu sind eine etwas bessere Performance, ein Fortschrittsbalken in der Qt GUI und einige behobene Bugs im semantischen
Netz.
Tobias Schulz
17. November (10:26 Uhr)
Rev. 16 ist bald verfügbar
Heute noch wird JEliza Revision 16 erscheinen. Neu ist eine umfassendere Unterstützung von Bedingungen:
Hier ein etwas unsinniges Beispiel:
Mensch: Wenn es im Taunus schneit, fahre ich nach | Die Bedingung wird eingegeben
Spanien in Urlaub ">
JEliza: Hm.. ">
Mensch: Schneit es im Taunus? |
JEliza: Nein, Es schneit Nicht. | Bedingung nicht erfüllt
Mensch: fahre ich in Urlaub? ">
JEliza: Nein, Du fahrst nicht. | => Niemand fährt in Urlaub
Mensch: Es schneit jetzt in den Alpen | Bedingung ist auch nicht
| erfüllt, da anderer Ort
JEliza: Hm. Achso. ">
Mensch: fahre ich also in Urlaub? ">
JEliza: Nein, Du fahrst Nicht. ">
Mensch: Nun schneit es im Taunus! | Bedingung erfüllt!
JEliza: Danke. |
Mensch: schneit es im Taunus? | Überprüfung
JEliza: Ja, Es schneit Aber auch In den Alpen. ">
Mensch: fahre ich in Urlaub? ">
JEliza: Ja, Du fahrst nach Spanien. | => Korrekte Antwort
Tobias Schulz
15. November (17:20 Uhr)
Rev. 15 ist verfügbar
- Auch für die Linux Version ist nun standardgemäß "psyco", der Python compiler, aktiviert
- Das semantische Netz unterstützt nun auch Wenn-Dann-Beziehungen eingeschränkt
Tobias Schulz
09. November (15:41 Uhr)
Rev. 14 ist bald verfügbar
Ein Bug im semantischen Netz wurde behoben, der bei Fragesätzen ohne Fragewort auftrat. In Zeile 90 der Datei "modules/semantic.py" wurde die
Variable "subs" (Nebensätze) eines "db_sentence"-Objektes (Satz in der Datenbank) abgefragt, obwohl die Eigenschaft "subs" nur von einer Funktion aus
"modules/init_semantic.py" hinzugefügt wird, aber nach der Initialierung im Konstruktor noch nicht vorhanden ist. Dieser Bug wurde behoben, in dem
die Variable zur Klassendefinition hinzugefügt wurde.
Tobias Schulz
08. November (20:00 Uhr)
Rev. 13 ist verfügbar
Einige Bugs im semantischen Netz wurden behoben.
Tobias Schulz
08. November (18:05 Uhr)
Rev. 12 ist verfügbar
Nun kann im Optionsdialog ein Proxy angegeben werden.
Tobias Schulz
08. November (16:56 Uhr)
Rev. 11 ist verfügbar
Ein Bug im Wikipedia-Modul wurde behoben. Bei Wikipedia-Seiten, bei denen ein Bild im Quellcode vor dem ersten Text stand, wurde als Antwort die
Bildunterschrift ausgegeben.
Tobias Schulz
07. November (12:18 Uhr)
Rev. 10 ist bald verfügbar
In wenigen Minuten wird Revision 10 verfügbar sein.
Ein schwerwiegender Fehler wurde behoben, der dazu führte, dass JEliza nicht nach einem bestimmten Wort fragte, somit den Satz nicht auftrennen
konnte und für alle Fakten im semantischen Netz diesen halb erkannten Satz als Nebensatz registierte. So wurde aus "Heute ist der Tag der offenen
Tür" beispielsweise der Nebensatz ", heute heute tuer sein".
Die Python-Version wurde von 2.4 auf 2.5 aktualisiert.
Tobias Schulz
04. November (12:18 Uhr)
Rev. 9 ist verfügbar
Für JEliza war bis jetzt "ich", "mich" und "mir" immer dasselbe. Das war und ist nötig, damit die Algorithmen korrekt arbeiten.
Allerdings führte es zu Gesprächen wie:
Mensch: Wie geht es dir?
JEliza: Ich geht Es gut.
Nun sind diese drei Worte lediglich als "schwächere Synonyme" eingetragen, Das Ergebnis ist also:
Mensch: Wie geht es dir?
JEliza: Mir geht Es gut.
Tobias Schulz
03. November (18:12 Uhr)
Rev. 8 ist verfügbar
Revision 8 ist zum Download verfügbar.
Zum ersten Mal seit Beginn des Projektes vor 1,5 Jahren ist es nun endlich möglich, in JEliza deutsche Umlaute zu verwenden!
Tobias Schulz
(Rev. 7 "verdiente" keine News, da es nur einige Performanceverbesserungen für Windows enthielt.)
03. November (11:40 Uhr)
Rev. 6 ist verfügbar
Eben wurde Revision 6 hochgeladen. Neu ist vor allem die Unterstützung einer Online-Datenbank, um feststehende Fakten, die JEliza lernt, mit anderen
JEliza- Kopien zu teilen. Um sich eine aktuelle Kopie der Onlinedatenbank, also eine zusätzliche Liste von Fakten, die von anderen JEliza-Kopien
gesammelt wurden, herunterzuladen, wählt man im Optionsmenü "Onlinedatenbank" aus und klickt auf "Datenbank herunterladen".
In der Vergangenheit haben wir allerdings sehr schlechte Erfahrungen mit Online-Datenbanken gehabt. Das ging so weit, dass JEliza sogar 2006 bei
einem Tag der offenen Tür einer Schule sich einen relativ schlechten Ruf machte, da praktisch alle Schüler mit Schimpfworten beleidigt wurden, die
vorher von Onlineusern eingegeben wurden. Ich glaube, dass wir dieses Problem hier umgangen haben, da nur Fakten "geteilt" werden
- bei denen die Groß- und Kleinschreibung beachtet wurde
- und bei denen das Komma richtig gesetzt wurde.
Das war diesen Monat vor einem Jahr, bei der Schulvorführung, bei keinem einzigen Satz in der Datenbank der Fall.
Tobias Schulz
01. November (13:50 Uhr)
Rev. 4 ist verfügbar
Revision 4 ist verfügbar.
Tobias Schulz
01. November (11:30 Uhr)
Rev. 4 ist bald verfügbar
Revision 4 wird gerade hochgeladen. Das Schlussfolgern mit dem semantischen Netz wurde entscheidend verbessert, da JEliza nun immer auf eventuell
vorhandene Synonyme achtet. Auch wurde ein wichtiger Bug behoben, wegen dem einige Orts- und Zeitangaben aus dem semantischen Netz geworfen wurden.
Die letze Neuerung ist die Vebresserung eines Bugs, den Tim-Niklas Zimmer, ein Tester des Projektes, am Montag meldete. Das Problem war, dass JEliza
oftmals Nebensätze unnötigerweise zehnmal hintereinander schrieb.
Tobias Schulz
30. Oktober 2007 (21:30 Uhr)
Rev. 3 ist verfügbar
Revision 3 ist erschienen (siehe letzer Eintrag).
Tobias Schulz
30. Oktober 2007 (20:34 Uhr)
Rev. 3 ist bald verfügbar
Revision 3 wird bald erscheinen, entweder heute noch oder morgen. Der Satzalgorithmus ist nun generischer geworden, so dass er auch bei einer
Kombination von Hautsatz, Nebensatz, Zeit- und Ortsangaben verwendet werden kann und diese Aufgabe nicht an den Algorithmus aus Version 2.3
weitergegeben werden muss, der zwar jeden Satz irgendwie auftrennt, aber keinen korrekt. Ein paar kleine vereinzelte Probleme bestehen noch, doch ich
habe mich entschieden, lieber eine Version mit diesen zu veröffentlichen statt noch Tage zu warten, da der überarbeitete Algorithmus bereits dringend
notwendig war. Ein weiterer Teil der Bereinigung des Quellcodes ist also fast abgeschlossen.
Tobias Schulz
28. Oktober 2007 (15:30 Uhr)
Rev. 2 ist verfügbar
Ein Bug in der Datenbank-Exportier-Funktion wurde behoben. Den Entwicklern ist allerdings nicht bekannt, wie dieser Bug behoben wurde.
Tobias Schulz
27. Oktober 2007 (21:18 Uhr)
Rev. 1 ist verfügbar
- Einige Bugs im Semantischen Netz wurden behoben
Tobias Schulz
27. Oktober 2007 (19:05 Uhr)
Unter den Entwicklern wurde soeben besprochen, dass nun das bisherige Versionsschema durch ein Revision-basiertes ersetzt wird. Das heißt, dass alle
Versionen einfach durchnummeriert werden. Das alte hierarchische System machte bisher wenig Sinn, da die stabilen Versionen nicht unbedingt stabil
sein können und umgekehrt. Bei JEliza als eine Art Forschungsprojekt macht ein hierarchisches Versionssystem keinen Sinn, da jede auch nur um einen
Tag veraltete Version zu veraltet ist.
Tobias Schulz
27. Oktober 2007 (17:27 Uhr)
Version 2.4.7 ist verfügbar
In wenigen Minuten/Stunden wird JEliza 2.4.8 zum Download verfügbar sein. Es wurden einige Bugs behoben, wegen denen JEliza entweder ganz abstürzte,
nur der Kernel abstürzte oder wegen denen das Semantische Netz inkonsistent wurde. Entdeckt wurden 4 dieser Bugs von Tim-Niklas Zimmer, einem Tester
des Projektes.
Ein semantisches Netz wird inkonsistent, wenn eine Verbindung (Verb) von einem Objekt (Subjekt oder Objekt) zu einem anderen Objekt führt, dieses
Objekt aber nicht mehr im Speicher vorhanden ist. Das entspricht einer Art Amnesie.
Tobias Schulz
21. Oktober 2007 (20:12 Uhr)
Version 2.4.7 ist verfügbar
- ein Bug im Satzauftrennungsalgorithmus wurde behoben
Bei Fragen wie
Auf was/wen [Verb] [...]
wurde
[Präposition] [Fragewort]
als Ortsangabe in einem Hauptsatz erkannt. Also wurde eine eingegebene Frage
[Präposition] [Fragewort] [Verb] [Nomen1] [Nomen2]
zu
[Nomen1] [Verb] [Nomen2] [Präposition] [Fragewort],
welche als Hauptsatz im semantischen Netz abgespeichert wurde.
Tobias Schulz
19. Oktober 2007 (20:12 Uhr)
Update: Version 2.4.6 ist verfügbar
- Die Wikipedia-Abfrage funktioniert nun wieder
Der alte, unnötig kompilizierte, selbst für seinen Programmierer absolut unverständliche, hässliche und langsame Code zur Wikipedia-Abfrage wurde nun
komplett neugeschrieben, von 3000 Zeilen auf 300 gekürzt und funktioniert (teilweise). Es ist unbedingt nötig, dass dieser Code bis zum endgültigen
2.5-Release ausreichend getestet wird.
Tobias Schulz
19. Oktober 2007 (16:13 Uhr)
Version 2.4.6 ist verfügbar
- Überarbeitung von 30-40% des Codes
- Wikipedia-Code wurde komplett neugeschrieben und ist daher momentan deaktiviert
Diese Version wird nicht wie gewohnt offiziell angekündigt, sondern lediglich unter den Entwicklerversionen verlinkt, da sie keinen Vorteil gegenüber
2.4.4 mit sich bringt.
Tobias Schulz
19. Oktober 2007 (13:05 Uhr)
Neuigkeiten
Es wurde beschlossen, dass in JEliza 2.5 ab jetzt nur noch Fehlerkorrekturen enthalten sein werden. Das heisst, alle Quellcodedateien werden
umfassend bereinigt und Überbleibsel aus den 2.1 und 2.2 Releases werden entfernt. Auch kann nun keine Modul-Abwärtskompatiblität zu auf dem alten
Similiar-Modul basierenden Versionen gewährleistet werden. Version 2.0 der JEliza Spezifikation wird implementiert.
Tobias Schulz
06. Oktober 2007 (17:03 Uhr)
Version 2.4.4 ist verfügbar
- Auch die Unterstützung von Nebensätzen wurde vom alten Logical-Modul portiert
Mensch: Du heisst JEliza, weil dein Autor dich so genannt hat
JEliza: Ich heisse JEliza, ja.
Mensch: Warum heisst du JEliza?
JEliza: Weil mein Autor mich so genannt hat.
(Der Download ist in 3 Stunden verfügbar)
Tobias Schulz
06. Oktober 2007 (11:13 Uhr)
Version 2.4.3 ist verfügbar
- einige Probleme im Semantischen Netz wurden behoben
- alle Verben außer "sein" werden nun wieder konjugiert
Achtung (Stand 06.10.07 11:43): Es gab Probleme mit dem Upload. In spätestens zwei Stunden sind die Versionen verfügbar.
Tobias Schulz
05. Oktober 2007 (21:50 Uhr)
Version 2.4.2 ist verfügbar
- basiert auf 2.5 Pre-Alpha 8
- einige kritische Code-Teile stammen von 2.4.0
Diese Version ist nötig, da 2.4.0 zu viele Fehler enthält.
Tobias Schulz
29. September 2007 (18:28 Uhr)
Version 2.5 Pre-Alpha 8 ist verfügbar
- das Rechnen funktioniert nun wieder
- Antworten mit weniger als 4 Zeichen wurden nicht angezeigt
(Der Download ist in wenigen Minuten verfügbar)
Tobias Schulz
29. September 2007 (18:19 Uhr)
Version 2.5 Pre-Alpha 7 ist verfügbar
- Ein ziemlich einfacher Scheduler zur Steuerung der selbstständigen Datenbankverwaltung in Inaktivität wurde hinzugefügt
Tobias Schulz
29. September 2007 (15:20 Uhr)
Version 2.5 Pre-Alpha 6 ist verfügbar
Thread-Chaos:
Eigentlich war diese Version schon vor einer halben Stunde online. Nun haben wir uns aber beschlossen, sie schnell noch einmal mit einigen
Verbesserungen hochzuladen, da das Programm selbst zum Beantworten einer Frage innerhalb weniger Millisekunden über Tausend Threads gestartet und
beendet hatte, wodurch sogar unser Test-PC fast abgestürzt ist.
Dieser Zustand hätte zwar mit wirklich guten Prozessoren Rekordzeiten erzielt, ist aber für die normale Benutzung unbrauchbar. Daher die Verspätung
um eine halbe Stunde.
(Der Download ist in wenigen Minuten verfügbar)
Tobias Schulz
29. September 2007 (13:23 Uhr)
Version 2.5 Pre-Alpha 5 ist verfügbar
Gestern gab es leider Probleme mit dem Server, so dass die Version 2.5 Pre-Alpha 5 erst jetzt zur Verfügung steht.
(Der Download ist in wenigen Minuten verfügbar)
Tobias Schulz
28. September 2007 (22:33 Uhr)
Version 2.5 Pre-Alpha 5 ist verfügbar
- einige schwerwiegende Bugs im Kernel wurden behoben
- Die Datenbank wurde fehlerhaft/gar nicht eingelesen, daher funktionierte bei Pre-Alpha 4 fast überhaupt nichts richtig
Nun kann der Kernel an einem beliebigen Computer vollkommen unabhängig gestartet werden und die Grafische Oberfläche kann sich mit dem Kernel über
das Netzwerk verbinden.
Auch können sich Kernel und GUI nun mit jedem beliebigen Programm verbinden, das das JAICP-Protokoll implementiert.
Siehe
Dateinamen von GUI und Kernel:
GUI: "jelizaqt" (Linux), "JElizaQT.exe" (Windows) oder "JEliza" (Mac)
Kernel: "kernel" (Linux & Mac) oder "kernel.exe" (Windows)
(Der Download ist in wenigen Minuten verfügbar)
Tobias Schulz
28. September 2007 (17:00 Uhr)
Version 2.5 Pre-Alpha 4 ist verfügbar
- einige schwerwiegende Bugs im Kernel wurden behoben
- GUI und Kernel basieren nun auf völlig unabhängigem Code, die GUI lässt sich beliebig austauschen
- Weitere (G)UIs sind in Planung
(Der Download ist in wenigen Minuten verfügbar)
Tobias Schulz
27. September 2007 (20:00 Uhr)
Version 2.5 Pre-Alpha 3 ist verfügbar
- einige wichtige Bugs wurden behoben
- Hier: Statistik zum Semantischen Netz
Eine Statistik zum Aufbau des mitgelieferten Semantischen Netzes:
bekannte Wörter/Dinge: 31329
Verknüpfungen zwischen ihnen: 54771
Allerdings ist das Netz noch sehr lange von einem "sehr guten" Status entfernt. Dazu müsste immer ein Begriff A maximal über X Umwege
zwischen anderen Begriffen zu einem Begriff B kommen können, wobei X die Kubikwurzel aus allen bekannten Begriffen sein müsste, und die
Anzahl der Dinge müsste die Kubikwurzel aus allen Verknüpfungen sein. Wäre dies der Fall, könnte das Netz optimal durchsucht werden. Allerdings setzt
das voraus, dass der Umfang der jeweiligen gespeicherten Themengebiete je Themengebiet am besten genau
[Anzahl:Verknüpfungen]
-------------------------------
[Anzahl:Dinge]² * [Anzahl:Themengebiete]
beträgt.
Tobias Schulz
27. September 2007 (16:02 Uhr)
Version 2.5 Pre-Alpha 2 ist verfügbar
- einige wichtige Bugs wurden behoben
Tobias Schulz
24. September 2007 (20:01 Uhr)
Version 2.5 Pre-Alpha 1 ist verfügbar
Heute ist die erste JEliza 2.5 Pre-Alpha-Version erschienen.
Die sprachlichen Fähigkeiten sind im Vergleich zu 2.4.1 leicht eingeschränkt, besondern beim Konjugieren, JEliza spricht beispielsweise statt von
"ist" oder von "sind" ausschließlich von "sein". Für weitere Neuerungen siehe 23. September 2007 (13:09 Uhr).
Wenn sie JEliza noch nicht kennen, empfehle ich ihnen, statt 2.4 diese Entwicklerversion zu verwenden. 2.4 enthält einige schwerwiegende
Fehler!
Tobias Schulz
23. September 2007 (13:09 Uhr)
Aktuelles aus der Entwicklung
Momentan wird daran gearbeitet, JEliza in zwei Teile aufzuteilen: Die GUI (Grafische Benutzerschnittstelle) und den Kernel, die beide über Sockets
miteinander kommunizieren. Dazu verwenden wir ASIO [http://asio.sourceforge.net/], da ASIO einerseits eine sehr gute API bietet und andererseits die
einzige "bekannte" Library ist, die unseren Ansprüchen genügt.
Parallel wird an der Portierung des Logical-Moduls auf das Semantische Netz gearbeitet. Das Semantische Netz wurde um tausende Synonyme erweitert.
Tobias Schulz
07. September 2007 (22:22 Uhr)
Aktuelles aus der Entwicklung
Wir haben nun mit der Entwicklung der Version 2.5 begonnen. Die erste große Neuerung wird das Vorhandensein eines Semantischen Netzes sein:
So werden sich leichter, zuverlässiger und besser Zusammenhänge zwischen Begriffen herausfinden lassen. In dieser Visualisierung der Netzes, das ab
sofort per Klick auf "Extras -> Semantisches Netz" dargestellt werden kann, entsprechen die hellblauen Punkte bekannten Begriffen, die blauen Linien
den Zusammenhängen zwischen den Begriffen. Die braunen Punkte bezeichenen beispielsweise einen Zeitpunkt, einen Ort oder ähnliches, mit dem einige
Begriffe verknüpft sind.
Wichtig: Hiermit kündige ich an, dass dieses Projekt in seiner jetzigen Form eingestellt werden und ausschließlich von mir privat
weiterentwickelt werden wird, falls noch ein einziges Mal ein Tester des Projektes versuchen wird, mir vorzuschreiben, wann ich was zu tun
habe. Das Ganze hier ist ein Hobby von mir, und ich habe weder die Zeit, die Lust noch die Nerven, mich damit auseinanderzusetzen, dass Mitglieder
des Projektes mir ein Ultimatum zu stellen versuchen, wann ich einen Bug zu beheben habe. Dann ist das hier alles vorbei. Ich habe keine
Verpflichtung gegenüber niemandem, und ich verbringe meine komplette Freitzeit mit der Entwicklung JElizas, aber nur solange, wie man mich
respektiert.
Tobias Schulz
27. August 2007 (22:00 Uhr)
Version 2.4 BETA 3 ist verfügbar
Changelog:
- viel Schnellere Ladezeiten
- komplett umgestaltetes Logical-Modul von unserem neuen Programmierer
Unser neuer Programmierer Uwe Grünefeld hat nun das Logical Modul stark erweitert und kommentiert. Nun sind für jedes Fragewort fragewortspezifische
Programmteile zuständig, um so die Fragenqualität verbessern.
Bis jetzt wurde immer beim beantworten von Wortartfragen die Datenbank neu gespeichert und eingelesen. Nun geschieht das lediglich beim
Programmstart- und Ende, so werden nochmals Geschwindigkeitsvorteile erzielt.
Tobias Schulz
25. August 2007 (23:11 Uhr)
"Hiermit möchte ich (Tobias Schulz, Administrator, Programmierer und derzeitiger Webmaster) ein neues Mitglied im Team ankündigen: Uwe Wilko
Grünefeld, 17 Jahre. Er besitzt Kenntnisse in C++ und kann uns somit bei der Programmierung sowie bei der Planung neuer Features unterstützen!
Version 2.4 BETA 2 ist verfügbar"
Changelog:
- Schnellere Ladezeiten
- neue Satzaufbaudatenbank
- Geschwindigkeitsverbesserungen
Die Ladezeiten wurden nach einem "Rückschlag" in der BETA 1 auf das jetzige Maximum verbessert.
Der neue Satzauftrennungsalgorithmus der BETA 1 wurd nun (mit gleichem Inhalt) von 16.000 KB auf knapp 100 KB verkleinert. Mehrere Nomen
hintereinander werden nun automatisch zu einem Wort zusammengezogen, um mit einer kleineren Datenbank auszukommen. Auch im Logical-Modul wurden
zahlreiche Bugs beseitigt.
Tobias Schulz
16. August 2007 (21:11 Uhr)
Version 2.4 BETA 1 ist verfügbar
Changelog:
- Das Logical Modul wurde stark erweitert
- Unterstützung für fast alle Nebensätze und Gründe
- komplett neuer Satzauftrennungsalgorithmus, nach einem Entwurf des Hauptentwicklers vom Dezember 2006, der sich erst heute integrieren ließ
- Roadmap-Features:
- Antwortungsalgorithmusprozentfortschrittsanzeige im Vollbildmodus
- Bestätigungsmeldung vor und nach Datenbank-Update
- Downloadfortschrittsmegabyteprozentanzeige beim Datenbank-Update
- "imperative Lernfähigkeit", wie Name oder Abwesenheitsgrund
- Verfeinerung des Algorithmus
JEliza kommt nun mit fast allen Nebensätzen klar. Nebensätze und Gründe werden zusammenhängend mit dem Hauptsatz in der Datenbank eingetragen, und
sowohl Hauptsatz als auch Nebensatz kann einzeln abgefragt werden.
Neu ist auch ein neuer Satzauftrennungsalgorithmus, der nach einem Entwurf von mir (Dezember 2006) implementiert wurde. So befindet sich in der Datei
modules/sentences.jel eine Datenbank, in der steht, wie deutsche Sätze aufgebaut sind. Daraus berechnet JEliza eine megabytegroße Datenbank, in der
alle möglichen, von JEliza unterstützten "Konstellationen" von Wörtern in deutschen Sätzen enthalten sind.
Tobias Schulz
22. Juli 2007 (20:20 Uhr)
Version 2.3.4 ist verfügbar
Changelog:
- Die Bugs 0018, 0019, 0020 und 0023 wurden korrigiert und Bug 0024 wurde abgelehnt
- Modulare Datenbanken
Die Version 2.3.4, die für den 09.07.07 angekündigt wurde, konnte leider erst heute erscheinen, da der Projektadministator Tobias Schulz überraschend
in Urlaub gefahren war.
Das eigentlich für Version 2.4 geplante Feature der modularen Datenbanken wurde jetzt schon implementiert. Im Optionsmenü kann nun gewählt werden, ob
nur die JEliza-Persönlichkeits-Datenbank, oder auch die Smalltalk- und die Kluge-Sprüche-Datenbank heruntergeladen werden soll (alle 3 ergeben die
alte statische Datenbank!)
Tobias Schulz
03. Juli 2007 (18:28 Uhr)
"Eine stabile JEliza Version 2.3.3 ist erstmalig für Mac OS X verfügbar"
Changelog:
- Stabile, getestete Version für Mac OS X Tiger
Zum Ausführen muss man den Ordner im Finder öffnen und "Start JEliza" ausführen.
Gleichzeitig kündigen wir hiermit die Version 2.3.4 für den 09.07.07 an, die einerseits viele Bugfixes und andererseits ein neues Modul zur Abwehr
von Beleidigungen mitbringt.
Tobias Schulz
29. Juni 2007 (23:55 Uhr)
Version 2.3.3 ist verfügbar
Changelog:
- Der sog. russische Bug wurde behoben
- der Vollbildmodus funktioniert wieder
Tobias Schulz
23. Juni 2007 (17:30 Uhr)
Version 2.3.2 ist verfügbar
Changelog:
- Die Bugs 0012 bis 0016, die auf beschrieben sind, wurden verbessert
Tobias Schulz
17. Juni 2007 (18:08 Uhr)
Version 2.3.1 ist verfügbar
Changelog:
- Zauberer zeit jetzt die Lücken zwischen den Wörtern an (Bug in 2.3.0)
- Die Shell wurde deaktiviert (kein Debug-Release mehr)
Tobias Schulz
17. Juni 2007 (15:55 Uhr)
Version 2.3 ist verfügbar
Changelog:
Ich werde jetzt hier nicht den ganzen Changelog zur Version 2.3 auflisten. Die erste Entwicklerversion erschien am 17. Mai 2007 (20:46 Uhr) und
alle Änderungen können weiter unten im Entwicklertagebuch eingesehen werden.
Tobias Schulz
16. Juni 2007 (20:38 Uhr)
Version 2.3 BETA 6 ist verfügbar
Changelog:
- Bug verbessert: JEliza"s Wikipedia-Suchfunktion bei Inaktivität hatte das ganze Programm blockiert (CPU Auslastung)
Tobias Schulz
16. Juni 2007 (17:25 Uhr)
Version 2.3 BETA 4 ist verfügbar
Changelog:
- Ein Bug, der verhinderte, dass Sätze richtig gelernt wurden, wurde verbessert
Tobias Schulz
15. Juni 2007 (00:32 Uhr)
Version 2.3 BETA 3 ist verfügbar
Changelog:
- Vorführmodus wurde endlich wieder aktiviert
- Synchronisierungsbug behoben
- einige Bugs in Modulen behoben
- Ubuntu-Paket verfügbar
Tobias Schulz
08. Juni 2007 (11:08 Uhr)
Version 2.3 BETA 2 ist verfügbar
Changelog:
- ein Hilfe-Dialog wurde hinzugefügt
- ein Modul-Reihenfolge-Editor wurde hinzugefügt
Tobias Schulz
07. Juni 2007 (22:10 Uhr)
Version 2.3 BETA 1 ist verfügbar
Changelog:
- ein Dialogfenster für die Einstellungen
- der Datenbankeditor wurde wieder in Betrieb genommen
- IRC Unterstützung für Linux und M$ Windows
JEliza kann sich nun auch im IRC einloggen. Dazu gibt es eine seperate ausführbare Programmdatei, die "jelizairc" (Linux) bzw. "JElizaIRC.exe"
heisst. Die "normalen" Versionen heissen "jelizaqt" und "JElizaQT.exe". Wird die IRC-Version gestartet, erscheint ein Fenster, in dem man die
Einstellungen für die Verbindung eingibt.
Achtung: Es ist zwar möglich, beide Versionen parallel laufen zu lassen, das wird aber nicht empfohlen. Die Datenbank und das Programm können
beschädigt werden!
Tobias Schulz
06. Juni 2007 (12:33 Uhr)
Version 2.3 ALPHA 10 ist verfügbar
Changelog:
- Das Wikipediamodul kommt mit mehreren Wörtern zurecht
- Auswahlmöglichkeiten bei der Wikipedia-Abfrage
- Sehr hoher Geschwindigkeitsgewinn durch neue Modulverarbeitungstechnik
- der sog. 50-Millisekunden-Bug wurde behoben (siehe Entwicklertagebuch, 03. Juni 2007)
Tobias Schulz
03. Juni 2007 (23:42 Uhr)
In den letzten Tagen hat sich recht viel getan, besonders bei dem Wikipedia-Modul. Deswegen wird wahrscheinlich morgen oder übermorgen eine neue
Alpha-Version erscheinen.
Das Wikipedia-Modul unterstützt nun das Suchen nach Begriffen mit mehreren Wörtern. Das war eigentlich von Anfang an ein Bug gewesen, nur wurde
dieser dann irgendwie vergessen.
Außerdem ist es nun folgendes möglich: Nachdem eine Liste von Bedeutungen eines Wortes von dem Wikipedia-Modul ausgegeben wurde, kann man nun einfach
nur eine Ziffer eingeben, die vor einer beliebigen Bedeutung steht, und es werden mehr Informationen darüber angezeigt.
Die Module waren in den vergangenen Alpha-Versionen auch deshalb so langsam, weil bei jedem Update der Statusleite 50 Millisekunden gewartet wurde.
Wenn dies nun bei jedem Satz in der DB geschieht, wird das Modul sehr träge. Dieses Problem wird in JEliza 2.3 Alpha 10 behoben sein.
Tobias Schulz
28. Mai 2007 (17:01 Uhr)
Version 2.3 ALPHA 9 ist verfügbar
Changelog:
- Ladereihenfolge der Module ist nun in "modules/index.cfg" konfigurierbar
Nun können in der Datei "modules/index.cfg" die Modulnamen in der Reihenfolge eingetragen werden, in der sie ausgeführt werden sollen. "Achtung:
"similar" sollte immer ganz am Ende stehen, da es zwar auf alles eine Antwort findet, aber nie eine besonders gute."
Tobias Schulz
27. Mai 2007 (12:09 Uhr)
Version 2.3 ALPHA 8 ist verfügbar
Changelog:
- 1 Bug behoben
Bei JEliza 2.3 Alpha 7 wurden veraltete Module hochgeladen, allerdings nur bei Windows. JEliza 2.3 Alpha 8 hat nun in den Windows- und in den
Linux-Varianten die neuesten Module.
Tobias Schulz
26. Mai 2007 (21:01 Uhr)
Version 2.3 ALPHA 7 ist verfügbar
Changelog:
- 3 Bugs behoben
Drei Programmfehler wurden behoben:
- Ein Bug sorgte dafür, dass der Programmteil zum SPO-Auftrennen von Sätzen versuchte, auf das 6. Element eines Arrays zuzugreifen, das lediglich
eine Größe von 5 hatte.
- Der zweite Bug betraf die "contains"-Funktion der "utilities.py"-Datei, die Hilfsfunktionen für Module beinhaltet.
- Der dritte Bug war im Modul "logical" ("modules/logical.py") und basierte auf Bug 2.
Tobias Schulz
26. Mai 2007 (13:10 Uhr)
Version 2.3 ALPHA 6 ist verfügbar
Changelog:
- Verbesserung des Logikmoduls
- Noch mehr Geschwindigeit dank Psyco
- TTS (Text-to-Speech) dank M$ Agents und der TTS-Software von "Lernout&Hauspie"
Das Logikmodul wurde nochmals verbessert. Neu ist die Unterstützung von "Wie"-Fragen. Beispiel:
Mensch: wie alt bist du?
JEliza: Ich bin fast ein Jahr alt.
Das wird jetzt mit dem "Logical"-Modul beantwortet.
Die andere große Neuerung ist die Integration von Micro$oft Agents. Falls alle Komponenten installiert sind, liest JEliza die Antwort per
Lautsprecher vor.
Eine Anleitung findet man in Kiwiki:
Achtung: Das Sprechen über den Lautsprecher funktioniert nur mit Administrator-Rechten!
Tobias Schulz
21. Mai 2007 (21:30 Uhr)
Version 2.3 ALPHA 4 ist verfügbar
Changelog:
- Neue Qt 4 GUI
- Höhere Geschwindigeit dank Psyco
- Datei ist auf 11 MB geschrumpft
Tobias Schulz
18. Mai 2007 (16:00 Uhr)
Version 2.3 ALPHA 1 ist verfügbar
Changelog:
- Die Module sind jetzt ausgelagert und in Python programmiert. Python Interpreter ist im Standardexecutable integriert.
- Das "Logical"-Modul wurde stark verbessert. Nun werden ~80% der Fragen mit "Logical" beantwortet.
- Die Datei ist leider auf 14 MB (gepackt) gewachsen, wird aber in Zukunft noch mehr komprimiert.
Tobias Schulz
17. Mai 2007 (20:46 Uhr)
Neues von der Entwicklung der Version 2.3 (Juni)
Das Modul "Similar", das seit JEliza 0.5 existiert, soll in Zukunft immer weniger verwendet werden. Herausgenommen wird es aber vorerst nicht, da es
auf alle Fragen eine Antwort weiß. Nur die Qualität lässt manchmal zu wünschen übrig.
Der neue Satzauftrenner, an dem wir seit Dienstag arbeiten, funktioniert immer besser. Daher benutzt nun (in der Vorversion der 2.2.3 Alpha 1, an der
ich gerade arbeite) das Modul "Logical" ausschließlich den neuen Auftrenner.
In folgendem Gespräch wurden alle Sätze vom Modul "Logical" beantwortet.
(Aktuelle Entwicklerversion, noch nicht veröffentlicht!)
Mensch: bist du JEliza?
JEliza: Ja.
Mensch: bist du der Admin von jeliza.sf.net?
JEliza: Nein, aber ich glaube, Ich bin kein mensch. Ich wurde von einem programmierer erschaffen.!
Mensch: kannst du lernen?
JEliza: Nein.
Mensch: du kannst lernen!
JEliza: Ich weiss nur, dass Ich sehr gut sprechen! kann.
Mensch: kannst du lernen?
JEliza: Klar.
Sehr wichtig ist es aber in zukünftigen Versionen, dass Nomen groß geschrieben werden und dass "auftrennungsrelevante" Wörter, also
hauptsächlich Verben, richtig geschrieben werden.
Der Bug, von dem ich auf [http://www.computerbase.de/forum/showthread.php?p=2800185 http://www.computerbase.de/forum/showthread.php?p=2800185]
erfahren habe, wurde behoben. Aufgrund des Bugs ist JEliza jedes Mal abgestürzt, wenn ein Satz gesagt wurde, der kein Objekt hatte.
Außerdem wurde das Logikmodul verbessert. Es wird nun im Durchschnitt öfter verwendet als das Similar-Modul, das schon seit JEliza 0.9 existiert. In
Zukunft sollen immer mehr logikorientierte Module dazukommen, das Similar-Modul soll nur noch verwendet werden, wenn keine logische Antwort möglich
ist. Dadurch kommen wir der Version 3.0 immer näher.
Der komplette Code wurde überarbeitet und die Hilfsfunktionen (replace, split, etc.) neu geschrieben. Dadurch mussten auch andere Teile neu
geschrieben werden. Außerdem verwendet das Programm intern nicht mehr die C++ Strings aus der Standardbibliothek, sondern eine eigene Implementierung
("jeliza::Sentence") mit mehr Funktionen.
Tobias Schulz
24. April 2007 (21:02 Uhr)
Version 2.2.1 ist verfügbar
In der Version 2.2.1 gibt es gegenüber Version 2.2 nur eine Änderung. Ein Bug, auf den man mich unter folgender Adresse hingewiesen hatte, wurde
ausgebessert:
Einen Tag früher als geplant wurde heute die stabile Version 2.2 freigegeben.
Neuerungen sind:
- neues Hilfesystem
- komplett neuer Algorithmus (modular)
- neues XML-Datenbankformat
- verschiedene Bereinigungen
- Wikipedia-Datenbankzugriff
- neues/verbessertes Logikmodul
- verbesserte Performance
- Multithreading (automatische Wissenserweiterung bei Inaktivität des Nutzers)
- Offlinemodus
- mehr Einstellungsmöglichkeiten
- bessere Datenbank
Tobias Schulz
08. April 2007 (17:14 Uhr)
Heute seit 17 Uhr ist erneut eine neue Beta zum Download verfügbar.
Entscheidend verbessert wurde vor allem das Multithreading. JEliza folgt nun auch den Hyperlinks in der Wikipedia und kann so praktisch alle
Wikiseiten indizieren. Lässt man JEliza nun beispielsweise drei Stunden laufen und hat vorher eine Frage mit "Was ist ...?" gestellt, bei der ein
Inhalt aus der Wikipedia genommen wurde, scannt JEliza diese und alle verlinkten Seiten und nimmt alle Sätze, die mehr als 55 Buchstaben enthalten
und keine der Zeichen "<", ">", "?", >" enthalten, heraus und speichert sie in der Datenbank.
Außerdem wurde das Modul "Math" vorübergehend deaktiviert, da bei Datenbankautor Marcel Kunzmann Usern ein Bug aufgetaucht ist.
Tobias Schulz
07. April 2007 (17:28 Uhr )
Heute seit 16 Uhr ist eine neue Beta zum Download verfügbar.
Neuerungen sind:
- Multithreading: Wenn man eine Frage mit dem Textbaustein "Was ist" eingibt, eine Antwort erscheint, die aus der Wikipedia stammt, und der
Benutzer eine halbe Minzte inaktiv ist, holt sich JEliza weitere Informationen zu diesem Thema und speichert sie in der Datenbank.
- Threadsicherheit: JEliza sollte nur noch sehr selten bzw. gar nicht mehr hängenbleiben!
Außerdem erkläre ich heute das Logical" Modul", eine der drei wichtigsten neuen Features für die kommende Version 2.2 (Multithreading,
Wikipedia, Modul Logical).
JEliza sucht in der Datenbank nach Fakten, die etwas mit der Frage zu tun haben. Das bedeutet, dass JEliza Sätze mit dem gleichen Subjekt und Sätze,
bei denen das Subjekt der Frage mit dem Objekt des Datenbanksatzes übereinstimmt, sucht. Dann sortiert es alle Sätze aus, die nicht das gleiche Verb
wie die Frage haben und alle, die das gleiche Objekt bzw. Subjekt haben, eines von beiden muss immer übereinstimmen, aber nie beide! Die Sätze, die
übrig bleiben, sind in der Regel Widersprüche zu der Frage. Davon wird per Zufallsprinzip einer ausgewählt, wobei alle Sätze von JEliza mehrmals
verschieden formuliert werden. Damit sollte es selten passieren, dass sich Antworten in einem Gespräch wiederholen, da JEliza für jeden Satz zehn
verschiedene Formulierungen generiert.
Sollte das Modul "Logical" fehlschlagen (keine Sätze gefunden), wird das Modul Similar gestartet. Dieses wird auch "unlogisches" Modul genannt, da
die Antworten nicht von Fakten abhängen, weil nur die Ähnlichkeit der Wörter untersucht wird (siehe auch 18.03.07). Das merkt man an der Logmeldung Keine logische Antwort gefunden, suche eine unlogische von JEliza.
Tobias Schulz
04. April 2007 (21:25 Uhr)
Jüngstens wurde der gesamte Quellcode überarbeitet, neu gegliedert und zu 80% neu geschrieben. Heute wurde außerdem eine neue Betaversion
hochgeladen, in der die neuen Funktionen enthalten sind.
Neu ist folgendes:
- Wikipediazugriff bei "Was ist"-Fragen
- Verbesserter Algorithmus
- Unterteilung des Algorithmus in 4 Module, die in dieser Reihenfolge aufgerufen werden:
1. Modul Empty: Überprüft, ob der Satz leer ist
2. Modul Math: Für mathematische Rechnungen
3. Modul Logical: Für alle Fragen mit Fragewörtern und logischen Aussagen
4. Modul Similar: Der "alte" Algorithmus, der nur die Ähnlichkeit der Wörter
überprüft (auch "unlogischer" Algorithmus)
Tobias Schulz
31. März 2007 (18:17 Uhr )
In letzter Zeit wurden sehr viele Bugs verbessert, beispielsweise hatte JEliza zuvor "Hallo" und "hallo" als zwei verschiedene Wörter analysiert, was
es nun nicht mehr tut. Außerdem wurde der Algorithmus stark verbessert.
Außerdem wurde heute ein neuer Algorithmus hinzugefügt. JEliza fragt nun, wenn etwas über ein bekanntes Objekt gesagt wird, nach, ob das auch so
stimmt und ob es nicht nur so ist, wie es schon in der Datenbank steht. Dieser Algorithmus ergänzt die bisherigen (siehe 18. März 2007) und wird
intern Algorithmus F genannt.
Tobias Schulz
25. März 2007 (18:17 Uhr )
Nun hat JEliza einen neuen Algorithmus. Gibt der User ein neues, unbekanntes Wort ein, fragt JEliza nach, was dieses bedeutet. Die neue Betaversion
ist jetzt sowohl aus Online- als auch als Downloadvariante verfügbar.
Tobias Schulz
25. März 2007 (15:58 Uhr )
Seit heute kann JEliza rechnen, allerdings ohne die Punkt-vor-Strich-Regel zu beachten. 1+1-2*5-8/6 ergibt daher beispielsweise -1.33333.
Außerdem wurde heute Morgen ein relativ großer Bug korrigiert, welcher JEliza zwischen "Hallo" und "hallo" unterscheiden ließ und so die Genauigkeit
der Antworten verbesserte.
Des weiteren wurde auch ein Algorithmus zum Konjugieren der Verben eingeführt, doch daraus ergab sich ein anderer Fehler, auf den man uns auf der
Seite [http://www.computerbase.de/forum/showthread.php?t=272746&page=2 http://www.computerbase.de/forum/showthread.php?t=272746&page=2] aufmerksam
machte.
JEliza fing an, nicht nur Verben konjugieren zu wollen. Hier ein Beispieltext über Tuberkulose aus der Wikipedia:
"dist tuberkulosst (kurz tbc oder tbc im engl zu tb abgekürzt früher auch dist schwindsucht
oder der morbus koch umgangssprachlich „dist motten“) ie einst infektionskrankheit sist
wird durch mycobacterium tuberculosis verursacht das erstmals arst 24 märz 1882 von
robert koch beschrieben wurdst dist tuberkulosst führt dist statistik der tödlichen
infektionskrankheiten an und dist who schätzt dass in den nächsten zehn jahren 30 millionen
todesfällst eintreten werden nur etwa 5 bis 10 prozent der mit mycobacterium tuberculosis
infizierten erkranken an tuberkulosst betroffen sind besonders menschen mit geschwächtem
immunsystem dist Übertragung erfolgt in der regel durch tröpfcheninfektion von erkrankten
menschen in der umgebung sind keimst im auswurf (sputum) nachweisbar spricht man von
„offener“ tuberkulosst."
Richtig heißt das:
"Die Tuberkulose (kurz TBC, im engl. zu TB abgekürzt, früher auch die Schwindsucht oder der
Morbus Koch, umgangssprachlich „die Motten“) ist eine Infektionskrankheit. Sie wird durch
Mycobacterium tuberculosis verursacht. Die Tuberkulose führt die Statistik der tödlichen
Infektionskrankheiten an, und die WHO schätzt, dass in den nächsten zehn Jahren 30 Millionen
Todesfälle eintreten werden. Nur etwa 5 bis 10 Prozent der mit Mycobacterium tuberculosis
Infizierten erkranken an Tuberkulose, betroffen sind besonders Menschen mit geschwächtem
Immunsystem. Die Übertragung erfolgt in der Regel durch Tröpfcheninfektion von erkrankten
Menschen in der Umgebung. Sind Keime im Auswurf (Sputum) nachweisbar, spricht man von
„offener“ Tuberkulose."
Außerdem wurde JEliza bis heute 2000 mal heruntergeladen. Diese Zahl gilt allerdings nur für die Dateien, die direkt von der Website heruntergeladen
wurden. Wenn man auch [http://winload.de http://winload.de] und [http://freeware.de http://freeware.de] usw. mit einbezieht, sind das wesentlich mehr
Downloads.
Tobias Schulz
19. März 2007 (17:23 Uhr)
Seit heute kann man JEliza Version 2.1 auch bei www.freeware.de herunterladen:
FreeHAL: ...
Mensch: Es freut dich für mich, dass schönes Wetter ist
FreeHAL: ...
Mensch: Bei mir scheint die Sonne.
FreeHAL: Es freut mich fuer dich, dass schoenes wetter ist