KidSim: Agenten Sprachlos Programmieren Seminar: Softwareagenten Ulrich Andree WS 01/
Software-Agenten: KidSim2 Inhalt 1. Einführung 2. Agenten als persönliche Assistenten 3. Das End User Programming Problem 4. Programmieren mit graphischer Oberfläche 5. Programmbeispiel: KidSim 6. Narval, ein persönlicher Assistent 7. Zusammenfassung
Software-Agenten: KidSim3 1. Einführung Warum sollte ein Anwender einen Agenten programmieren? Wie kann ein Agent von einem Anwender ohne den Einsatz einer Programmiersprache programmiert werden?
Software-Agenten: KidSim4 2. Agenten als persönliche Assistenten Eigenschaften eines Agenten: Agenten sind aktive, persistente (Software) Komponenten, die ihre Umgebung wahrnehmen agieren und kommunizieren Eigenschaften eines Interface Agenten: Agenten, die dem Anwender assistieren
Software-Agenten: KidSim5 2. Agenten als persönliche Assistenten Eigenschaften eines persönlichen Assistenten: Assistent kennt die Interessen, Gewohnheiten und Vorlieben seines Anwenders Assistent ist an Anwender angepasst
Software-Agenten: KidSim6 2. Agenten als persönliche Assistenten Adaptionstechniken von Agenten Maschinelles Lernen Anwender-Programmiert
Software-Agenten: KidSim7 2. Agenten als persönliche Assistenten Maschinelles Lernen Lernt durch Beobachtung des Anwenders, erkennt Muster in dessen Verhalten Passt sich genau dem Anwender an Verbessert seine Fähigkeiten ständig Agent ist nicht sofort einsetzbar
Software-Agenten: KidSim8 2. Agenten als persönliche Assistenten Anwender-Programmiert Anwender stellt Regeln und Kriterien auf Agent gut angepasst an Anwender Anwender kann Agent vertrauen Anwender erkennt nicht immer, wann er einen Agenten einsetzen kann Programmierung für viele Anwender zu schwierig
Software-Agenten: KidSim9 2. Agenten als persönliche Assistenten Wichtigste Adaptionstechnik: maschinelles Lernen Um den Einsatz von Anfang an zu verbessern: Kombination beider Konzepte Programmierung durch den Anwender ist eine wichtige Technik zur Erschaffung persönlicher Assistenten
Software-Agenten: KidSim10 3. Das End User Programming Problem Nur wenige Anwender können programmieren Ist Programmieren an sich zu schwierig? Sind Programmiersprachen zu schwierig?
Software-Agenten: KidSim11 3. Das End User Programming Problem Lösungsansätze: Einstellungen Script Sprachen Macro Recorder
Software-Agenten: KidSim12 4. Programmieren mit graphischer Oberfläche Die wichtigsten GUI-Prinzipien Sichtbarkeit Sehen und zeigen Kopieren und modifizieren Konkret statt abstrakt Minimale Übersetzungsdistanz
Software-Agenten: KidSim13 4. Programmieren mit graphischer Oberfläche Graphical Rewrite Rules Transformation eines Teils des Bildschirms von einem Zustand in einen anderen (vorher-/nachher-Teil) Rule-Generality Problem Wie werden graphische Darstellungen verallgemeinert? Rule-Semantics Problem Wie wird eine Transformation im Detail durchgeführt?
Software-Agenten: KidSim14 4. Programmieren mit graphischer Oberfläche Programming By Demonstration Im Aufnahme – Modus führt der Anwender Aktionen durch, das System nimmt die Aktionen auf und wandelt sie in ein durchführbares Programm um. Representation Problem Wie werden die gespeicherten Aktionen repräsentiert?
Software-Agenten: KidSim15 5. Programmbeispiel: KidSim Kids Simulation Graphische Programmierumgebung für Kinder Zur Programmierung symbolischer Simulationen Ziel: das spielerische erlernen von Programmierfähigkeiten
Software-Agenten: KidSim16 5. Programmbeispiel: KidSim Die wichtigsten Bestandteile einer KidSim Simulation Spielbrett Rundenzähler Copy Box Regel-Editor simulierten Objekte
Software-Agenten: KidSim17 5. Programmbeispiel: KidSim KidSim-Agent: Ein (KidSim-)Agent ist eine persistente Software- Entität, die einem speziellen Zweck dient. Persistent unterscheidet Agenten von Subroutinen. Agenten haben ihre eigenen Ideen, wie eine Aufgabe auszuführen ist, ihre eigenen Ziele. Der spezielle Zweck unterscheidet sie von Multifunktions-Applikationen, Agenten sind typischerweise auch viel kleiner. autonom, proaktiv, nehmen ihre Umgebung wahr
Software-Agenten: KidSim18 5. Programmbeispiel: KidSim Rule-Generality Problem Picture / Property Abstraction Rule-Semantics Problem Programming By Demonstration Representation Problem Graphical Rewrite Rules
Software-Agenten: KidSim19 5. Programmbeispiel: KidSim Evaluation: Ziel: Verständnis der zugrundeliegenden Programmierkonzepte Ergebnis: Kinder (10-14) können sehr schnell mit KidSim eigene Simulationen schaffen Erwerben kein tieferes Verständnis von Programmierkonzepten
Software-Agenten: KidSim20 6. Narval, ein persönlicher Assistent Network Assistant Reasoning with Validating Agent Language intelligenter, persönlicher Software Assistent Designphilosophie : ready for use, easy to use
Software-Agenten: KidSim21 6. Narval, ein persönlicher Assistent Programmierung eines Agenten: Über eine graphische Benutzeroberfläche (Horn) werden Rezepte (recipes) erstellt Rezepte sind Sequenzen von Aktionen, die über Transitionen verbunden sind Aktionen: Python-Scripts, Aktionsbibliotheken
Software-Agenten: KidSim22 6. Narval, ein persönlicher Assistent Filtern und Beantworten von s, Herausfiltern von Werbung aus Webseiten, Zusammenstellen einer Seite mit Nachrichten von verschiedenen Webseiten u.a.m. Weiterentwicklung: Maschinelle Lerntechniken Kooperation zwischen Agenten
Software-Agenten: KidSim23 7. Zusammenfassung Anwender-Programmierung wichtig bei Agenten als persönlichen Assistenten (gemeinsam mit anderen Techniken) End User Programming Problem: wichtig ist graphische Programmierschnittstelle Zwei Beispiele: KidSim, Narval Programmierung über graphische Oberfläche steht erst am Anfang, muss noch weiterentwickelt werden