# 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