-
Notifications
You must be signed in to change notification settings - Fork 7
Data
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.
The image below illustrates several events being uploaded over time.
Some refer to InformationElement
s, many events may naturally refer
to the same InformationElement
, e.g. opening and closing the same
document.
Below is an example of a DesktopEvent
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, and the event
specifies when the web page was accessed.
The example is given below in JSON, which is the data format used for uploading to and downloading from DiMe. The fields and their meaning are explained below in the comments.
{
// this corresponds to the Java event class
"@type": "DesktopEvent",
// the program that produced the event, here the web browser
"actor": "Firefox",
// a unique id, if left empty DiMe will generate a random id
"id": "f9654c54d7f38acfe179b04de8c0554ea1d6481b",
// typically the host name of the computer where the event was generated
"origin": "hp8x-15.cs.helsinki.fi",
// time stamp when the event was started
"start": "2015-08-11T12:56:53Z",
// type using the Semantic Desktop ontology
"type": "http://www.semanticdesktop.org/ontologies/2010/01/25/nuao#UsageEvent"
// the contained InformationElement
"targettedResource": {
// the Java class
"@type": "Document",
// a unique id, if left empty DiMe will generate a random id
"id": "d74fa5afb9c04e148fc75a640348f8648c17812b",
//
"isStoredAs": "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#RemoteDataObject",
// mime type, optional
"mimeType": "text/html",
// the plain text, used for search
"plainTextContent": "The revolution has begun...",
// title of the document
"title": "Revolution of Knowledge Work | Revolution of Knowledge Work",
// type using the Semantic Desktop ontology
"type": "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document",
// the URI of the web page or document
"uri": "http://www.reknow.fi/"
},
}
If you need a new data class, it should be implemented as subclass of the existing ones - please discuss it first e.g. in
- the #dime channel on Slack, or
- open an issue in the issue tracker, or
- send an email to [email protected].