Aufrufe
vor 5 Jahren

8 Werkzeuge f¨ur Rapid Prototyping mit verteilten Soft - tuprints

8 Werkzeuge f¨ur Rapid Prototyping mit verteilten Soft - tuprints

shopping_facility_bonus:

shopping_facility_bonus: rule.supported & poi.category ˜ shopping => 10; shouldBreak: context.traveltime >= user.breakThreshold; lunchTime: context.time >= user.lunchFrom & context.time poi.location 100 / tdev(context.location, poi.location,dest.location) + context.trafficDensity > 70) * 100 / context.location->poi.location; Die Regel gas beschreibt, dass ein POI der Kategorie Tankstelle umso mehr Punkte erhalten soll, falls die sich im Tank befindliche Kraftstoffmenge unterhalb einer bestimmten Schwelle liegt und sich der POI noch in Restreichweite des Kraftfahrzeuges befindet. Entspricht die an dieser Tankstelle zu findende Kraftstoffmarke der persönlich präferierten Marke kommt ein Punktebonus hinzu. Die Regel myPreferredGasBrand kann hierbei nur dann zu wahr evaluiert werden, wenn die Regel gas auch erfüllt ist. Dies wird durch die Zeile rule(gas).supported angezeigt. Es ist somit möglich in Regeln auf vorherige Regeln Rückgriff zu nehmen. Die letzten drei Beispielregeln verdeutlichen dies. Ist die aktuelle Reisezeit länger als die vom Benutzer definierte Reisezeit (Regel shouldBreak) und es ist noch Mittagszeit (Regel lunchTime), dann werden alle POIs die Restaurants entsprechen in Abhängigkeit ihrer Entfernung vom aktuellen Aufenthaltsort mit positiven Punkten bewertet. Im Vergleich zu der im folgenden Kapitel (vgl. Kapitel 8.2.2) spezifizierten Regelmaschine wurde die darauf aufbauende Anwendung Reiseradar um die folgenden Eigenschaften erweitert: • Objektvariablen können neben boolschen Werten, Integern, Realzahlen und Strings, auch Stringarrays und Ortsangaben (bestehend aus einer x- und einer y-Position) sein. Ein Verweis wie poi.category ˜ restaurant bezieht sich somit auf ein Stringarray in welchen das Wort restaurant vorkommen muss. • Basierend auf der Möglichkeit die x- und y-Positionen von Orten (entspricht im Wesentlichen dem Längen- und Breitengrad eines Ortes) anzugeben kann auch die Berechnung von Ortsentfernungen und die Distanzberechnungen von Umwegen definiert werden (vgl. Regeln gas und takeLunch). • In Regeln ist ein Verweis auf vorherige Regeln möglich. Während der Evaluierung eines POIs kann abgeprüft werden, ob irgendeine vorherige Regel zu wahr evaluiert wurde (rule.supported bzw. rule.satisfied) oder eine bestimmte Regel zu 215

Abbildung 107: Illustration der Interpretation von Regeln durch die Inferenzmaschine in einen Objektbaum. wahr evaluiert wurde (rule(regelname).supported bzw. rule(regelname).satisfied). Der Unterschied der beiden Ausdrucksweisen satisfied und supported liegt darin, dass satisfied nur auf einen zu wahr evaluierten Konditionsteil referenziert und supported auf einen zusätzlich evaluierten Aktionsteil mit positiven Ergebnis referenziert. supported ist somit ” strenger“ als satisfied. • Der Aktionsteil einer Regel liefert die Punkte, die der jeweilige POI erhält, wenn der Konditionalteil der Regel zu wahr evaluiert wurde. Dabei bedeutet das Symbol ++ eine positiv unendliche Punktzahl und −− eine negativ unendliche Punktzahl. Abbildung 107 illustriert die prinzipielle Arbeitsweise der in der Reiseradar-Applikation realisierten Inferenzmaschine. Die Beispielregel context.uid == 1 & context.possibilities ˜ user.preferences & user.gender /= male => ++; wird beim Einlesen als ein Objektbaum identifiziert, der jede Regel und jeden Teil einer Regel als einen linken und rechten Anteil definiert und dadurch eine konsekutive Überprüfung der einzelnen Regelteile ermöglicht. Um eine möglichst effiziente Entwicklung und Erprobung von Regeln zu erlauben, wurde die Inferenzmaschine der Reiseradar- Applikation ebenso als ” Stand-alone“-Anwendung realisiert. Abbildung 108 zeigt hierbei die graphische Benutzeroberfläche, die die Syntaxüberprüfung von Regeln, sowie die Erprobung ihrer Auswahlmechanismen und Wirkungsweisen möglich macht. Die hier beschriebene Inferenzmaschine wurde im Rahmen mehrerer Messen und Veranstaltungen der Öffentlichkeit präsentiert. Unter anderem wurde das Projekt im Rahmen der internen Forschungsfahrt bei Volkswagen in Wolfsburg am 8./9. Juni 2005 und auf der Intelligent Transport Systems and Services (ITS)-Messe vom 1.-3. Juni 2005 in Hannover präsentiert. 216

eine infrastruktur f ¨ur das management von verteilten ... - DVS