Development guidelines

From Openresearch
Jump to: navigation, search

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, Camera ready due, ConfIDent property name, Crossref property, DBLP ID, DBLP property, DID, DOI landing page, DataCite property, DblpSeries, Demo deadline, End date, Event in series, Event status, Event type, Event type other, GND-ID, Has Keynote speaker, Has coordinator, Has location city, Has location country, Has location state, Has subject, Homepage, IsA, MapsToAEON, Metadata author, Metadata source, Metadata timestamp, Needed for DOI registration, Notification, Ordinal, PTP property, Paper deadline, Poster deadline, Priority Milestone, RQ schema property, Sponsor, Start date, Submission deadline, Submitted papers, Ticket, Title, Tutorial deadline, Usage obligation, Used for, WikiCFP ID, WikiCFP property... 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}}

53 Property

Property
Abstract deadline
Accepted papers
Acronym
Camera ready due
ConfIDent property name
Crossref property
DBLP ID
DBLP property
DID
DOI landing page
DataCite property
DblpSeries
Demo deadline
End date
Event in series
Event status
Event type
Event type other
GND-ID
Has Keynote speaker
Has coordinator
Has location city
Has location country
Has location state
Has subject
Homepage
IsA
MapsToAEON
Metadata author
Metadata source
Metadata timestamp
Needed for DOI registration
Notification
Ordinal
PTP property
Paper deadline
Poster deadline
Priority Milestone
RQ schema property
Sponsor
Start date
Submission deadline
Submitted papers
Ticket
Title
Tutorial deadline
Usage obligation
Used for
WikiCFP ID
WikiCFP property
... 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
DBLP 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
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>