Recommendation data format (FINAL)
FINAL DRAFT
Imagine a world where we didn’t have to go looking for what we wanted to see (in other words, where we were able to "discover" new things that we didn’t yet know we wanted to see, but end up loving the new things and learning or gaining a new interest). Such is the premise of the OpenRecommender project, suggesting a recommendation-based solution to the growing information problem.
In order to accomplish this vision, we will be releasing a number of technologies and related data exchange formats which we hope the open source developer community will incorporate into their existing applications, whenever they have a need to work with or serve up recommendations to their users.
We will start with the most popular application data exchange format in the world, XML, since this is what a large number of developers will be most comfortable with.
XML
<?xml version="1.0" encoding="UTF-8"?>
<recommendations>
<recommendation>
<title>George Carlin: Tyranny and the Ruling Elite</title>
<image>http://bcmoney-mobiletv.com/thumb/1_1.jpg</image>
<link>http://bcmoney-mobiletv.com/view/1/george-carlin</link>
<description>Default Recommendation for new users...<description>
</recommendation>
...
</recommendations>
Then, we'll toss in a JSON serialization for good measure.
JSON
{
"recommendations":{
"recommendation":[
{
"title":"George Carlin: Tyranny and the Ruling Elite",
"image":"http://bcmoney-mobiletv.com/thumb/1_1.jpg",
"link":"http://bcmoney-mobiletv.com/view/1/george-carlin/",
"description":"Default Recommendation... A BC$ Classic"
},
...
}
Last but not least, the community will eventually provide parsers for these formats in the most common languages from ASP to XSLT (and everything in between, including: C, C++, C#, iPhone Obective-C, Java, JS, Perl, PHP, Python, and Ruby).
Once this is all in place, you'll quickly and easily be able to add simple recommendations to your site using our API, or, you can train the Recommendation Engine on your specific datasets.
The data formats described above are defined in the following formal descriptions:
XML Schema
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="recommendations">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="recommendation"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="recommendation">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="image"/>
<xs:element ref="link"/>
<xs:element ref="description"/>
</xs:sequence>
<xs:attribute name="priority" use="optional" type="xs:nonNegativeInteger"/>
<xs:attribute name="taxonomy" use="optional" type="xs:string"/>
<xs:attribute name="type" use="optional" type="xs:string"/>
<xs:attribute name="subject" use="optional" type="xs:string"/>
<xs:attribute name="creator" use="optional" type="xs:string"/>
<xs:attribute name="audience" use="optional" type="xs:string"/>
<xs:attribute name="date" use="optional" type="xs:date"/>
<xs:attribute name="time" use="optional" type="xs:time"/>
<xs:attribute name="identifier" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="title">
<xs:complexType mixed="true">
<xs:attribute name="duration" use="optional" type="xs:string"/>
<xs:attribute name="playlist" use="optional" type="xs:string"/>
<xs:attribute name="captions" use="optional" type="xs:anyURI"/>
<xs:attribute name="subtitles" use="optional" type="xs:anyURI"/>
<xs:attribute name="language" use="optional" type="xs:NCName"/>
</xs:complexType>
</xs:element>
<xs:element name="image">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="camera" use="optional" type="xs:string"/>
<xs:attribute name="thumb" use="optional" type="xs:string"/>
<xs:attribute name="gallery" use="optional" type="xs:string"/>
<xs:attribute name="format" use="optional" type="xs:string"/>
<xs:attribute name="creator" use="optional" type="xs:anyURI"/>
<xs:attribute name="date" use="optional" type="xs:date"/>
<xs:attribute name="time" use="optional" type="xs:time"/>
<xs:attribute name="publisher" use="optional" type="xs:anyURI"/>
<xs:attribute name="rights" use="optional" type="xs:string"/>
<xs:attribute name="rightsHolder" use="optional" type="xs:anyURI"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="link">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="proxy" use="optional" type="xs:anyURI"/>
<xs:attribute name="download" use="optional" type="xs:anyURI"/>
<xs:attribute name="oembed" use="optional" type="xs:anyURI"/>
<xs:attribute name="mobile" use="optional" type="xs:anyURI"/>
<xs:attribute name="mobilestream" use="optional" type="xs:anyURI"/>
<xs:attribute name="mobiledownload" use="optional" type="xs:anyURI"/>
<xs:attribute name="format" use="optional" type="xs:string"/>
<xs:attribute name="creator" use="optional" type="xs:string"/>
<xs:attribute name="date" use="optional" type="xs:date"/>
<xs:attribute name="time" use="optional" type="xs:time"/>
<xs:attribute name="publisher" use="optional" type="xs:string"/>
<xs:attribute name="rights" use="optional" type="xs:string"/>
<xs:attribute name="rightsHolder" use="optional" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="description">
<xs:complexType mixed="true">
<xs:attribute name="rating" use="optional" type="xs:string"/>
<xs:attribute name="review" use="optional" type="xs:string"/>
<xs:attribute name="language" use="optional" type="xs:NCName"/>
<xs:attribute name="creator" use="optional" type="xs:string"/>
<xs:attribute name="date" use="optional" type="xs:date"/>
</xs:complexType>
</xs:element>
</xs:schema>
View/Download XSD
XML DTD
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT RECOMMENDATIONS (RECOMMENDATION)+>
<!ELEMENT RECOMMENDATION (TITLE,IMAGE,LINK,(DESCRIPTION)?)>
<!ATTLIST RECOMMENDATION
PRIORITY CDATA #IMPLIED
TAXONOMY CDATA #IMPLIED
IDENTIFIER CDATA #IMPLIED
CREATOR CDATA #IMPLIED
AUDIENCE CDATA #IMPLIED
DATE CDATA #IMPLIED
TIME CDATA #IMPLIED
SUBJECT CDATA #IMPLIED
TYPE CDATA #IMPLIED>
<!ELEMENT TITLE (#PCDATA)>
<!ATTLIST TITLE
DURATION CDATA #IMPLIED
PLAYLIST CDATA #IMPLIED
CAPTIONS CDATA #IMPLIED
SUBTITLES CDATA #IMPLIED
LANGUAGE CDATA #IMPLIED>
<!ELEMENT IMAGE (#PCDATA)>
<!ATTLIST IMAGE
CAMERA CDATA #IMPLIED
THUMB CDATA #IMPLIED
GALLERY CDATA #IMPLIED
FORMAT CDATA #IMPLIED
CREATOR CDATA #IMPLIED
DATE CDATA #IMPLIED
TIME CDATA #IMPLIED
PUBLISHER CDATA #IMPLIED
RIGHTS CDATA #IMPLIED
RIGHTSHOLDER CDATA #IMPLIED>
<!ELEMENT LINK (#PCDATA)>
<!ATTLIST LINK
PROXY CDATA #IMPLIED
DOWNLOAD CDATA #IMPLIED
OEMBED CDATA #IMPLIED
MOBILE CDATA #IMPLIED
MOBILESTREAM CDATA #IMPLIED
MOBILEDOWNLOAD CDATA #IMPLIED
FORMAT CDATA #IMPLIED
CREATOR CDATA #IMPLIED
DATE CDATA #IMPLIED
TIME CDATA #IMPLIED
PUBLISHER CDATA #IMPLIED
RIGHTS CDATA #IMPLIED
RIGHTSHOLDER CDATA #IMPLIED>
<!ELEMENT DESCRIPTION (#PCDATA)>
<!ATTLIST DESCRIPTION
RATING CDATA #IMPLIED
REVIEW CDATA #IMPLIED
LANGUAGE CDATA #IMPLIED
CREATOR CDATA #IMPLIED
DATE CDATA #IMPLIED>
View/Download DTD
JSON Schema
{
"recommendations":{
"recommendation":[
{
"priority":"",
"taxonomy":"",
"type":"",
"subject":"",
"creator":"",
"audience":"",
"date":"",
"time":"",
"identifier":"",
"title":{
"data":"",
"duration":"",
"captions":"",
"subtitles":"",
"playlist":"",
"language":""
},
"image":{
"data":"",
"camera","",
"thumb","",
"gallery","",
"format":"",
"creator":"",
"date":"",
"time":"",
"publisher":"",
"rights":"",
"rightsholder":""
},
"link":{
"data":"",
"proxy":"",
"download":"",
"oembed":"",
"mobile":"",
"mobiledownload":"",
"mobilestream":"",
"format":"",
"creator":"",
"date":"",
"time":"",
"publisher":"",
"rights":"",
"rightsholder":""
},
"description":{
"data":"",
"rating":"",
"review":"",
"language":"",
"creator":"",
"date":""
}
}
]
}
}
View/Download JSONS
The RDF format that follows is still experimental, but includes all the core elements and attributes (data points for JSON users) from the XML and JSON schemas.
RDF
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:dc="http://purl.org/dc/elements/1.1/#"
xmlns:dcterms="http://purl.org/dc/terms/#"
xmlns:foaf="http://xmlns.com/foaf/0.1/#"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:ical="http://www.w3.org/2002/12/cal/ical#"
xmlns:rev="http://purl.org/stuff/rev#"
xmlns:rat="http://www.tvblob.com/ratings/#"
xmlns:mobiletv="http://bcmoney-mobiletv.com/ontology#"
xmlns:wurfl="http://wurfl.sourceforge.net/wurfl.dtd#"
xmlns:rec="http://openrecommender.org/schema/RDF#">
<rdf:Description rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<dc:identifier>1</dc:identifier>
<dc:type>TV</dc:type>
<dc:creator>http://openrecommender.org/recommendation</dc:creator>
<dc:title>MAD TV - Abercrombie Skits</dc:title>
<dc:description>This is the best video making fun of Abercrombie and Fitch I've EVER seen!</dc:description>
<dc:rights>All rights reserved</dc:rights>
<dc:rightsHolder rdf:resource="http://www.fox.com">FOX</dc:rightsHolder>
<dc:language>EN</dc:language>
<dc:duration>24:08</dc:duration>
<dc:date>2008-07-04</dc:date>
<ical:dtstart>TZID=US/Atlantic:20080704T153711Z</ical:dtstart>
<ical:priority>3</ical:priority>
<rec:sender>
<foaf:Person>
<foaf:name>Bryan Copeland</foaf:name>
<foaf:nick>bryan</foaf:nick>
<foaf:depiction rdf:resource="http://bcmoney-mobiletv.com/photo/24.jpg"/>
<foaf:mbox_sha1sum>8a8652d842b699b688557e03031e25635457addf</foaf:mbox_sha1sum>
<foaf:homepage>http://bcmoney-mobiletv.com/bryan</foaf:homepage>
<rdfs:seeAlso rdf:resource="http://bcmoney-mobiletv.com/bryan/foaf/"/>
</foaf:Person>
</rec:sender>
<rec:receiver>
<foaf:Person>
<foaf:name>Jason Tse</foaf:name>
<foaf:nick>Jaysay</foaf:nick>
<foaf:depiction rdf:resource="http://bcmoney-mobiletv.com/photo/8.jpg"/>
<foaf:mbox_sha1sum>31f1660e9a495e3cdebb7431b231cf4f71478c47</foaf:mbox_sha1sum>
<foaf:homepage>http://bcmoney-mobiletv.com/Jaysay</foaf:homepage>
<rdfs:seeAlso rdf:resource="http://bcmoney-mobiletv.com/Jaysay/foaf/"/>
</foaf:Person>
</rec:receiver>
<rat:Rating>
<rat:assessedBy rdf:resource="http://bcmoney-mobiletv.com/bryan" />
<rat:about rdf:resource="http://openrecommender.org/1" />
<rat:value rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">4</rat:value>
<rat:collectedBy rdf:resource="http://acollector.example.org" />
</rat:Rating>
<rev:Review>
<rev:text>I laughed, I cried, I hurled</rev:text>
</rev:Review>
<mobiletv:caption>http://captions.bcmoney-mobiletv.com/?v=361</mobiletv:caption>
<mobiletv:subtitles>http://subtitles.bcmoney-mobiletv.com/?v=361</mobiletv:subtitles>
<mobiletv:playlist rdf:resource="http://bcmoney-mobiletv.com/bryan/playlist/1">Best of MAD TV</mobiletv:playlist>
<mobiletv:shortlink>http://tinyurl.com/5868du</mobiletv:shortlink>
<mobiletv:location>http://bcmoney-mobiletv.com/flvideo/12105501011832425203.flv</mobiletv:location>
<mobiletv:format>video/x-flv</mobiletv:format>
<mobiletv:mobile>http://bcmoney-mobiletv.com/m/m_info.php?v=361</mobiletv:mobile>
<mobiletv:mobiledownload>http://bcmoney-mobiletv.com/video/12105501011832425203.flv.mp4</mobiletv:mobiledownload>
<mobiletv:mobilestream>rtsp://bcmoney-mobiletv.com/flvideo/12105501011832425203.flv.3gp</mobiletv:mobilestream>
<mobiletv:oembed>http://bcmoney-mobiletv.com/361/oembed/</mobiletv:oembed>
<rec:title>MAD TV - Abercrombie Skits</rec:title>
<rec:image>http://bcmoney-mobiletv.com/thumb/361.jpg</rec:image>
<rec:link>http://bcmoney-mobiletv.com/view/361/mad-tv-abercrombie-skits/</rec:link>
</rdf:Description>
</rdf:RDF>
This is constrained by the following Resource Description Framework schema definition:
RDF Schema
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:dc="http://purl.org/dc/elements/1.1/#"
xmlns:dcterms="http://purl.org/dc/terms/#"
xmlns:foaf="http://xmlns.com/foaf/0.1/#"
xmlns:wurfl="http://wurfl.sourceforge.net/wurfl.dtd#"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:ical="http://www.w3.org/2002/12/cal/ical#"
xml:base="http://openrecommender.org/schema/RDF#">
<dc:creator rdf:resource="http://bryancopeland.com/contact/foaf/bryan.foaf.xml"/>
<dc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2011-03-19T09:31:52+01:00</dc:date>
<dc:description xml:lang="en">The OpenRecommender Recommendation schema specification provides basic concepts and properties for describing recommendations on the Semantic Web. This document contains a simplified RDF Schema description of the Recommendation Ontology, which itself is more complete than this schema, but slightly more complicated to work with through the introduction of Web Ontology Language(OWL).</dc:description>
<dc:title xml:lang="en">OpenRecommender Recommendation Schema</dc:title>
<rdfs:Class rdf:about="Recommendation">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:label xml:lang="en">Recommendation</rdfs:label>
<rdfs:comment xml:lang="en">
A recommendation is a formal or informal proposition for action.
</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://openrecommender.org/schema/RDF#recommendation"/>
</rdfs:Class>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Identifies a recommendation to a person, integrated software or device.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">identifier</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#ID"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Person (or software/device) a recommendation comes from.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">sender</rdfs:label>
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/#Person"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Person (or software/device) a recommendation goes to.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">receiver</rdfs:label>
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/#Person"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Date a recommendation was sent.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">date</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#date"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/12/cal/ical#dtstart"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Time a recommendation was sent.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">time</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#time"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/12/cal/ical#dtstart"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Latitude of location from which recommendation was sent (or of the item itself, if applicable).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">latitude</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#latitude"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Longitude of location from which recommendation was sent (or of the item itself, if applicable).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">longitude</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#longitude"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Importance measure assigned to a recommendation.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">priority</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/12/cal/ical#priority"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#recommendation">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Type of content (as in taxonomy domain area) being recommended.</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">type</rdfs:label>
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/#Person"/>
</rdf:Property>
<rdfs:Class rdf:about="Title">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:label xml:lang="en">Title</rdfs:label>
<rdfs:comment xml:lang="en">
The title of a given recommendation.
</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://openrecommender.org/schema/RDF#title"/>
</rdfs:Class>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#duration">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Length of the media being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">duration</rdfs:label>
<rdfs:range rdf:resource="http://www.w3.org/2002/12/cal/ical#duration"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#language">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Language of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">language</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/language"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#captions">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Closed Caption transcript of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">captions</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#captions"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#subtitles">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Language of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">subtitles</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#subtitles"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#playlist">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Language of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">playlist</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#playlist"/>
</rdf:Property>
<rdfs:Class rdf:about="Image">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:label xml:lang="en">Image</rdfs:label>
<rdfs:comment xml:lang="en">
Preview image or thumbnail of a given recommendation.
</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://openrecommender.org/schema/RDF#title"/>
</rdfs:Class>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#creator">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Creator of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">creator</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/creator"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#publisher">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Publisher of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">publisher</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/publisher"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#format">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Format (i.e. MIME Type and/or File extension) of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">format</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/format"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#rights">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Rights (i.e. Copyright and/or License) of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">rights</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/rights"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#rightsHolder">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Rights Holder (i.e. legal owner of Intellectual Property or license) of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">rightsHolder</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/rightsHolder"/>
</rdf:Property>
<rdfs:Class rdf:about="Link">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:label xml:lang="en">Link</rdfs:label>
<rdfs:comment xml:lang="en">
Web link (URL) to a human-readable display page for the recommendation.
</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://openrecommender.org/schema/RDF#link"/>
</rdfs:Class>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#shortlink">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Shortlink (i.e. URL shortner version) of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">shortlink</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#shortlink"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#location">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Location (i.e. download URL) of the multimedia representation of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">location</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#location"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#mobile">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Mobile-friendly display page (baseline experience that should work on any browser that can render HTML) for the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">mobile</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#mobile"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#mobilewap">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Legacy mobile display page (WAP, for older phones that are incapable of rendering even basic HTML) for the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">mobilewap</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#mobilewap"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#mobiletouch">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Mobile Touch-friendly display page (with a more advanced or graduated experience for larger screens and/or more powerful devices such as tablets or smartphones) for the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">mobiletouch</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#mobiletouch"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#mobiledownload">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Location (i.e. download URL) of a Mobile-friendly version of the multimedia representation of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">mobiledownload</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#mobiledownload"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#mobilestream">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Mobile-friendly multimedia stream of the multimedia representation of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">mobilestream</rdfs:label>
<rdfs:range rdf:resource="http://bcmoney-mobiletv.com/ontology#mobilestream"/>
</rdf:Property>
<rdfs:Class rdf:about="Description">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:label xml:lang="en">Description</rdfs:label>
<rdfs:comment xml:lang="en">Textual description of what topics or events the recommendation is about (optional).</rdfs:comment>
<rdfs:isDefinedBy rdf:resource="http://openrecommender.org/schema/RDF#description"/>
</rdfs:Class>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#rating">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">User rating (whether as a weighted average of all users, or, only taken from the recommending user's rating profile) of the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">rating</rdfs:label>
<rdfs:range rdf:resource="http://www.tvblob.com/ratings/#Rating"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#review">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">A collection of reviews (or single review) about the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">review</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/stuff/rev#Review"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#subject">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">Metadata tags, descriptive labels or other classification code to describe the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">subject</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/dc/elements/1.1/subject"/>
</rdf:Property>
<rdf:Property rdf:about="http://openrecommender.org/schema/RDF#comment">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
<rdfs:comment xml:lang="en">A collection of comments (or single comment) about the item being recommended (optional).</rdfs:comment>
<rdfs:domain rdf:resource="http://purl.org/ontology/rec/core#Recommendation"/>
<rdfs:isDefinedBy rdf:resource="http://purl.org/ontology/rec/core#"/>
<rdfs:label xml:lang="en">comment</rdfs:label>
<rdfs:range rdf:resource="http://purl.org/stuff/rev#Comment"/>
</rdf:Property>
<rdf:Description rdf:ID="Recommendation">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>
<rdf:Description rdf:ID="Title">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#recommendation"/>
<rdfs:seeAlso>
<rdf:Description rdf:about="http://purl.org/dc/elements/1.1/title">
<dc:format>application/rdf+xml</dc:format>
</rdf:Description>
</rdfs:seeAlso>
</rdf:Description>
<rdf:Description rdf:ID="Image">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#recommendation"/>
<rdfs:seeAlso>
<rdf:Description rdf:about="http://purl.org/dc/dcmitype/Image">
<dc:format>application/rdf+xml</dc:format>
</rdf:Description>
</rdfs:seeAlso>
</rdf:Description>
<rdf:Description rdf:ID="Link">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#recommendation"/>
<rdfs:seeAlso>
<rdf:Description rdf:about="http://purl.org/dc/dcmitype/InteractiveResource">
<dc:format>application/rdf+xml</dc:format>
</rdf:Description>
</rdfs:seeAlso>
</rdf:Description>
<rdf:Description rdf:ID="Description">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
<rdfs:subClassOf rdf:resource="#recommendation"/>
<rdfs:seeAlso>
<rdf:Description rdf:about="http://purl.org/dc/dcmitype/Text">
<dc:format>application/rdf+xml</dc:format>
</rdf:Description>
</rdfs:seeAlso>
</rdf:Description>
</rdf:RDF>
View/Download RDFS
Lastly, while extending the basic XML Schema to an RDF Schema does not offer any major usability benefit to the average end-user and certainly adds extra space to the output, it does allow us to include an incredibly detailed level of semantics and additional metadata, compared to the lightweight formats of plain old XML and JSON.
So, for use-cases that require quick parsing and low data transfer times/payload sizes (such as mobile and web applications, the XML and JSON formats are preferable), however, when completeness and added levels of insight into recommendation selection criteria are desired (such as in expert systems or enterprise/desktop applications), RDF may be preferable.
OWL
With RDF/XML we can get one step closer to the full expressiveness of the Semantic Web Recommendation format of the Recommendation Ontology project (available as OWL & N3) while keeping the datasets output by the recommendation engine computable in real-time.
UPDATE (11/08/2008):
Based on community suggestions, select elements from The Dublin Core Metadata Initiative (DMCI) have been utilized where previously there were several ambiguities in the recommendation format metadata. In particular, the title, image and link for recommendations have been augmented with the relevant elements of the DMCI XML schema.
UPDATE (08/09/2011):
Parsers for these data formats are now available here.




































![FFmpeg is a computer program that can record, convert and stream digital audio and video in numerous formats.[1] FFmpeg is a command line tool that is composed of a collection of free software / open source libraries. FFmpeg](http://openrecommender.org/images/FFMPEG.png)







GeoNames