Difference between revisions of "Template:Topic"
Jump to navigation
Jump to search
(46 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
|Topic Type= {Descriptive, Normative} | |Topic Type= {Descriptive, Normative} | ||
|Subfield= {Ontology, Dynamics, etc.} | |Subfield= {Ontology, Dynamics, etc.} | ||
+ | |Heritable= {Yes, No} | ||
+ | |Inherited From= //the question that this question is inherited from | ||
|Question Text Formula= //For heritable questions only. | |Question Text Formula= //For heritable questions only. | ||
|Question Title Formula= //For heritable questions only. | |Question Title Formula= //For heritable questions only. | ||
|Question Title= //Ignored for heritable questions. | |Question Title= //Ignored for heritable questions. | ||
|Question= //For non heritable questions only. For heritable questions, this is available to the editors only to use in cases when the text produced by the formula should be overridden. | |Question= //For non heritable questions only. For heritable questions, this is available to the editors only to use in cases when the text produced by the formula should be overridden. | ||
− | + | |Predicate= //Some text or a term registered in the encyclopedia | |
− | |Predicate= | ||
|Object Type= {Boolean, Class, Enumeration, Regular Expression, Text} | |Object Type= {Boolean, Class, Enumeration, Regular Expression, Text} | ||
|Object Value True= //optional. Used only if Object Type=Boolean | |Object Value True= //optional. Used only if Object Type=Boolean | ||
Line 23: | Line 24: | ||
|Multiple Answers Text Formula= | |Multiple Answers Text Formula= | ||
|Answer Title Formula= | |Answer Title Formula= | ||
− | |||
− | |||
− | |||
|Description= | |Description= | ||
|Authors List= | |Authors List= | ||
|Formulated Year= | |Formulated Year= | ||
|Academic Events= | |Academic Events= | ||
− | |Prehistory= | + | |Prehistory= |
|History= | |History= | ||
|Current View= | |Current View= | ||
− | |Related Topics= | + | |Parent Topic= //This will be deprecated. It will be calculated automatically in an agent-relative way following the current inheritance hierarchy of that agent. For now it is allowed as a backdoor so that it can be assigned manually. |
+ | |Related Topics= //This will be deprecated. It will be calculated automatically in an agent-relative way following the current inheritance hierarchy of that agent. | ||
|Page Status= | |Page Status= | ||
|Editor Notes= | |Editor Notes= | ||
+ | |Sorting Order= | ||
}} | }} | ||
</pre> | </pre> | ||
Line 50: | Line 50: | ||
-->Question Title Formula={{{Question Title Formula|}}}|<!-- | -->Question Title Formula={{{Question Title Formula|}}}|<!-- | ||
-->Question Title={{PAGENAME}}|<!-- | -->Question Title={{PAGENAME}}|<!-- | ||
− | |||
-->Predicate={{{Predicate|}}}|<!-- | -->Predicate={{{Predicate|}}}|<!-- | ||
-->Object Type={{{Object Type|Text}}}|<!-- | -->Object Type={{{Object Type|Text}}}|<!-- | ||
Line 61: | Line 60: | ||
-->Multiple Answers Text Formula={{{Multiple Answers Text Formula|}}}|<!-- | -->Multiple Answers Text Formula={{{Multiple Answers Text Formula|}}}|<!-- | ||
-->Answer Title Formula={{{Answer Title Formula|}}}|<!-- | -->Answer Title Formula={{{Answer Title Formula|}}}|<!-- | ||
− | |||
-->Formulated Year={{{Formulated Year|}}}|<!-- | -->Formulated Year={{{Formulated Year|}}}|<!-- | ||
-->Page Status={{{Page Status|Stub}}}|<!-- | -->Page Status={{{Page Status|Stub}}}|<!-- | ||
-->Editor Notes={{{Editor Notes|}}}|<!-- | -->Editor Notes={{{Editor Notes|}}}|<!-- | ||
− | -->Parent Topic={{{Parent Topic|}}}|<!-- | + | -->Sorting Order={{{Sorting Order|10000}}}|<!-- default is 10000 |
+ | -->Parent Topic={{{Parent Topic|}}}|<!-- this allows for a backdoor to assign parent topics manually | ||
-->Authors List={{{Authors List|}}}|<!-- | -->Authors List={{{Authors List|}}}|<!-- | ||
-->}}<!-- set | -->}}<!-- set | ||
+ | --><!-- | ||
+ | --><!-- set the order | ||
+ | -->{{#vardefine: varSubjectOrder|{{#show: {{{Subject|}}}|?Order|link=none}}|}}<!-- | ||
+ | -->{{#if: {{#var: varSubjectOrder}}<!-- | ||
+ | -->|{{#vardefine: varOrder| {{#expr: {{#var: varSubjectOrder}} + 1}} }}<!-- | ||
+ | -->|{{#vardefine: varOrder| 1 }}<!-- no subject. Set 1 by default | ||
+ | -->}}<!-- if subject order is given | ||
+ | -->{{#set:Order={{#var: varOrder}}|}}<!-- | ||
+ | --><!-- | ||
+ | --><!-- set the inherited from and heritable | ||
+ | -->{{#if: {{{Inherited From|}}}<!-- | ||
+ | -->|<!-- an inherited question is not itself heritable | ||
+ | -->{{#set:Heritable=No|Inherited From={{{Inherited From|}}}|Inherited=Yes}}<!-- | ||
+ | -->|<!-- a non-inherited question can be heritable | ||
+ | -->{{#set:Heritable={{{Heritable|No}}}|Inherited=No}}<!-- | ||
+ | -->}}<!-- if | ||
--><!-- | --><!-- | ||
--><!-- set the question text | --><!-- set the question text | ||
Line 76: | Line 91: | ||
-->|<!-- | -->|<!-- | ||
--><!-- the question is not given: calculate it from the formula | --><!-- the question is not given: calculate it from the formula | ||
− | -->{{#vardefine: varQuestion|{{DecodeTextFormula|formula={{{Question Text Formula|}}}|subject={{{Subject|}}}|predicate={{{Predicate|}}}|}}}}<!-- | + | -->{{#vardefine: varQuestion|{{DecodeTextFormula|formula={{{Question Text Formula|}}}|subject={{{Subject|}}}|predicate={{{Predicate|}}}|object={{{Object Class}}}|link=yes}}}}<!-- |
-->}}<!-- if | -->}}<!-- if | ||
--><!-- | --><!-- | ||
Line 92: | Line 107: | ||
-->{{#arrayprint:varSubsumeArray||@@@@|{{#set:Subsumes items=@@@@}}|}}<!-- | -->{{#arrayprint:varSubsumeArray||@@@@|{{#set:Subsumes items=@@@@}}|}}<!-- | ||
--><!-- | --><!-- | ||
− | --><!-- set the | + | --><!-- |
− | -->{{# | + | --><!-- set parent topic. Currently the parent topic and the ensuing hierarchy of Subsumed/Subsumes etc. is community agnostic. |
− | -->|<!-- | + | --><!-- TODO: moving forward we need to come up with a more intricate way of storing this such that each community can have its own hierarchy. |
− | -->|<!-- | + | --><!-- |
− | -->{{#arraydefine: | + | -->{{#if: {{{Inherited From|}}}<!-- |
− | -->{{# | + | -->|<!-- |
− | -->{{#arrayprint: | + | --><!-- Get the properties required to format the title from Inherited From |
− | --><!-- | + | -->{{#vardefine: varTitleFormula| {{#show: {{{Inherited From|}}}|?Question Title Formula|link=none}} }}<!-- |
− | -->}}<!-- | + | -->{{#vardefine: varPredicate| {{#show: {{{Inherited From|}}}|?Predicate|link=none}} }}<!-- |
+ | -->{{#vardefine: varObject| {{#show: {{{Inherited From|}}}|?Object Class|link=none}} }}<!-- | ||
+ | --><!-- | ||
+ | --><!-- get the inherited topic's subject | ||
+ | -->{{#vardefine: varInheritedSubject| {{#show: {{{Inherited From|}}}|?Subject|link=none}} }}<!-- | ||
+ | --><!-- | ||
+ | --><!-- Get the list of all the classes that the Subject of the Inherited From subsumes | ||
+ | -->{{#arraydefine: arraySubsumesTerms|{{#ask: [[-Subsumes items::{{#var: varInheritedSubject}}]]|link=none}} | , |unique}}<!-- | ||
+ | --><!-- | ||
+ | --><!-- Get the list of all the parent classes of the Subject of the question | ||
+ | -->{{#arraydefine: arrayParentTerms|{{GetPropertyValues|object={{{Subject|}}}|property=Parent Class|link=none}} | , |unique}}<!-- | ||
+ | --><!-- | ||
+ | --><!-- Get the intersection of the two arrays | ||
+ | -->{{#arrayintersect: arrayIntersectTerms|arraySubsumesTerms|arrayParentTerms|}}<!-- | ||
+ | --><!-- | ||
+ | --><!-- For each item in the intersection array, format the question page title according to the formula taken from Inherited From | ||
+ | -->{{#arrayprint: arrayIntersectTerms||varTerm<!-- | ||
+ | -->|<!-- | ||
+ | -->{{#vardefine: varTitle| {{DecodeTitleFormula|formula={{#var: varTitleFormula}}|subject=varTerm|predicate={{#var: varPredicate}}|object={{#var: varObject}}|}} }}<!-- | ||
+ | --><!-- | ||
+ | -->{{#set: Parent Topic={{#var: varTitle}}|}}<!-- | ||
+ | --><!-- | ||
+ | -->}}<!-- arrayprint | ||
+ | --><!-- | ||
+ | --><!-- also construct an array with links or red links to be displayed at the bottom | ||
+ | -->{{#arraydefine: arrayParentPageLinks<!-- | ||
+ | -->|{{#arrayprint: arrayIntersectTerms||varTerm<!-- | ||
+ | -->|<!-- | ||
+ | -->{{#vardefine: varTitle| {{DecodeTitleFormula|formula={{#var: varTitleFormula}}|subject=varTerm|predicate={{#var: varPredicate}}|object={{#var: varObject}}|}} }}<!-- | ||
+ | --><!-- | ||
+ | --><!-- check if the page exists | ||
+ | -->{{#ifexist:{{#var: varTitle}}<!-- | ||
+ | -->|<!-- exist: add the link to the page | ||
+ | -->[[{{#var: varTitle}}]]<!-- | ||
+ | -->|<!-- doesn't exist: add the formlink | ||
+ | -->{{#formlink:form=Topic|link text={{#var: varTitle}}|target={{#var: varTitle}}|query string=Topic[Subject]=varTerm&Topic[Inherited From]={{{Inherited From|}}}|}}<!-- | ||
+ | -->}}<!-- if exists | ||
+ | --><!-- | ||
+ | -->}}<!-- arrayprint | ||
+ | -->| , |unique<!-- | ||
+ | -->}}<!-- arraydefine | ||
+ | --><!-- | ||
+ | -->|<!-- not inherited: still construct an empty array for the use below | ||
+ | -->{{#arraydefine: arrayParentPageLinks}}<!-- | ||
+ | --><!-- | ||
+ | -->}}<!-- if inherited from | ||
+ | --><!-- | ||
+ | |||
--><!-- | --><!-- | ||
--><!-- set the authors | --><!-- set the authors | ||
Line 111: | Line 173: | ||
-->{{#arrayunique:topicsArray}}<!-- | -->{{#arrayunique:topicsArray}}<!-- | ||
-->{{#arrayprint:topicsArray||@@@@|{{#set:Has Related Topic=@@@@}}|}}<!-- | -->{{#arrayprint:topicsArray||@@@@|{{#set:Has Related Topic=@@@@}}|}}<!-- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
--><!-- | --><!-- | ||
--><!-- set the academic events | --><!-- set the academic events | ||
Line 128: | Line 185: | ||
--><!-- | --><!-- | ||
--><!-- set Has Accepted Answer and Has No Accepted Answer | --><!-- set Has Accepted Answer and Has No Accepted Answer | ||
− | -->{{ | + | -->{{SetTopicCurrentAnswer|topic={{FULLPAGENAME}}|subfield={{{Subfield|Dynamics}}}|}}<!-- |
--><!-- | --><!-- | ||
--><!-- Calculate completion rates for each major property | --><!-- Calculate completion rates for each major property | ||
Line 150: | Line 207: | ||
-->{{#set: CR_Total={{#var:varCRtotal}} }}<!-- | -->{{#set: CR_Total={{#var:varCRtotal}} }}<!-- | ||
--><!-- | --><!-- | ||
− | --> | + | --><p>{{#var: varQuestion}}</p><!-- |
− | {{#var: varQuestion}}<!-- | + | |
-->{{PrintSectionVideos|page={{FULLPAGENAME}}|section=Description}}<!-- | -->{{PrintSectionVideos|page={{FULLPAGENAME}}|section=Description}}<!-- | ||
− | |||
− | {{{Description|}}} | + | -->{{#if: {{{Description|}}}|<p>{{{Description|}}}</p>}}<!-- |
− | }} | ||
− | {{PrintTopicSubtitle|topic={{FULLPAGENAME}}|}} | + | --><p>{{PrintTopicSubtitle|topic={{FULLPAGENAME}}|}} <!-- |
− | {{PrintTopicCurrentlyAcceptedInCommunities|topic={{FULLPAGENAME}}|link=all|pretty=yes}}<!-- | + | -->{{PrintTopicCurrentlyAcceptedInCommunities|topic={{FULLPAGENAME}}|link=all|pretty=yes}}<!-- |
− | -->{{ | + | -->{{PrintTopicAcceptedTheoriesFormulations<!-- |
− | |topic={{FULLPAGENAME}} | + | -->|topic={{FULLPAGENAME}}<!-- |
− | | | + | -->|link=yes<!-- |
− | + | -->}}</p><!-- | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | --> | ||
-->{{#if:{{{Prehistory|}}}|<nowiki/> | -->{{#if:{{{Prehistory|}}}|<nowiki/> | ||
==Broader History== | ==Broader History== | ||
Line 196: | Line 246: | ||
-->}}<!-- | -->}}<!-- | ||
--> | --> | ||
− | + | If an answer to this question is missing, please {{#formlink:form=Theory|link text=click here to add it|query string=Theory[Topic]={{FULLPAGENAME}}|}}. | |
− | + | </div><!-- | |
− | + | --><!-- | |
− | |||
− | |||
− | -- | ||
--> | --> | ||
===Accepted Theories=== | ===Accepted Theories=== | ||
Line 223: | Line 270: | ||
--> | --> | ||
==Current View== | ==Current View== | ||
− | + | <!-- | |
− | {{PrintTopicAcceptedTheoriesList | + | -->{{#if: {{{Current View|}}}|<p>{{{Current View|}}}<p>|}}<!-- |
− | |topic={{FULLPAGENAME}} | + | --><!-- |
− | |default=There is currently no accepted answer to this question. | + | --><!-- print the answers |
− | | | + | --><!-- |
− | + | --><p>{{PrintTopicAcceptedTheoriesList<!-- | |
− | + | -->|topic={{FULLPAGENAME}}<!-- | |
− | + | -->|default=There is currently no accepted answer to this question.<!-- | |
− | + | -->|communitiesfirst=yes<!-- | |
− | | | + | -->|groupbycommunity=yes<!-- |
− | + | -->}}</p> | |
− | --> | + | <!-- |
− | < | + | --><!-- |
− | {{{ | + | --><!-- print the answer details: description etc. |
+ | --><!-- | ||
+ | -->{{PrintTopicAcceptedTheoriesDetails|topic={{FULLPAGENAME}}|}}<!-- | ||
+ | --> | ||
{{PrintTopicOpenQuestionsList | {{PrintTopicOpenQuestionsList | ||
|topic={{FULLPAGENAME}} | |topic={{FULLPAGENAME}} | ||
Line 245: | Line 295: | ||
}} | }} | ||
==Related Topics== | ==Related Topics== | ||
− | {{#if:{{{Parent Topic|}}}| | + | <!-- construct the manual array |
+ | -->{{#if: {{{Parent Topic|}}}<!-- | ||
+ | -->|<!-- add to the array | ||
+ | -->{{#arraydefine: arrayManual|[[{{{Parent Topic|}}}]]|}}<!-- | ||
+ | -->|<!-- define an empty array | ||
+ | -->{{#arraydefine: arrayManual}}<!-- | ||
+ | -->}}<!-- | ||
+ | --><!-- | ||
+ | --><!-- create the union of the manual and calculated arrays of parent topics | ||
+ | -->{{#arrayunion: arrayMerged|arrayManual|arrayParentPageLinks}}<!-- | ||
+ | --><!-- | ||
+ | -->{{#switch: {{#arraysize: arrayMerged}}<!-- | ||
+ | -->|0=<!-- nothing to do | ||
+ | -->|<!-- print | ||
+ | -->This question is a subquestion of <!-- | ||
+ | -->{{#arrayprint: arrayMerged||@@@@|@@@@|print=pretty}}<!-- | ||
+ | -->.<!-- | ||
+ | -->}}<!-- | ||
+ | --> | ||
{{PrintTopicSubtopics | {{PrintTopicSubtopics | ||
|topic={{FULLPAGENAME}} | |topic={{FULLPAGENAME}} | ||
Line 261: | Line 329: | ||
--><!-- | --><!-- | ||
--><!--add categories | --><!--add categories | ||
− | |||
− | |||
− | |||
− | |||
− | |||
--><!-- | --><!-- | ||
-->{{#switch: {{{Topic Type|}}}<!-- | -->{{#switch: {{{Topic Type|}}}<!-- | ||
− | --> |Normative=[[Category:Normative Topic]]<!-- | + | -->|Normative=[[Category:Normative Topic]]<!-- |
− | --> |Descriptive=[[Category:Descriptive Topic]]<!-- | + | -->|Descriptive=[[Category:Descriptive Topic]]<!-- |
− | --> |Definitional=[[Category:Definitional Topic]]<!-- | + | -->|Definitional=[[Category:Definitional Topic]]<!-- |
− | --> |{{Note}} Something went wrong and the topic type is undefined. If you see this message, please contact the editors with the details.<!-- | + | -->|{{Note}} Something went wrong and the topic type is undefined. If you see this message, please contact the editors with the details.<!-- |
-->}}<!-- | -->}}<!-- | ||
--><!-- | --><!-- | ||
-->{{#switch: {{{Page Status|Stub}}}<!-- | -->{{#switch: {{{Page Status|Stub}}}<!-- | ||
− | --> |Editor Approved=[[Category:Editor Approved Topic Pages]]<!-- | + | -->|Editor Approved=[[Category:Editor Approved Topic Pages]]<!-- |
− | --> |Needs Editing=[[Category:Need Editing Topic Pages]]<!-- | + | -->|Needs Editing=[[Category:Need Editing Topic Pages]]<!-- |
− | --> |Stub=[[Category:Stub Topic Pages]]<!-- | + | -->|Stub=[[Category:Stub Topic Pages]]<!-- |
-->}}<!-- | -->}}<!-- | ||
--><!-- | --><!-- |
Latest revision as of 00:36, 28 February 2023
This is the template for all types of Non-Definitional Topics (Descriptive, Normative). This template is to be used for all topics/questions the answers to which are descriptions or prescriptions (it is used by Form:Topic).
It should be called in the following format:
{{Topic |Subject= //For first order questions, the subject must be a term registered in the encyclopedia. For higher order questions, the subject can be any lower level non-definitional theory question or theory. |Topic Type= {Descriptive, Normative} |Subfield= {Ontology, Dynamics, etc.} |Heritable= {Yes, No} |Inherited From= //the question that this question is inherited from |Question Text Formula= //For heritable questions only. |Question Title Formula= //For heritable questions only. |Question Title= //Ignored for heritable questions. |Question= //For non heritable questions only. For heritable questions, this is available to the editors only to use in cases when the text produced by the formula should be overridden. |Predicate= //Some text or a term registered in the encyclopedia |Object Type= {Boolean, Class, Enumeration, Regular Expression, Text} |Object Value True= //optional. Used only if Object Type=Boolean |Object Value False= //optional. Used only if Object Type=Boolean |Object Class= //optional. Used only if Object Type=Class |Object Enum Values= //optional. Used only if Object Type=Enumeration |Object Regexp= //optional. Used only if Object Type=Regexp |Single Answer Text Formula= |Multiple Answers Text Formula= |Answer Title Formula= |Description= |Authors List= |Formulated Year= |Academic Events= |Prehistory= |History= |Current View= |Parent Topic= //This will be deprecated. It will be calculated automatically in an agent-relative way following the current inheritance hierarchy of that agent. For now it is allowed as a backdoor so that it can be assigned manually. |Related Topics= //This will be deprecated. It will be calculated automatically in an agent-relative way following the current inheritance hierarchy of that agent. |Page Status= |Editor Notes= |Sorting Order= }}
Edit the page to see the template text.