project-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
Line 16: Line 16:
== Format ==
== Format ==
=== In General ===
=== In General ===
The projecta format is based on a set of fields common to numerous project sites and formats in use today on the web.  Where possible field names have been chosen based on those defined by the related [[hcard|hCard]] and [[hcalendar|hCalendar]].
The projecta format is based on a set of fields common to numerous project sites and formats in use today on the web.  Where possible field names have been chosen based on those defined by the related [[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], and [[hrecipe|hRecipe]].


=== Schema ===
=== Schema ===
Line 22: Line 22:


* projecta ('''<code>projecta</code>''')
* projecta ('''<code>projecta</code>''')
** '''<code>version</code>'''. optional. text.
** '''version'''. optional. text.
** '''<code>title</code>'''. required. text. the name of the project.
** '''summary'''. optional. text. one sentence.
** '''<code>summary</code>'''. optional. text. one sentence.
** '''type'''. optional. abstract | practical.
** '''<code>project</code>''' info. required. ('''<code>url</code>''' || '''<code>photo</code>''' )
** '''project''' info. required. '''<code>fn</code>''' ('''<code>url</code>''' || '''<code>photo</code>''' )
** '''<code>author</code>'''. optional. '''[[hcard|hCard]]'''.
** '''author'''. optional. '''[[hcard|hCard]]'''.
** '''<code>description</code>'''. optional. text with optional valid HTML markup.
** '''description'''. optional. text with optional valid HTML markup.
** requirements. optional. text with optional '''<code>url</code>''' to products or other projects.
** '''goals'''. optional. text with valid HTML '''<code>ul</code>''' ('''<code>li</code>''') elements.
** steps. optional. text with valid HTML '''<code>ol</code>''' ('''<code>li</code>''') elements.
** '''instructions'''. optional. text with valid HTML '''<code>ol</code>''' ('''<code>li</code>''') elements.
** tags. optional. keywords or phrases, using '''[[rel-tag]]''', each with optional rating.
** '''accomplishments'''. optional. text with valid HTML '''<code>ul</code>''' ('''<code>li</code>''') elements.
** permalink. optional, using '''[[rel-bookmark]]''' and '''[[rel-self]]'''.
** '''requirements'''. optional. text {{may}} include valid HTML markup e.g. paragraphs or a list.
** '''tags'''. optional. keywords or phrases, using '''[[rel-tag]]''', each with optional rating.
** '''permalink'''. optional, using '''[[rel-bookmark]]''' and '''[[rel-self]]'''.


=== Field details ===
=== Field details ===
Line 38: Line 40:
'''version''':: This optional field permits projecta publishers to specify a particular version of projecta that their content uses. This field is syntax compatible with, and thus reuses the semantics of "VERSION" as defined in vCard RFC2426 section "3.6.9 VERSION Type Definition".  The value of this field for this specification is "0.1".
'''version''':: This optional field permits projecta publishers to specify a particular version of projecta that their content uses. This field is syntax compatible with, and thus reuses the semantics of "VERSION" as defined in vCard RFC2426 section "3.6.9 VERSION Type Definition".  The value of this field for this specification is "0.1".


'''title''':: This required field {{must}} have at a minimum the name of the project.
'''summary''':: This optional field serves as a one sentence summary of the project.


'''summary''':: This optional field serves as a one sentence summary of the project.
'''type''':: This optional field "type" provides the type of project, one of the following: abstract, practical.  If omitted, then in some cases the project type may be inferred. For projects of type "abstract" {{should}} have "goals" and/or "accomplishments" fields completed.  For projects of type "practical" {{should}} have "steps" field completed.


'''project info''':: This required field {{must}} have at a minimum the name. However, when using item info subproperties ("url", "photo"), they {{must}} be nested <em>inside</em> the item element.
'''project''':: This required field {{must}} have at a minimum the name ("fn" - the formatted text corresponding to the name) of ''the'' project (a projecta describes only one project), {{may}} provide at least one URI ("url") for the project, and {{may}} provide at least one URL to a photo or depiction ("photo") of the project. However, when using item info subproperties ("fn", "url", "photo"), they {{must}} be nested <em>inside</em> the project element.


'''author''':: The optional field specifies the person who authored the project.  If the author is specified, an hCard representing the author {{must}} be provided.
'''author''':: This optional field specifies the person who authored the project.  If the author is specified, an hCard representing the author {{must}} be provided.


'''description''':: This optional field contains the full text representing the input of the author.  The field {{may}}  include valid HTML markup (e.g. paragraphs).  User agents {{should}} preserve any markup.
'''description''':: This optional field contains the full text representing the input of the author.  The field {{may}}  include valid HTML markup (e.g. paragraphs).  User agents {{should}} preserve any markup.
'''goals''':: This optional field documents the project's goals.
'''instructions''':: This optional field documents the instructions required to complete the project. Re-used from [[hrecipe|hRecipe]].
'''accomplishments''':: This optional field documents the project's accomplishments.


'''requirements''':: This optional field contains the requirements of the project. The field {{may}} include links to products or other projects.
'''requirements''':: This optional field contains the requirements of the project. The field {{may}} include links to products or other projects.
Line 54: Line 62:
'''permalink''':: This optional field is a URL for the projecta.  In addition to using the <code><a href></code> tag for this field, the attribute <code>rel="self bookmark"</code> {{must}} be used to indicate that the hyperlink is a permalink for the project itself.  If the hyperlink already contains a <code>rel</code> attribute, then the values <code>self</code> and <code>bookmark</code> {{must}} be included among the space-separated set of values in the attribute.  Indexers {{may}} treat the permalink of a project as a unique ID in order to identify and collate the same project from multiple sources (such as indexing a page multiple times).  The permalink {{may}} also be used to indicate or imply the origin of the project. Authors {{may}} use the classname of "permalink" on the element representing the permalink.
'''permalink''':: This optional field is a URL for the projecta.  In addition to using the <code><a href></code> tag for this field, the attribute <code>rel="self bookmark"</code> {{must}} be used to indicate that the hyperlink is a permalink for the project itself.  If the hyperlink already contains a <code>rel</code> attribute, then the values <code>self</code> and <code>bookmark</code> {{must}} be included among the space-separated set of values in the attribute.  Indexers {{may}} treat the permalink of a project as a unique ID in order to identify and collate the same project from multiple sources (such as indexing a page multiple times).  The permalink {{may}} also be used to indicate or imply the origin of the project. Authors {{may}} use the classname of "permalink" on the element representing the permalink.


The following field names have been reused from the [[hcard|hCard]], [[hcalendar|hCalendar]], and [[hreview|hReview]] microformats: <code>version, summary, url, photo, description, tags, permalink</code>.  In addition, items and authors described by hCards {{may}} contain any hCard field.  The rel value "self" has been reused from the [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html Atom 1.0 specification].
The following field names have been reused from the [[hcard|hCard]], [[hcalendar|hCalendar]], [[hreview|hReview]], and [[hrecipe|hRecipe]] microformats: <code>version, summary, url, photo, description, instructions, tags, permalink</code>.  In addition, items and authors described by hCards {{may}} contain any hCard field.  The rel value "self" has been reused from the [http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html Atom 1.0 specification].


==Format Development==
==Format Development==

Revision as of 23:19, 24 March 2009

projecta

Even though there are existing project formats, the projecta format MUST be developed because there is no established project format and it will enable decentralized development of projects.

Contributors

  • Derek Lewis

See Also

Format

In General

The projecta format is based on a set of fields common to numerous project sites and formats in use today on the web. Where possible field names have been chosen based on those defined by the related hCard, hCalendar, hReview, and hRecipe.

Schema

The projecta schema consists of the following:

  • projecta (projecta)
    • version. optional. text.
    • summary. optional. text. one sentence.
    • type. optional. abstract | practical.
    • project info. required. fn (url || photo )
    • author. optional. hCard.
    • description. optional. text with optional valid HTML markup.
    • goals. optional. text with valid HTML ul (li) elements.
    • instructions. optional. text with valid HTML ol (li) elements.
    • accomplishments. optional. text with valid HTML ul (li) elements.
    • requirements. optional. text MAY include valid HTML markup e.g. paragraphs or a list.
    • tags. optional. keywords or phrases, using rel-tag, each with optional rating.
    • permalink. optional, using rel-bookmark and rel-self.

Field details

The fields of the projecta schema represent the following:

version:: This optional field permits projecta publishers to specify a particular version of projecta that their content uses. This field is syntax compatible with, and thus reuses the semantics of "VERSION" as defined in vCard RFC2426 section "3.6.9 VERSION Type Definition". The value of this field for this specification is "0.1".

summary:: This optional field serves as a one sentence summary of the project.

type:: This optional field "type" provides the type of project, one of the following: abstract, practical. If omitted, then in some cases the project type may be inferred. For projects of type "abstract" SHOULD have "goals" and/or "accomplishments" fields completed. For projects of type "practical" SHOULD have "steps" field completed.

project:: This required field MUST have at a minimum the name ("fn" - the formatted text corresponding to the name) of the project (a projecta describes only one project), MAY provide at least one URI ("url") for the project, and MAY provide at least one URL to a photo or depiction ("photo") of the project. However, when using item info subproperties ("fn", "url", "photo"), they MUST be nested inside the project element.

author:: This optional field specifies the person who authored the project. If the author is specified, an hCard representing the author MUST be provided.

description:: This optional field contains the full text representing the input of the author. The field MAY include valid HTML markup (e.g. paragraphs). User agents SHOULD preserve any markup.

goals:: This optional field documents the project's goals.

instructions:: This optional field documents the instructions required to complete the project. Re-used from hRecipe.

accomplishments:: This optional field documents the project's accomplishments.

requirements:: This optional field contains the requirements of the project. The field MAY include links to products or other projects.

tags:: Tags are represented using a list of keywords or phrases (using the rel-tag microformat for each individual keyword or phrase tag) that the author associates with the project.

permalink:: This optional field is a URL for the projecta. In addition to using the <a href> tag for this field, the attribute rel="self bookmark" MUST be used to indicate that the hyperlink is a permalink for the project itself. If the hyperlink already contains a rel attribute, then the values self and bookmark MUST be included among the space-separated set of values in the attribute. Indexers MAY treat the permalink of a project as a unique ID in order to identify and collate the same project from multiple sources (such as indexing a page multiple times). The permalink MAY also be used to indicate or imply the origin of the project. Authors MAY use the classname of "permalink" on the element representing the permalink.

The following field names have been reused from the hCard, hCalendar, hReview, and hRecipe microformats: version, summary, url, photo, description, instructions, tags, permalink. In addition, items and authors described by hCards MAY contain any hCard field. The rel value "self" has been reused from the Atom 1.0 specification.

Format Development

Further development is based on your feedback.

Project Type

There are two [types] of project page as I see it - the abstract (name of the project, description, goals, who's in charge, related web pages, etc) and the practical (name of the project, step by step how it can be achieved).

The former overlaps with hCard / hDOAP; the latter with hRecipe (though hRecipe only suitable for a limited subset). There is very little common ground.

The World Bank site and CORDIS are examples of the former - what are the goals of the project? who is taking part? who is funding it? how much will it cost? But they don't give you step-by-step instructions for how to carry out the project in your own home in your spare time. And you won't expect them to.

The knitting site, and recipes are different. The goals are not explicitly stated; no time frame is given (I could knit a poncho tomorrow, or maybe in a few years' time). The focus is on the step by step documentation of how it can be done, so that you can replicate the project yourself. -Toby

Suggestion

What do you suggest?

See Also

See projecta for the result and evolution of these thoughts on a microformat.