# Nepomuk Messaging Ontology (NMO): Model for messages and communications, including Email, SMS, MMS and phone calls

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:

- Upstream version

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.

The messaging domain is too wide to be explained in one shot. For that reason, it has been splitted in few smaller pieces easier to grasp: the Message class (the core of the whole representation), the conversation representation, the translation of an email to Nepomuk terms, and finally SMS and MMS representation.

### The Message class

The nmo:Message class is the common superclass for Emails, SMS, IM Messages, MMS (in NMO domain) and even Feed messages (defined in MFO ontology). As such, it has the common properties for a 'Message' as an meaningful item in a communication: sender and receiver of the message, sent/received time, status of the message (read, answered and so on). It is a subclass of nie:InformationElement and from there inherits the nie:plainTextContent property (which, as its name states, contains the text of the message).

Few considerations from practical point of view:

1. nmo:to and nmo:from should be set always, and there is a predefined instance in NCO for the "me" contact.

2. nmo:isSent should be used to indicate the direction of the message. This helps with the performance of queries to build a conversation view.

3. Even when there is a nmo:MessageHeader class that can store any arbitrary pair of key-values, its use must be as limited as possible. It is there to store the specific headers in the messages (mainly email) that cannot be completely represented in the ontology. Handle those headers in queries is a performance bottleneck that should be avoided in general.

#### Graphical Overview (Message class)

Notation defined in this page

### Conversations

The dialog between two contacts could be considered a list of messages sorted by time, but that representation is too simplistic. Two contacts can keep a simultaneous communication in two channels (e.g. IM and IRC), and the concept of conversation, a communication with a beggining and end is also important to sort the information in the UI.

The ontology provides a nmo:CommunicationChannel class, which groups all messages between a certain set of contacts (linked via nmo:hasParticipant property). The communication channel can be transient (an ad-hoc conversation in IM represented in the subclass nmo:TransientChannel) or permanent (a well-known IRC channel would be an instance of nmo:PermanentChannel ). Every time 'me' talks with an specific contact, the communication channel should be the same. It identifies somehow the whole list of messages between a set of participants.

There is a second important class, nmo:Conversation to group messages delimited in a time frame. Every time a IM dialog is open (e.g. a window talking with a certain contact) a new instance of nmo:Conversation is created.

### Email domain

The users usually see an Email as a flat Message, with some thread information and maybe 'attachments' in it, but in fact internally an Email message is a tree with a special root node (the envelope) that links to other nodes called MIME parts. This MIME parts can be plain text (for instance the content of the email that the user read) or binary blobs (like a document attached to the message). When a message is forwarded, the previous envelope (the root node of the original message) becomes just a mime part of the forwarded email.

The ontology represents completely that email tree. The Envelope, root node or more external representation of the Email is the basic nmo:Email class, subclass of Message. Every node in the tree is always a nmo:MimePart with the required properties to decode the content (mimetype, encoding, boundaries). When the node is internal, then it is also instance of nmo:MultiPart so it can use the nie:hasPart property to link other nodes. The leaf nodes can be instances of specific content classes (besides nmo:MimePart). For example, an MP3 embedded in an Email, will be represented as an instance nmo:MimePart and nmm:MusicPiece.

For more detailed (and highly technical) explanation of the email representation in general and this example in concrete, please check this wiki page

#### Graphical Overview (Email related classes)

Notation defined in this page

### Email accounts

Explain here MailAccount and MailFolder

### 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:plainTextContent inherited from nie:InformationElement 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:plainTextContent "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>

### MMS Messages

Bascially MMS messages has the structure of Email messages with an SMS envelope. This is exactly how they are represented in the ontology, with an specific class nmo:MMSMessage that inherits from SMS (to get the folders properties) and from nmo:Email (to use the Multipart/MimePart structure). Please refer to the SMS and Email documentation for more details.

### Call domain

Voice calls are considered messages in the ontology. A call is a communication item between two contacts (therefore a Message with to/from properties) with an extra property nmo:duration. Each call is represented as an instance of nmo:Call class. There is also a nmo:VOIPCall class (subclass of nmo:Call) for VOIP communications (e.g. Skype, GTalk,...).

## 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

Channel created ad-hoc for the communication like a multi chat in some systems

`Superclasses` :

  nmo:CommunicationChannel,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:MailboxDataObject

`Superclasses` :

  nie:DataObject,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:PermanentChannel

Well-known stable channel like an IRC room in a specific server. Predefined URL schema for the instances is recommended

`Superclasses` :

  nmo:CommunicationChannel,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:PhoneMessageFolder

Folder for phone message (SMS and MMS). Not a subclass of nfo:Folder because it would confuse filesystem folders

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  --

`In domain of` :

  nmo:containsPhoneMessage, nmo:containsPhoneMessageFolder, nmo:phoneMessageFolderId,

`In range of` :

  nmo:containsPhoneMessageFolder,

`Predefined instances` :

  nmo:predefined-phone-msg-folder-myfolder, nmo:predefined-phone-msg-folder-sent, nmo:predefined-phone-msg-folder-draft, nmo:predefined-phone-msg-folder-outbox, nmo:predefined-phone-msg-folder-inbox,

### nmo:MailFolder

`Superclasses` :

  nfo:Folder,

`Subclasses` :

  --

`In domain of` :

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

`In range of` :

  --

### nmo:MMSMessage

An MMS message is basically a Email with different envelop. It inherits also from SMS the folders and delivery status

`Superclasses` :

  nmo:PhoneMessage,

`Subclasses` :

  --

`In domain of` :

  nmo:mmsHasContent,

`In range of` :

  --

### nmo:Email

Root node in a MIME 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

Phone call. Voice communication with the user with somebody else.

`Superclasses` :

  nmo:Message,

`Subclasses` :

  nmo:VOIPCall,

`In domain of` :

  nmo:duration,

`In range of` :

  --

#### Note:

This class notifies about changes

### nmo:Multipart

`Superclasses` :

  nfo:DataContainer,

`Subclasses` :

  --

`In domain of` :

  nmo:partBoundary,

`In range of` :

  --

### nmo:MessageHeader

Pairs key=value to store arbitrary message header. Note that if a property exists already in the ontology for those headers it should be used. This is just a safe guard mechanism.

`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,

`Subclasses` :

  nmo:PhoneMessage, nmo:Call, nmo:IMMessage, nmo:Email,

`In domain of` :

  nmo:mmsId, nmo:mustAnswerReportRead, nmo:reportReadStatus, nmo:sentWithReportRead, nmo:reportDelivery, nmo:deliveryStatus, nmo:hasAttachment, nmo:communicationChannel, nmo:conversation, nmo:cc, nmo:bcc, nmo:to, nmo:sender, nmo:replyTo, nmo:receivedDate, nmo:messageSubject, nmo:messageId, nmo:messageHeader, nmo:inReplyTo, nmo:references, nmo:htmlMessageContent, nmo:isEmergency, nmo:isSent, nmo:isRead, nmo:isDraft, nmo:isDeleted, nmo:isAnswered, nmo:from, nmo:recipient, nmo:sentDate,

`In range of` :

  nmo:inReplyTo, nmo:references,

#### Note:

This class notifies about changes

### nmo:SMSMessage

Plain SMS Message

`Superclasses` :

  nmo:PhoneMessage,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### 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:mmsHasContent, nmo:hasContent,

### nmo:Attachment

`Superclasses` :

  nfo:Attachment, nmo:MimePart,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:VOIPCall

`Superclasses` :

  nmo:Call,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  --

### nmo:MailAccount

`Superclasses` :

  nie:InformationElement,

`Subclasses` :

  --

`In domain of` :

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

`In range of` :

  --

### 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:PhoneMessage

Superclass with shared properties between SMS and MMS.

`Superclasses` :

  nmo:Message,

`Subclasses` :

  nmo:MMSMessage, nmo:SMSMessage,

`In domain of` :

  nmo:validityPeriod, nmo:phoneMessageId, nmo:encoding, nmo:fromVCard, nmo:toVCard,

`In range of` :

  nmo:containsPhoneMessage,

### nmo:ReportReadStatus

Predefined set of read status instances

`Superclasses` :

  rdfs:Resource,

`Subclasses` :

  --

`In domain of` :

  --

`In range of` :

  nmo:reportReadStatus,

`Predefined instances` :

  nmo:read-status-unknown, nmo:read-status-deleted, nmo:read-status-read,

### 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:lastSuccessfulMessageDate, nmo:lastMessageDate,

`In range of` :

  nmo:communicationChannel,

## NMO Ontology Properties

### nmo:cc

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:lastMessageDate

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

`Type` :

  --

`Domain` :

  nmo:CommunicationChannel,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isSent

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:recipient

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  nmo:sender,

### nmo:serverCount

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isAnswered

True when the user has sent a replay to this message

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:fromVCard

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

`Type` :

  --

`Domain` :

  nmo:PhoneMessage,

`Range` :

  nfo:FileDataObject,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:encoding

Encoding of the message

`Type` :

  --

`Domain` :

  nmo:PhoneMessage,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:accountName

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:deliveryStatus

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:DeliveryStatus,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isRead

The messsage has been readed. The user has opened the message or has marked it directly as readed

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`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:containsPhoneMessageFolder

To link and reconstruct a hierarchy of folders

`Type` :

  --

`Domain` :

  nmo:PhoneMessageFolder,

`Range` :

  nmo:PhoneMessageFolder,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:sender

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  nmo:recipient,

`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

### nmo:isEmergency

Special message from the network, probably coming via Cell broadcasting with emergency information

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:reportDelivery

Report delivery has been requested for the message

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:to

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:contentId

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:from

The sender of the message.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:partBoundary

`Type` :

  --

`Domain` :

  nmo:Multipart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:phoneMessageFolderId

Id assigned to the folder for sync purpouses

`Type` :

  --

`Domain` :

  nmo:PhoneMessageFolder,

`Range` :

  xsd:string,

`Superproperties` :

  nie:identifier,

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:references

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:Message,

`Superproperties` :

  --

`Subproperties` :

  nmo:inReplyTo,

### nmo:fromAddress

From address of an account

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  nco:EmailAddress,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:validityPeriod

Validity period of an SMS in seconds. It is a value coming from the network

`Type` :

  --

`Domain` :

  nmo:PhoneMessage,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:receivedDate

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:hasParticipant

`Type` :

  --

`Domain` :

  nmo:CommunicationChannel,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:htmlMessageContent

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:mmsHasContent

Link to the mimeparts with the multimedia content (miming nmo:hasContent)

`Type` :

  --

`Domain` :

  nmo:MMSMessage,

`Range` :

  nmo:MimePart,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentTransferEncoding

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isDeleted

True when the user has removed the Email in the UI but still exists in the DB. Usually a purge or confirmation from the user will actually remove the data.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:charSet

`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:contentDescription

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:duration

Duration of the call in seconds

`Type` :

  --

`Domain` :

  nmo:Call,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:replyTo

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### 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:messageId

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`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:isDraft

The user hasn't finished editing the message and might want to continue later

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:headerValue

Value of the message header key-value pair

`Type` :

  --

`Domain` :

  nmo:MessageHeader,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:bcc

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nco:Contact,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:contentDisposition

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:reportReadStatus

If the message was sent with report read enable, this property stores the status of that message: if the recipient has read it, delete it, or we are still waiting for an answer

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:ReportReadStatus,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:inReplyTo

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nmo:Message,

`Superproperties` :

  nmo:references,

`Subproperties` :

  --

### nmo:signature

`Type` :

  --

`Domain` :

  nmo:MailAccount,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:folderName

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:serverUnreadCount

`Type` :

  --

`Domain` :

  nmo:MailFolder,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:containsPhoneMessage

Link between an Phone Message and a Folder

`Type` :

  --

`Domain` :

  nmo:PhoneMessageFolder,

`Range` :

  nmo:PhoneMessage,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:hasAttachment

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  nfo:Attachment,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:headerName

Key of the message header key-value pair

`Type` :

  --

`Domain` :

  nmo:MessageHeader,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:mimeHeader

`Type` :

  --

`Domain` :

  nmo:MimePart,

`Range` :

  rdfs:Resource,

`Superproperties` :

  --

`Subproperties` :

  --

### nmo:sentWithReportRead

The message has been send with a flag indicating that we want to receive a confirmation when the recipient reads it

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:isFlagged

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:lastSuccessfulMessageDate

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

`Type` :

  --

`Domain` :

  nmo:CommunicationChannel,

`Range` :

  xsd:dateTime,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:mmsId

Unique identifier of an MMS message. It comes from the server

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:messageSubject

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

`Text indexed` :

  This property is indexed, so it can provide results on text search

### nmo:phoneMessageId

Id assigned in the system when the phone message is received

`Type` :

  --

`Domain` :

  nmo:PhoneMessage,

`Range` :

  xsd:integer,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:contentMimeType

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:string,

`Superproperties` :

  nie:mimeType,

`Subproperties` :

  --

### nmo:mustAnswerReportRead

The message came with the report-read flag enabled, and somebody must be send the answer back. Once the report is sent, this property goes to False.

`Type` :

  --

`Domain` :

  nmo:Message,

`Range` :

  xsd:boolean,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:hasContent

Link between the root node and the first MIME node in the Email tree

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  nmo:MimePart,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:status

`Type` :

  --

`Domain` :

  nmo:Email,

`Range` :

  xsd:string,

`Superproperties` :

  --

`Subproperties` :

  --

`Cardinality` :

  1

### nmo:toVCard

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

`Type` :

  --

`Domain` :

  nmo:PhoneMessage,

`Range` :

  nfo:FileDataObject,

`Superproperties` :

  --

`Subproperties` :

  --