Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Imperative Programmierung
PC-Senioren Ludwigsburg
Eine dynamische Menge, die diese Operationen unterstützt,
Sortieren I - Bubblesort -
K-Modeler Engineering
„Ansicht Arbeitsbereich“ ist die nutzerspezifische Ansicht, in der alle Dokumente aufgelistet sind, die dem angemeldeten Benutzer zugeordnet sind. D.h.
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Inhaltlich orientierter Zugriff auf unstrukturierte Daten
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Objektorientierte Programmierung
Datenbankzugriff im WWW (Kommerzielle Systeme)
SAP R/3 - Speichermanagement
KS-Encodier-Server Marco Korrmann / Dominik Sommer 1 KS-Encodier-Server Karlsruhe B e g r ü ß u n g.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
DOM (Document Object Model)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Einsatz von XML zur Kontextspeicherung in einem agentenbasierten ubiquitären System Faruk Bagci, Jan Petzold, Wolfgang Trumler und Theo Ungerer Lehrstuhl.
Wissensbasierte Daten- interpretation für einen automatisierten und adaptiven Inhaltsintegrationsprozeß Lyndon J B Nixon
Vorlesung: 1 Betriebssysteme 2007 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 3. Quartal.
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
Treffen mit Siemens Siemens: Werner Ahrens Volkmar Morisse Projektgruppe: Ludger Lecke Christian Platta Florian Pepping Themen:
Introducing the .NET Framework
Die Bank von morgen - eine neue Welt für IT und Kunden? 23. Oktober 2001.
Grundschutztools
Inhalt Einführung –Spezifikation Aufbau des Tools –Aufnahme –Stille entfernen –Speicherung –Kommunikation mit den anderen Teilen.
Kakuro Regeln und Strategien
Formular- und Dokumentenarchivierung
Delphi II - OOP IFB Fortbildung
PowerPoint.
Warum brauche ich ein CMS – Content Management System?
Wissensbasierte Systeme JESS Java Expert System Shell.
Übersicht Auf den folgenden Seiten wird Ihnen anhand einer kleinen Abteilung gezeigt, wie Sie PQM an Ihre Bedürfnisse anpassen können. Mitarbeiter einrichten.
Flexible Datenstrukturen
Erstellen einer Webseitenstatistik mithilfe eines OLAP-Servers
Entwicklung der Programmiersprachen
HTML-Editoren Eine Präsentation von Erik Kulisch.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Java für Fortgeschrittene
Sesame Florian Mayrhuber
Cs104 Programmieren II Präsentation Meilenstein 5 Frühjahrsemester 2010 Gruppenname (Gruppe Nr. x) Name 1 Name 2 Name 3 Name 4 Logo der Gruppe.
Cs104 Programmieren II / cs108 Programmier-Projekt Präsentation Meilenstein 5 Frühjahrsemester 2011 Gruppenname (Gruppe Nr. x) Name 1 Name 2 Name 3 Name.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Dynamische Webseiten-Generierung
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
1 Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Hacks Daniel Schweighart
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Bern University of Applied Sciences Engineering and Information Technology Documentation generator for XML-based description standards Ausgangslage: Die.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Anbindung eines Ontologie- basiertes Risikomanagement- systems an eine XML-Datenbank Datenbankseminar am Lehrstuhl für Praktische Informatik III Vortrag.
1 Prozesse im Studiengangsmanagement Kontext: Neues Abschlussziel erstellen Neues Studienfach erstellen.
Funktionen, Felder und Parameter- übergabe. Funktionsaufruf mit Feld als Parameter: Parameter = Name des Feldes.
Pascal Brunner Uniklinik RWTH Aachen Institut für Medizinische Informatik Integration von ImageJ- und Matlab- Servern in das Electronic Data Capture klinischer.
, Claudia Böhm robotron*SAB Anwendungsentwicklung mit dem Java und XML basierten Framework robotron*eXForms Simple Application Builder.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
Tutorium Software-Engineering SS14 Florian Manghofer.
 Präsentation transkript:

Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Flow Einführung Blackboardsysteme Erstellung / Programmierung Anwendung Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Gliederung Einführung CLIPS Allgemeine Vorgehensweise bei der Erstellung eines Expertensystems Umsetzung in COOL Verwendung von Ontologien Ausblick Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Einführung CLIPS AI – Systeme waren LISP – basiert, und dadurch sehr teuer CLIPS = C Language Integrated Production System Seit 1984 im NASA Johnson Space Center entwickelt, zunächst zu Trainingszwecken Seit 1986 als Entwicklungsumgebung COOL = CLIPS Object Oriented Language Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren CLIPS in Kürze Frei verfügbar für Windows, Mac OS, Solaris Letzte Version von 1998 Regelbasiertes Reasoning Kontrollkomponente arbeitet LIFO oder FIFO basiert Geschlossenes System ...daher: Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren JESS JESS = JAVA Expert System Shell Verfügbar für jede JAVA – fähige Plattform (derzeit Windows, Mac OS, Solaris, Linux) Durch JAVA – Implementierung nahezu beliebig skalierbar, viele Erweiterungen verfügbar CLIPS - kompatibel Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren JESS - Erweiterungen JDBC Tools zur Speicherung von Fakten in externen Datenbanken Tools zum Mailversand von Fakten Erweiterungen zur Verarbeitung von XML – Dokumenten in der Fact – Knowledge Base FuzzyJ Toolkit JessTab Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Erstellung eines Expertensystems Aufgaben: Füllen des Blackboards mit Fakten Wissensquellen definieren (hier: Regeln) Erstellung einer Kontrollkomponente zur Steuerung des Zugriffs auf das Blackboard (entfällt bei CLIPS, entweder LIFO oder FIFO) Wissens- quellen Kontroll- komponente -------------- Blackboard Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Füllen des Blackboards Aufgaben: Zunächst gilt es, die relevante Umwelt in das System zu übertragen. Dies können zum einen statische Faktoren sein, wie z.B. Produktstücklisten, oder dynamische Faktoren, die mit Startwerten versehen werden sollen. (z.B. Lagerbestände) -------------- Blackboard Wissens- quellen Kontroll- komponente Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Eine Firma verfügt über eine Produktionslinie, auf der sowohl Bohrmaschinen als auch Stichsägen gefertigt werden, sowie über eine Werkstattfertigung zur Eigenproduktion von Baugruppen. Im Beispiel soll gezeigt werden, wie eine Stückliste und ein einfaches Lager für das Blackboard umgesetzt werden können. Im nächsten Schritt wird demonstriert, wie mit einfachen Knowledge Sources überprüft werden kann, ob ausreichende Resourcen zur Fertigung eines Auftrages vorhanden sind. Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Befehle zum Füllen des Blackboards: (Assert) einmalige Zuweisung von Daten (Deffact) zur Erstellung einer Fact - Knowledge - Base, die erst durch (Reset) - Kommando im Speicher abgelegt wird (Deftemplate) Ähnlich wie deffacts, jedoch strukturierter, da nicht die Reihenfolge der Eingabe entscheidet, in welchem Feld eine Information abgelegt wird, sondern der Feldname Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Befehle zum Modifizieren des Blackboards: (modify ?var) Verändert den Wert eines Fakts (retract ?var) Entfernt einen Fakt aus der Knowledge - Base Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Erstellen eines Deftemplates zur Lagerverwaltung: (deftemplate Lager "Verfuegbare Teile mit Stückzahlen" (slot Part ; Bezeichnung des Teils (type STRING) ; Datentyp String (default "")) ; Keine Voreinstellung (slot PartID ; Eindeutiger Bezeichner für Teil (default "")) ; Keine Voreinstellung (slot Anzahl ; Verfügbare Stückzahl (type INTEGER) ; Datentyp Zahl (default 0)) ; Voreinstellung 0 ) Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Füllen des Blackboards mit der Produktionsmatrix: Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Erstellung der Produktstückliste: (deffacts bm500w (stkl-bm500w ; Name der Stückliste GBM ; Gehäuse M500W ; 500 Watt Motor GBM1000W ; Getriebe BF1000W ; Bohrfutter EBM750W) ; Elektronik ) Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Erstellen von Knowledge Sources -------------- Blackboard Da im Folgenden lediglich mit regelbasierten KS gearbeitet wird, sei noch einmal darauf hingewiesen, dass es sich nicht um eine prozedurale Abarbeitung dieser Regeln handelt, alle Regeln überwachen permanent den Status ihrer LHS. Wissens- quellen Kontroll- komponente Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Beispiel: Produktionsplanungssystem Erstellung der „Knowledge Sources“: (defrule Remove_invalid (Status invalid) ; Wenn Flag gesetzt ?ChkOrder <- (Order (OrderID ?name)) ; Überprüfe welcher Fakt den Auftrag enthält => (retract ?ChkOrder) ; Entferne Auftrag aus System ) Das Auslösen einer Regel wird auch als „Firing“ bezeichnet. Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Einstellen der Kontrollkomponente LIFO oder FIFO?  „Es ist schwer zu beurteilen, das die eine [Methode] besser ist als die andere, ohne die spezifische Anwendung zu betrachten. Sogar dann kann es schwer sein, zu beurteilen, welche die Beste ist.“   Standardmäßig benutzen CLIPS und auch JESS die LIFO – Einstellung. -------------- Blackboard Wissens- quellen Kontroll- komponente Quelle: Maarten Menken, Jess Tutorial, Seite 20 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Bereits kleinere Systeme werden sehr schnell unübersichtlich Weder JESS noch CLIPS bieten eine besonders anwenderfreundliche Programmierumgebung Analyse des vorhandenen Wissens schwer zu realisieren Evtl. vorhandene Fehler lassen sich nur schwer aufspüren ...daher: Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Protégé 2000 In JAVA realisiertes Tool erlaubt das Einfügen verschiedener Plug-Ins (z.B. JessTab) Erstellung und Bearbeitung von Knowledge Bases GUI für die Entwicklung von Ontologien Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Exkurs: Ontologie Ontologien ermöglichen:   Das Teilen einer gemeinsamen Informationsstruktur (innerhalb einer Gruppe von Menschen oder unter Softwareagenten) Die Wiederverwendbarkeit des Wissens einer Domäne Trennung von Domänenwissen und operationalem Wissen Die Analyse von Domänenwissen Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Fazit JESS darf dank seiner JAVA – bedingten Flexibilität als Meilenstein im Übergang von Experten- hin zu flexiblen Agentensystemen gesehen werden; hier wurde erstmals die Implementierung von Agenten vorgesehen. Nicht zuletzt deshalb gibt es immer noch eine sehr aktive Entwicklergemeinde, die eine große Bandbreite an Tools zur Benutzung mit JESS entwickelt hat. Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Lösung von Allokationsproblemen mit wissensbasierten Verfahren Ende Vielen Dank für die Aufmerksamkeit! Lösung von Allokationsproblemen mit wissensbasierten Verfahren