Skip to content
Mats Sjöberg edited this page Aug 11, 2015 · 31 revisions

The DiMe data model is represented by the DiMeData class and its subclasses in the Java source code. These can be found in the source directory: src/main/java/fi/hiit/dime/data. You can also see the class hierarchy from the javadoc page (requires a HIIT username that is member of the reknow group).

DiMe is centered around loggers inputting events, represented by the Event class and its subclasses. For example an event could be:

  • the user has looked at a PDF document
  • the user's pulse is so-and-so

Some events contain linked objects, such as the document that was looked at. These objects, which can appear in several events, e.g. when the user closes the same document are represented by the InformationElement class and its subclasses.

Example

Below is an example of a DesktopEvent expressed in JSON with its corresponding Document. This example represents a user having accessed a web page, i.e. the document is the web page in this case. JSON is the format used for uploading to and downloading from DiMe.

{  
    "@type": "DesktopEvent", // Here, bla bla  
    "actor": "Firefox",  
    "id": "f9654c54d7f38acfe179b04de8c0554ea1d6481b",  
    "origin": "hp8x-15.cs.helsinki.fi",  
    "start": "2015-08-11T12:56:53Z",  
    "targettedResource": {  
        "@type": "Document",  
        "id": "d74fa5afb9c04e148fc75a640348f8648c17812b",  
        "isStoredAs": "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject",  
        "mimeType": "text/html; charset=utf-8",  
        "plainTextContent": "The revolution has begun...",  
        "title": "Revolution of Knowledge Work | Revolution of Knowledge Work",  
        "type": "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document",  
        "uri": "http://www.reknow.fi/"  
    },  
    "type": "http://www.semanticdesktop.org/ontologies/2010/01/25/nuao#UsageEvent"  
}  

Adding data classes

If you need a new data class, it should be implemented as subclass of the existing ones - please discuss it first e.g. in

Clone this wiki locally