This namespace is intended for use, in association with other specifications (particularly RSS 1.0), in the description of Podcasts in valid RDF/XML. This document is intended to describe the unique vocabulary needed to completely describe Podcasts in valid RDF. It is hoped by bringing Podcast feed descriptions into the realm of the Semantic Web, various existing Semantic Web applications can interpret and provide services in the area of Podcast feeds. This vocabulary was initially drafted to fill in the gap in existing RDF specifications, whereby none have dealt with describing Podcasts. Where possible, existing vocabularies are used, however a new vocabulary was needed. It is hoped that this namespace provides the bridge from Podcasts to the Semantic Web. Indeed, this vocabulary is not initially intended to be used by users to describe their Podcast feeds, it is more-so intended as an end product of software agents in converting existing Podcast feeds to RDF for their own purposes. A stylesheet has been created by the author to this extent.
In this document various references are made to the iTunes specification and also to the Yahoo! Media specification. These references are alluding to existing specifications widedly used by Podcasters in existing Podcasts.
pod:credit (Property)
allows the details of a person with involvement in the Podcast to be issued.
It is intended as a container for a foaf:Person element from the FOAF specification.
pod:role (Property)
allows the role of a person with involvement in the Podcast to be entered within the foaf:Person element from the FOAF specification.
<pod:credit> <foaf:Person> <foaf:name>Aidan Hogan</foaf:name> <foaf:mbox>ahogan@nuigalway.ie</foaf:mbox> <pod:role>Editor</pod:role> </foaf:Person> </pod:credit>
pod:Category (Class)
is a consolidation of category elements from RSS 2.0, Yahoo! Media and iTunes specifications. It must be within a
dc:subject container. It must have a
subelement dc:title giving the text description of the category. It can have optional attribute
pod:domain.
pod:domain (Property)
gives the url of a taxonomy or classification to which the category value refers.
Any itunes:category elements converted have explicit pod:domain set at "http://www.apple.com/itunes/store/"
<dc:subject> <podcast:category> <podcast:domain rdf:resource="http://www.apple.com/itunes/store/"/> <dc:title>Gardening</dc:title> </podcast:category> </dc:subject>
pod:hasMedia (Property)
is a container for pod:File, a consolidation of the enclosure element from RSS 2.0 and the content element from the Yahoo! Media specification.
pod:hasMedia should be a sub-element of item. It must contain at least one
pod:File element.
It can have many pod:File elements, where each pod:File element refers to files of similar content but different formats. This is in reference to the group element of the Yahoo! Media specification.
pod:File (Class)
is a class for describing a multimedia file being syndicated. pod:File has numerous optional properties.
pod:fileSize - The size of the file in bytes.
pod:type - The MIME type of the file e.g. "audio/x-mpeg"
pod:isDefault - Describes if file is the default file of the podcast:mediagroup grouping. Value is "true" | "false".
pod:expression - Describes if the file is a full version, a sample or a continuous stream. Value is "full" | "sample" | "nonstop".
pod:bitrate - The kilobits per second rate of the file.
pod:framerate - The frame per second of the file. (if video)
pod:duration - The play length of the file in seconds.
pod:height - The height of the visual content of the file in pixels.
pod:width - The width of the visual content of the file in pixels.
<pod:hasMedia> <pod:File rdf:about="http://example.com/newShow.mp3" pod:fileSize="16490812" pod:type="audio/mpeg" pod:expression="full" pod:isDefault="true" /> <pod:File rdf:about="http://example.com/newShow.ra" pod:fileSize="16490812" pod:type="audio/x-realaudio" pod:expression="full" pod:isDefault="false" /> <pod:File rdf:about="http://example.com/newShow.mp3" pod:fileSize="572329" pod:type="audio/mpeg" pod:expression="sample" pod:isDefault="false" /> </pod:hasMedia>
pod:Podcast
(Class)
is a subclass of the RSS 1.0 item element used in this application.
pod:explicit
(Property)
is an optional property of pod:Podcast or the RSS channel element, defining whether or not said element is suitable for minors.
It can have value "true" or "false".
<pod:Podcast rdf:about="http://example.com/newShow.mp3">
<rss:title>New Spec<rss:title/>
<pod:explicit>true<pod:explicit>
<pod:hasMedia>
<pod:File
podcast:url="http://example.com/newShow.mp3"
podcast:fileSize="16490812"
podcast:type="audio/mpeg"
podcast:expression="sample"
podcast:bitrate="128"
podcast:duration="1058"
/>
</pod:hasMedia>
</pod:Podcast>
<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:pod="http://sw.deri.org/2005/07/podcast#"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="http://example.com/podcasts/index.html">
<title>New Specification</title>
<description>An example Podcast feed describing this new specification.</description>
<pod:credit>
<foaf:Person>
<foaf:name>Aidan Hogan</foaf:name>
<foaf:mbox rdf:resource="mailto:aidan.hogan@deri.org"/>
<pod:role>Owner</pod:role>
</foaf:Person>
</pod:credit>
<dc:subject>
<pod:categoyr>
<pod:domain rdf:resource="http://example.com/Taxonomy/>
<dc:title>Semantic Web</dc:title>
</pod:category>
</dc:subject>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://example.com/podcasts/newShow1.mp3" />
<rdf:li rdf:resource="http://example.com/podcasts/newShow2.mp3" />
</rdf:Seq>
</items>
</channel>
<pod:Podcast rdf:about="http://example.com/podcasts/newShow1.mp3">
<dc:creator>Andreas Harth</dc:creator>
<title>Item #1</title>
<pod:explicit>true</pod:explicit>
<description>This week Andreas talks all about the new RDF Podcast Specification</description>
<pod:hasMedia>
<pod:File rdf:about="http://example.com/podcasts/newShow1.mp3"
pod:fileSize="16490812"
pod:type="audio/mpeg"
pod:expression="full"
pod:isDefault="true"
/>
<pod:File rdf:about="http://example.com/podcasts/newShow1.ra"
pod:fileSize="482342"
pod:type="audio/x-realaudio"
pod:expression=" sample "
pod:isDefault="false"
/>
</pod:hasMedia>
</pod:Podcast>
<pod:Podcast rdf:about="http://example.com/podcasts/newShow2.mp3">
<dc:creator>John Breslin</dc:creator>
<title>Item #2</title>
<description>This week John gives his two cents on the new RSS 1.0 Podcast Specification</description>
<pod:hasMedia>
<pod:File rdf:about="http://example.com/podcasts/newShow2.mp3"
pod:fileSize="8727310"
pod:type="audio/x-mpeg"
pod:bitrate="128"
pod:duration="1058"
/>
</pod:hasMedia>
</pod:Podcast>
</rdf:RDF>