4 | | ist a *tiny* project and service catching several registered user observation evidences and notifications (e.g., from http://dragontalk.opendfki.de) and passes them on to interested listeners. |
5 | | So, there's multiple input sources to the UOH providing observed user operations and multiple output targets getting notified by the UOH -> these are "user observation listners". |
| 4 | ist a *tiny* project and service catching several registered user observation notifications (e.g., from http://dragontalk.opendfki.de) and passes them on to interested listeners. |
| 5 | There are multiple input sources that actually observe the user - these '''observers''' are implemented as plugins to applications or as listeners to operating system events. They connect to the User observation hub, or more precisely to '''collectors''' which are started together with the user observation hub. Each collector provides a different kind of interface, the differences can be both on communication layer (SOAP, REST, XML-RPC) or on the message layer. Some observers report messages to the collectors using serialized RDF conforming to the NOP ontology, others call methods of a collector and pass information as method arguments. Therefore, multiple collectors exist providing the needed interfaces. Each collector standardizes the input observations to RDF, which is then passed to the user observation hub. |
| 6 | |
| 7 | The interfaces of the collectors are, in their respective protocol, similar to this: |
| 8 | {{{ |
| 9 | /* Collect a reported observation, protocol is REST, message is already in RDF, |
| 10 | the rdf can be parsed and passed to the UOH */ |
| 11 | RESTCollector.userobservation(String uri, String observationAsRDFXML); |
| 12 | |
| 13 | /* Collect a reported Browser Navigate To URL Operation, |
| 14 | Protocol is XML-RPC, message format is specific to the NOP ontology. |
| 15 | A RDF has to be created from the parameters, more values of the observation are added |
| 16 | (such as type of operation and current time) and then passed on to UOH */ |
| 17 | eventBrowserNavigateToURL(String currentURI, String toURI); |
| 18 | }}} |
| 19 | |
| 20 | The UOH receives the operations as RDF messages, the primary method all collectors call is: |
| 21 | {{{ |
| 22 | /* |
| 23 | public void fireObservedNopGraph( String nopUri, String modelAsRdfXml ); |
| 24 | */ |
| 25 | }}} |
| 26 | |
| 27 | Multiple output listeners getting notified about the operations, called "user observation listners". The multiple input listeners support application-specific communication protocols and interfaces. Depending on the application that was extended with a user-observation plugin, and the programming environment that determines how the plugins are created, the |