# Maemo Feeds Ontology (MFO): Model for feeds and alike online streams

Authors:
  - Jitendra Kumar <jitendra.1.kumar@nokia.com>
  - Ivan Frade <ivan.frade@nokia.com>
Editors:
  - Ivan Frade <ivan.frade@nokia.com>
Upstream:

  Not available

ChangeLog:

  Tracker changes

Copyright:

  © 2009, 2010 Nokia

## Overview

### Introduction

This ontology is an abstract representation of entries coming from feeds. These feeds can be blogs (any of the common syndication formats can be translated into this representation), podcasts or even some online services (like flickr).

The basic assumption in the ontology is that all these feeds are unidirectional conversations with (from) the author of the content and every post on those channels is a message.

The source of the posts, the feed itself, is an instance of mfo:FeedChannel. Each post in that feed will be an instance of mfo:FeedMessage . The relation between the messages and the channel comes from their superclasses, nmo:communicationChannel (taking into account that mfo:FeedChannel is a subclass of nmo:CommunicationChannel and mfo:FeedMessage a subclass of nmo:Message).

A post can be plain text but can contain also more things like links, videos or Mp3. We represent those internal pieces in instances of mfo:Enclosure. This class has properties to link with the remote and local representation of the resource (in case the content has been downloaded).

Finally, the three important classes (mfo:FeedChannel, mfo:FeedMessage, mfo:Enclosure) are subclasses of mfo:FeedElement, just an abstract class to share the link with mfo:FeedSettings. mfo:FeedSettings contains some common configuration options. Not all of them applies to all, but it is a quite cleaner solution. For instance the mfo:maxSize property only makes sense per-enclosure, while the mfo:updateInterval is useful for the channel.

### Special remarks

In some feeds, like "Yahoo Media RSS, there can be multiple enclosures together in a group, representing the same resource in different formats, qualities, resolutions, etc. Until further notify, the group will be represented using nie:identifier property . To mark the default enclosure of the group, there is a mfo-groupDefault property

Graphical Overview

Notation defined in this page

## MFO Ontology Classes

### mfo:FeedMessage

Represents feed entry on top of Nepomuk Messaging Ontology's message. May have enclosures attached and certain settings that allow deviation from feed channel's setup

Superclasses :

  mfo:FeedElement, nmo:Message,

Subclasses :

  --

In domain of :

  mfo:enclosureList, mfo:downloadedTime,

In range of :

  --

Note:

This class notifies about changes

### mfo:FeedChannel

Represents feed channel transfer, typically a download of RSS or ATOM. It is also a communication channel of Nepomuk Messaging Ontology so that feed sources could be treated as message sources

Superclasses :

  mfo:FeedElement, nmo:CommunicationChannel,

Subclasses :

  --

In domain of :

  mfo:type, mfo:action, mfo:totalCount, mfo:unreadCount, mfo:updatedTime,

In range of :

  --

Note:

This class notifies about changes

### mfo:Enclosure

Represents an enclosure of a feed message

Superclasses :

  mfo:FeedElement,

Subclasses :

  --

In domain of :

  mfo:optional, mfo:localLink, mfo:groupDefault, mfo:remoteLink,

In range of :

  mfo:enclosureList,

Note:

This class notifies about changes

### mfo:FeedSettings

Represents settings applied to a feed channel or a feed entry. How often it is updated, through which connection type it is delivered, when data expires and so on

Superclasses :

  rdfs:Resource,

Subclasses :

  --

In domain of :

  mfo:maxSize, mfo:downloadFlag, mfo:downloadPath, mfo:expiryInterval, mfo:updateInterval,

In range of :

  mfo:feedSettings,

### mfo:FeedElement

Superclass for all elements related with feeds, to provide common configuration options

Superclasses :

  nie:InformationElement,

Subclasses :

  mfo:Enclosure, mfo:FeedMessage, mfo:FeedChannel,

In domain of :

  mfo:feedSettings, mfo:image,

In range of :

  --

### mfo:Action

class with a restricted set of actions

Superclasses :

  rdfs:Resource,

Subclasses :

  --

In domain of :

  --

In range of :

  mfo:action,

Predefined instances :

  mfo:refresh-now,

### mfo:FeedType

class with a restricted set of feed types

Superclasses :

  rdfs:Resource,

Subclasses :

  --

In domain of :

  mfo:name,

In range of :

  mfo:type,

## MFO Ontology Properties

### mfo:image

Type :

  --

Domain :

  mfo:FeedElement,

Range :

  xsd:string,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:maxSize

Maximum size of enclosure that can be downloaded. Interpreted as KBs

Type :

  --

Domain :

  mfo:FeedSettings,

Range :

  xsd:integer,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:remoteLink

Used to store remote URL of enclosure

Type :

  --

Domain :

  mfo:Enclosure,

Range :

  nfo:RemoteDataObject,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:enclosureList

A list of enclosures

Type :

  --

Domain :

  mfo:FeedMessage,

Range :

  mfo:Enclosure,

Superproperties :

  --

Subproperties :

  --

### mfo:totalCount

Total messages count within a channel

Type :

  --

Domain :

  mfo:FeedChannel,

Range :

  xsd:integer,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:updatedTime

Captures the updated date and time when the channel is updated

Type :

  --

Domain :

  mfo:FeedChannel,

Range :

  xsd:dateTime,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:name

Feed format name like rss-atom,flickr,facebook

Type :

  --

Domain :

  mfo:FeedType,

Range :

  xsd:string,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:action

Captures the current action for the channel: Refresh Now

Type :

  --

Domain :

  mfo:FeedChannel,

Range :

  mfo:Action,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:updateInterval

Update interval for a feed channel to get updated or refreshed. Interpreted as minutes

Type :

  --

Domain :

  mfo:FeedSettings,

Range :

  xsd:integer,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:localLink

Downloaded copy of the enclosure

Type :

  --

Domain :

  mfo:Enclosure,

Range :

  nfo:FileDataObject,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:type

Feeds format type which is mapped to plugin used in engine: flickr,rss-atom

Type :

  --

Domain :

  mfo:FeedChannel,

Range :

  mfo:FeedType,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:downloadedTime

Captures the time stamp when message was downloaded

Type :

  --

Domain :

  mfo:FeedMessage,

Range :

  xsd:dateTime,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:feedSettings

Settings

Type :

  --

Domain :

  mfo:FeedElement,

Range :

  mfo:FeedSettings,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:groupDefault

Different enclosures can represent the same resource in different formats/resolutions. This representations are grouped using the nie:identifier property and this property identify the default between them.

Type :

  --

Domain :

  mfo:Enclosure,

Range :

  xsd:boolean,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:expiryInterval

Expiry interval for feed channel, it tells time that a message in a channel can live. Interpreted as minutes

Type :

  --

Domain :

  mfo:FeedSettings,

Range :

  xsd:integer,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:downloadPath

Download path for enclosures in a message

Type :

  --

Domain :

  mfo:FeedSettings,

Range :

  xsd:string,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:unreadCount

Unread messages count within a channel

Type :

  --

Domain :

  mfo:FeedChannel,

Range :

  xsd:integer,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:downloadFlag

To indicate whether enclosures will be downloaded or not

Type :

  --

Domain :

  mfo:FeedSettings,

Range :

  xsd:boolean,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1

### mfo:optional

The enclosure is mandatory to download or only optional

Type :

  --

Domain :

  mfo:Enclosure,

Range :

  xsd:boolean,

Superproperties :

  --

Subproperties :

  --

Cardinality :

  1