en en en en en en en en de en tr da fr pl hbs_lat ru th ja ko da da de da it da fr de ceb da nb sv fr da nl da da da da da da da da da da da sv en da en en de en en en da da en en en nb da da en nb da da en da da da sv nb tr en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en en da en en en en en en en en en en en en en ur en en da en en uk en en en en en de en en en en de en de de en en en en en de es de en en en en en en en en en en en en en en en en en en en en en en en en en
From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
Denne side er på nuværende tidspunkt en kladde Mere information angående dette kan findes på diskussions siden.
Oversættelses administratorer: Normalt skal kladder ikke markeres til oversættelse.
– Krav til oprettelse af objekter
– Repræsentation af fejl
– Fejl annonce på ZObjekter
– Canonical and normal
– NLG system architecture proposal
– Template Language for Wikifunctions
Relateret og tidligere arbejde
– Theories of semantics and meaning representations
Papir, presse og videoer
Navngivningskonkurrence — Logo konkurrence
Wikifunctions will hold a diverse number of objects in its main namespace.
Each object must have exactly one type, and te type will usually not change.
Based on te type, te object may have keys that may have values.
Each value is in turn another object (but te type of that object might be constrained by te definition of te type of te embedding object for te given key).
Types can be created and maintained (and changed) by te community.
For example: assume we want to create an object of te type “Date in te Gregorian calendar” to represent a date such as May 7, 1945.
Te Date type might declare that it has one key for te month (one for te year, one for te day), and te value of te key “month” would be of type “Month in te Gregorian calendar”.
That type in turn would be an enumeration with twelve possible values, January through December.
Te values themselves can be quite complex, and sometimes recursive, so te whole structure can become rather big and unwieldy.
Te design question is:
How to allow for te easy creation (and view and editing) of objects?
Here are te steps:
Te contributor wants to create an object.
They first need to select te type of te object to be created. Te list of possible types can be quite long and contributors can create new types.
Based on te selected type, te contributor needs to provide values for all property keys they want or have to provide values for.
Some keys may be optional or have default values.
Some keys may take lists of objects, either of a specific type or not.
Every key takes another object. Often te type of te object that each key takes is determined by te type that defines te key, so we know already that this value must be of a specific type.
Some types might have a closed small number of possible values (e.g. Boolean can be true or false, Gregorian calendar month can be January through December).
Some types take a larger number of possible values (e.g. depending on te language supported by MediaWiki).
Some types take an open-ended number of possible values (e.g. a string could be any value given by te user, a number could be any number given by te user).
Almost everywhere where we can enter a value we can also enter a function call.
A function call refers to a function which returns a value of te required type, and which may or may not take a number of arguments with specific types.
Every argument has a name. (In fact, function calls with arguments look a lot like types with keys, and might use te same design.)
Argument values can in turn be function calls.
To give an example: assume we are entering a date, as stated earlier.
When we get to where we select te value for te key “month”, instead of selecting one of te available twelve objects of te type “Gregorian calendar month”, we might also enter a function call, e.g. to “get month from date” with a single argument taking a Gregorian date.
That argument in turn might be a function call, e.g. to “convert date from Islamic calendar to Gregorian calendar”, which in turn takes one argument which is an “Islamic calendar date” and would have its own keys that now need to be entered.
This would be stored as te whole structure, and not be automatically turned into just “May”, so we need to display and make te structure editable again.
Sometimes, an argument or a key may take a value of any type. In that case, we need to allow te contributor to select te type first before entering te value.
Ideally, te interface should work really well on mobile:
Te objects always form trees.
Ideally we can collapse branches of te tree, in order to focus on certain parts of te object to view and edit it.
This page was last edited on 8 September 2022, at 16:16.
Text is available under te Creative Commons Attribution-ShareAlike License; additional terms may apply. See Terms of Use for details.