Difference between revisions of "Uno/Meta/Organization"

From Apache OpenOffice Wiki
< Uno
Jump to: navigation, search
m
(Examples: +PyUno)
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Types / Categories==
+
To ease usage of the OOo wiki, some rules should be helpful, to achieve
* [[Uno/Meta/Specification|Spec]] - Specifications.
+
* that URLs of interest can be guessed,
* [[Uno/Meta/Implementation|Impl]] - Implementation Descriptions.
+
* that an author knows where to locate his/her page and how to categorize it,
* [[Uno/Meta/Test|Test]] - Tests against particular Specifications.
+
* that ideally no redundant information (e.g. lists of something need to maintained).
 +
 
 +
For filling organizational pages, the DPL ([http://meta.wikimedia.org/wiki/DynamicPageList2 Dynamic Page List]) extension comes at hand. Uno organizational pages are populated with the help of DPL.
 +
 
 +
==Categorizing Pages==
 +
Every page is
 +
* either an overview page, providing the logical (and partly locational) coherence (e.g. project pages) while also providing links to subtopics, or
 +
* a container page, basically listing articles of a particular type touching a set of particular topics, or
 +
* a content page, describing something in details.
 +
 
 +
The Uno content pages are organized in a way, assuming that every article
 +
* has exactly one type (e.g. an article may be an tutorial, or a specification),
 +
* touches one or more topics (e.g. Java or C++ or Development), and
 +
* belongs to exactly one project respectively module (e.g. Binary Uno or Java Uno).
 +
 
 +
===Types===
 +
Currently used types are:
 +
* [[Uno/Meta/Specification|Spec]] - Specification.
 +
* [[Uno/Meta/Implementation|Impl]] - Description of an Implementation.
 +
* [[Uno/Meta/Test|Test]] - Description of a Test for an Implemenation.
 
* [[Uno/Term/Effort|Effort]] - Something which is in the works.
 
* [[Uno/Term/Effort|Effort]] - Something which is in the works.
 
* [[Uno/Meta/Article|Article]] - An informative article about a particular topic.
 
* [[Uno/Meta/Article|Article]] - An informative article about a particular topic.
* [[Uno/Meta/Tutorial|Tutorial]]
+
* [[Uno/Meta/Tutorial|Tutorial]] - A Tutorial explaining something.
* [[Uno/Meta/Analysis|Analysis]]
+
* [[Uno/Meta/Analysis|Analysis]] - An Analysis.
* Project categories e.g. Uno, Tools, GSL, Architecture, etc.
+
* [[Uno/Meta/Module|Module]] - Description of a source code module.
* Module categores, e.g. CPPU, CPPUhelper, ...
+
* [[Uno/Meta/Project|Project]] - Entry page of an accepted OOo project.
* Proposal
+
* [[Uno/Meta/Proposal|Proposal]] - A page proposing a change.
* Project
+
* [[Uno/Meta/Meta|Meta]] - A page describing a type or a topic.
* Cpp|Java
+
* [[Uno/Meta/Term|Term]] - A particular term.
* Module/<name>/test
+
* ModuleTest
+
* <name != above> - (A sub) module or leave(of a particular module).
+
  
==States==
+
===Topics===
Possible values for states:
+
Currently used topics are:
* draft - Not finished yet.
+
* [[:Category:Cpp|Cpp]] - Pages related to C++.
* preliminary - Basically finished, no further changes expected.
+
* [[:Category:Java|Java]] - Pages related to Java.
* final - Can be expected not to be changed.
+
* [[:Category:Development|Development]]
 +
* [[:Category:CLI|CLI]]
 +
* Uno
 +
* Uno:<impl> - e.g. Uno:Java for Java Uno or Uno:Cpp for C++ Uno.
  
==Claims==
+
==Organizing Pages==
Especially needed for abstract specifications possibility implemented in various concrete [[Uno]] implementations.
+
Pages need to be distributed to where they belong. AFAIK Wikipedia uses a flat structure, basically putting all pages side by side. As OOo is already partitioned by its accepted projects, IMHO pages should be distributed to their projects.
* required - Must be implemented by all Uno implementations.
+
* recommended - Is recommended to be implemented.
+
* optional - May be implemented.
+
  
==Structural Grammar==
+
Also, pages have exactly one type. Natural approach again IMHO is, to differentiate pages by their type and to distribute them into appropriate folders. E.g. into "Specifications" or "Modules". Natural choice for organizing pages is the wiki subpage feature. That means that the organization of the OOo wiki in general (at least wrt the accepted projects) should follow the following approach:
* Description = ("Spec"|"Impl"|"Test")/<text><br>
+
* <Project>
* Effort = "Effort"/(<submodule>/)*<text>
+
* <Project>/Modules
* Article = "Article"/<text>
+
* <Project>/Modules/<module a>
* start = <module>/((<submodule>/)*Description|Effort|Article|"Todo")
+
* <Project>/Modules/<module b>
 +
* <Project>/Specifications
 +
* <Project>/Specifications/<spec. a>
 +
* ...
  
==Categories==
+
===Composing Tutorials===
* Each subpage gets categorized by the category of the parent page. E.g.: Uno/Spec -category-> Uno
+
Tutorials often provide code snippets to teach a particular thing of interest. The Uno tutorials separate these snippets into dedicated pages which than get included by the tutorial. This allows to show the snippet not only in multiple tutorials, but to also make it available as example usages e.g. of a particular API.
* Each parent page (a page with children) forwards to its direct category page. E.g: Uno/Spec -forwards-> Category:Uno:Spec
+
 
 +
===Container Pages===
 +
Container pages are created with help of DPL. E.g.
 +
<pre>
 +
<DPL>category=Uno:Cpp
 +
category=Module</DPL>
 +
</pre>
  
 
==Examples==
 
==Examples==
* Uno Specifications
+
* [[Uno]] - Project page for the UDK accepted project.
: '''Page:''' [[Uno/Spec]]
+
* [[Uno/Modules]] - Overview page listing all modules belonging to Uno.
: '''Purpose''': Parent page for Uno specifications
+
* [[Uno/Specifications]] - Overview page listing all specifications belonging to Uno.
: '''Category''': Uno
+
 
: '''Content''': forwards to Category:Uno
+
===Binary Uno===
* Binary Uno Module
+
* [[Uno/Binary]] - Sub project for the Uno Binary language binding.
: '''Page:''' [[Uno/Binary]]
+
* [[Uno/Binary/Modules]] - overview page for modules belonging to Binary Uno.
: '''Purpose''': Parent page for Binary Uno
+
* [[Uno/Binary/Modules/remotebridges]] - Page describing the remotebridges module.
: '''Category''': Uno
+
* [[Uno/Binary/Modules/registry]] - Page describing the jurt module.
: '''Content''': forwards to Category Uno:Binary
+
* [[Uno/Binary/Specifications]] - overview page listing specifications belonging to Binary Uno.
* Binary Uno specifications
+
* [[Uno/Binary/Implementations]] - overview page listing specifications belonging to Binary Uno.
: '''Page''': [[Uno/Binary/Spec]]
+
 
: '''Purpose''': Parent page for Binary Uno Specifications
+
===Cpp Uno===
: '''Category''': Uno/Binary
+
* [[Uno/Cpp]] - Sub project for the Uno C++ language binding.
: '''Content''': forwards to Category Uno:Binary:Spec
+
* [[Uno/Cpp/Modules]] - overview page for modules belonging to C++ Uno.
* Specifications of the Binary Uno Component Loader
+
* [[Uno/Cpp/Modules/SALhelper]] - Page describing the salhelper module.
: '''Page''': [[Uno/Binary/Component Loader/Spec]]
+
* [[Uno/Cpp/Modules/CPPUhelper]] - Page describing the cppuhelper module.
: '''Purpose''': Parent page for the Binary Uno Component Loader Specifications
+
* [[Uno/Cpp/Specifications]] - overview page listing specifications belonging to C++ Uno.
: '''Content''': forwards to Category Uno:Binary:Component Loader:Spec
+
* [[Uno/Cpp/Implementations]] - overview page listing specifications belonging to C++ Uno.
 +
 
 +
===Java Uno===
 +
* [[Uno/Java]] - Sub project for the Uno Java language binding.
 +
* [[Uno/Java/Modules]] - overview page for modules belonging to Java Uno.
 +
* [[Uno/Java/Modules/ridljar]] - Page describing the ridljar module.
 +
* [[Uno/Java/Modules/JURT]] - Page describing the jurt module.
 +
* [[Uno/Java/Specifications]] - overview page listing specifications belonging to Java Uno.
 +
* [[Uno/Java/Implementations]] - overview page listing specifications belonging to Java Uno.
 +
 
 +
===Python Uno===
 +
* [[Uno/PyUno]] - Sub project for the Uno Python language binding.
 +
 
 +
[[Category:Meta]]

Revision as of 15:52, 7 August 2008

To ease usage of the OOo wiki, some rules should be helpful, to achieve

  • that URLs of interest can be guessed,
  • that an author knows where to locate his/her page and how to categorize it,
  • that ideally no redundant information (e.g. lists of something need to maintained).

For filling organizational pages, the DPL (Dynamic Page List) extension comes at hand. Uno organizational pages are populated with the help of DPL.

Categorizing Pages

Every page is

  • either an overview page, providing the logical (and partly locational) coherence (e.g. project pages) while also providing links to subtopics, or
  • a container page, basically listing articles of a particular type touching a set of particular topics, or
  • a content page, describing something in details.

The Uno content pages are organized in a way, assuming that every article

  • has exactly one type (e.g. an article may be an tutorial, or a specification),
  • touches one or more topics (e.g. Java or C++ or Development), and
  • belongs to exactly one project respectively module (e.g. Binary Uno or Java Uno).

Types

Currently used types are:

  • Spec - Specification.
  • Impl - Description of an Implementation.
  • Test - Description of a Test for an Implemenation.
  • Effort - Something which is in the works.
  • Article - An informative article about a particular topic.
  • Tutorial - A Tutorial explaining something.
  • Analysis - An Analysis.
  • Module - Description of a source code module.
  • Project - Entry page of an accepted OOo project.
  • Proposal - A page proposing a change.
  • Meta - A page describing a type or a topic.
  • Term - A particular term.

Topics

Currently used topics are:

  • Cpp - Pages related to C++.
  • Java - Pages related to Java.
  • Development
  • CLI
  • Uno
  • Uno:<impl> - e.g. Uno:Java for Java Uno or Uno:Cpp for C++ Uno.

Organizing Pages

Pages need to be distributed to where they belong. AFAIK Wikipedia uses a flat structure, basically putting all pages side by side. As OOo is already partitioned by its accepted projects, IMHO pages should be distributed to their projects.

Also, pages have exactly one type. Natural approach again IMHO is, to differentiate pages by their type and to distribute them into appropriate folders. E.g. into "Specifications" or "Modules". Natural choice for organizing pages is the wiki subpage feature. That means that the organization of the OOo wiki in general (at least wrt the accepted projects) should follow the following approach:

  • <Project>
  • <Project>/Modules
  • <Project>/Modules/<module a>
  • <Project>/Modules/<module b>
  • <Project>/Specifications
  • <Project>/Specifications/<spec. a>
  • ...

Composing Tutorials

Tutorials often provide code snippets to teach a particular thing of interest. The Uno tutorials separate these snippets into dedicated pages which than get included by the tutorial. This allows to show the snippet not only in multiple tutorials, but to also make it available as example usages e.g. of a particular API.

Container Pages

Container pages are created with help of DPL. E.g.

 <DPL>category=Uno:Cpp
 category=Module</DPL>

Examples

  • Uno - Project page for the UDK accepted project.
  • Uno/Modules - Overview page listing all modules belonging to Uno.
  • Uno/Specifications - Overview page listing all specifications belonging to Uno.

Binary Uno

Cpp Uno

Java Uno

Python Uno

  • Uno/PyUno - Sub project for the Uno Python language binding.
Personal tools