Difference between revisions of "Old Homepage"

From FollowTheScore
Jump to: navigation, search
m (I think this should change too?)
 
(213 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
  
== [[metawikipedia:DynamicPageList2|DynamicPageList]] (DPL) ==
+
{|class=wikitable
 
+
|colspan=2 align=center bgcolor=e7e7ff|
DPL is a MediaWiki extension which creates ''lists of articles that match certain criteria''. Articles are listed by name; ''meta data'' like  popularity or last access date can be added. And there are powerful mechanisms to ''extract content'' from articles and show it as part of the list (based on another mediawiki extension called LabeledSectionTransclusion).
+
''This wiki is the homeplace of three powerful MediaWiki extensions developed and maintained by Gero Scholz''.
 
+
<br><small>Currently we run MediaWiki 1.13 with page caching enabled.</small>
'''In short DPL aims to be a universal report generator for MediaWiki.'''
+
{|border=0
 
+
|align=left bgcolor=lightblue|
== A typical situation .. ==
+
A universal report generator for MediaWikis
Assume you have written some articles about ''countries''. Typically these articles will have three things in common:
+
<br>A light-weight approach to semantic wiki
* All articles will belong to a common category
+
<br>A graph generator based on aiSee
* They will have a similar chapter structure, i.e. they will contain sections named 'Religion' or 'History'
+
|align=left bgcolor=lightblue|
* They will use a template which is used to present highly structured short data items ('Capital', 'Inhabitants', ..) in a nice way (e.g. as a wikitable)
+
'''Dynamic Page List (DPL)'''
 
+
<br>'''{{DocTypes}}'''
== What can DPL do for me? ==
+
<br>'''Wgraph'''
 
+
|}
Let us assume that there is an article on Islam. You want to give some information about the spreading of this religion over various countries. But you do not want to create redundancy by repeating information that was already given in the articles on each country.
+
|-
 
+
|bgcolor=#ffe7ff align=center|
In our scenario the natural approach with DPL would be to define a list of 'countries' (=category) where Islam plays a role (i.e. restrict your selection to articles which contain a link to 'Islam'). Typically you would want to include part of the text chapter on religion from each of the relevant countries. You might also want to give the number of inhabitants for each country. The output should be shown as an alphabetically ordered table. It would be nice if the user could easily sort the table by inhabitants or some aother criteria.
+
<big>'''[[Dynamic Page List]] &nbsp; -- &nbsp; [[DPL:Version History|{{DPL stable version}}]]'''</big>
 
+
|bgcolor=#ddffff align=center|
DPL can
+
<big>'''[[Wgraph]]'''</big>
* generate a list of all those articles
+
|-
* show metadata of the articles
+
|bgcolor=#ffe7ff valign=top|
* show one or more chapters of the articles
+
'''DPL is a report generator for MediaWikis'''.<br>
* show parameter values which are passed to the common template
+
It creates ''lists of articles'' that match certain criteria. ''Meta data'' like  author, popularity or date of last update can be added. ''Contents'' from articles can be included in the result, based on chapters, templates or special markers in the text.
* order articles appropriately
+
<center><div style="font-size:8pt">
* present the result in a sortable table (e.g.)
+
<dpl>
 
+
   category=African Union member states
== Which steps are necessary? ==
+
  nottitlematch=Sudan
 
+
   includepage={Infobox Country or territory}:area:population_estimate,%0[100]
'''Find the articles you want to list:'''
 
* select by a logical combination (AND,OR,NOT) of categories
 
* select by a logical combination (AND,OR,NOT) of namespaces
 
* define a pattern which must match their name
 
* name a page to which the articles must or must not refer
 
* exclude or include redirections
 
 
 
'''Order the articles descending or ascending according to'''
 
* name
 
* date of last change
 
* popularity
 
* user who changed them last
 
* ...
 
 
 
'''Define attributes you want to see'''
 
* article name
 
* article namespace
 
* date of last change
 
* date of last access
 
* user who changed them last
 
 
 
'''Define contents you want to show'''
 
* chapter contents (identified by headings)
 
* text portions (defined by special marker tags)
 
* values of template calls
 
 
 
'''Define the output format'''
 
* headlines
 
* ordered list, unordered list
 
* table, sorted table (using javascript)
 
* category style listing
 
* truncate title or contents to maximum length
 
* add a link to the article or to their chapters
 
 
 
== Example ==
 
There are some articles on ''fictitious coutries'' (this is also the name of their common category). They all use a template named "Country" which receives facts like ''capital''. The template produces a small table and a link to the country list we want to generate. There are chapters on religion and history in most of the articles.
 
We show how to create a sortable wikitable list of those articles which gives some excerpts of the contents.
 
{{Sortable Tables}}
 
 
 
DPL can be used as a mediawiki parser '''extension''', which means that a special DPL tag is used:
 
 
 
''parser extension syntax''
 
<pre><nowiki>
 
<DPL>
 
   category=Fictitious country
 
   includepage={Country},#History,#Religion
 
  includemaxlength=50
 
  addpagecounter=true
 
 
   mode=userformat
 
   mode=userformat
  listseparators=\n{|class=sortablewikitable id=123 \n!Country \n!Official Name \n!Capital \n!Dial Code \n!History \n!Religion \n|-,\n|-\n|[[%PAGE%]] (%COUNT%)\n,\n,\n|}
 
  secseparators=,\n|,,
 
</DPL>
 
</nowiki></pre>
 
 
We select articles by category and explain that we want to see contents from the template "Country" and from two chapters. We truncate the excerpts. We create a sortable table which contains the article name (as a link) and its access frequency in the first column and the content pieces in the other columns. Note that at the end of truncated contents you will find a small arrow which links directly to the chapter from where the contents was taken. The formatting for the template variables has to  be done in a special template which is by convention named after the original tenmplate plus a suffix ([[Template:Country dpl]] in our case). This template is very simple; it only presents the values for name, capital and dial code as columns of a table.
 
 
===== country list =====
 
<DPL>
 
  category=Fictitious country
 
  includepage={Country},#History,#Religion
 
  includemaxlength=50
 
 
   addpagecounter=true
 
   addpagecounter=true
   mode=userformat
+
   format=,,\n|align=right|%COUNT%\n,
  listseparators=\n{|class=sortablewikitable id=123 \n!Country \n!Official Name \n!Capital \n!Dial Code \n!History \n!Religion \n|-,\n|-\n|[[%PAGE%]] (%COUNT%)\n,\n,\n|}
+
  table=,Country,Area,Population,Text,#hits
   secseparators=,\n|,,
+
  tablerow=align=right|%%,align=right|%%,<small>%%</small>
</DPL>
+
</dpl>
 
+
</div></center>
===== country list (2) =====
+
Combining the power of DPL and [[mw:Extension:Ploticus|Ploticus]] we can easily generate a pie chart showing (for example) page hit frequencies. To see that it works live, note the hit count of a country, then click on that country in the above table and come back to the main page. The hit count has changed and the pie has become a little bigger ;-)
 +
{{:Ploticus Demo}}
 +
----
 +
You are looking for a pefect integration with GoogleMaps?
 +
See [[MapDemo]] ...
 +
----
 +
You want to know which articles were edited by whom recently? DPL can produce a quick overview:
 +
{{:Scatter Demo}}
 +
|bgcolor=#ddffff valign=top|
 +
'''Wgraph is a graph generator for MediaWikis.'''<br>
 +
It allows you to define the semantics of a graph in an abstract textual notation called WGL (Wiki Graph Language). You may add hints for layout, but the graph itself is being produced automatically. Wgraph is a powerful visualisation instrument for objects and their relations.
 +
<center>
 +
{{#wgraph: svg | thumb = 50 |
 +
  node wgl        { type data    label "text notation\n-- WGL --" }
 +
  edge wgl wgraph  { kind rightnear color red }
 +
  node wgraph      { type process  label "Wgraph\nmediawiki extension" }
 +
  edge wgraph gdl  { }
 +
  node gdl        { type data    label "graph definition\n-- GDL --" }
 +
  edge gdl aisee  { }
 +
  node aisee      { type process  label "aiSee\nlayout generator" }
 +
  edge aisee img  { kind leftnear }
 +
  node img        { type data    label "image\n-- png, svg --"
 +
                    shape hexagon }
 +
   nodetype data    { shape ellipse, color lightyellow,
 +
                    bordercolor khaki, height 60 }
 +
  nodetype process { shape box color lightmagenta
 +
                    bordercolor magenta height 60 }
 +
  xspace=70, yspace=120
 +
}}
 +
</center>
 +
----
 +
You want to have a dependency matrix for includes or links?
 +
Use '''dplmatrix''' ...
 +
{{#dplmatrix:''links from Painters<br>to other Painters''|'''x'''|-|flip|
 +
  {{#dpl:
 +
    |debug=1
 +
    |category=Painter
 +
    |format=,%PAGE% ~~ %TITLE%\n²{:Test matrix2¦page=%PAGE%¦category=Painter¦namespace=}²,
 +
  }}
 +
}}
 +
----
 +
You want to use structured documents, based on a semantic model?
 +
<br>But 'Semantic Wiki' looks to "heavy" for your requirements?
 +
<br>Try our light-weight '''[[DocTypes]]''' ..
 +
|-
 +
|}
  
DPL can also be used as a mediawiki parser '''function''', which is more powerful as it allows DPL to be used within  templates, parameters being template calls or variable expansions. The disadvantage is that syntax looks less nice as the pipe character must be hidden in macros if used as a parameter contents. So the same example could also have been written as:
+
* All extensions are under GPL license. '''Test them here live!''' There is extensive documentation, see the online '''manuals'''. You can '''[[Download|download]]''' the sources.
 +
* In addition there are some minor extensions like ''Call'' and improved versions of existing extensions named ''Inputbox'' and ''StripMarkup'' which may be useful. See the navigation bar. We also host the [[mw:Extension:StackFunctions|StackFunctions]] extension.
  
''parser function syntax''
+
* There are plenty of '''examples''', which can serve as a starting point for your own ideas. There is a small '''calendar application''' (built with DPL) which you can use and enhance.
<pre><nowiki>
+
* There is a place where you can '''report bugs''' and '''request new features'''. If you use the extensions, please '''leave a reference''' to your wiki!
{{#dpl:category=Fictitious country
 
  |includepage={Country},#History,#Religion
 
  |includemaxlength=50
 
  |addpagecounter=true
 
  |mode=userformat
 
  |listseparators=\n{{(!}} class=sortablewikitable id=123
 
    \n!Country
 
    \n!Official Name
 
    \n!Capital
 
    \n!Dial Code
 
    \n!History
 
    \n!Religion
 
    \n{{!}}-,\n{{!-}}\n{{!}}[[%PAGE%]] (%COUNT%)\n,\n,\n{{!)}}
 
  |secseparators=,\n{{!}},,
 
}}
 
</nowiki></pre>
 
  
Here is the result:
+
<p align=right>''[[User:Gero|The Author]]''</p>
{{#dpl:category=Fictitious country
 
  |includepage={Country},#History,#Religion
 
  |includemaxlength=50
 
  |addpagecounter=true
 
  |mode=userformat
 
  |listseparators=\n{{(!}} class=sortablewikitable id=123
 
    \n!Country
 
    \n!Official Name
 
    \n!Capital
 
    \n!Dial Code
 
    \n!History
 
    \n!Religion
 
    \n{{!}}-,\n{{!-}}\n{{!}}[[%PAGE%]] (%COUNT%)\n,\n,\n{{!)}}
 
  |secseparators=,\n{{!}},,
 
}}
 

Latest revision as of 20:35, 16 June 2009


This wiki is the homeplace of three powerful MediaWiki extensions developed and maintained by Gero Scholz.
Currently we run MediaWiki 1.13 with page caching enabled.

A universal report generator for MediaWikis
A light-weight approach to semantic wiki
A graph generator based on aiSee

Dynamic Page List (DPL)
DocTypes
Wgraph

Dynamic Page List   --   2.0

Wgraph

DPL is a report generator for MediaWikis.
It creates lists of articles that match certain criteria. Meta data like author, popularity or date of last update can be added. Contents from articles can be included in the result, based on chapters, templates or special markers in the text.

Country Area Population Text #hits
Cameroon 475,442 16,323,000
     ..→</small>

Combining the power of DPL and Ploticus we can easily generate a pie chart showing (for example) page hit frequencies. To see that it works live, note the hit count of a country, then click on that country in the above table and come back to the main page. The hit count has changed and the pie has become a little bigger ;-) Ploticus Demo


You are looking for a pefect integration with GoogleMaps? See MapDemo ...


You want to know which articles were edited by whom recently? DPL can produce a quick overview: {{#ploticus:

  1. proc page
 pagesize: 20 30

// specify data using proc getdata

  1. proc getdata
 data:
"Evgeniy" "%USER%" 201306071058
"Evgeniy" "%USER%" 201306071058
"Evgeniy" "%USER%" 201306071047
"Evgeniy" "%USER%" 201306071034
"2010-11-25 Anniversary" "%USER%" 201011060914
"United Republic of Tanzania" "%USER%" 200909220919
"Problem with category containing a single quote character" "%USER%" 200907090751
"Problem with category containing a single quote character" "%USER%" 200907090427
"Problem with category containing a single quote character" "%USER%" 200907090426
"Problem with category containing a single quote character" "%USER%" 200907090417
"Problem with category containing a single quote character" "%USER%" 200907090416
"Problem with category containing a single quote character" "%USER%" 200907090415
"Add "minimum-number-of-revisions" like Criteria for page selection" "%USER%" 200905140455
"Add "minimum-number-of-revisions" like Criteria for page selection" "%USER%" 200905140446
"Add "minimum-number-of-revisions" like Criteria for page selection" "%USER%" 200905140439
"United Republic of Tanzania" "%USER%" 200905100605
"United Republic of Tanzania" "%USER%" 200905100559
"Add "minimum-number-of-revisions" like Criteria for page selection" "%USER%" 200904020341
"DPL Cache Warning" "%USER%" 200902271019
"DPL Cache Warning" "%USER%" 200902270929
"Evan Sultanik" "%USER%" 200803251019
"Display units" "%USER%" 200803230257
".prop definition" "%USER%" 200803230214
".prop definition" "%USER%" 200803230214
"Display units" "%USER%" 200803230153
"Display units" "%USER%" 200803230145
"Munich" "%USER%" 200803221117
"Munich" "%USER%" 200802161021
"Mechanics" "%USER%" 200803221117
"Mechanics" "%USER%" 200802170114
".prop unique" "%USER%" 200803220928
".prop unique" "%USER%" 200802060836
"Display units" "%USER%" 200803220926
"Display units" "%USER%" 200802040934
".prop unique" "%USER%" 200803220915
".prop unique" "%USER%" 200802060824
".prop definition" "%USER%" 200803220915
".prop definition" "%USER%" 200802060933
".class definition" "%USER%" 200803220915
".class definition" "%USER%" 200803061247
".cat definition" "%USER%" 200803220915
".cat definition" "%USER%" 200802260908
"Headingmode definition buggy output" "%USER%" 200711240654
"Headingmode definition buggy output" "%USER%" 200710280152
"Assigning absolute position of 0-0" "%USER%" 200710281043
"Headingmode definition buggy output" "%USER%" 200710230728
"Headingmode definition buggy output" "%USER%" 200710230724
"Headingmode definition buggy output" "%USER%" 200710230717
"Headingmode definition buggy output" "%USER%" 200710230710
"Headingmode definition buggy output" "%USER%" 200710230704
"Headingmode definition buggy output" "%USER%" 200710230701
"Headingmode definition buggy output" "%USER%" 200710230652
"Headingmode definition buggy output" "%USER%" 200710230649
"Headingmode definition buggy output" "%USER%" 200710230442
"Turnier Gruppe2" "%USER%" 200710071006
"Turnier" "%USER%" 200710071005
"Turnier Gruppe" "%USER%" 200710071005
"2007-07-22 Jocs especials a la Trinitat" "%USER%" 200708110236
"Impressionism" "%USER%" 200707211018
"Expressionism" "%USER%" 200707211018
"2007-07-22 Jocs especials a la Trinitat" "%USER%" 200707200429
"United Republic of Tanzania" "%USER%" 200707180803
"2007/09/15 better not forget anniversary!!" "%USER%" 200707051114
"2007/06/22 sprawdzanie kalendarza" "%USER%" 200706220253
"2007/05/03 Training Basketball Team" "%USER%" 200705010906
"2007/04/03 Daniels verjaardag" "%USER%" 200704130121
"2007 04 03 daniels verjaardag" "%USER%" 200704130121
"African Union member states" "%USER%" 200704120622
"2007/03/29 Something is happening" "%USER%" 200704040306
"2007/03/29 Something is happening" "%USER%" 200703300354
"2007/03/29 Something is happening" "%USER%" 200703300354
"2007/03/29 Something is happening" "%USER%" 200703300352
"2007/03/29 Something is happening" "%USER%" 200703300351
"Schnittstellen" "%USER%" 200703060852
"Schnittstellen Übersicht Mini dpl" "%USER%" 200703060845
"Schnittstellen Übersicht Mini" "%USER%" 200703060844
"Munich" "%USER%" 200702160930
"African Union member states" "%USER%" 200701200932


  1. proc categories
 axis: x
 listsize: 1000
 datafield: 2
 axis: y
 listsize: 1000
 datafield: 1

// set up plotting region using proc areadef

  1. proc areadef
 rectangle: 1 1 1 1
 xscaletype: categories
 xaxis.stubs: usecategories
 xaxis.tics: none
 xaxis.stubvert: yes
 yscaletype: categories
 yaxis.axisline: none
 yaxis.stubs: usecategories
 autowidth:  0.1  
 autoheight: 0.1
 location: 4.5 1.5
  1. proc xaxis
 grid: color=orange 
 ticincrement: 1
  1. proc yaxis
 grid: color=orange
 ticincrement: 2

// draw pink points using proc scatterplot

  1. proc scatterplot
 xfield: 2
 yfield: 1
 symbol: shape=nicecircle radius=0.05 fillcolor=pink
 cluster: yes

// do it a 2nd time to overlay outlines using proc scatterplot

  1. proc scatterplot
 xfield: 2
 yfield: 1
 symbol: shape=nicecircle radius=0.05

}} See Scatter Demo 2 for a larger example ..

Nigeria 923,768 133,530,0001 Template:Let me test this

<table class="infobox geography vcard" style="width:46ex; ..→

Somalia 637,657 8,228,000
     ..→</small>

Wgraph is a graph generator for MediaWikis.
It allows you to define the semantics of a graph in an abstract textual notation called WGL (Wiki Graph Language). You may add hints for layout, but the graph itself is being produced automatically. Wgraph is a powerful visualisation instrument for objects and their relations.

{{#wgraph: svg | thumb = 50 |

 node wgl         { type data     label "text notation\n-- WGL --" }
 edge wgl wgraph  { kind rightnear color red }
 node wgraph      { type process  label "Wgraph\nmediawiki extension" }
 edge wgraph gdl  { }
 node gdl         { type data     label "graph definition\n-- GDL --" }
 edge gdl aisee   { }
 node aisee       { type process  label "aiSee\nlayout generator" }
 edge aisee img   { kind leftnear }
 node img         { type data     label "image\n-- png, svg --" 
                    shape hexagon }
 nodetype data    { shape ellipse, color lightyellow,
                    bordercolor khaki, height 60 }
 nodetype process { shape box color lightmagenta 
                    bordercolor magenta height 60 }
 xspace=70, yspace=120

}}


You want to have a dependency matrix for includes or links? Use dplmatrix ...

links from Painters
to other Painters
Cezanne Manet Renoir Signac Van Gogh
Cezanne - - x - -
Renoir x x - x -
Van Gogh - x x - -

You want to use structured documents, based on a semantic model?
But 'Semantic Wiki' looks to "heavy" for your requirements?
Try our light-weight DocTypes ..

  • All extensions are under GPL license. Test them here live! There is extensive documentation, see the online manuals. You can download the sources.
  • In addition there are some minor extensions like Call and improved versions of existing extensions named Inputbox and StripMarkup which may be useful. See the navigation bar. We also host the StackFunctions extension.
  • There are plenty of examples, which can serve as a starting point for your own ideas. There is a small calendar application (built with DPL) which you can use and enhance.
  • There is a place where you can report bugs and request new features. If you use the extensions, please leave a reference to your wiki!

The Author