23
Blackboar d- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

Embed Size (px)

Citation preview

Page 1: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

Blackboard-

systems

Programmierung von Expertensystemen am

Beispiel von CLIPS/COOL

Page 2: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

2 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsFlow

1. Einführung Blackboardsysteme

2. Erstellung / Programmierung

3. Anwendung

Page 3: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

3 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsGliederung

1. Einführung CLIPS

2. Allgemeine Vorgehensweise bei der Erstellung eines Expertensystems

3. Umsetzung in COOL

4. Verwendung von Ontologien

5. Ausblick

Page 4: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

4 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsEinfü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

Page 5: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

5 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsCLIPS 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:

Page 6: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

6 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsJESS

• 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

Page 7: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

7 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsJESS - 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

Page 8: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

8 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Erstellung eines Expertensystems

Wissens-

quellen

Kontroll-

komponente

--------------

--------------

Blackboard

--------------

--------------

Aufgaben:

1. Füllen des Blackboards mit Fakten

2. Wissensquellen definieren(hier: Regeln)

3. Erstellung einer Kontrollkomponente zur Steuerung des Zugriffs auf das Blackboard(entfällt bei CLIPS, entweder LIFO oder FIFO)

Page 9: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

9 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systemsFüllen des Blackboards

Wissens-

quellen

Kontroll-

komponente

--------------

--------------

Blackboard

--------------

--------------

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)

Page 10: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

10 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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.

Page 11: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

11 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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

Page 12: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

12 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Beispiel: Produktionsplanungssystem

Befehle zum Modifizieren des Blackboards:

(modify ?var) Verändert den Wert eines Fakts

(retract ?var) Entfernt einen Fakt aus der Knowledge - Base

Page 13: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

13 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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

(type STRING) ; Datentyp String

(default "")) ; Keine Voreinstellung

(slot Anzahl ; Verfügbare Stückzahl

(type INTEGER) ; Datentyp Zahl

(default 0)) ; Voreinstellung 0

)

Page 14: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

14 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Beispiel: Produktionsplanungssystem

Füllen des Blackboards mit der Produktionsmatrix:

Produkt:Modell: 500W 750W 1000W 500W 650W 750W

Gehäuse

Motor M500W M750W M1000W M500W M650W M750W

Getriebe

Bohrfutter

Sägeblattaufnahme

Elektronik EBM1000W EST750WEBM750W EST650W

GBM1000W GST750W

BF1000W

SBA750W

Bohrmaschine Stichsäge

GBM GST

Page 15: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

15 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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

)

Page 16: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

16 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Erstellen von Knowledge Sources

Wissens-

quellen

Kontroll-

komponente

--------------

--------------

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.

Page 17: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

17 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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.

Page 18: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

18 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Einstellen der Kontrollkomponente

Wissens-

quellen

Kontroll-

komponente

--------------

--------------

Blackboard

--------------

--------------

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.

Quelle: Maarten Menken, Jess Tutorial, Seite 20

Page 19: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

19 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Probleme:

• 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:

Page 20: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

20 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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

Page 21: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

21 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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

Page 22: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

22 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

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.

Page 23: Blackboard- systems Programmierung von Expertensystemen am Beispiel von CLIPS/COOL

23 Lösung von Allokationsproblemen mit wissensbasierten Verfahren

Blackboard-

systems

Vielen Dank für die Aufmerksamkeit!

Ende