|
spec
Technical specification for ProjectRSS.
Technical specification for ProjectRSSAuthorsJohn Brennan URIhttp://projectrss.org/wiki/spec Last UpdatedMonday, October 12, 2009 RightsAvailable under a Creative Commons License. DescriptionProjectRSS is an extension of RSS and therefore a dialect of XML. All RSS files must conform to the XML 1.0 specification, as published on the World Wide Web Consortium (W3C) website. We break up this document into three parts -- technical fields, organizational fields, and project-specific fields. Namespace declaration<xmlns:projrss="http://projectrss.org/wiki/spec" />
RDF/RSS Schema definition documentTechnical Fields
Organizational Fields
Deliberately, there is not a list of categories to associate with the organization at this level. ProjectRSS is based on action. Categories (e.g. taxonomy) is assigned at the project level. See Project Fields. <foaf:Organization>The following fields are specific to the parent <foaf:Organization> field.
Example: <foaf:Organization>
<foaf:name>Organization Name</foaf:name>
<dc:type rdf:about="http://projectrss.org/wiki/spec#Type_of_Organization">nonprofit</dc:type>
<foaf:member>
<foaf:Person>
<foaf:name>John Brennan</foaf:name>
<vCard:title>Founder, President</vCard:title>
<vCard:email>john@my-organization.org</vCard:email>
<foaf:img>http://www.my-organization.org/about/images/staff/john.jpg</foaf:img>
<foaf:workplaceHomepage>http://www.my-organization.org/about/staff.htm</foaf:workplaceHomepage>
</foaf:Person>
<foaf:Person>
<foaf:name>Keira Jones</foaf:name>
<vCard:title>Director of Development</vCard:title>
<vCard:email>keira@my-organization.org</vCard:email>
<foaf:img>http://www.charitywater.org/about/images/staff/keira.jpg</foaf:img>
<foaf:workplaceHomepage>http://www.my-organization.org/about/staff.htm</foaf:workplaceHomepage>
</foaf:Person>
</foaf:member>
<foaf:holdsAccount>
<foaf:OnlineAccount>
<foaf:accountServiceHomepage>http://www.twitter.com</foaf:accountServiceHomepage>
<foaf:accountName>worldlyjohn</foaf:accountName>
</foaf:OnlineAccount>
<foaf:OnlineAccount>
<foaf:accountServiceHomepage>http://www.vimeo.com</foaf:accountServiceHomepage>
<foaf:accountName>worldlyjohn</foaf:accountName>
</foaf:OnlineAccount>
</foaf:holdsAccount>
</foaf:Organization>Type of OrganizationThe attribute <dc:type> which is a children element of <foaf:Organization> defines the type of organization. It is meant to be used as a way to filter projects by the type of organization. For example, you may want to show only projects from non-profits versus projects including corporate social responsibility projects sponsored by brands. This field can take on the following values:
<image>The following fields are specific to the parent <image> field.
Example: <image>
<url>http://s3.amazonaws.com/twitter_production/profile_images/116307986/9awaterchangeseverything_bigger.jpg</url>
<title>Water changes everything</title>
<link>http://</link>
</image>Project Fields
<guid>guid stands for globally unique identifier. It's a string that uniquely identifies the item. When present, an aggregator may choose to use this string to determine if an item is new. <guid>http://some.server.com/project/2343</guid> There are no rules for the syntax of a guid. Aggregators must view them as a string. It's up to the source of the feed to establish the uniqueness of the string. If the guid element has an attribute named "isPermaLink" with a value of true, the reader may assume that it is a permalink to the item, that is, a url that can be opened in a Web browser, that points to the full item described by the <item> element. An example: <guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid> isPermaLink is optional, its default value is true. If its value is false, the guid may not be assumed to be a url, or a url to anything in particular. <projrss:point_of_contact>The following fields are specific to the parent <foaf:Organization> field. Example #1 - Embed an image: <foaf:Person>
<foaf:name>John Brennan</foaf:name>
<vCard:title>Founder, President</vCard:title>
<vCard:email>john@my-organization.org</vCard:email>
<foaf:img>http://www.my-organization.org/about/images/staff/john.jpg</foaf:img>
<foaf:workplaceHomepage>http://www.my-organization.org/about/staff.htm</foaf:workplaceHomepage>
</foaf:Person><category><category> is a required sub-element of <item>. It has one optional attribute, domain, a string that identifies a categorization taxonomy. The value of the element is a forward-slash-separated string that identifies a hierarchic location in the indicated taxonomy. Processors may establish conventions for the interpretation of categories. An example is provided below: <category domain="http://projectrss.org/wiki/open-philanthropy#Taxonomy">water</category> Specific to philanthropy, a taxonomy is emerging here. <media:content>The following fields are specific to the parent <media:content> field. See the Media RSS Module for all attributes. Example #1 - Embed an image: <media:content url="http://my-organization.org/completed/project1.jpg" type="image/jpeg" medium="image" >
<media:title type="plain">Day #2</media:title>
<media:description type="plain">We're just beginning...</media:description>
<media:thumbnail url="http://my-organization.org/completed/project1_sm.jpg" width="75" height="50" />
<media:copyright url="http://my-organization.org/additional-info.html">2009 MyOrg</media:copyright>
</media:content>Example #2 - Embed a (YouTube) video: <media:content medium="video">
<media:player url="http://youtube.com/?v=XXXXXXXXXXX" />
<media:thumbnail url="http://i1.ytimg.com/vi/XXXXXXXXXXX/default.jpg" width="120" height="90" />
<media:title>Digging a well</media:title>
<media:credit>John Brennan</media:credit>
<enclosure url="http://youtube.com/v/XXXXXXXXXXX.swf" duration="155" type="application/x-shockwave-flash"/>
</media:content>where XXXXXXXXXXX is the video id. ExamplesPlease refer to the Examples page. Open IssuesThis specification is still a work in progress. While fields already defined will remain in the final draft, there remains other fields used to describe most projects that do not yet exist in this spec. If there are general fields you don't see, please leave it in the comments. Currently we are still working out the following:
Specification Notes
<foaf:accountServiceHomepage rdf:resource="http://www.account-service.com"/> This makes the feed as a whole invalid with some RSS parsers. Furthermore, parts of the spec are still considered unstable. Since the goal of ProjectRSS is to be compatible with RSS Readers, we will describe these elements like the following: <foaf:accountServiceHomepage>http://www.account-service.com</foaf:accountServiceHomepage> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
One issue which I had considered was differentiating between the place where an event occurs, and the place which will benefit.
For example, a lemonade stall could have a location on my street, but it will also have a location where the money raised will be used to build a well.
I can see both being useful for people searching for opportunities to do goo things.
@findartdavid: That's a great point! Although it starts to get complicated when you can have many lemonade stands (e.g. fundraisers) contributing to the same benefit project. And does it benefit a project you are also working on or is it another organization?
Perhaps the right way is almost 2 separate feeds (assuming you are not the same organization that will do the work in the field)
And of course some sort of linking between your fundraiser and the organization. But we'd need a common identifier for you both. And it shouldn't be owned by any 1 site. Perhaps a URI?
Thoughts?
And thanks for the feedback!!
Also re georss. I'm implementing this for http://nabuur.com/ a point is fine for projects for their 'villages' - online projects for a place somewhere in the world. It, however, makes no sense for projects for their 'groups' - which are online groups with online projects. Yet the point is required.