Human/machine views for feeds (1.0, 2.0, Atom)
"Hammond, Tony" <t.hammond-F/0MNWz/[email protected]> Thu, 25 Jan 2007 14:41:40 +0000
| Newsgroups | gmane.network.syndication.rss.devel |
|---|---|
| Message-ID | <C1DE7224.15C0B%[email protected]> |
--XlwKQCWwy3fBrzKVoXcCL5nxg0cwmm8ZwgJhA4E
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Hi:
Am looking for some feedback on an approach we are looking at to upgrade ou=
r
current RSS feeds (RSS 1.0) to a wider (and neutral) offering (RSS 1.0, RSS
2.0, Atom) which supports both machine and human readable views. Demo
versions (largely complete; filenames just temporary) are available at
RSS 1.0 - http://nurture.nature.com/tony/rss/nature_rdf.rss
RSS 2.0 - http://nurture.nature.com/tony/rss/nature_rss.rss
Atom - http://nurture.nature.com/tony/rss/nature_atom.rss
Some notes below.
Cheers,
Tony
RSS 1.0
Human - Seems to be simply a question of adding in XHTML markup as a CDATA
section within a <content:encoded> element.
Machine - RDF properties already provide for this.
RSS 2.0 - (I know, but still evaluating)
Human - We follow general practice and add XHTML markup as a CDATA section
within the <description> element.
Machine - We use XML namespaces and mimic the RDF properties of RSS 1.0.
Atom - (See skeleton below)
Human - We add in XHTML markup within a <content type=3D"xhtml"> element.
Machine - We add in a complete RSS 1.0 item (sans <content:encoded> element=
)
within a <content type=3D"application/rdf+xml"> element. This seems prefera=
ble
to defining arbitrary RDF/XML and provides best fit with the RSS 1.0 feed.
In essence the Atom entries contain standalone RDF islands along with an
XHTML view.
One question would be whether to explicitly namespace the RSS elements (e.g=
.
"rss") or just to use a default XML namespace.
###
Atom (Skeleton)
<feed xmlns=3D"">
<title type=3D"text"></title>
<updated/>
<id/>
<link rel=3D"alternate" type=3D"" href=3D""/>
<link rel=3D"self" type=3D"" href=3D""/>
<rights/>
<entry/>
</feed>
=20
<entry>
<title/>
<link rel=3D"alternate" type=3D"" href=3D""/>
<id/>
<updated/>
<published/>
<author>
<name/>
<uri/>
<email/>
</author>
<contributor>
<name/>
</contributor>
<content type=3D"xhtml" xml:lang=3D"">
<div xmlns=3D"http://www.w3.org/1999/xhtml">
=8A
</div>
</content>
<content type=3D"application/rdf+xml">
<rdf:Description xmlns:rss=3D"..." xmlns:rdf=3D"..." xmlns:dc=3D"...=
" ... >
<rss:item rdf:about=3D"http://...">
<rss:title/>
<rss:ink/>
<rss:description/>
<dc:title/>
<dc:creator/>
<dc:identifier/>
<dc:source/>
...
</rss:item>
</rdf:Description>
</content>
=20
</entry>
###
***************************************************************************=
*****=20=20=20
DISCLAIMER: This e-mail is confidential and should not be used by anyone wh=
o is
not the original intended recipient. If you have received this e-mail in er=
ror
please inform the sender and delete it from your mailbox or any other stora=
ge
mechanism. Neither Macmillan Publishers Limited nor any of its agents accep=
t
liability for any statements made which are clearly the sender's own and no=
t
expressly made on behalf of Macmillan Publishers Limited or one of its agen=
ts.
Please note that neither Macmillan Publishers Limited nor any of its agents
accept any responsibility for viruses that may be contained in this e-mail =
or
its attachments and it is your responsibility to scan the e-mail and=20
attachments (if any). No contracts may be concluded on behalf of Macmillan=
=20
Publishers Limited or its agents by means of e-mail communication. Macmilla=
n=20
Publishers Limited Registered in England and Wales with registered number 7=
85998=20
Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS=20=20=20
***************************************************************************=
*****
--XlwKQCWwy3fBrzKVoXcCL5nxg0cwmm8ZwgJhA4E
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>
<!-- Network content -->
<body style=3D"background-color: #ffffff;">
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"width:655px; position:relative;">
<div id=3D"ygrp-msg" style=3D"width: 490px; padding: 0 15px 0 0; float:le=
ft; z-index:1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id=3D"ygrp-text">
<p>Hi:<br>
<br>
Am looking for some feedback on an approach we are looking at to upgrade ou=
r<br>
current RSS feeds (RSS 1.0) to a wider (and neutral) offering (RSS 1.0, RSS=
<br>
2.0, Atom) which supports both machine and human readable views. Demo<br>
versions (largely complete; filenames just temporary) are available at<br>
<br>
RSS 1.0 - <a href=3D"http://nurture.nature.com/tony/rss/nature_rdf.rss">htt=
p://nurture.<wbr>nature.com/<wbr>tony/rss/<wbr>nature_rdf.<wbr>rss</a><br>
<br>
RSS 2.0 - <a href=3D"http://nurture.nature.com/tony/rss/nature_rss.rss">htt=
p://nurture.<wbr>nature.com/<wbr>tony/rss/<wbr>nature_rss.<wbr>rss</a><br>
<br>
Atom - <a href=3D"http://nurture.nature.com/tony/rss/nature_atom.rss">ht=
tp://nurture.<wbr>nature.com/<wbr>tony/rss/<wbr>nature_atom.<wbr>rss</a><br=
>
<br>
Some notes below.<br>
<br>
Cheers,<br>
<br>
Tony<br>
<br>
RSS 1.0<br>
<br>
Human - Seems to be simply a question of adding in XHTML markup as a CDATA<=
br>
section within a <content:encoded> element.<br>
Machine - RDF properties already provide for this.<br>
<br>
RSS 2.0 - (I know, but still evaluating)<br>
<br>
Human - We follow general practice and add XHTML markup as a CDATA section<=
br>
within the <description> element.<br>
Machine - We use XML namespaces and mimic the RDF properties of RSS 1.0.<br=
>
<br>
Atom - (See skeleton below)<br>
<br>
Human - We add in XHTML markup within a <content type=3D"xhtml"=
;<wbr>> element.<br>
Machine - We add in a complete RSS 1.0 item (sans <content:encoded> e=
lement)<br>
within a <content type=3D"application/<wbr>rdf+xml"> el=
ement. This seems preferable<br>
to defining arbitrary RDF/XML and provides best fit with the RSS 1.0 feed.<=
br>
In essence the Atom entries contain standalone RDF islands along with an<br=
>
XHTML view.<br>
<br>
One question would be whether to explicitly namespace the RSS elements (e.g=
.<br>
"rss") or just to use a default XML namespace.<br>
<br>
###<br>
Atom (Skeleton)<br>
<br>
<feed xmlns=3D""><br>
<title type=3D"text"><wbr></title><br>
<updated/><br>
<id/><br>
<link rel=3D"alternate" type=3D"" href=3D"&=
quot;/><br>
<link rel=3D"self" type=3D"" href=3D""=
/><br>
<rights/><br>
<entry/><br>
</feed><br>
<br>
<entry><br>
<title/><br>
<link rel=3D"alternate" type=3D"" href=3D"&=
quot;/><br>
<id/><br>
<updated/><br>
<published/><br>
<author><br>
<name/><br>
<uri/><br>
<email/><br>
</author><br>
<contributor><br>
<name/><br>
</contributor><br>
<content type=3D"xhtml" xml:lang=3D""><br>
<div xmlns=3D"<a href=3D"http://www.w3.org/1999/xhtml">http:=
//www.w3.<wbr>org/1999/<wbr>xhtml</a>"><br>
=8A<br>
</div><br>
</content><br>
<content type=3D"application/<wbr>rdf+xml"><br>
<rdf:Description xmlns:rss=3D".<wbr>.." xmlns:rdf=3D&qu=
ot;.<wbr>.." xmlns:dc=3D"..<wbr>." ... ><br>
<rss:item rdf:about=3D"<a href=3D"http://...">http://...=
</a>"><br>
<rss:title/><br>
<rss:ink/><br>
<rss:description/<wbr>><br>
<dc:title/><br>
<dc:creator/<wbr>><br>
<dc:identifier/<wbr>><br>
<dc:source/><br>
...<br>
</rss:item><br>
</rdf:Description><br>
</content><br>
<br>
</entry><br>
###<br>
<br>
************<wbr>*********<wbr>*********<wbr>*********<wbr>*********<wbr>**=
*******<wbr>*********<wbr>*********<wbr>***** <br>
DISCLAIMER: This e-mail is confidential and should not be used by anyone wh=
o is<br>
not the original intended recipient. If you have received this e-mail in er=
ror<br>
please inform the sender and delete it from your mailbox or any other stora=
ge<br>
mechanism. Neither Macmillan Publishers Limited nor any of its agents accep=
t<br>
liability for any statements made which are clearly the sender's own and no=
t<br>
expressly made on behalf of Macmillan Publishers Limited or one of its agen=
ts.<br>
Please note that neither Macmillan Publishers Limited nor any of its agents=
<br>
accept any responsibility for viruses that may be contained in this e-mail =
or<br>
its attachments and it is your responsibility to scan the e-mail and <br>
attachments (if any). No contracts may be concluded on behalf of Macmillan =
<br>
Publishers Limited or its agents by means of e-mail communication. Macmilla=
n <br>
Publishers Limited Registered in England and Wales with registered number 7=
85998 <br>
Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS <br>
************<wbr>*********<wbr>*********<wbr>*********<wbr>*********<wbr>**=
*******<wbr>*********<wbr>*********<wbr>*****<br>
</p>
</div>=20=20
<!--~-|**|PrettyHtmlStart|**|-~-->
<span width=3D"1" style=3D"color: white;">__._,_.___</span>
<!-- Start the section with Message In topic -->
<div id=3D"ygrp-actbar">
<span class=3D"left">
<a href=3D"http://groups.yahoo.com/group/rss-dev/message/7408;_yl=
c=3DX3oDMTM0YmdodWc0BF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDM=
wMzkwBG1zZ0lkAzc0MDgEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTY5NzM2MjI3BHRwY0lkAz=
c0MDg-">
Messages in this topic </a> (<span class=3D"bld">1</sp=
an>)
</span>
<a href=3D"http://groups.yahoo.com/group/rss-dev/post;_ylc=3DX3oDMT=
Jwb2diczVwBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBG1zZ=
0lkAzc0MDgEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTY5NzM2MjI3?act=3Dreply&message=
Num=3D7408">
<span class=3D"bld">
Reply </span> (via web post)
</a> |=20
<a href=3D"http://groups.yahoo.com/group/rss-dev/post;_ylc=3DX3oDMT=
JlNDhjNmtyBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlY=
wNmdHIEc2xrA250cGMEc3RpbWUDMTE2OTczNjIyNw--" class=3D"bld">
Start a new topic </a>
</div>=20
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vitnav">
<a href=3D"http://groups.yahoo.com/group/rss-dev/messages;_=
ylc=3DX3oDMTJlOTljYzZhBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2M=
DMwMzkwBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE2OTczNjIyNw--">Messages</a>=20=20
=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20
| <a href=3D"http://groups.yahoo.com/group/rss-dev/polls;_yl=
c=3DX3oDMTJmMWt2dHEyBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDM=
wMzkwBHNlYwNmdHIEc2xrA3BvbGxzBHN0aW1lAzExNjk3MzYyMjc-">Polls</a>=20=20
| <a href=3D"http://groups.yahoo.com/group/rss-dev/members;_=
ylc=3DX3oDMTJlanRpbG9qBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2M=
DMwMzkwBHNlYwNmdHIEc2xrA21icnMEc3RpbWUDMTE2OTczNjIyNw--">Members</a>=20=20
=20=20=20=20=20=20=20=20
</div>=20=20
<!-- |**|end egp html banner|**| -->
<!-- Do not have place to put it yet -->
<div id=3D"ygrp-grft">
</div>
<!-- yahoo logo -->
<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-ft">
<a href=3D"http://groups.yahoo.com/;_ylc=3DX3oDMTJkMDh0dDg1BF9TAzk3Mz=
U5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxMTY5NzM2MjI3">
<img src=3D"http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_16=
0.gif" height=3D"15" width=3D"106" border=3D"0" alt=3D"Yahoo! Groups"></a> =
<br>
<a href=3D"http://groups.yahoo.com/group/rss-dev/join;_ylc=3DX3oDMTJm=
M2Eyb3FlBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwN=
mdHIEc2xrA3N0bmdzBHN0aW1lAzExNjk3MzYyMjc-">Change settings via the Web</a> =
(Yahoo! ID required) <br>
Change settings via email: <a href=3D"mailto:rss-dev-digest@yahoogrou=
ps.com?subject=3DEmail Delivery: Digest">Switch delivery to Daily Digest</a=
> | <a href =3D "mailto:[email protected]?subject=3DChang=
e Delivery Format: Traditional">Switch format to Traditional</a> <br>
<a href=3D"http://groups.yahoo.com/group/rss-dev;_ylc=3DX3oDMTJkczJqZ=
jQ0BF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYwNmdHIE=
c2xrA2hwZgRzdGltZQMxMTY5NzM2MjI3">
Visit Your Group=20
</a> |
<a href=3D"http://docs.yahoo.com/info/terms/">
Yahoo! Groups Terms of Use </a> |
<a href=3D"mailto:[email protected]?subject=3D">
Unsubscribe </a>=20
</div> <!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
=20=20
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-sponsor" style=3D"width:140px;float: left; clear: none; m=
argin-left: 5px; background:white; margin-bottom:25px ;position:absolute; t=
op:0; right: 0;">
<!-- Network content -->
=20=20=20=20
<!-- Start vitality -->
<div id=3D"ygrp-vital">
<div id=3D"vithd">Recent Activity</div>
<ul style=3D"list-style-type:none; padding: 0; margin: 2px 0;">
<li style=3D"clear: both;">
<div class=3D"ct" style=3D"float: right;"><span style=3D"display:none=
"> </span>5</div>
<div class=3D"cat"><a href=3D"http://groups.yahoo.com/group/rss-dev/m=
embers;_ylc=3DX3oDMTJmbGlxcmVqBF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZ=
AMxNzA2MDMwMzkwBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzExNjk3MzYyMjc-">New Member=
s</a></div>
</li>
=20=20
=20=20=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20=20=20=20=20=20=20
</ul>
<a href=3D"http://groups.yahoo.com/group/rss-dev;_ylc=3DX3oDMTJ=
ldTBxMDc2BF9TAzk3MzU5NzE0BGdycElkAzIwOTEwODYEZ3Jwc3BJZAMxNzA2MDMwMzkwBHNlYw=
N2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2OTczNjIyNw--">
Visit Your Group </a>
</div>=20
=20=20=20=20
<!-- Network content -->
<div id=3D"nc">
<div class=3D"ad">
<div id=3D"hd1">New Message Search</div>
<p>Find the message you want faster. Visit your group to try out =
the improved message search.</p>
<p><a href=3D""></a></p>
</div>
<div class=3D"ad">
<div id=3D"hd1"></div>
<p></p>
<p><a href=3D"">Share feedback on the new changes to Groups</a></=
p>
</div>
</div>
=20=20=20=20=20=20
</div> <!-- |**|end egp html banner|**| -->
<div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div> <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D2091086/g=
rpspId=3D1706030390/msgId=3D7408/stime=3D1169736227" width=3D"1" height=3D"=
1"> <br>
<span style=3D"color: white;">__,_._,___</span>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type=3D"text/css">
<!--
#ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;=
*font-size:small;*font:x-small;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-se=
rif;}
#ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family: Georgia;=09
}
#ygrp-text p{
margin: 0 0 1em 0;
}
#ygrp-tpmsgs{
font-family: Arial;=09
clear: both;
}
#ygrp-vitnav{
padding-top: 10px;
font-family: Verdana;
font-size: 77%;
margin: 0;
}
#ygrp-vitnav a{
padding: 0 1px;
}
#ygrp-actbar{
clear: both;
margin: 25px 0;
white-space:nowrap;
color: #666;
text-align: right;
}
#ygrp-actbar .left{
float: left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family: Verdana;
font-size: 77%;
padding: 15px 0;
}
#ygrp-ft{
font-family: verdana;
font-size: 77%;
border-top: 1px solid #666;=20
padding: 5px 0;=20
}
#ygrp-mlmsg #logo{
padding-bottom: 10px;
}
#ygrp-vital{
background-color: #e0ecee;
margin-bottom: 20px;
padding: 2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size: 77%;
font-family: Verdana;
font-weight: bold;
color: #333;
text-transform: uppercase;
}
#ygrp-vital ul{
padding: 0;
margin: 2px 0;
}
#ygrp-vital ul li{
list-style-type: none;
clear: both;
border: 1px solid #e0ecee;=20=20
}
#ygrp-vital ul li .ct{
font-weight: bold;
color: #ff7900;
float: right;
width: 2em;
text-align:right;
padding-right: .5em;
}
#ygrp-vital ul li .cat{
font-weight: bold;
}
#ygrp-vital a {
text-decoration: none;
}
#ygrp-vital a:hover{
text-decoration: underline;
}
#ygrp-sponsor #hd{
color: #999;
font-size: 77%;
}
#ygrp-sponsor #ov{
padding: 6px 13px;
background-color: #e0ecee;
margin-bottom: 20px;
}
#ygrp-sponsor #ov ul{
padding: 0 0 0 8px;
margin: 0;
}
#ygrp-sponsor #ov li{
list-style-type: square;
padding: 6px 0;
font-size: 77%;
}
#ygrp-sponsor #ov li a{
text-decoration: none;
font-size: 130%;
}
#ygrp-sponsor #nc {
background-color: #eee;
margin-bottom: 20px;
padding: 0 8px;
}
#ygrp-sponsor .ad{
padding: 8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family: Arial;
font-weight: bold;
color: #628c2a;
font-size: 100%;
line-height: 122%;
}
#ygrp-sponsor .ad a{
text-decoration: none;
}
#ygrp-sponsor .ad a:hover{
text-decoration: underline;
}
#ygrp-sponsor .ad p{
margin: 0;
}
o {font-size: 0; }
.MsoNormal {
margin: 0 0 0 0;
}
#ygrp-text tt{
font-size: 120%;
}
blockquote{margin: 0 0 0 4px;}
.replbq {margin:4}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html><!--End group email -->
--XlwKQCWwy3fBrzKVoXcCL5nxg0cwmm8ZwgJhA4E--