www.wikidata.de-de.nina.az
CLIPS Abkurzung von englisch C Language Integrated Production System also C Sprache integriertes Produktionssystem ist eine Software zur Erstellung von Expertensystemen Bekannt geworden ist CLIPS als datengetriebenes also vorwartsverkettendes Produktionssystem mit dem Expertensysteme XPS erstellt werden konnen Es beinhaltet eine in C geschriebene Entwicklungsumgebung mit einer Lisp ahnlichen Anmutung und die multiparadigme Programmiersprache COOL welche sowohl die regelbasierte die objektorientierte die funktionale als auch die prozedurale Programmierung unterstutzt Damit vereint es die Paradigmata die haufig nur einzeln von Sprachen implementiert werden wie Prolog regelbasiert Smalltalk OO Lisp funktional und C prozedural Inhaltsverzeichnis 1 Historisches 2 Weiterentwicklung 3 Technisches 4 Funktionsweise an einem Fallbeispiel 5 Folgeprojekte 6 WeblinksHistorisches BearbeitenIn den 1970er und 1980er Jahren der Hochzeit der KI Forschung arbeitete auch die US amerikanische Raumfahrtbehorde NASA an Expertensystemen Als Programmiersprache fur die KI Forschung und regelbasierte Systeme wurde in den 1970ern uberwiegend Lisp List Processing haufig auf teurer spezieller Hardware eingesetzt Die NASA setzte ab 1984 auf solchen Lispmaschinen das Produkt ART Inference oder kurz ART Automated Reasoning Tool eine Spezialsoftware der Inference Corporation die in Lisp geschrieben war und deren Regeldefinitionssprache auf OPS5 zuruckging ein Unzufrieden mit der Entwicklung der mangelnden Portabilitat der Software und den hohen Kosten entschloss sich die NASA kurzfristig selbst eine geeignete Sprache zu entwickeln die auf preisgunstiger Intel Hardware lauffahig war Der Projektname dieser Sprache war zunachst NAIL NASA Artificial Intelligence Language und sie wurde zum Zweck grosserer Plattformunabhangigkeit ab 1985 in ISO C statt in Lisp geschrieben Um den Bestand an vorhandener ART Software weiterfuhren zu konnen sollte sie lexikalisch semantisch und funktional eine 1 1 Kopie des vorher von der NASA genutzten kommerziellen Produkts ART sein ohne Nutzung und Kenntnis von deren Sourcen Auch die Anwenderumgebung wurde der von Lisp bekannten nachempfunden Jedoch musste der Sprachumfang von CLIPS gegenuber dem originalen ART Inference aufgrund der schwacheren Intel Plattform die absolute Grenze fur adressierbaren Arbeitsspeicher lag damals bei nur 640 kB abgespeckt werden 1985 entstand der erste Prototyp zum Jahreswechsel wurde Version 1 0 erreicht Im Sommer 1986 wurde CLIPS als Version 3 0 von der NASA offentlich verfugbar gemacht public domain spater auch die Quellen Weiterentwicklung BearbeitenBis 1988 folgten dann in hoher Folge neue Versionen und Unterversionen mit erweiterten Funktionalitaten und CLIPS erlangte allmahlich grossere Verbreitung in Unternehmen und im universitaren Bereich Vollig neu geschrieben und modularisiert wurde CLIPS dann zwischen Version 4 1 1986 und 4 2 1988 Mit dieser Version wurde auch erstmals ein detailliertes Handbuch zur CLIPS Architektur veroffentlicht zudem wurde Funktionalitat zur Validierung und Verifizierung der Regeln hinzugefugt Neue Funktionalitat kam dann 1989 mit der Version 4 3 Bis dahin war CLIPS eine rein logische Sprache mit Deduktionen auf Basis des Rete Algorithmus Mit CLIPS 5 0 wurden 1991 jedoch weitere Programmparadigmen eingefuhrt das prozedural imperative und das der Objektorientierung Damit zusammen hing die Einfuhrung der OOP Sprache COOL Clips Object Oriented Language d i objektorientierte CLIPS Sprache Mit CLIPS 5 1 gab es 1991 Erweiterungen fur das X Window System MS DOS und Macintosh Schnittstellen CLIPS 6 1 unterstutzte dann ab 1998 auch C Compiler CLIPS 6 2 brachte schliesslich eine weitere Ausweitung der unterstutzten Schnittstellen fur die Betriebssysteme MS Windows 95 98 Windows NT und macOS 2008 erreichte CLIPS die Version 6 30 Sie zeichnet sich vor allem durch eine verbesserte Integration in C in das Net Framework und Java aus Fur die Version 6 4 ist laut FAQ der CLIPS Webseite die Unterstutzung von Unicode vorgesehen die auch fur die Sprachinteroperabilitat relevant ist da alle aktuellen Betriebssysteme auf denen CLIPS lauffahig ist sowie einige der fur die Softwareintegration vorgesehenen Programmiersprachen und Ablaufumgebungen Java und NET Unicode bereits seit etlichen Jahren unterstutzen Technisches BearbeitenMit CLIPS konnen Expertensysteme im klassischen Sinn erstellt werden Vor dem Ausfuhren muss der Source Code mit einem gangigen ANSI C Compiler fur die jeweilige Plattform kompiliert werden Solche Compiler liegen fur alle gangigen Plattformen vor CLIPS kann aber auch durch Laufzeit Programme in andere Programme eingebettet werden die in verbreiteten Sprachen geschrieben sind Dies waren zunachst C C Ada spater kamen weitere Sprachen dazu etwa Delphi und Java Diese mogliche Einbettung in anderen Sprachen ist ein bewusst angestrebtes Merkmal von CLIPS COOL gegenuber anderen logischen oder KI Sprachen wie Prolog Planner oder Lisp das in den 1970er und 1980er Jahren die KI Szene dominierte weil dadurch Interoperationalitat mit bestehenden Softwareumgebungen Weiternutzung bestehenden Codes sowie der Wissenstransfer gefordert werden und zudem der Aufwand sich in CLIPS einzuarbeiten vermindert wird Funktionsweise an einem Fallbeispiel BearbeitenCLIPS arbeitet fur logische Deduktionen wie ublich mit Fakten log Pramissen und Regeln log Schlussfiguren Die bereits in der antiken Logik gelaufige Schlussfigur des Modus ponens bzw genauer differenziert hier der Modus darii wird haufig durch folgendes Beispiel wiedergegeben Alle Menschen sind sterblich Sokrates ist ein Mensch Daraus folgt Sokrates ist sterblich Gezeigt werden soll wie CLIPS aus den Fakten Zeilen 1 und 2 die Schlussfolgerung Aussage Zeile 3 produziert Zunachst wird die Wissensbasis um die zwei relevanten Eingaben erweitert Menschen sind sterblich Sokrates ist ein Mensch Nun erganzen wir ein weiteres Faktum Hunde sind sterblich In CLIPS Sprache lauten diese so deffacts Wahrheiten ist Mensch sterblich ist Sokrates Mensch ist Hund sterblich Man beachte die Lisp artige Notation von CLIPS mit runden Klammern und der Reihenfolge Operator Argument Argument Die anzuwendende Schlussregel der Modus ponens lautet so wenn gilt a impliziert b und b impliziert c folgt auch a impliziert c was in CLIPS Sprache lautet defrule translation ist a b ist b c assert ist a c Vor der ersten Ausfuhrung dieser Regel sieht unsere Wissensbasis bei einer Abfrage noch so aus 1 ist Mensch sterblich 2 ist Sokrates Mensch 3 ist Hund sterblich Nun wenden wir die oben formulierte Regel einmal auf die eingestellten Fakten an CLIPS gibt danach Folgendes aus 1 ist Mensch sterblich 2 ist Sokrates Mensch 3 ist Hund sterblich 4 ist Sokrates sterblich Das System halt an wenn alle Regeln auf alle Fakten angewandt wurden Die Schlussfolgerung wird einfach als neuer Fakt der Wissensbasis hinzugefugt Wir finden daher jetzt eine neue Aussage in der Wissensbasis vor in CLIPS Sprache ist Sokrates sterblich oder ruckubersetzt in die Syntax der Alltagssprache Sokrates ist sterblich Und wie wir ebenfalls bemerken hat das System aus ist Hund sterblich nicht den Schluss gezogen ist Sokrates Hund ist also nicht auf den beruhmten Sophismus hereingefallen der bereits in der Antike ein bekannter Fehlschluss war Folgeprojekte BearbeitenAus CLIPS leiteten die Unternehmen Inference und dessen Nachfolger eine Reihe von Produkten ab die immer wieder umbenannt wurden oder neue Folgeprojekte initiierten So gab es die Softwareprodukte in dieser zeitlichen Folge ART IM spater ARTEnterprise genannt Eclipse nicht zu verwechseln mit der gleichnamigen Entwicklungsumgebung dessen Nachfolger HaleyRules sowie CLIPS R2 von der Fa Production Systems Technology Eine funktional zunachst vereinfachte Version von CLIPS ist seit 1995 unter dem Namen JESS Java Expert System Shell fur die Betriebssystemplattformen Unix und MS Windows verfugbar die ab Version 7 die Regeldefinitionssprache JessML beinhaltet JESS wurde an den Sandia National Laboratories in Livermore USA vollig neu in Java geschrieben und fur die Benutzung zusammen mit bzw als Erweiterung von Java entwickelt Es ist gegenuber CLIPS im Funktionsumfang etwas reduziert so bietet es weniger Auswahl an Regelanwendungsstrategien verzichtet auf Module und bietet die meisten Funktionen von COOL nicht an da Java diese fehlenden Funktionen selbst bietet JESS kann jedoch auch vollig ohne Java benutzt werden Im Gegensatz zu CLIPS ist JESS nicht quelloffen Kommerzielle Anwender benotigen zudem eine entsprechende Nutzungserlaubnis Im Oktober 2013 erschien Version 8 0 mit erstmaligem Support fur das Mobilbetriebssystem Android Eine um unscharfe Logik erweiterte Variante von CLIPS ist FuzzyCLIPS Fuzzy Extension to the CLIPS Expert System Shell Das System nutzt zwei zusatzliche Konzepte Unscharfe Fuzziness und Unsicherheit FuzzyCLIPS erlaubt das freie Mischen unscharfer und gewohnlicher Ausdrucke fur die Regeln und Fakten eines Expertsystems Es wurde am Institut fur Informationstechnik der staatlichen Behorde Kanadas fur wissenschaftliche und industrielle Forschung entwickelt und fand auch Eingang in die integrierte Softwareentwicklungsumgebung Eclipse Aufgrund des hohen Anpassungsaufwandes an neue CLIPS Versionen wurde das Projekt ab 2010 nicht mehr weiterentwickelt EHSIS Erabaki Hartzea SIstemen Sortzailea ist eine kommerzielle in C geschriebene spanischsprachige integrierte Entwicklungsumgebung zur Erzeugung von Expertensystemen auf Basis von CLIPS und FuzzyCLIPS Sie unterstutzt eine Vielzahl von Kommunikationsprotokollen Datenbankkonnektoren und Multimedia Schnittstellen lauft jedoch nur unter MS Windows EHSIS wurde bisher vor allem im medizinischen Sektor und an Hochschulen in Lateinamerika eingesetzt Seit 2004 steht das Python Modul PyCLIPS 1 0 zur Verfugung ein Erweiterungsmodul fur die Programmiersprache Python das in Python die komplette CLIPS Funktionalitat zur Verfugung stellt 2001 begann David Young ein von CLIPS und JESS inspiriertes System unter dem Namen LISA Lisp based Intelligent Software Agents zu entwickeln das mit dem Common Lisp Object System des ANSI Common Lisp geschrieben ist Die Ziele von Young sind vollkommen freie Verfugbarkeit und grosstmogliche Plattformunabhangigkeit Portabilitat der Quellen sowie Interoperabilitat mit moglichst vielen gangigen Lisp Varianten Das erste produktive Release erschien als Version 1 0 am 31 August 2001 Version 3 0 erschien am 8 September 2007 Es lauft mit LispWorks ACL CLISP CMUCL SBCL und OpenMCL Weblinks BearbeitenCLIPS Website CLIPS Online Documentation CLIPS Tutorial JESS Website JESS versus CLIPS FuzzyCLIPS User s Guide PDF 808 kB FuzzyCLIPS Webseite National Research Council Canada EHSIS Homepage PyCLIPS Homepage LISA Projekt auf Sourceforge Abgerufen von https de wikipedia org w index php title CLIPS amp oldid 238665420