MCWS mit JAM (Stefan Bosse) [7.2020] |
AgentJS: JavaScript / Agenten
API: Application Progarmming Interface
Bot: Agent (Software Roboter)
GUI: Graphical User Interface
JAM: JavaScript Agent Machine
UI: User Interface
Neben Frage-Antwort Dialogen bietet sich gerade bei mobilen Geräten wie Smartphones die Erfassung von Sensoren ohne direkt Nutzerinteraktion an:
Diese Sensorvariablen können eigenständig als Messvariablen und in Kombination mit den Messvariablen aus dem Frage-Antwort Katalog verwendet werden. Z.B.,
In diesem Notebook ist eine vollständige JAM Plattform und eine JAM Shell eingebaut!
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|
Es können jederzeit Status- und Statistikinformationen der eigenen JAM Plattform abgerufen werden
Einige Beispiele sind nachfolgend gezeigt
▸
|
✗
|
Ein wichtiger Sensor im Mobilen Crowdsensing ist die geografische Position (meistens in Polarkoordinaten mit Längen- (lon) und Breitengrad (lat) angegeben)
Neben der physikalischen geografischen Position ist der Ortskontext von Interesse (Ortsbeschreibung wie Straßenname und Stadt)
Die Erlangung der aktuellen geografischen Position eines mobilen Gerätes wie ein Smartphone erfolgt meistens direkt mittels Funkwellen und GPS
Die direkte Ableitung der Position über die Internetgeräteadresse ist schwierig da i.A. nur der Standort des Internetserviceproviders (ISP) ermittelt werden kann
JAM verwendet ein mehrstufiges Verfahren um den Standort seiner Hostplattform zu ermitteln:
Über die öffentliche IP Adresse und einer ISP Datenbank (Genauigkeit zwischen 10-500km) und Verwendung des ISP Datenbankservers http:\\ip-api.com
(Achtung: Ad-Blocker in WEB Browser verhindern den Zugriff auf diesen Datenbankservice). Diese Geolokalisation verwendet keine Daten aus Tracking und Tracing (kein Crowdsensing)!
Über die öffentliche IP Adresse und einen Lokalisationservice von Mozilla https:\\location.services.mozilla.com
. Dieser verwendet zur Bestimmung der Nutzerposition (Breiten- und Längengrad) Daten aus Crowdsensing (kollektive Mittelwertdaten, vermutlich nicht personalisiert) und https://api.opencagedata.com
zur Bestimmung des Ortskontextes (Ort, Land).
Wenn vorhanden und nutzbar GPS sowie im WEB Browser den HTML5 GeoLocation Service (über diesen wird dann auch GPS des Gerätes verwendet).
Im agentenbasierten mobilen Crowdsensing nehmen mobile Agenten (also mobiler Code/Software) möglichst slebständig die Erhebung von sensorischen Daten und die Durchführung von Umfragen durch
Beipiel ist folgender Explorationsagent, der
Ein Agent gehört initial zu einer Agentenklasse die in JAM/AgentJS als Konstruktionsfunktion (eines Agentenobjekts) programmiert wird
In AgentJS besteht die Agentenbeschreibung aus
this.data=value;
this.next=ai
, die initial die erste auszuführende Aktivität bezeichnet (beim Start des Agenten)init
percept
explore
goback
deliver
▸
|
✗
|
Wenn eine Agentenklasse mit der Konstruktionsfunktion in der Plattform verfügbar ist (mittels compile). können Agenten von dieser Klasse instantiiert werden.
Dazu wird die create Operation ausgeführt. Das erste Argument gibt den Namen der Agentenklasse an (identisch mit dem Namen der Konstruktionsfunktion), optionalen Argumenten, und den Privilegienlevel des Agentens (1: Standard, 2: Privilegiert).
Der Agent start unmittelbar nach seiner Ezeugung
▸
|
✗
|
DELIVER #
) können die Ergebenisse aus dem Tupelraum entnommen werden
▸
|
✗
|
▸
|
✗
|
▸
|
✗
|