Difference between revisions of "Development guidelines"

From Openresearch
Jump to: navigation, search
(Existing base elements for review)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
# Maintained Templates should be put in the [[:Category:Template]]
+
= Guidelines =
 +
== Proposed and tested ==
 +
# Maintained Templates should be put in the [[:Category:Template]] and have minimum explanation e.g. with Usage/Example
 
# all relevant Properties should be set via Templates/Forms -> make systematic handling possible
 
# all relevant Properties should be set via Templates/Forms -> make systematic handling possible
 
## make sure this holds true for Meta-Properties e.g [[Property:Homepage]] <pre>{{Property|has type=URL|isA=Property|used for=Concept:Event}}</pre>
 
## make sure this holds true for Meta-Properties e.g [[Property:Homepage]] <pre>{{Property|has type=URL|isA=Property|used for=Concept:Event}}</pre>
# use bots like wikipush, wikiedit, wikinuke, wikuser to do mass changes of pages e.g. adding the source "WikiCfP" information to pages imported from WikiCfp<pre> This CfP was obtained from [http://www.wikicfp.com/cfp/servlet/event.showcfp?eventid=3864&amp;copyownerid=2 WikiCFP]</pre> => <pre>[[Source::wikicfp]][[eventId::3864]]</pre>
+
# use bots like [http://mediawiki-japi.bitplan.com/index.php/Py-3rdparty-mediawiki#wikipush_.2F_wikiedit_.2F_wiknuke_.2F_wikupload_.2F_wikiuser_scripts wikipush, wikiedit, wikinuke, wikiupload, wikuser] to do mass changes of pages e.g. adding the source "WikiCfP" information [https://www.openresearch.org/mediawiki/index.php?search=%22This+CfP+was+obtained+from%22&title=Special%3ASearch&profile=advanced&fulltext=1&ns0=1 to pages imported from WikiCfp]<pre> This CfP was obtained from [http://www.wikicfp.com/cfp/servlet/event.showcfp?eventid=3864&amp;copyownerid=2 WikiCFP]</pre> => <pre>[[Source::wikicfp]][[eventId::3864]]</pre> => <pre>{{Event|...|Source=wikicfp|eventId=3864| ...}}</pre>
# use WikiFarm for creating development copies e.g. prod 1x /dev 1x /test (1x per developer)
+
# use WikiFarms for creating development copies e.g. prod 1x /dev 1x /test (1x per developer) (reversible!)
 +
# document Server configurations in confluence (complete) and in openresearch (for non critical e.g. which extensions are used)
 +
# Mapping to Aeon of properties is done via [[Property:mapsToAEON]] which for the time being references the vanilla wiki property according to https://wiki.tib.eu/jira/browse/CONFIDENT-242 (may be used this only as a temporary to work with a bot solution)
 +
# Discussions by curators for each property are in the talk page e.g. https://www.openresearch.org/wiki/Property_talk:Title
 +
# There should be a usage guideline for curators for each property in the property page see  https://www.openresearch.org/wiki/Property:Title
 +
== Existing base elements for review ==
 +
# usage of https://www.mediawiki.org/wiki/Extension:UrlGetParameters
 +
## see e.g. {{Link|target=Template:Events_menu}}
  
= Copy of Openresearch =
+
= Copy of OpenResearch =
 +
* We would like to make a "vanilla" copy of OpenResearch that focuses only on those concepts that are relevant to us.
 +
* We take the MVP approach, because otherwise things won't be manageable.
 +
* If/when someone misses something and complains, we can still (re-)add it.
 
== Main Entities only ==
 
== Main Entities only ==
 
# [[Concept:Event]]
 
# [[Concept:Event]]
Line 40: Line 52:
  
 
== Properties ==
 
== Properties ==
Only the ones used in templates.
+
* Only the ones used in templates, as discussed in the section below.
See e.g. [[PropertyUsage]]
+
* See e.g. [[PropertyUsage]] – e.g. DID is not used.
 +
* Define the cut-off threshold (e.g., with SEO we had said "25%").
 +
* The MVP wiki should implement its templates in such a way that arguments referring to properties below this threshold will be ignored.
 
=== isA Property ===
 
=== isA Property ===
 
see [[Property:isA]]
 
see [[Property:isA]]
 +
Should only be used once on an instance, because one "isA" type maps exactly to one template, whereas an instance can be in multiple categories.
 +
For the same "one template" reason, "isA" is not transitive.
 +
E.g., if we model Event and EventSeries as subclasses of Process, we don't use this "meta-level" information on the instance level (which takes effect for templates, forms, etc.).  A non-flat hierarchy increases complexity of maintenance and for end users.
 
<pre>
 
<pre>
 
{{#ask: [[isA::Property]]
 
{{#ask: [[isA::Property]]
Line 52: Line 69:
 
==== Entity List ====
 
==== Entity List ====
 
see [[Template:EntityList]]
 
see [[Template:EntityList]]
 +
 +
In such auto-generated overviews, properties considered "irrelevant" above (for lack of usage) should not appear.
 +
On such properties, use meta property "to be used later", "is related to milestone M", "not yet relevant", etc., by which we can filter.
 
<pre>
 
<pre>
 
{{EntityList|type=Property}}
 
{{EntityList|type=Property}}
Line 59: Line 79:
 
=== used For ===
 
=== used For ===
 
see [[Property:used for]]
 
see [[Property:used for]]
 +
 +
Conference and Project (on which "usedFor" is apparently "used") are not among the relevant ones for us (see above).
 +
If we want to keep these entities, we should once more follow the "meta property" approach, e.g., say that "startDate usedFor Conference" is only valid in a certain range of time.
 +
 
<pre>
 
<pre>
 
{{#ask: [[used for::+]]
 
{{#ask: [[used for::+]]
Line 69: Line 93:
  
 
=== Event series ===
 
=== Event series ===
 +
Make sure that templates, forms and property lists are aligned.  Labels should correspond to property names.  Here, e.g., some are uppercase, some are lowercase.
 
<pre>
 
<pre>
 
{{Event series
 
{{Event series
Line 74: Line 99:
 
  | Title =  
 
  | Title =  
 
  | Field =  
 
  | Field =  
 +
| city =
 
}}
 
}}
 
</pre>
 
</pre>
# [[Property:acronym]]
+
# [[Property:acronym]] is OK
# [[Property:title]]
+
# [[Property:title]] is not OK (case different)
# [[Property:field]]
+
# [[Property:field]] is not OK (does not exist at all any more)
 +
city label is linked to property "has_city"
 +
 
 
== Pushing Properties ==
 
== Pushing Properties ==
 +
Copy into the target wiki those properties that we have agreed to use.  The following list of arguments can be generated by a query.
 
<source lang='bash'>
 
<source lang='bash'>
wikipush -s or -t test -p "Property:Acronym" "Property:Title" "Property:Start date" "Property:End date" "Property:Homepage" -f
+
wikipush -s or -t test -p "Property:isA" "Property:used for" "Property:Acronym" "Property:Title" "Property:Start date" "Property:End date" "Property:Homepage" -f
 
copying 5 pages from or to test
 
copying 5 pages from or to test
 
1/5 (  20%): copying Property:Acronym ...✅
 
1/5 (  20%): copying Property:Acronym ...✅
Line 91: Line 120:
  
 
=== Simple Template ===
 
=== Simple Template ===
 +
This style of templates is for debugging purposes and not for end user display. It can be easily generated with a few lines of python and an smw query. See also https://www.confident-conference.org/r/wiki/index.php?title=Template:Process&action=edit for more specific additions like <nowiki>#if</nowiki> and handling elements with multiple allowed entries
 
<source lang='bash'>
 
<source lang='bash'>
 
<noinclude>
 
<noinclude>
Line 128: Line 158:
 
|-
 
|-
 
! Name !! Value  
 
! Name !! Value  
 +
|-
 +
| [[Property:isA|isA]] || [[isA::{{{isA|Event}}}]]
 
|-
 
|-
 
| [[Property:Acronym|Acronym]] || [[Acronym::{{{Acronym|}}}]]
 
| [[Property:Acronym|Acronym]] || [[Acronym::{{{Acronym|}}}]]

Latest revision as of 08:59, 12 January 2021

Guidelines

Proposed and tested

  1. Maintained Templates should be put in the Category:Template and have minimum explanation e.g. with Usage/Example
  2. all relevant Properties should be set via Templates/Forms -> make systematic handling possible
    1. make sure this holds true for Meta-Properties e.g Property:Homepage
      {{Property|has type=URL|isA=Property|used for=Concept:Event}}
  3. use bots like wikipush, wikiedit, wikinuke, wikiupload, wikuser to do mass changes of pages e.g. adding the source "WikiCfP" information to pages imported from WikiCfp
     This CfP was obtained from [http://www.wikicfp.com/cfp/servlet/event.showcfp?eventid=3864&copyownerid=2 WikiCFP]
    =>
    [[Source::wikicfp]][[eventId::3864]]
    =>
    {{Event|...|Source=wikicfp|eventId=3864| ...}}
  4. use WikiFarms for creating development copies e.g. prod 1x /dev 1x /test (1x per developer) (reversible!)
  5. document Server configurations in confluence (complete) and in openresearch (for non critical e.g. which extensions are used)
  6. Mapping to Aeon of properties is done via Property:mapsToAEON which for the time being references the vanilla wiki property according to https://wiki.tib.eu/jira/browse/CONFIDENT-242 (may be used this only as a temporary to work with a bot solution)
  7. Discussions by curators for each property are in the talk page e.g. https://www.openresearch.org/wiki/Property_talk:Title
  8. There should be a usage guideline for curators for each property in the property page see https://www.openresearch.org/wiki/Property:Title

Existing base elements for review

  1. usage of https://www.mediawiki.org/wiki/Extension:UrlGetParameters
    1. see e.g. Template:Events_menu

Copy of OpenResearch

  • We would like to make a "vanilla" copy of OpenResearch that focuses only on those concepts that are relevant to us.
  • We take the MVP approach, because otherwise things won't be manageable.
  • If/when someone misses something and complains, we can still (re-)add it.

Main Entities only

  1. Concept:Event
  2. Concept:Event series
wikipush -l -s or -t test -q "[[isA::Event]]"
copying 8848 pages from or to test
1/8848 (   0%): copying 3DUI 2020 ...✅
2/8848 (   0%): copying 3IA 2009 ...✅
3/8848 (   0%): copying 3PGIC 2010 ...✅
4/8848 (   0%): copying 4S4D 2017 ...✅
5/8848 (   0%): copying 5GU 2017 ...✅
6/8848 (   0%): copying 5GWN 2017 ...✅
7/8848 (   0%): copying AAAI 1980 ...✅
8/8848 (   0%): copying AAAI 1982 ...✅
9/8848 (   0%): copying AAAI 1983 ...✅
10/8848 (   0%): copying AAAI 1984 ...✅
11/8848 (   0%): copying AAAI 1986 ...✅
...
wikipush -s or -t test -q "[[Category:Event series]]"
copying 1029 pages from or to test
1/1029 (   0%): copying 3DUI ...✅
2/1029 (   0%): copying AAAAECC ...✅
3/1029 (   0%): copying AAAI ...✅
4/1029 (   0%): copying AAMAS ...✅
5/1029 (   0%): copying ACAH ...✅
6/1029 (   1%): copying ACC ...✅
7/1029 (   1%): copying ACCV ...✅
8/1029 (   1%): copying ACE (DIMEA) ...✅
9/1029 (   1%): copying ACIIDS ...✅
10/1029 (   1%): copying ACIVS ...✅
11/1029 (   1%): copying ACL ...✅

Properties

  • Only the ones used in templates, as discussed in the section below.
  • See e.g. PropertyUsage – e.g. DID is not used.
  • Define the cut-off threshold (e.g., with SEO we had said "25%").
  • The MVP wiki should implement its templates in such a way that arguments referring to properties below this threshold will be ignored.

isA Property

see Property:isA Should only be used once on an instance, because one "isA" type maps exactly to one template, whereas an instance can be in multiple categories. For the same "one template" reason, "isA" is not transitive. E.g., if we model Event and EventSeries as subclasses of Process, we don't use this "meta-level" information on the instance level (which takes effect for templates, forms, etc.). A non-flat hierarchy increases complexity of maintenance and for end users.

{{#ask: [[isA::Property]]
}}

Abstract deadline, Accepted papers, Acronym, Attendance fee currency, Attendance fee reduced, Camera ready due, Cfp, DBLP-venue-ID, DID, DOI landing page, DblpSeries, Demo deadline, Early bird regular, Early bird student, End date, Event in series, Event status, Event type, Event type other, EventSeries acronym, Extension name, Extension purpose, Extension since, Extension url, Extension wiki, Fixme done, Fixme todo, GND-ID, Has Average 5y Acceptance Rate, Has Average Acceptance Rate, Has CORE Rank, Has Keynote speaker, Has OC member, Has PC chair, Has PC member, Has Submitting link, Has coordinates, Has coordinator, Has demo chair, Has general chair, Has local chair, Has location city, Has location country, Has location state, Has person, Has program chair, Has publication chair, Has publicity chair, Has sub event, Has subject... further results

Entity List

see Template:EntityList

In such auto-generated overviews, properties considered "irrelevant" above (for lack of usage) should not appear. On such properties, use meta property "to be used later", "is related to milestone M", "not yet relevant", etc., by which we can filter.

{{EntityList|type=Property}}

111 Property

Property
Abstract deadline
Accepted papers
Acronym
Attendance fee currency
Attendance fee reduced
Camera ready due
Cfp
DBLP-venue-ID
DID
DOI landing page
DblpSeries
Demo deadline
Early bird regular
Early bird student
End date
Event in series
Event status
Event type
Event type other
EventSeries acronym
Extension name
Extension purpose
Extension since
Extension url
Extension wiki
Fixme done
Fixme todo
GND-ID
Has Average 5y Acceptance Rate
Has Average Acceptance Rate
Has CORE Rank
Has Keynote speaker
Has OC member
Has PC chair
Has PC member
Has Submitting link
Has coordinates
Has coordinator
Has demo chair
Has general chair
Has local chair
Has location city
Has location country
Has location state
Has person
Has program chair
Has publication chair
Has publicity chair
Has sub event
Has subject
... further results

used For

see Property:used for

Conference and Project (on which "usedFor" is apparently "used") are not among the relevant ones for us (see above). If we want to keep these entities, we should once more follow the "meta property" approach, e.g., say that "startDate usedFor Conference" is only valid in a certain range of time.

{{#ask: [[used for::+]]
|?used for
}}
 Used for
Abstract deadlineEvent
Accepted papersEvent
AcronymEvent
Event series
Camera ready dueEvent
CfpEvent
Event series
DBLP-venue-IDEvent
Event series
DIDEvent
Event series
DOI landing pageEvent
Event series
Demo deadlineEvent
End dateEvent
Project
Event in seriesEvent
Event statusEvent
Event typeEvent
Event type otherEvent
EventSeries acronymEvent series
GND-IDEvent
Event series
Has Keynote speakerEvent
Has coordinatorEvent
Event series
Has location cityEvent
Has location countryEvent
Has location stateEvent
Has subjectEvent
Event series
HomepageEvent
Event series
Metadata authorEvent
Event series
Metadata sourceEvent
Event series
Metadata timestampEvent
Event series
NotificationEvent
OrdinalEvent
Paper deadlineEvent
Poster deadlineEvent
SponsorEvent
Event series
Start dateProject
Event
Submission deadlineEvent
Submitted papersEvent
TitleEvent
Event series
Tutorial deadlineEvent
WikiCFP-IDEvent
Event series
WikidataidEvent
Event series
Workshop deadlineEvent

Event series

Make sure that templates, forms and property lists are aligned. Labels should correspond to property names. Here, e.g., some are uppercase, some are lowercase.

{{Event series
 | acronym = 
 | Title = 
 | Field = 
 | city =
}}
  1. Property:acronym is OK
  2. Property:title is not OK (case different)
  3. Property:field is not OK (does not exist at all any more)

city label is linked to property "has_city"

Pushing Properties

Copy into the target wiki those properties that we have agreed to use. The following list of arguments can be generated by a query.

wikipush -s or -t test -p "Property:isA" "Property:used for" "Property:Acronym" "Property:Title" "Property:Start date" "Property:End date" "Property:Homepage" -f
copying 5 pages from or to test
1/5 (  20%): copying Property:Acronym ...✅
2/5 (  40%): copying Property:Title ...✅
3/5 (  60%): copying Property:Start date ...✅
4/5 (  80%): copying Property:End date ...✅
5/5 ( 100%): copying Property:Homepage ...✅

Simple Template

This style of templates is for debugging purposes and not for end user display. It can be easily generated with a few lines of python and an smw query. See also https://www.confident-conference.org/r/wiki/index.php?title=Template:Process&action=edit for more specific additions like #if and handling elements with multiple allowed entries

<noinclude>
= Usage =
<pre>
{{Event
|Acronym=ATDM 2009
|Title=2nd International Workshop on Agent Technology for Disaster Management
|Type=Workshop
|Field=Artificial intelligence
|Superevent=PRIMA 2009
|Start date=2009/12/13
|End date=2009/12/13
|Homepage=doesnotunderstand.org/wikka.php?wakka=ATDM2009
|City=Nagoya
|Country=Japan
|Submission deadline=2009/09/15
}}
</pre>
== Example ==
{{Event
|Acronym=ATDM 2009
|Title=2nd International Workshop on Agent Technology for Disaster Management
|Type=Workshop
|Field=Artificial intelligence
|Superevent=PRIMA 2009
|Start date=2009/12/13
|End date=2009/12/13
|Homepage=doesnotunderstand.org/wikka.php?wakka=ATDM2009
|City=Nagoya
|Country=Japan
|Submission deadline=2009/09/15
}}
</noinclude><includeonly>
{| class="wikitable sortable"
|+ Event
|-
! Name !! Value 
|-
| [[Property:isA|isA]] || [[isA::{{{isA|Event}}}]]
|-
| [[Property:Acronym|Acronym]] || [[Acronym::{{{Acronym|}}}]]
|-
| [[Property:Title|Title]] || [[Title::{{{Title|}}}]]
|-
| [[Property:Start date|Start date]] || [[Start date::{{{Start date|}}}]]
|-
| [[Property:End date|End date]] || [[End date::{{{End date|}}}]]
|-
| [[Property:Homepage|Homepage]] || [[Homepage::{{{Homepage|}}}]]
|-
| ... || ...
|}
[[Category:Event]]
</includeonly>