principles: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
m (Reverted edits by [[Special:Contributions/000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)
Line 1: Line 1:
HOW THING OUT
<h1>microformats principles</h1>
HOW ANYTHING OUT
{{TOC-right}}
HOW EVERYTHING OUT
A key differentiating factor between [[microformats]] and other formats are the principles upon which microformats have been researched, designed, and developed.
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
;author/editor : [[User:Tantek|Tantek Çelik]]
HOW MAKE ANYTHING OUT
 
HOW MAKE EVERYTHING OUT
== summary of key principles ==
HOW MAKE UNIVERSE OUT
* solve a specific problem
HOW THING BE OUT
* [[start-simple|start as simple as possible]]
HOW ANYTHING BE OUT
** [[solve-simpler-problems-first|solve simpler problems first]]
HOW EVERYTHING BE OUT
** make evolutionary improvements
HOW UNIVERSE BE OUT
* design for [[humans-first|humans first]], machines second
HOW MAKE THING BE OUT
** be presentable ''and'' parsable
HOW MAKE ANYTHING BE OUT
** ''visible data'' is much better for humans than ''invisible metadata'' (see: [http://tantek.com/log/2005/06.html#d03t2359 Principles of visibility and human friendliness]).
HOW MAKE EVERYTHING BE OUT
** adapt to current behaviors and usage patterns, e.g. (X)HTML, blogging
HOW MAKE UNIVERSE BE OUT
** [http://tantek.com/log/2003/0813t1158.html#handauthoring ease of authoring is important]
HOW THING OUT
* [[reuse]] building blocks from widely adopted standards:
HOW ANYTHING OUT
** [http://tantek.com/presentations/20040928sdforumws/semantic-xhtml.html semantic], [http://tantek.com/presentations/2005/03/elementsofxhtml meaningful (X)HTML], i.e. [[POSH]]. See [[SemanticXHTMLDesignPrinciples]] for more details.
HOW EVERYTHING OUT
** existing microformats
HOW UNIVERSE OUT
*** as a whole, e.g. use [[hcard|hCard]] for representing people
HOW MAKE THING OUT
*** in part, reusing particular semantic class names, following [[naming-principles|microformats naming principles]]
HOW MAKE ANYTHING OUT
** well established schemas from interoperable RFCs
HOW MAKE EVERYTHING OUT
* modularity / embeddability
HOW MAKE UNIVERSE OUT
** design to be reused and embedded inside existing formats and microformats
HOW THING BE OUT
* enable and encourage decentralized and distributed development, content, services
HOW ANYTHING BE OUT
** explicitly encourage the original "spirit of the Web"
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
== related principles ==
HOW MAKE THING BE OUT
Related principles the microformats community re-uses from other design paradigms:
HOW MAKE ANYTHING BE OUT
* [[dry]]
HOW MAKE EVERYTHING BE OUT
* [http://en.wikipedia.org/wiki/Principle_of_least_surprise Least Surprise]
HOW MAKE UNIVERSE BE OUT
* [http://en.wikipedia.org/wiki/Pareto_principle Pareto Principle] (80/20)
HOW THING OUT
 
HOW ANYTHING OUT
== effects of principles ==
HOW EVERYTHING OUT
Goals, objectives, and effects of some of the principles.
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
<div id="data-integrity">
HOW MAKE ANYTHING OUT
* '''Data Integrity.'''  One of the common objectives which many of the principles help achieve is data integrity.
HOW MAKE EVERYTHING OUT
** Visible data = more accurate data. By designing for humans first and making the data presentable (thus viewed and ''verified'' by humans), the data is inevitably more accurate, not only to begin with (as errors are easily/quickly noticed by those viewing the pages/sites), but over time as well; in that changes are noticed, and if data becomes out-of-date or obsolete, that's more likely to be noticed as well.  This is in direct contrast to "side files" and invisible data like that contained in <code>&lt;meta&gt;</code> tags.
HOW MAKE UNIVERSE OUT
** Not repeating yourself (following DRY) - means there are fewer chances for inconsistency
HOW THING BE OUT
** Multi-language integrity. Perhaps not a principle, but many of those involved with microformats have found that consistently [[using-utf-8|using UTF-8]] helps ensure that the human text content itself is not corrupted, especially when using non-ASCII7 characters.
HOW ANYTHING BE OUT
</div>
HOW EVERYTHING BE OUT
 
HOW UNIVERSE BE OUT
<div id="lowering-barriers">
HOW MAKE THING BE OUT
* '''Lowering barriers for publishers.''' One of the goals of microformats is to be a bit more publisher-centric in design, rather than parser-centric, as compared to other formats efforts. That does not mean that we try to make things completely free of effort for publishers, because clearly we ask a little of them, but it does mean that we ask less of them than most other standards efforts, which ask publishers to learn new languages, create new files, [[namespaces]] etc.  For example the [[hcalendar|hCalendar]] microformat lowers barriers for publishers in comparison to the iCalendar (RFC 2445) format which otherwise requires the publisher to learn a new language (.ics), create a separate .ics file, etc. hCalendar itself can perhaps be made easier still through the resolution of some of the [[hcalendar-issues|hCalendar issues]], but the larger point is, even in its current state, hCalendar immediately lowers the barrier for publishers to publish and share event information in an open format in comparison to previous calendar formats. The following principle(s) help lower barriers for publishers:
HOW MAKE ANYTHING BE OUT
** humans first, machines second.  One aspect of being more human-centric in design is about making it easier for humans in general to publish information in microformats, rather than just making it easier for machines (programs) to parse microformats.  This seems like an obvious trade-off in that many fewer humans develop/write parsers than publish content, and thus making publishing easier benefits more people.
HOW MAKE EVERYTHING BE OUT
** Note: to be clear, the goal here is <em>lowering</em> barriers for publishers, rather than <em>eliminating</em> barriers for publishers at all costs.  One could take the extreme view that publishers shouldn't have to do anything different at all, and that <em>all</em> the work should be done by parsers which should be made as intelligent as possible (through techniques such as  [http://www.google.com/search?hl=en&q=content+%22entity+detection%22 content entity detection]). Such methods tend to be probabilistic in nature, having varying degrees of success and accuracy, often providing "good enough" results for many applications.  However, probabilistic data detection etc. is not good enough when one of the goals is '''Data Integrity''', as stated above.  Thus while we recognize the utility of entity detection, microformats do not and must not depend on probabilistic methods such as entity detection.
HOW MAKE UNIVERSE BE OUT
</div>
HOW THING OUT
 
HOW ANYTHING OUT
<div id="user-centered">
HOW EVERYTHING OUT
* '''User centered data re-use.''' By encouraging [[POSH]] and additional semantic markup through microformats, microformats themselves greatly enable user driven data re-use.  Portability, i.e. [[data-portability]] and [[social-network-portability]], is one example of user driven data re-use.
HOW UNIVERSE OUT
** Some of this is achieved implicitly by what we <strong style="text-transform:uppercase">don't</strong> ask publishers to do. Specifically, we ask publishers to: <strong>mark up data semantically, which enables <em>general</em> re-use</strong>, and explicitly avoid  asking them to mark up data semantically and with verbs for <em>specific</em> re-uses.
HOW MAKE THING OUT
</div>
HOW MAKE ANYTHING OUT
 
HOW MAKE EVERYTHING OUT
== quotes ==
HOW MAKE UNIVERSE OUT
Quotes relating to the principles:
HOW THING BE OUT
 
HOW ANYTHING BE OUT
=== simple ===
HOW EVERYTHING BE OUT
"The trick... is to make sure that each limited mechanical part of the Web, each application, is within itself composed of simple parts that will never get too powerful." — Tim Berners-Lee, Weaving The Web
HOW UNIVERSE BE OUT
 
HOW MAKE THING BE OUT
"The beauty of this is its simplicity. If the plan gets too complex something always goes wrong." — [http://www.imsdb.com/scripts/Big-Lebowski,-The.html John Goodman's character "Walter"]
HOW MAKE ANYTHING BE OUT
 
HOW MAKE EVERYTHING BE OUT
=== modular ===
HOW MAKE UNIVERSE BE OUT
"...if I had insisted everyone use HTTP, this would also have been against the principle of minimal constraint... the Web would come as a set of ideas that could be adopted individually in combination with existing or future parts." — Tim Berners-Lee, Weaving The Web
HOW THING OUT
 
HOW ANYTHING OUT
== related ==
HOW EVERYTHING OUT
Many of the principles were/are based on explicitly [http://tantek.com/log/2007/08.html#d31t2354 inverting assumptions] from typical technology  format development.
HOW UNIVERSE OUT
 
HOW MAKE THING OUT
==See also==
HOW MAKE ANYTHING OUT
*[[priorities]]
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT
HOW THING OUT
HOW ANYTHING OUT
HOW EVERYTHING OUT
HOW UNIVERSE OUT
HOW MAKE THING OUT
HOW MAKE ANYTHING OUT
HOW MAKE EVERYTHING OUT
HOW MAKE UNIVERSE OUT
HOW THING BE OUT
HOW ANYTHING BE OUT
HOW EVERYTHING BE OUT
HOW UNIVERSE BE OUT
HOW MAKE THING BE OUT
HOW MAKE ANYTHING BE OUT
HOW MAKE EVERYTHING BE OUT
HOW MAKE UNIVERSE BE OUT

Revision as of 05:23, 19 August 2013

microformats principles

A key differentiating factor between microformats and other formats are the principles upon which microformats have been researched, designed, and developed.

author/editor
Tantek Çelik

summary of key principles

related principles

Related principles the microformats community re-uses from other design paradigms:

effects of principles

Goals, objectives, and effects of some of the principles.

  • Data Integrity. One of the common objectives which many of the principles help achieve is data integrity.
    • Visible data = more accurate data. By designing for humans first and making the data presentable (thus viewed and verified by humans), the data is inevitably more accurate, not only to begin with (as errors are easily/quickly noticed by those viewing the pages/sites), but over time as well; in that changes are noticed, and if data becomes out-of-date or obsolete, that's more likely to be noticed as well. This is in direct contrast to "side files" and invisible data like that contained in <meta> tags.
    • Not repeating yourself (following DRY) - means there are fewer chances for inconsistency
    • Multi-language integrity. Perhaps not a principle, but many of those involved with microformats have found that consistently using UTF-8 helps ensure that the human text content itself is not corrupted, especially when using non-ASCII7 characters.
  • Lowering barriers for publishers. One of the goals of microformats is to be a bit more publisher-centric in design, rather than parser-centric, as compared to other formats efforts. That does not mean that we try to make things completely free of effort for publishers, because clearly we ask a little of them, but it does mean that we ask less of them than most other standards efforts, which ask publishers to learn new languages, create new files, namespaces etc. For example the hCalendar microformat lowers barriers for publishers in comparison to the iCalendar (RFC 2445) format which otherwise requires the publisher to learn a new language (.ics), create a separate .ics file, etc. hCalendar itself can perhaps be made easier still through the resolution of some of the hCalendar issues, but the larger point is, even in its current state, hCalendar immediately lowers the barrier for publishers to publish and share event information in an open format in comparison to previous calendar formats. The following principle(s) help lower barriers for publishers:
    • humans first, machines second. One aspect of being more human-centric in design is about making it easier for humans in general to publish information in microformats, rather than just making it easier for machines (programs) to parse microformats. This seems like an obvious trade-off in that many fewer humans develop/write parsers than publish content, and thus making publishing easier benefits more people.
    • Note: to be clear, the goal here is lowering barriers for publishers, rather than eliminating barriers for publishers at all costs. One could take the extreme view that publishers shouldn't have to do anything different at all, and that all the work should be done by parsers which should be made as intelligent as possible (through techniques such as content entity detection). Such methods tend to be probabilistic in nature, having varying degrees of success and accuracy, often providing "good enough" results for many applications. However, probabilistic data detection etc. is not good enough when one of the goals is Data Integrity, as stated above. Thus while we recognize the utility of entity detection, microformats do not and must not depend on probabilistic methods such as entity detection.
  • User centered data re-use. By encouraging POSH and additional semantic markup through microformats, microformats themselves greatly enable user driven data re-use. Portability, i.e. data-portability and social-network-portability, is one example of user driven data re-use.
    • Some of this is achieved implicitly by what we don't ask publishers to do. Specifically, we ask publishers to: mark up data semantically, which enables general re-use, and explicitly avoid asking them to mark up data semantically and with verbs for specific re-uses.

quotes

Quotes relating to the principles:

simple

"The trick... is to make sure that each limited mechanical part of the Web, each application, is within itself composed of simple parts that will never get too powerful." — Tim Berners-Lee, Weaving The Web

"The beauty of this is its simplicity. If the plan gets too complex something always goes wrong." — John Goodman's character "Walter"

modular

"...if I had insisted everyone use HTTP, this would also have been against the principle of minimal constraint... the Web would come as a set of ideas that could be adopted individually in combination with existing or future parts." — Tim Berners-Lee, Weaving The Web

related

Many of the principles were/are based on explicitly inverting assumptions from typical technology format development.

See also