Nepomuk MultiMedia (NMM): Tracker Ontology Reference Manual

## Nepomuk MultiMedia (NMM) Nepomuk MultiMedia (NMM) — Description of multimedia objects like Music, Video and Images |

## Synopsis

    @prefix nmm: <http://tracker.api.gnome.org/ontology/v3/nmm#>

## Classes

AnalogRadio, Artist, DigitalRadio, Flash, ImageList, MeteringMode, Movie, MusicAlbum, MusicAlbumDisc, MusicPiece, Photo, Playlist, RadioModulation, RadioStation, SynchronizedText, TVSeason, TVSeries, TVShow, Video, WhiteBalance

## Additional Properties

alternativeMedia, artwork, dlnaMime, dlnaProfile, genre, skipCounter, uPnPShared

## Overview

### Introduction

This ontology extends NIE (Nepomuk Information Element ontology) and NFO (Nepomuk File Ontology) into the domains of multimedia, including Images, Videos, Music and Radio, and includes a couple of properties to support uPnP sharing.

This ontology replaces/complements NID3 and NEXIF. Those ontologies are a direct map of the respective metadata standards, which makes very difficult to map cleanly other standards (like gstreamer metadata, mp4, ogg, and so on). Besides, those ontologies contain a lot of very low level technical information that is useless to the average user of the desktop.

Our approach in NMM is to keep the minimum properties that make sense for the user, and are present in all (or almost all) specific metadata formats. A profesional photographer (or musician) who needs more fine-grained details for its documents, is free to add also nID3 information or other extensions to the ontology.

### Images domain

The core of images in NMM ontology is the class nmm:Photo. It is (through a long hierarchy) a nie:InformationElement, an interpretation of some bytes. It has properties to store the basic information (camera, metering mode, white balance, flash), and inherits from nfo:Image orientation (nfo:orientation) and resolution (nfo:verticalResolution and nfo:horizontalResolution).

Note that for tags, nie:keywords (from nie:InformationElement) can be used, or the NAO ontology.

### Radio domain

NMM includes classes and properties to represent analog and digital radio stations. There is a class nmm:RadioStation on the nie:InformationElement side of the ontology, representing what the user sees about that station (genre via PTY codes, icon, plus title inherited from nie:InformationElement)

A nmm:RadioStation can have one or more nmm:carrier properties representing the different frequencies (or links when it is digitial) it can be tuned. This property links the station with nfo:MediaStream, but usually it will point to one of the subclasses: nmm:DigitalRadio (if digital) or nmm:AnalogRadio (if analog). An analog station has properties as modulation and frequency, while the digial station has streaming bitrate, encoding or protocol.

Note that nfo:MediaStream refers to a flux of bytes/data, and it is on the nie:DataObject side of the ontology

## Class Details

### AnalogRadio

#### Description

FM Radio carrier signal data. Basically the frequency

#### Class hierarchy

        nfo:MediaStream
            nmm:AnalogRadio

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`frequency` | integer |  | Frequency in the Radio spectrum in Khz (note that usually FM frequencies are in MHz)
`modulation` | RadioModulation |  | Modulation used in the frequency (AM or FM)

### Artist

#### Description

An artist.

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nie:InformationElement ──┐
        nco:Role ────────────────┤
                                 └── nmm:Artist

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`artistName` | string |  | Name of the artist

### DigitalRadio

#### Description

Online Radio Stream data object (i.e. as a raw flow of bytes)

#### Class hierarchy

        nfo:MediaStream
            nmm:DigitalRadio

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`encoding` | string |  | Encoding of the radio. It is a property of the streaming, that it is known before hand, so the applications can choose the encoding they understand.
`protocol` | string |  | Protocol used for the streaming (HTTP, RTSP)
`streamingBitrate` | integer |  | Bitrate indicating the quality of the stream in Kbits (usual values 32, 64, 128...)

### Flash

#### Description

Enumeration of the possible values of flash property

#### Class hierarchy

        rdfs:Resource
            nmm:Flash

#### Predefined instances

nmm:Flash has the following predefined instances:

- `nmm:flash-off`

- `nmm:flash-on`

### ImageList

#### Description

An album of images

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:MediaList
            nmm:ImageList

### MeteringMode

#### Description

Enumeration of different ways a camera determines exposure.

#### Class hierarchy

        rdfs:Resource
            nmm:MeteringMode

#### Predefined instances

nmm:MeteringMode has the following predefined instances:

- `nmm:metering-mode-other`

- `nmm:metering-mode-partial`

- `nmm:metering-mode-pattern`

- `nmm:metering-mode-multispot`

- `nmm:metering-mode-spot`

- `nmm:metering-mode-center-weighted-average`

- `nmm:metering-mode-average`

### Movie

#### Description

A Movie

#### Class hierarchy

        nie:InformationElement ──┐
        nfo:Media ───────────────┤
        nfo:Video ───────────────┤
        nfo:Visual ──────────────┤
                                 └── nmm:Movie

### MusicAlbum

#### Description

The music album as provided by the publisher. Not to be confused with media lists or collections

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:MediaList
            nmm:MusicAlbum

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`albumArtist` | Artist |  | main artists of the album
`albumDuration` | integer |  | Duration of the album
`albumGain` | integer |  | Gain of album
`albumPeakGain` | integer |  | Peak Gain of album
`albumTrackCount` | integer |  | Track count of album

### MusicAlbumDisc

#### Class hierarchy

        nie:InformationElement
            nmm:MusicAlbumDisc

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`albumDiscAlbum` | MusicAlbum |  | Album of the disc
`musicCDIdentifier` | string |  | Music CD identifier to for databases like FreeDB.org. This frame is intended for music that comes from a CD, so that the CD can be identified in databases such as the CDDB. The frame consists of a binary dump of the Table Of Contents, TOC, from the CD, which is a header of 4 bytes and then 8 bytes/track on the CD plus 8 bytes for the 'lead out' making a maximum of 804 bytes. The offset to the beginning of every track on the CD should be described with a four bytes absolute CD-frame address per track, and not with absolute time.
`setNumber` | integer |  | Disc number of album disc

### MusicPiece

#### Description

Used to assign music-specific properties such as BPM to video and audio

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:Media
            nmm:MusicPiece

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`artist` | Artist |  | main artist of the MusicPiece
`beatsPerMinute` | integer |  | beats per minute
`composer` | Artist |  | Composer
`internationalStandardRecordingCode` | string |  | ISRC ID. Format: 'CC-XXX-YY-NNNNN'
`lyricist` | Artist |  | Lyricist
`lyrics` | SynchronizedText |  |
`musicAlbum` | MusicAlbum |  | album the music belongs to
`musicAlbumDisc` | MusicAlbumDisc |  | album disc the music belongs to
`performer` | Artist |  | Performer
`trackNumber` | integer |  | Track number of the music in its album

### Photo

#### Description

A photo

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:Image
            nmm:Photo

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`exposureTime` | double |  | Exposure time of the photo
`flash` | Flash |  | Specifies whether flash was used
`fnumber` | double |  | The diameter of the entrance pupil in terms of the focal length of the lens
`focalLength` | double |  | A measure of how strongly the lens converges light
`isColorCorrected` | boolean |  |
`isCropped` | boolean |  |
`isoSpeed` | double |  | Measure of a photographic film's sensitivity to light as ISO value
`meteringMode` | MeteringMode |  | Metering mode refers to the way in which a camera determines the exposure.
`whiteBalance` | WhiteBalance |  |

### Playlist

#### Description

Specific class to split MediaList in Albums and playlists.

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:MediaList
            nmm:Playlist

### RadioModulation

#### Description

Set of instances for analog radio modulation

#### Class hierarchy

        rdfs:Resource
            nmm:RadioModulation

#### Predefined instances

nmm:RadioModulation has the following predefined instances:

- `nmm:radio-modulation-fm`

- `nmm:radio-modulation-am`

### RadioStation

#### Description

The Radio station in user terms: BBC3, Radio5, YLEX, ... It is linked with 1 or more carriers (different FM frenquencies, online sources in different qualities, etc.). Some RDS information is represented with nie properties, nie:identifier for PI, nie:title for PS

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:Audio
            nmm:RadioStation

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`carrier` | MediaStream |  | Signal where a radio can be tuned in. There can be more than one.
`radioIcon` | Image |  | Image used as logo for a radio station
`radioPTY` | integer |  | PTY Code (content description) as integer. RDS specs define the translations into human readable descriptions for various languages

### SynchronizedText

#### Class hierarchy

        nfo:PlainTextDocument
            nmm:SynchronizedText

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`isForHearingImpaired` | boolean |  | Does text stream contain helper tags for hearing-impaired such as <steps in hallway>

### TVSeason

#### Description

A season of a TV show

#### Class hierarchy

        nie:InformationElement
            nmm:TVSeason

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`hasSeasonEpisode` | TVShow |  | Relates a TV Show season to its episodes
`seasonNumber` | integer |  | The number of a season
`seasonOf` | TVSeries |  | Relates a TV Season to its series

### TVSeries

#### Description

A TV Series has multiple seasons and episodes

#### Class hierarchy

        nie:InformationElement
            nmm:TVSeries

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`hasEpisode` | TVShow |  | A TVSeries has many episodes
`hasSeason` | TVSeason |  | Relates a TV Series to its seasons

### TVShow

#### Description

A TV show

#### Class hierarchy

        nie:InformationElement ──┐
        nfo:Media ───────────────┤
        nfo:Video ───────────────┤
        nfo:Visual ──────────────┤
                                 └── nmm:TVShow

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`episodeNumber` | integer |  | Episode number of a TV show
`isPartOfSeason` | TVSeason |  | Relates a TV Show to its season
`series` | TVSeries |  | Relates a TV Show to its TV series

### Video

#### Description

This class emits notifications about changes, and can be monitored using TrackerNotifier.

#### Class hierarchy

        nfo:Video ──┐
        nfo:Audio ──┤
                    └── nmm:Video

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`MPAARating` | string |  |
`category` | string |  |
`director` | Artist |  |
`hasSubtitle` | boolean |  |
`isContentEncrypted` | boolean |  |
`leadActor` | Artist |  |
`producedBy` | Artist |  |
`runTime` | integer |  |
`subtitle` | SynchronizedText |  |
`synopsis` | string |  | Long form description of video content (plot, premise, etc.)

### WhiteBalance

#### Description

Camera's white balance setting

#### Class hierarchy

        rdfs:Resource
            nmm:WhiteBalance

#### Predefined instances

nmm:WhiteBalance has the following predefined instances:

- `nmm:white-balance-manual`

- `nmm:white-balance-auto`

## Property Details

### Additional properties for nfo:Media

#### Description

Properties this ontology defines which can describe nfo:Media resources.

#### Properties

Name | Type | Notes | Description
--- | --- | --- | ---
`alternativeMedia` | Media |  | Link between to different version of the same media. This is used for instances in uPnp where the server can provide the same video in different resolutions and codecs
`artwork` | Image |  | Associated Artwork
`dlnaMime` | string |  | Mimetypes as defined for DLNA (occasional differences compared to xdg-mime)
`dlnaProfile` | string |  | DLNA profile of the content, like MP3, MPEG_TS_HD_US, LPCM etc
`genre` | string |  |
`skipCounter` | integer |  |
`uPnPShared` | boolean |  | Tells the uPnP MediaServer (e.g. Rygel) whether to export/share the resource or not

## Credits and Copyright

Authors:
  - Urho Konttori <urho.konttori@nokia.com>
Editors:
  - Ivan Frade <ivan.frade@nokia.com>
  - Urho Konttori <urho.konttori@nokia.com>
Upstream:

  Not available

ChangeLog:

  Tracker changes