#
# Copyright (c) 2007 NEPOMUK Consortium
# All rights reserved, licensed under either CC-BY or BSD.
#
# You are free:
#  * to Share - to copy, distribute and transmit the work
#  * to Remix - to adapt the work
# Under the following conditions:
#  * Attribution - You must attribute the work in the manner specified by the author
#    or licensor (but not in any way that suggests that they endorse you or your use 
#    of the work).
#
# Redistribution and use in source and binary forms, with or without modification, 
# are permitted provided that the following conditions are met:
#  * Redistributions of source code must retain the above copyright notice, this 
#    list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above copyright notice, this 
#    list of conditions and the following disclaimer in the documentation and/or 
#    other materials provided with the distribution.
#  * Neither the names of the authors nor the names of contributors may
#    be used to endorse or promote products derived from this ontology without 
#    specific prior written permission.
#
# THIS ONTOLOGY IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS ONTOLOGY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

@prefix exif:    <http://www.kanzaki.com/ns/exif#> .
@prefix nid3:    <http://www.semanticdesktop.org/ontologies/2007/05/10/nid3#> .
@prefix nrl:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
@prefix nfo:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix tmo:     <http://www.semanticdesktop.org/ontologies/2008/05/20/tmo#> .
@prefix protege:  <http://protege.stanford.edu/system#> .
@prefix nmo:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix nexif:   <http://www.semanticdesktop.org/ontologies/2007/05/10/nexif#> .
@prefix ncal:    <http://www.semanticdesktop.org/ontologies/2007/04/02/ncal#> .
@prefix pimo:    <http://www.semanticdesktop.org/ontologies/2007/11/01/pimo#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .
@prefix nao:     <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
@prefix geo:     <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix dc:      <http://purl.org/dc/elements/1.1/> .
@prefix nie:     <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
@prefix nco:     <http://www.semanticdesktop.org/ontologies/2007/03/22/nco#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

nid3: {nid3:officialArtistWebpage
          a       rdf:Property ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "officialArtistWebpage" ;
          rdfs:range rdfs:Resource .

    nid3:albumTitle
          a       rdf:Property ;
          rdfs:comment """TALB
The 'Album/Movie/Show title' frame is intended for the title of the recording(/source of sound) which the audio in the file is taken from.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "albumTitle" ;
          rdfs:range xsd:string .

    nid3:recordingYear
          a       rdf:Property ;
          rdfs:comment """TYER
The 'Year' frame is a numeric string with a year of the recording. This frames is always four characters long (until the year 10000).""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "recordingYear" ;
          rdfs:range xsd:integer .

    nid3:hasSynchronizedText
          a       rdf:Property ;
          rdfs:comment "Links the ID3Audio with an instance of SynchronizedText" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "hasSynchronizedText" ;
          rdfs:range nid3:SynchronizedText .

    nid3:officialInternetRadioStationHomepage
          a       rdf:Property ;
          rdfs:comment """WORS
The 'Official internet radio station homepage' contains a URL pointing at the homepage of the internet radio station.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "officialInternetRadioStationHomepage" ;
          rdfs:range rdfs:Resource .

    nid3:SynchronizedText
          a       rdfs:Class ;
          rdfs:comment "SYLT This is another way of incorporating the words, said or sung lyrics, in the audio file as text, this time, however, in sync with the audio. It might also be used to describing events e.g. occurring on a stage or on the screen in sync with the audio. The header includes a content descriptor, represented with as terminated textstring. If no descriptor is entered, 'Content descriptor' is $00 (00) only." ;
          rdfs:label "SynchronizedText" ;
          rdfs:subClassOf rdfs:Resource .

    nid3:internetRadioStationName
          a       rdf:Property ;
          rdfs:comment """TRSN
The 'Internet radio station name' frame contains the name of the internet radio station from which the audio is streamed.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "internetRadioStationName" ;
          rdfs:range xsd:string .

    nid3:comments
          a       rdf:Property ;
	  nao:deprecated true ;
          rdfs:comment "COMM - This frame is indended for any kind of full text information that does not fit in any other frame. It consists of a frame header followed by encoding, language and content descriptors and is ended with the actual comment as a text string. Newline characters are allowed in the comment text string. There may be more than one comment frame in each tag, but only one with the same language and content descriptor. Deprecated in favor of the more generic nie:comment." ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:subPropertyOf nie:comment ;
          rdfs:label "comments" ;
          rdfs:range xsd:string .

    nid3:originalTextWriter
          a       rdf:Property ;
          rdfs:comment """TOLY
The 'Original lyricist(s)/text writer(s)' frame is intended for the text writer(s) of the original recording, if for example the music in the file should be a cover of a previously released song. The text writers are seperated with the \"/\" character.
Note that in the RDF representation each original lyricist is represented with a separate triple.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "originalTextWriter" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:officialAudioSourceWebpage
          a       rdf:Property ;
          rdfs:comment """WOAS
The 'Official audio source webpage' frame is a URL pointing at the official webpage for the source of the audio file, e.g. a movie.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "officialAudioSourceWebpage" ;
          rdfs:range rdfs:Resource .

    nid3:encodedBy
          a       rdf:Property ;
          rdfs:comment """TENC
The 'Encoded by' frame contains the name of the person or organisation that encoded the audio file. This field may contain a copyright message, if the audio file also is copyrighted by the encoder.
Note that the RDF representation doesn't allow the copyright message in this field. Please move it to the copyrightMessage field.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "encodedBy" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:encodingSettings
          a       rdf:Property ;
          rdfs:comment """TSSE
The 'Software/Hardware and settings used for encoding' frame includes the used audio encoder and its settings when the file was encoded. Hardware refers to hardware encoders, not the computer on which a program was run.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "encodingSettings" ;
          rdfs:range xsd:string .

    nid3:publishersWebpage
          a       rdf:Property ;
          rdfs:comment """WPUB
The 'Publishers official webpage' frame is a URL pointing at the official wepage for the publisher.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "publishersWebpage" ;
          rdfs:range rdfs:Resource .

    nid3:involvedPerson
          a       rdf:Property ;
          rdfs:comment "Links an ID3 file to an InvolvedPerson, an equivalent of the involvedPeopleList tag. Since there might be a lot of people contributing to an audio file in various ways, such as musicians and technicians, the 'Text information frames' are often insufficient to list everyone involved in a project. The 'Involved people list' is a frame containing the names of those involved, and how they were involved. The body simply contains a terminated string with the involvement directly followed by a terminated string with the involvee followed by a new involvement and so on. There may only be one \"IPLS\" frame in each tag." ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "involvedPerson" ;
          rdfs:range nid3:InvolvedPerson .

    nid3:initialKey
          a       rdf:Property ;
          rdfs:comment """TKEY
The 'Initial key' frame contains the musical key in which the sound starts. It is represented as a string with a maximum length of three characters. The ground keys are represented with \"A\",\"B\",\"C\",\"D\",\"E\", \"F\" and \"G\" and halfkeys represented with \"b\" and \"#\". Minor is represented as \"m\". Example \"Cbm\". Off key is represented with an \"o\" only.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "initialKey" ;
          rdfs:range xsd:string .

    nid3:unsynchronizedTextContentDescriptor
          a       rdf:Property ;
          rdfs:comment "The content descriptor of the unsynchronized text. Inspired by the Content Descriptor field of the USLT frame, defined in ID3 2.3.0 Spec sec. 4.9" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "unsynchronizedTextContentDescriptor" ;
          rdfs:range xsd:string .

    nid3:paymentURL
          a       rdf:Property ;
          rdfs:comment """WPAY
The 'Payment' frame is a URL pointing at a webpage that will handle the process of paying for this file.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "paymentURL" ;
          rdfs:range rdfs:Resource .

    nid3:textElementTimestamp
          a       rdf:Property ;
          rdfs:comment "The 'time stamp' is set to zero or the whole sync is omitted if located directly at the beginning of the sound. All time stamps should be sorted in chronological order. The sync can be considered as a validator of the subsequent string." ;
          rdfs:domain nid3:SynchronizedTextElement ;
          rdfs:label "textElementTimestamp" ;
          rdfs:range xsd:integer .

    nid3:userDefinedFrame
          a       rdf:Property ;
          rdfs:comment "Links the ID3 file to a user-defined frame." ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "userDefinedFrame" ;
          rdfs:range nid3:UserDefinedFrame .

    nid3:commercialInformationURL
          a       rdf:Property ;
          rdfs:comment """WCOM
The 'Commercial information' frame is a URL pointing at a webpage with information such as where the album can be bought. There may be more than one \"WCOM\" frame in a tag, but not with the same content.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "commercialInformationURL" ;
          rdfs:range rdfs:Resource .

    nid3:originalAlbumTitle
          a       rdf:Property ;
          rdfs:comment """TOAL
The 'Original album/movie/show title' frame is intended for the title of the original recording (or source of sound), if for example the music in the file should be a cover of a previously released song.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "originalAlbumTitle" ;
          rdfs:range xsd:string .

    nid3:generalEncapsulatedObject
          a       rdf:Property ;
          rdfs:comment """An arbitrary file embedded in an audio file. Inspired by http://www.id3.org/id3v2.3.0 sec. 
4.16)""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "generalEncapsulatedObject" ;
          rdfs:range nie:DataObject ;
          rdfs:subPropertyOf nie:hasPart .

    nid3:leadArtist
          a       rdf:Property ;
          rdfs:comment """TPE1
The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is used for the main artist(s). They are seperated with the \"/\" character.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "leadArtist" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf dc:creator .

    nid3:userDefinedFrameValue
          a       rdf:Property ;
          rdfs:comment "Value of a user-defined frame." ;
          rdfs:domain nid3:UserDefinedFrame ;
          rdfs:label "userDefinedFrameValue" ;
          rdfs:range xsd:string .

    nid3:attachedPicture
          a       rdf:Property ;
          rdfs:comment "A picture attached to an audio file. The DataObject refered to by this property is usually interpreted as an nfo:Image Inspired by the attached picture tag defined in http://www.id3.org/id3v2.3.0 sec. 4.15)" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "attachedPicture" ;
          rdfs:range nie:DataObject ;
          rdfs:subPropertyOf nie:hasPart .

    nid3:date
          a       rdf:Property ;
          rdfs:comment """TDAT
The 'Date' frame is a numeric string in the DDMM format containing the date for the recording. This field is always four characters long.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "date" ;
          rdfs:range xsd:dateTime ;
          rdfs:subPropertyOf nie:contentCreated .

    nid3:unsynchronizedTextContent
          a       rdf:Property ;
          rdfs:comment "Unsynchronized text content. Inspired by the content part of the USLT frame defined in the ID3 2.3.0 Spec sec. 4.9" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "unsynchronizedTextContent" ;
          rdfs:range xsd:string ;
          rdfs:subPropertyOf nie:plainTextContent .

    nid3:mediaType
          a       rdf:Property ;
          rdfs:comment """TMED
The 'Media type' frame describes from which media the sound originated. This may be a text string or a reference to the predefined media types found in the list below. References are made within \"(\" and \")\" and are optionally followed by a text refinement, e.g. \"(MC) with four channels\". If a text refinement should begin with a \"(\" character it should be replaced with \"((\" in the same way as in the \"TCO\" frame. Predefined refinements is appended after the media type, e.g. \"(CD/A)\" or \"(VID/PAL/VHS)\".
See http://www.id3.org/id3v2.3.0 for details.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "mediaType" ;
          rdfs:range xsd:string .

    nid3:time
          a       rdf:Property ;
          rdfs:comment """TIME
The 'Time' frame is a numeric string in the HHMM format containing the time for the recording. This field is always four characters long.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "time" ;
          rdfs:range xsd:string .

    nid3:internetRadioStationOwner
          a       rdf:Property ;
          rdfs:comment """TRSO
The 'Internet radio station owner' frame contains the name of the owner of the internet radio station from which the audio is streamed.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "internetRadioStationOwner" ;
          rdfs:range nco:Contact .

    nid3:timestampFormat
          a       rdf:Property ;
          rdfs:comment """Time stamp format is: 
$01 Absolute time, 32 bit sized, using MPEG frames as unit
$02 Absolute time, 32 bit sized, using milliseconds as unit""" ;
          rdfs:domain nid3:SynchronizedText ;
          rdfs:label "timestampFormat" ;
          rdfs:range xsd:string .

    nid3:internationalStandardRecordingCode
          a       rdf:Property ;
          rdfs:comment """TSRC
The 'ISRC' frame should contain the International Standard Recording Code (ISRC) (12 characters).""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "internationalStandardRecordingCode" ;
          rdfs:range xsd:string .

    nid3:publisher
          a       rdf:Property ;
          rdfs:comment """TPUB
The 'Publisher' frame simply contains the name of the label or publisher.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "publisher" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:publisher .

    nid3:InvolvedPerson
          a       rdfs:Class ;
          rdfs:comment """Since there might be a lot of people contributing to an audio file in various ways, such as musicians and technicians, the 'Text information frames' are often insufficient to list everyone involved in a project. The 'Involved people list' is a frame containing the names of those involved, and how they were involved. The body simply contains a terminated string with the involvement directly followed by a terminated string with the involvee followed by a new involvement and so on. There may only be one \"IPLS\" frame in each tag.
Note that in this RDF representation each InvolvedPerson is represented with a separate instance of the InvolvedPerson class and with a separate involvedPerson triple.""" ;
          rdfs:label "InvolvedPerson" ;
          rdfs:subClassOf rdfs:Resource .

    nid3:beatsPerMinute
          a       rdf:Property ;
          rdfs:comment """TBPM
The 'BPM' frame contains the number of beats per minute in the mainpart of the audio. The BPM is an integer and represented as a numerical string.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "beatsPerMinute" ;
          rdfs:range xsd:integer .

    nid3:partOfSet
          a       rdf:Property ;
          rdfs:comment """TPOS
The 'Part of a set' frame is a numeric string that describes which part of a set the audio came from. This frame is used if the source described in the \"TALB\" frame is divided into several mediums, e.g. a double CD. The value may be extended with a \"/\" character and a numeric string containing the total number of parts in the set. E.g. \"1/2\".""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "partOfSet" ;
          rdfs:range xsd:string .

    nid3:composer
          a       rdf:Property ;
          rdfs:comment """TCOM
The 'Composer(s)' frame is intended for the name of the composer(s). They are seperated with the \"/\" character.
Note that in the RDF representation each composer is represented with a separate triple.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "composer" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:creator .

    nid3:musicCDIdentifier
          a       rdf:Property ;
          rdfs:comment "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. This frame requires a present and valid \"TRCK\" frame, even if the CD's only got one track. There may only be one \"MCDI\" frame in each tag." ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "musicCDIdentifier" ;
          rdfs:range xsd:string .

    nid3:UserDefinedURLFrame
          a       rdfs:Class ;
          rdfs:comment "This frame is intended for URL links concerning the audiofile in a similar way to the other \"W\"-frames. The frame body consists of a description of the string, represented as a terminated string, followed by the actual URL. The URL is always encoded with ISO-8859-1. There may be more than one \"WXXX\" frame in each tag, but only one with the same description." ;
          rdfs:label "UserDefinedURLFrame" ;
          rdfs:subClassOf nid3:UserDefinedFrame .

    nid3:fileType
          a       rdf:Property ;
          rdfs:comment """TFLT
The 'File type' frame indicates which type of audio this tag defines. The following type and refinements are defined: 
MPG MPEG Audio; 
/1 MPEG 1/2 layer I;
/2 MPEG 1/2 layer II;
/3 MPEG 1/2 layer III;
/2.5 MPEG 2.5;
/AAC Advanced audio compression;
VQF Transform-domain Weighted Interleave Vector Quantization;
PCM Pulse Code Modulated audio;""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "fileType" ;
          rdfs:range xsd:string .

    nid3:recordingDate
          a       rdf:Property ;
          rdfs:comment """TRDA
The 'Recording dates' frame is a intended to be used as complement to the \"TYER\", \"TDAT\" and \"TIME\" frames. E.g. \"4th-7th June, 12th June\" in combination with the \"TYER\" frame.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "recordingDate" ;
          rdfs:range xsd:string .

    nid3:backgroundArtist
          a       rdf:Property ;
          rdfs:comment """TPE2
The 'Band/Orchestra/Accompaniment' frame is used for additional information about the performers in the recording.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "backgroundArtist" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:language
          a       rdf:Property ;
	  nao:deprecated true ;
          rdfs:comment """TLAN
The 'Language(s)' frame should contain the languages of the text or lyrics spoken or sung in the audio. The language is represented with three characters according to ISO-639-2. If more than one language is used in the text their language codes should follow according to their usage. Deprecated in favor of the more generic nie:language.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "language" ;
          rdfs:range xsd:string ;
          rdfs:subPropertyOf nie:language .

    nid3:involvment
          a       rdf:Property ;
          rdfs:comment "How was this particular person involved in this particular track." ;
          rdfs:domain nid3:InvolvedPerson ;
          rdfs:label "involvment" ;
          rdfs:range xsd:string .

    nid3:UserDefinedFrame
          a       rdfs:Class ;
          rdfs:comment "This frame is intended for one-string text information concerning the audiofile in a similar way to the other \"T\"-frames. The frame body consists of a description of the string, represented as a terminated string, followed by the actual string. There may be more than one \"TXXX\" frame in each tag, but only one with the same description." ;
          rdfs:label "UserDefinedFrame" ;
          rdfs:subClassOf rdfs:Resource .

    nid3:textWriter
          a       rdf:Property ;
          rdfs:comment """TEXT
The 'Lyricist(s)/Text writer(s)' frame is intended for the writer(s) of the text or lyrics in the recording. They are seperated with the \"/\" character.
Note that in the RDF representation each text writer is represented with a separate triple.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "textWriter" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:copyrightMessage
          a       rdf:Property ;
          rdfs:comment """TCOP
The 'Copyright message' frame, which must begin with a year and a space character (making five characters), is intended for the copyright holder of the original sound, not the audio file itself. The absence of this frame means only that the copyright information is unavailable or has been removed, and must not be interpreted to mean that the sound is public domain. Every time this field is displayed the field must be preceded with \"Copyright\".""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "copyrightMessage" ;
          rdfs:range xsd:string ;
          rdfs:subPropertyOf dc:rights .

    nid3:uniqueFileIdentifier
          a       rdf:Property ;
          rdfs:comment "This frame's purpose is to be able to identify the audio file in a database that may contain more information relevant to the content. Since standardisation of such a database is beyond this document, all frames begin with a null-terminated string with a URL containing an email address, or a link to a location where an email address can be found, that belongs to the organisation responsible for this specific database implementation. Questions regarding the database should be sent to the indicated email address. The URL should not be used for the actual database queries. The string \"http://www.id3.org/dummy/ufid.html\" should be used for tests. Software that isn't told otherwise may safely remove such frames. The 'Owner identifier' must be non-empty (more than just a termination). The 'Owner identifier' is then followed by the actual identifier, which may be up to 64 bytes. There may be more than one \"UFID\" frame in a tag, but only one with the same 'Owner identifier'." ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "uniqueFileIdentifier" ;
          rdfs:range xsd:string ;
          rdfs:subPropertyOf nie:identifier .

    nid3:contentGroupDescription
          a       rdf:Property ;
          rdfs:comment """TIT1
The 'Content group description' frame is used if the sound belongs to a larger category of sounds/music. For example, classical music is often sorted in different musical sections (e.g. \"Piano Concerto\", \"Weather - Hurricane\").""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "contentGroupDescription" ;
          rdfs:range xsd:string .

    nid3:ID3Audio
          a       rdfs:Class ;
          rdfs:comment "A File annotated with ID3 tags. Implementation notes: use nie:title for the actual name of the piece (TIT2, the 'Title/Songname/Content description' frame); use nie:language for the languages of the text or lyrics spoken or sung in the audio (TLAN, the 'Language(s)' frame); use nie:comment for any kind of full text information that does not fit in any other frame (COMM frame)." ;
          rdfs:label "ID3Audio" ;
          rdfs:subClassOf nfo:Audio .

    nid3:hasSynchronizedTextElement
          a       rdf:Property ;
          rdfs:comment "Links the synchronized text object with the text elements." ;
          rdfs:domain nid3:SynchronizedText ;
          rdfs:label "hasSynchronizedTextElement" ;
          rdfs:range nid3:SynchronizedTextElement .

    nid3:originalArtist
          a       rdf:Property ;
          rdfs:comment """TOPE
The 'Original artist(s)/performer(s)' frame is intended for the performer(s) of the original recording, if for example the music in the file should be a cover of a previously released song. The performers are seperated with the \"/\" character.
Note that in the RDF repressentation each orignal artist is represented with a separate triple.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "originalArtist" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:creator .

    nid3:contentType
          a       rdf:Property ;
          rdfs:comment """TCON

The 'Content type', which previously was stored as a one byte numeric value only, is now a numeric string. You may use one or several of the types as ID3v1.1 did or, since the category list would be impossible to maintain with accurate and up to date categories, define your own. 

References to the ID3v1 genres can be made by, as first byte, enter \"(\" followed by a number from the genres list (appendix A) and ended with a \")\" character. This is optionally followed by a refinement, e.g. \"(21)\" or \"(4)Eurodisco\". Several references can be made in the same frame, e.g. \"(51)(39)\". If the refinement should begin with a \"(\" character it should be replaced with \"((\", e.g. \"((I can figure out any genre)\" or \"(55)((I think...)\". The following new content types is defined in ID3v2 and is implemented in the same way as the numerig content types, e.g. \"(RX)\". 
RX    Remix 
CR    Cover""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "contentType" ;
          rdfs:range xsd:string .

    nid3:textElementContent
          a       rdf:Property ;
          rdfs:domain nid3:SynchronizedTextElement ;
          rdfs:label "textElementContent" ;
          rdfs:range xsd:string .

    nid3:originalFilename
          a       rdf:Property ;
          rdfs:comment """TOFN
The 'Original filename' frame contains the preferred filename for the file, since some media doesn't allow the desired length of the filename. The filename is case sensitive and includes its suffix.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "originalFilename" ;
          rdfs:range xsd:string .

    nid3:conductor
          a       rdf:Property ;
          rdfs:comment """TPE3
The 'Conductor' frame is used for the name of the conductor.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "conductor" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:trackNumber
          a       rdf:Property ;
          rdfs:comment """TRCK
The 'Track number/Position in set' frame is a numeric string containing the order number of the audio-file on its original recording. This may be extended with a \"/\" character and a numeric string containing the total numer of tracks/elements on the original recording. E.g. \"4/9\".""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "trackNumber" ;
          rdfs:range xsd:string .

    nid3:licensee
          a       rdf:Property ;
          rdfs:comment """TOWN
The 'File owner/licensee' frame contains the name of the owner or licensee of the file and it's contents.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "licensee" ;
          rdfs:range nco:Contact .

    nid3:playlistDelay
          a       rdf:Property ;
          rdfs:comment """TDLY
The 'Playlist delay' defines the numbers of milliseconds of silence between every song in a playlist. The player should use the \"ETC\" frame, if present, to skip initial silence and silence at the end of the audio to match the 'Playlist delay' time. The time is represented as a numeric string.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "playlistDelay" ;
          rdfs:range xsd:integer .

    nid3:userDefinedFrameDescription
          a       rdf:Property ;
          rdfs:comment "Description of a user-defined frame." ;
          rdfs:domain nid3:UserDefinedFrame ;
          rdfs:label "userDefinedFrameDescription" ;
          rdfs:range xsd:string .

    nid3:originalReleaseYear
          a       rdf:Property ;
          rdfs:comment """TORY
The 'Original release year' frame is intended for the year when the original recording, if for example the music in the file should be a cover of a previously released song, was released. The field is formatted as in the \"TYER\" frame.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "originalReleaseYear" ;
          rdfs:range xsd:integer .

    nid3:subtitle
          a       rdf:Property ;
          rdfs:comment """TIT3
The 'Subtitle/Description refinement' frame is used for information directly related to the contents title (e.g. \"Op. 16\" or \"Performed live at Wembley\").""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "subtitle" ;
          rdfs:range xsd:string .

    nid3:length
          a       rdf:Property ;
          rdfs:comment """TLEN
The 'Length' frame contains the length of the audiofile in milliseconds, represented as a numeric string.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "length" ;
          rdfs:range rdfs:Literal .

    nid3:interpretedBy
          a       rdf:Property ;
          rdfs:comment """TPE4
The 'Interpreted, remixed, or otherwise modified by' frame contains more information about the people behind a remix and similar interpretations of another existing piece.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "interpretedBy" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf nco:contributor .

    nid3:involvedPersonContact
          a       rdf:Property ;
          rdfs:comment "An actual contact to the involved person." ;
          rdfs:domain nid3:InvolvedPerson ;
          rdfs:label "involvedPersonContact" ;
          rdfs:range nco:Contact .

    nid3:SynchronizedTextElement
          a       rdfs:Class ;
          rdfs:comment "An element of the synchronized text. It aggregates the actual text content, with the timestamp." ;
          rdfs:label "SynchronizedTextElement" ;
          rdfs:subClassOf rdfs:Resource .

    nid3:audiofileSize
          a       rdf:Property ;
          rdfs:comment """TSIZ
The 'Size' frame contains the size of the audiofile in bytes, excluding the ID3v2 tag, represented as a numeric string.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "audiofileSize" ;
          rdfs:range xsd:integer .

    nid3:title
          a       rdf:Property ;
	  nao:deprecated true ;
          rdfs:comment """TIT2
The 'Title/Songname/Content description' frame is the actual name of the piece (e.g. \"Adagio\", \"Hurricane Donna\"). Deprecated in favor of the more generic nie:title.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "title" ;
          rdfs:range xsd:string ;
          rdfs:subPropertyOf nie:title .

    nid3:synchronizedTextContentDescriptor
          a       rdf:Property ;
          rdfs:comment "Synchronized text content descriptor. Inspired by the content descriptor part of the SYLT frame defined in ID3 2.3.0 spec sec. 4.10" ;
          rdfs:domain nid3:SynchronizedText ;
          rdfs:label "synchronizedTextContentDescriptor" ;
          rdfs:range xsd:string .

    nid3:fileOwner
          a       rdf:Property ;
          rdfs:comment """TOWN
The 'File owner/licensee' frame contains the name of the owner or licensee of the file and it's contents.""" ;
          rdfs:label "fileOwner" ;
          rdfs:range nco:Contact ;
          rdfs:subPropertyOf dc:rights .

    nid3:textContentType
          a       rdf:Property ;
          rdfs:comment """Content type: 
$00     is other 
$01     is lyrics
$02     is text transcription
$03     is movement/part name (e.g. \"Adagio\")
$04     is events (e.g. \"Don Quijote enters the stage\")
$05     is chord (e.g. \"Bb F Fsus\")
$06     is trivia/'pop up' information""" ;
          rdfs:domain nid3:SynchronizedText ;
          rdfs:label "textContentType" ;
          rdfs:range xsd:string .

    nid3:officialFileWebpage
          a       rdf:Property ;
          rdfs:comment """WOAF
The 'Official audio file webpage' frame is a URL pointing at a file specific webpage.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "officialFileWebpage" ;
          rdfs:range rdfs:Resource .

    nid3:copyrightInformationURL
          a       rdf:Property ;
          rdfs:comment """WCOP
The 'Copyright/Legal information' frame is a URL pointing at a webpage where the terms of use and ownership of the file is described.""" ;
          rdfs:domain nid3:ID3Audio ;
          rdfs:label "copyrightInformationURL" ;
          rdfs:range rdfs:Resource .
}

<http://www.semanticdesktop.org/ontologies/2007/05/10/nid3_metadata#> {<http://www.semanticdesktop.org/ontologies/2007/05/10/nid3_metadata#>
          a       nrl:GraphMetadata ;
          nrl:coreGraphMetadataFor
                  nid3: .

    nid3:
          a       nrl:Ontology ;
          nao:creator <http://www.dfki.uni-kl.de/~mylka> ;
          nao:hasDefaultNamespace
                  "http://www.semanticdesktop.org/ontologies/2007/05/10/nid3#" ;
          nao:hasDefaultNamespaceAbbreviation
                  "nid3" ;
          nao:lastModified "2008-10-05T19:45:55.156Z" ;
          nao:status "Unstable" ;
          nao:updatable "0 " ;
          nao:version "0.10.0" .
}

