project-brainstorming: Difference between revisions
Allansideas (talk | contribs) |
|||
(9 intermediate revisions by 3 users not shown) | |||
Line 16: | Line 16: | ||
== Format == | == Format == | ||
=== In General === | === In General === | ||
The projecta format | The projecta format documents practical (how-you-can-do) projects. Where possible field names have been chosen based on those defined by the related [[hcard|hCard]], [[hatom|hAtom]], [[hcalendar|hCalendar]], and [[hrecipe|hRecipe]]. | ||
=== Schema === | === Schema === | ||
The projecta schema consists of the following: | The projecta schema consists of the following elements: | ||
* | * '''projecta''' | ||
** ''' | ** '''''fn'''''. required. text. the formatted name of the project. re-used from [[hCard]]. | ||
** '''''summary'''''. optional. text. re-used from [[hCalendar]]. | |||
** ''' | ** '''''author'''''. optional. 1 or more. re-used from [[hAtom]] using [[hCard]]. | ||
** '' | ** ''published''. optional. re-used from [[hAtom]]. [experimental] | ||
** ''tag''. optional. 1 or more. re-used from [[rel-tag]]. [experimental] | |||
** '' | ** ''photo''. optional. 1 or more. using any element containing a URL, such as IMG. re-used from [[hCard]]. [experimental] | ||
** '' | ** ''requirement''. optional. text with optional valid (x)HTML markup. | ||
** '' | ** ''instructions''. optional. text with optional valid (x)HTML markup. re-used from [[hRecipe]]. | ||
** '' | ** '''''duration'''''. optional. 1 or more. text (see [[ISO-31-1]] duration brainstorming). re-used from [[hCalendar]]. | ||
** '' | |||
** ' | |||
=== Field details === | === Field details === | ||
The fields of the projecta schema represent the following: | The fields of the projecta schema represent the following: | ||
==== fn ==== | |||
The title of a single project. The formatted name of what the projecta documents. | |||
* The element is identified by class name <code>fn</code>. | |||
* A projecta {{must}} include a <code> fn </code>. | |||
* The element {{must}} follow the conventions outlined in [[hCard]]. | |||
==== summary ==== | |||
The summary provides a short introduction to or an accompanying statement about the project. | |||
* The element is identified by the class name <code>summary</code>. | |||
* A projecta {{may}} include a <code>summary</code>. | |||
* The element {{must}} follow the conventions outlined in [[hCalendar]]. | |||
==== author ==== | |||
The person who authored the project. | |||
* The element is identified by class name <code>author</code>. | |||
* A projecta {{may}} include one or more <code>author</code> elements. | |||
* The contents of the element {{must}} follow the conventions outlined in [[hCard]]. | |||
==== published ==== | |||
The date the project was published. | |||
* The element is identified by the class name <code>published</code>. | |||
* A projecta {{may}} include a <code>published</code> date. | |||
* The element {{must}} follow the conventions outlined in [[hAtom]]. | |||
* The [[datetime-design-pattern]] {{should}} be used to encode the published datetime. | |||
* The element is considered ''experimental'' and may be removed from the final specification. | |||
The | ==== tag ==== | ||
A keyword indicating a subject or an important aspect of the project like it's main requirement, type of project etc. | |||
* The element is identified by class name <code>tag</code>. | |||
* A projecta {{may}} include one or more <code>tag</code> elements. | |||
* The element {{must}} follow the conventions outlined in [[rel-tag]]. | |||
==== photo ==== | |||
Accompanying image. | |||
* The element is identified by the class name <code>photo</code>. | |||
* A projecta {{may}} include one or more photo elements. | |||
* The element {{should}} use an <img> element. | |||
* The element {{may}} use any other element that contains a URL, such as <a> or <object>, but it is not recommended. | |||
* The contents of the element {{must}} follow the conventions outlined in [[hCard]]. | |||
==== requirement ==== | |||
Describes one or more requirements of the project. | |||
* The element is identified by the class name <code>requirement</code>. | |||
* A projecta {{must}} include one or more <code>requirement</code>s. | |||
* The field {{may}} include valid HTML markup (e.g. a list of requirements). | |||
==== instructions ==== | |||
Documents the instructions required to complete the project. | |||
* The element is identified by the class name <code>instructions</code>. | |||
* A projecta {{may}} include a <code>instructions</code> element. | |||
* The field {{may}} include valid HTML markup e.g. paragraphs or a list of steps. | |||
==== duration ==== | |||
The time it takes to complete the project described by the projecta. Multiple duration fields can be used to denote time taken per instruction. | |||
* The element is identified by the class name <code>duration</code>. | |||
* A projecta {{may}} include one or more <code>duration</code>s. | |||
* The element {{must}} follow the conventions outlined in [[hCalendar]]. | |||
<pre><nowiki> | |||
<div class="projecta"> | |||
<h3 class="fn">Germinating Seeds</h3> | |||
<p class="summary"> | |||
How to germinate seeds in potting mix.<br /> | |||
</p> | |||
<p class="vcard fn">Derek Lewis</p> | |||
<p>Published <abbr class="published" title="2009-03-28T09:30-11:00">28. Mar 2009</abbr></p> | |||
<img src="/img/seed.png" class="photo" width="100" height="100" alt="Seed"/> | |||
<h4>Requirements</h4> | |||
<ul class="requirement"> | |||
<li>Container(s) (With drain holes)</li> | |||
<li>Seed(s)</li> | |||
<li>Potting Mix</li> | |||
<li>Fresh Water</li> | |||
<li>A Light Source</li> | |||
</ul> | |||
<h4>Instructions</h4> | |||
<ol class="instructions"> | |||
<li>Loosen and dampen the potting mix.</li> | |||
<li>Fill 2/3 of each container(s) with potting mix.</li> | |||
<li>Put seed(s) in container with potting mix.</li> | |||
<li>Sprinkle a few drops of water over of the seed(s). (Remember to repeat this once potting mix becomes dry.)</li> | |||
<li>Place container under light source.</li> | |||
</ol> | |||
</div> | |||
</nowiki></pre> | |||
==Format Development== | ==Format Development== | ||
Line 77: | Line 151: | ||
====Suggestion==== | ====Suggestion==== | ||
Rather than creating a large format that encompases both here's-how-you-can-do-it-at-home projects and here's-what-we're-doing projects, there is probably more value in creating two small formats, the former as perhaps an evolution of [[hRecipe]] and the latter as perhaps an extension to [[hCard]]. | |||
The hRecipe evolution could be called "hInstructions" - which would semantically separate it from the abstract term. It could, instead of an instructions class have multiple "step" classes each with their own media. It would encompass any description of how to complete a project, including recipes. Perhaps tag could be used to categorize the instruction?--[[User:Allansideas|Allansideas]] 03:51, 9 July 2009 (UTC) | |||
hCard could be extended, for example, by defining <tt>goal</tt>, <tt>benefactor</tt> (containing an embedded hCard) and <tt>beneficiary</tt> (containing an embedded hCard) classes, and borrowing the <tt>due</tt> class from [[hCalendar]]. | |||
<pre><nowiki><div class="vcard vproject"> | |||
<h3 class="fn org">United Nations Giraffism Project</h3> | |||
<p class="goal">To cure the people of the world of giraffism, | |||
a terrible disease that gives people long necks, | |||
by <span class="due">2018</span>.</p> | |||
<p>Visit our <a href="http://giraffism.example.net/" | |||
class="url">website</a> for more details.</p> | |||
</div></nowiki></pre> | |||
====Digestion==== | ====Digestion==== | ||
The evolution of hRecipe involves the following: | |||
Remove "Ingredient"<br /> | |||
Remove "Yield"<br /> | |||
Remove "Nutrition"<br /> | |||
Add "Requirement" | |||
As simple as possible. | |||
== See Also == | == See Also == |
Latest revision as of 03:51, 9 July 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 documents practical (how-you-can-do) projects. Where possible field names have been chosen based on those defined by the related hCard, hAtom, hCalendar, and hRecipe.
Schema
The projecta schema consists of the following elements:
- projecta
- fn. required. text. the formatted name of the project. re-used from hCard.
- summary. optional. text. re-used from hCalendar.
- author. optional. 1 or more. re-used from hAtom using hCard.
- published. optional. re-used from hAtom. [experimental]
- tag. optional. 1 or more. re-used from rel-tag. [experimental]
- photo. optional. 1 or more. using any element containing a URL, such as IMG. re-used from hCard. [experimental]
- requirement. optional. text with optional valid (x)HTML markup.
- instructions. optional. text with optional valid (x)HTML markup. re-used from hRecipe.
- duration. optional. 1 or more. text (see ISO-31-1 duration brainstorming). re-used from hCalendar.
Field details
The fields of the projecta schema represent the following:
fn
The title of a single project. The formatted name of what the projecta documents.
- The element is identified by class name
fn
. - A projecta MUST include a
fn
. - The element MUST follow the conventions outlined in hCard.
summary
The summary provides a short introduction to or an accompanying statement about the project.
- The element is identified by the class name
summary
. - A projecta MAY include a
summary
. - The element MUST follow the conventions outlined in hCalendar.
author
The person who authored the project.
- The element is identified by class name
author
. - A projecta MAY include one or more
author
elements. - The contents of the element MUST follow the conventions outlined in hCard.
published
The date the project was published.
- The element is identified by the class name
published
. - A projecta MAY include a
published
date. - The element MUST follow the conventions outlined in hAtom.
- The datetime-design-pattern SHOULD be used to encode the published datetime.
- The element is considered experimental and may be removed from the final specification.
tag
A keyword indicating a subject or an important aspect of the project like it's main requirement, type of project etc.
- The element is identified by class name
tag
. - A projecta MAY include one or more
tag
elements. - The element MUST follow the conventions outlined in rel-tag.
photo
Accompanying image.
- The element is identified by the class name
photo
. - A projecta MAY include one or more photo elements.
- The element SHOULD use an <img> element.
- The element MAY use any other element that contains a URL, such as <a> or <object>, but it is not recommended.
- The contents of the element MUST follow the conventions outlined in hCard.
requirement
Describes one or more requirements of the project.
- The element is identified by the class name
requirement
. - A projecta MUST include one or more
requirement
s. - The field MAY include valid HTML markup (e.g. a list of requirements).
instructions
Documents the instructions required to complete the project.
- The element is identified by the class name
instructions
. - A projecta MAY include a
instructions
element. - The field MAY include valid HTML markup e.g. paragraphs or a list of steps.
duration
The time it takes to complete the project described by the projecta. Multiple duration fields can be used to denote time taken per instruction.
- The element is identified by the class name
duration
. - A projecta MAY include one or more
duration
s. - The element MUST follow the conventions outlined in hCalendar.
<div class="projecta"> <h3 class="fn">Germinating Seeds</h3> <p class="summary"> How to germinate seeds in potting mix.<br /> </p> <p class="vcard fn">Derek Lewis</p> <p>Published <abbr class="published" title="2009-03-28T09:30-11:00">28. Mar 2009</abbr></p> <img src="/img/seed.png" class="photo" width="100" height="100" alt="Seed"/> <h4>Requirements</h4> <ul class="requirement"> <li>Container(s) (With drain holes)</li> <li>Seed(s)</li> <li>Potting Mix</li> <li>Fresh Water</li> <li>A Light Source</li> </ul> <h4>Instructions</h4> <ol class="instructions"> <li>Loosen and dampen the potting mix.</li> <li>Fill 2/3 of each container(s) with potting mix.</li> <li>Put seed(s) in container with potting mix.</li> <li>Sprinkle a few drops of water over of the seed(s). (Remember to repeat this once potting mix becomes dry.)</li> <li>Place container under light source.</li> </ol> </div>
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
Rather than creating a large format that encompases both here's-how-you-can-do-it-at-home projects and here's-what-we're-doing projects, there is probably more value in creating two small formats, the former as perhaps an evolution of hRecipe and the latter as perhaps an extension to hCard.
The hRecipe evolution could be called "hInstructions" - which would semantically separate it from the abstract term. It could, instead of an instructions class have multiple "step" classes each with their own media. It would encompass any description of how to complete a project, including recipes. Perhaps tag could be used to categorize the instruction?--Allansideas 03:51, 9 July 2009 (UTC)
hCard could be extended, for example, by defining goal, benefactor (containing an embedded hCard) and beneficiary (containing an embedded hCard) classes, and borrowing the due class from hCalendar.
<div class="vcard vproject"> <h3 class="fn org">United Nations Giraffism Project</h3> <p class="goal">To cure the people of the world of giraffism, a terrible disease that gives people long necks, by <span class="due">2018</span>.</p> <p>Visit our <a href="http://giraffism.example.net/" class="url">website</a> for more details.</p> </div>
Digestion
The evolution of hRecipe involves the following:
Remove "Ingredient"
Remove "Yield"
Remove "Nutrition"
Add "Requirement"
As simple as possible.
See Also
See projecta for the result and evolution of these thoughts on a microformat.