# NMO Ontology

Authors:
- - Tracker Developers
  - Ludger van Elst, DFKI, <elst@dfki.uni-kl.de>
  - Michael Sintek, DFKI, <michael.sintek@dfki.de>
  - Leo Sauermann, DFKI, <leo.sauermann@dfki.de>
  - Antoni Mylka, DFKI, <antoni.mylka@dfki.de>
Editors:
- - Antoni Mylka, DFKI, <antoni.mylka@dfki.de>
  - Tracker developers (translation into turtle)
Contributors:
- - Christiaan Fluit, Aduna, <christiaan.fluit@aduna-software.com>
  - Evgeny 'phreedom' Egorochkin, KDE Strigi Developer, <stexx@mail.ru>
Upstream:

- Not available

ChangeLog:

- Tracker changes

Copyright:

- © 2007 DFKI © 2009 Nokia. The ontologies are made available under the terms of NEPOMUK software license (FIXME verify)

## Overview

### Introduction

NEPOMUK Message Ontology extends the NEPOMUK Information Element framework into the domain of messages. This ontology has been heavily extended by Tracker team to include real support for Emails, IM Accounts, SMS and Calls relevant in environments like Maemo.

### Email domain

This complex issues is explained in great details in this wiki page

FIXME add a diagram of the Email classes and main properties

### SMS domain

We have a new subclass of message to represent a SMS Message. It is worth to remark that we are talking about a simple text message. Things like MMS are more complex (more similar to an email than a simple message), and will have their own classes.

An SMS Message comes from the network in vmessage format and contains to/from recipients in vcards. It is represented in the ontology with the following properties:

- A nmo:SMSMessage instance to represent the message itself
- nmo:to and nmo:from linking the contacts (one of them "me", the other a nco:Contact or even a nco:PersonContact if the software is able to identify him).
- For some implementations, is usefull to save the original vcards. For that nmo:fromVCard and nmo:toVCard properties can be used. Those properties point to files in the file system with the vcards
- nmo:plainTextMessageContent inherited from nmo:Message for the content.
- nmo:containsSMS property will link the message with the relevant nmo:SMSFolder.
- If needed, language and characterSet are inherited from NIE (nie:language, nie:characterSet), but there is a specific nmo:encoding property.
- Note that nmo:SMSMessage is a subclass of nmo:Message and inherits all its properties, including nmo:isDeleted

Here is an example of an SMS Message in Tracker/Nepomuk:

     # There are some predefined folder for SMS, like
     #    nmo:default-sms-folder-inbox
     #
     # We also know the 'to' uri from a previous query

     # File containing the 'to' vcard
     <file:///home/user/.sms/vcards/123098.vcard> a nfo:FileDataObject

     <test://1> a nmo:SMSMessage ;
            nmo:from <nco:default-contact-me> ;
            nmo:to  <urn:uuid:here-some-uri-of-a-contact> ;
            nmo:plainTextMessageContent "Forgot the keys. Are you at home?" ;
            nie:characterSet "utf-8" ;
            nmo:toVCard <file:///home/user/.sms/vcards/123098.vcard> ;
            nmo:isDeleted false .

     <nmo:default-sms-folder-inbox> nmo:containsSMS  <test://1>

### Call domain

FIXME Explain call and VoIP call classes

## NMO Ontology Classes

### nmo:Conversation

A conversation. An exchange of one or multiple messages within a time frame or about a specific topic.

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  nmo:conversation,

### nmo:TransientChannel

`Superclasses` :

  nmo:CommunicationChannel,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:MailboxDataObject

`Superclasses` :

  nie:DataObject,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:Mailbox

`Superclasses` :

  nmo:MailAccount,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

#### Note:

This class is deprecated

### nmo:PermanentChannel

`Superclasses` :

  nmo:CommunicationChannel,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:MailFolder

`Superclasses` :

  nfo:Folder,

`Subclasses` :

  --

`In domain of` :

  nmo:serverUnreadCount, nmo:serverCount, nmo:folderName,

`In range of` :

  --

### nmo:Email

`Superclasses` :

  nmo:Message,

`Subclasses` :

  --

`In domain of` :

  nmo:contentMimeType, nmo:responseType, nmo:status, nmo:isRecent, nmo:isFlagged, nmo:hasContent,

`In range of` :

  --

### nmo:IMMessage

`Superclasses` :

  nmo:Message,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:Call

`Superclasses` :

  nmo:Message,

`Subclasses` :

  nmo:VOIPCall,

`In domain of` :

  nmo:duration,

`In range of` :

  --

### nmo:Multipart

`Superclasses` :

  nfo:DataContainer,

`Subclasses` :

  --

`In domain of` :

  nmo:partBoundary,

`In range of` :

  --

### nmo:Attachment

`Superclasses` :

  nfo:Attachment, nmo:MimePart,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:MessageHeader

`Superclasses` :

  rdfs:Resource,

`Subclasses` :

  --

`In domain of` :

  nmo:headerValue, nmo:headerName,

`In range of` :

  nmo:messageHeader,

### nmo:Message

A message. Could be an email, instant messanging message, SMS message etc.

`Superclasses` :

  nfo:TextDocument, nie:InformationElement,

`Subclasses` :

  nmo:SMSMessage, nmo:Call, nmo:IMMessage, nmo:Email,

`In domain of` :

  nmo:deliveryStatus, nmo:hasAttachment, nmo:communicationChannel, nmo:conversation, nmo:cc, nmo:bcc, nmo:to, nmo:sentDate, nmo:sender, nmo:replyTo, nmo:receivedDate, nmo:messageSubject, nmo:messageId, nmo:messageHeader, nmo:inReplyTo, nmo:references, nmo:htmlMessageContent, nmo:plainTextMessageContent, nmo:isSent, nmo:isRead, nmo:isDraft, nmo:isDeleted, nmo:isAnswered, nmo:from, nmo:recipient,

`In range of` :

  nmo:inReplyTo, nmo:references,

#### Note:

This class notifies about changes

### nmo:SMSMessage

Plain SMS Message

`Superclasses` :

  nmo:Message,

`Subclasses` :

  --

`In domain of` :

  nmo:smsId, nmo:encoding, nmo:fromVCard, nmo:toVCard,

`In range of` :

  nmo:containsSMS,

### nmo:MimePart

`Superclasses` :

  nfo:EmbeddedFileDataObject,

`Subclasses` :

  nmo:Attachment,

`In domain of` :

  nmo:mimeHeader, nmo:contentDisposition, nmo:contentDescription, nmo:contentTransferEncoding, nmo:contentId, nmo:charSet,

`In range of` :

  nmo:hasContent,

### nmo:MailAccount

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  nmo:Mailbox,

`In domain of` :

  nmo:signature, nmo:fromAddress, nmo:accountDisplayName, nmo:accountName,

`In range of` :

  --

### nmo:VOIPCall

`Superclasses` :

  nmo:Call,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:SMSFolder

Folder for SMS. Not a subclass of nfo:Folder because it would confuse filesystem folders

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  --

`In domain of` :

  nmo:containsSMS, nmo:containsSMSFolder, nmo:smsFolderId,

`In range of` :

  nmo:containsSMSFolder,

`Predefined instances` :

  nmo:default-sms-folder-myfolder, nmo:default-sms-folder-sent, nmo:default-sms-folder-draft, nmo:default-sms-folder-outbox, nmo:default-sms-folder-inbox,

### nmo:DeliveryStatus

Predefined set of delivery status instances

`Superclasses` :

  rdfs:Resource,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  nmo:deliveryStatus,

`Predefined instances` :

  nmo:delivery-status-permanently-failed, nmo:delivery-status-temporarily-failed, nmo:delivery-status-delivered, nmo:delivery-status-sent,

### nmo:CommunicationChannel

A communication channel. The container for all messages between participants of a specific group or in a persistent channel.

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  nmo:TransientChannel, nmo:PermanentChannel,

`In domain of` :

  nmo:hasParticipant, nmo:lastMessageDate,

`In range of` :

  nmo:communicationChannel,

## NMO Ontology Properties

### nmo:toVCard

Reference to a VCard in the filesystem, containing the Contact information of 'to' recipients

`Type` :

  --

`Domain` :

  nmo:SMSMessage,

`Range` :

  nfo:FileDataObject,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:htmlMessageContent

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:lastMessageDate

nmo:sentDate of the most recent message in this channel.

`Type` :

  --

`Domain` :

  nmo:CommunicationChannel,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:receivedDate

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isRecent

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:sentDate

Date when this message was sent.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isSent

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:hasContent

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  nmo:MimePart,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:headerName

`Type` :

  --

`Domain` :

  nmo:MessageHeader,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:messageSubject

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:recipient

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  nmo:sender,

### nmo:bcc

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:fromAddress

From address of an account

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  nco:EmailAddress,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:signature

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:plainTextMessageContent

nmo:plainTextMessageContent is deprecated, use nie:plainTextContent instead

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

#### Note:

This property is deprecated

### nmo:charSet

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:smsId

Id assigned in the system when the sms is received

`Type` :

  --

`Domain` :

  nmo:SMSMessage,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:duration

Duration of the call in seconds

`Type` :

  --

`Domain` :

  nmo:Call,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isDraft

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:from

The sender of the message.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:fromVCard

Reference to a VCard in the filesystem, containing the Contact information of the 'from' recipient

`Type` :

  --

`Domain` :

  nmo:SMSMessage,

`Range` :

  nfo:FileDataObject,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:communicationChannel

Connects this message to a communication channel. Every message must only be in a single channel.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:CommunicationChannel,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentTransferEncoding

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:responseType

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:status

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:serverCount

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:deliveryStatus

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:DeliveryStatus,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:to

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:headerValue

`Type` :

  --

`Domain` :

  nmo:MessageHeader,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:replyTo

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentId

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentDescription

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:hasAttachment

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nfo:Attachment,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:encoding

Encoding of the message

`Type` :

  --

`Domain` :

  nmo:SMSMessage,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:folderName

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:smsFolderId

Id assigned to the folder for sync purpouses

`Type` :

  --

`Domain` :

  nmo:SMSFolder,

`Range` :

  xsd:string,

`Superproperties` :

  nie:identifier,

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:cc

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:references

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:Message,

`Superproperties` :

  --

`Subproperties` :

  nmo:inReplyTo,

### nmo:messageId

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:containsSMS

Link between an SMS Message and a Folder

`Type` :

  --

`Domain` :

  nmo:SMSFolder,

`Range` :

  nmo:SMSMessage,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:conversation

Connects this message to a conversation. Every message must only be part of a single conversation.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:Conversation,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:sender

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  nmo:recipient,

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isAnswered

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentMimeType

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:string,

`Superproperties` :

  nie:mimeType,

`Subproperties` :

  --

### nmo:containsSMSFolder

To link and reconstruct a hierarchy of folders

`Type` :

  --

`Domain` :

  nmo:SMSFolder,

`Range` :

  nmo:SMSFolder,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:isDeleted

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isRead

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:inReplyTo

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:Message,

`Superproperties` :

  nmo:references,

`Subproperties` :

  --

### nmo:hasParticipant

`Type` :

  --

`Domain` :

  nmo:CommunicationChannel,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:accountName

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:partBoundary

`Type` :

  --

`Domain` :

  nmo:Multipart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:mimeHeader

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  rdfs:Resource,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:serverUnreadCount

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentDisposition

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isFlagged

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:messageHeader

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:MessageHeader,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:accountDisplayName

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1