-
Notifications
You must be signed in to change notification settings - Fork 1
Nissa
Roland Stühmer edited this page Jun 27, 2013
·
16 revisions
@prefix : <http://events.event-processing.org/types/> .
@prefix rpm: <http://rpm.event-processing.org/types/> .
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix user: <http://graph.facebook.com/schema/user#> .
@prefix uctelco: <http://events.event-processing.org/uc/telco/> .
<http://events.event-processing.org/ids/nissa1340688541673999872> {
<http://events.event-processing.org/ids/nissa1340688541673999872#event>
a rpm:AlarmEvent ;
:endTime "2012-12-22T13:31:13Z"^^xsd:dateTime ;
:location <blank://0> ;
:message "This is a heartbeat alert (currently at 91) sent from Android (number 12345)." ;
:stream <http://streams.event-processing.org/ids/PersonalMonitoring#stream> ;
:screenName "firstname.lastname" ;
uctelco:phoneNumber "12345" ;
user:id "12345" ;
user:link <http://graph.facebook.com/12345#> ;
rpm:acc "50.0"^^xsd:double ;
rpm:battery "96"^^xsd:int ;
rpm:calories "0.08778622072179713"^^xsd:double ;
rpm:distance "12.5"^^xsd:double ;
rpm:duration "26"^^xsd:int ;
rpm:heartRate "91"^^xsd:int ;
rpm:humidity "0.0"^^xsd:double ;
rpm:pressure "0.0"^^xsd:double ;
rpm:sessionId "6"^^xsd:int ;
rpm:speed "1.2"^^xsd:double ;
rpm:steps "10"^^xsd:int ;
rpm:temp "0.0"^^xsd:double ;
rpm:wind "0.0"^^xsd:double .
<blank://0>
a geo:Point ;
geo:lat "8.401188900000001"^^xsd:double ;
geo:long "49.008156"^^xsd:double .
}
This is a string template where occurrences of string like %ID%, %HEARTRATE%, ... must be replaced to create a valid event:
@prefix : <http://events.event-processing.org/types/> .
@prefix rpm: <http://rpm.event-processing.org/types/> .
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix user: <http://graph.facebook.com/schema/user#> .
@prefix uctelco: <http://events.event-processing.org/uc/telco/> .
<http://events.event-processing.org/ids/%ID%> {
<http://events.event-processing.org/ids/%ID%#event>
a rpm:AlarmEvent ;
:endTime "%TIMESTAMP%"^^xsd:dateTime ;
:location <blank://0> ;
:message "This is a heartbeat alert (currently at %HEARTRATE%) sent from Android (number %PHONENUMBER%)." ;
:stream <http://streams.event-processing.org/ids/%STREAM%#stream> ;
:screenName "%TWITTER_ID%" ;
uctelco:phoneNumber "%PHONENUMBER%" ;
user:id "%FACEBOOK_ID%" ;
user:link <http://graph.facebook.com/%FACEBOOK_ID%#> ;
rpm:acc "%ACC%"^^xsd:double ;
rpm:battery "%BATTERY%"^^xsd:int ;
rpm:calories "%CALORIES%"^^xsd:double ;
rpm:distance "%DISTANCE%"^^xsd:double ;
rpm:duration "%DURATION%"^^xsd:int ;
rpm:heartRate "%HEARTRATE%"^^xsd:int ;
rpm:humidity "%HUMIDITY%"^^xsd:double ;
rpm:pressure "%PRESSURE%"^^xsd:double ;
rpm:sessionId "%SESSIONID%"^^xsd:int ;
rpm:speed "%SPEED%"^^xsd:double ;
rpm:steps "%STEPS%"^^xsd:int ;
rpm:temp "%TEMP%"^^xsd:double ;
rpm:wind "%WIND%"^^xsd:double .
<blank://0>
a geo:Point ;
geo:lat "%LAT%"^^xsd:double ;
geo:long "%LON%"^^xsd:double .
}
-
%TIMESTAMP%needs a date inxsd:dateTime, it should be in UTC and use ISO 8601 with this date formatter:yyyy-MM-dd'T'HH:mm:ss.SSS'Z', find the Java constant here: code - user ID management: there are optional properties to identify the sender of events:
%PHONENUMBER%(international format, omitting "+" in beginning),%FACEBOOK_ID%, and%TWITTER_ID%. The Android app could have a settings screen to ask the user for this info.
To send the template to PLAY, see: PLAY Abstract RDF Sender.
The heavyweight approach to creating an event can be seen in a Unit Test here: code
This approach requires some Maven dependencies (with RDF tooling) depending on this artefact:
<dependency>
<groupId>org.ow2.play</groupId>
<artifactId>play-commons-eventtypes</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
The RDFS schema which defines the beforementioned properties and their types is stored in types.n3