Difference between revisions of "Template:Concept Table grouped by Collection 1"

From TDWG Terms Wiki
Jump to: navigation, search
m (refacoring: try to reduce template calls (dcterms:identifier vs. usage of template: Concept to imported URI during inline #ask); added dcterms:identifier)
m (+documentation)
 
(4 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
=== Parameters ===
 
=== Parameters ===
  
<div class="definition-inline">
+
'''Bold parameters''' are mandatory, all other are optional:
;|1= : concept collection name
+
{| class="wikitable sortable"
;|limit concepts= : the limit of concepts to <code>#ask</code> for subsequently (default: 500)
+
|-
</div>
+
! Parameter !! Comment, Example !! Property
 +
|-
 +
|
 +
'''<nowiki>|1=</nowiki>'''
 +
|
 +
* a concept collection, e.g. <code>Audubon Core Attribution Vocabulary</code>
 +
|
 +
* see [[property: vann:termGroup]]
 +
|-
 +
|
 +
<nowiki>|limit concepts=</nowiki>
 +
|
 +
* the limit of concepts to display for each collection
 +
* default: <code>500</code>
 +
|
 +
|}
  
 
Note: that parameter 1 can also be provided by an #ask query wrapping this template ([[#use case 2|see use case 2]]).
 
Note: that parameter 1 can also be provided by an #ask query wrapping this template ([[#use case 2|see use case 2]]).
Line 22: Line 37:
 
  {{FULLPAGENAME}}
 
  {{FULLPAGENAME}}
 
   └─ #ask (for concepts within the given collection)
 
   └─ #ask (for concepts within the given collection)
     └─ [[template: Concept Table grouped by Collection 2]]
+
     └─ display table layout via [[property: terms-internal:summary (as table rows) of concept term]]
        (generates table layout)
+
        (generated table layout of [[template: Concept Table grouped by Collection 2]])
  
 
If you want to display concepts of ''just one'' collection (use case 1) use it as follows (here limited to just 2 concepts for this example):
 
If you want to display concepts of ''just one'' collection (use case 1) use it as follows (here limited to just 2 concepts for this example):
Line 39: Line 54:
 
   └─ {{FULLPAGENAME}}
 
   └─ {{FULLPAGENAME}}
 
     └─ #ask (for concepts within previous results of concept collections)
 
     └─ #ask (for concepts within previous results of concept collections)
         └─ [[template: Concept Table grouped by Collection 2]]
+
         └─ display table layout via [[property: terms-internal:summary (as table rows) of concept term]]
          (generates table layout)
+
          (generated table layout of [[template: Concept Table grouped by Collection 2]])
  
If you want to query for multiple concept collections (usecase 2: here in [[GGBN Data Standard]]) you can use it with an <code>#ask</code>-query as follows:
+
If you want to query for multiple concept collections (usecase 2: here all collections in scheme [[GGBN Data Standard]]) you can use it with an <code>#ask</code>-query as follows:
 
  <nowiki>{{</nowiki>#ask: <nowiki>[[</nowiki>Category:Concept collection]] <nowiki>[[</nowiki>skos:inScheme::GGBN Data Standard]]
 
  <nowiki>{{</nowiki>#ask: <nowiki>[[</nowiki>Category:Concept collection]] <nowiki>[[</nowiki>skos:inScheme::GGBN Data Standard]]
 
  | ? #-
 
  | ? #-
Line 53: Line 68:
 
  }}
 
  }}
  
Note that the parameter <code><nowiki>|limit=20</nowiki></code> may be crucial here: 
+
Note that the <code>#ask</code>-parameter <code><nowiki>|limit=20</nowiki></code> may be crucial here: 
* depending on the concept scheme this means it queries for 20 collections and within those all (up to <code><nowiki>|limit concepts=500</nowiki></code>) concepts
+
* depending on the size of the concept scheme this means it queries for 20 collections and within each, all (up to <code><nowiki>|limit concepts=500</nowiki></code>) concepts
 
* if there are more results, then at the bottom a link will appear to see further results
 
* if there are more results, then at the bottom a link will appear to see further results
 
* if the concept collection is too large (over 1000 concepts) this template may not be able to show all concepts and you can get a warning like:  
 
* if the concept collection is too large (over 1000 concepts) this template may not be able to show all concepts and you can get a warning like:  
Line 61: Line 76:
 
Pages that have too much template calls can be found in this maintenance [[:category: Pages where template include size is exceeded]].
 
Pages that have too much template calls can be found in this maintenance [[:category: Pages where template include size is exceeded]].
  
Technically this template relies on values generated by [[template: Concept Table grouped by Collection 2]] in [[template: Concept]] to be able to get quick display response time. [[Template: Concept Table grouped by Collection 2]] also produces the actual table layout. On a concept page it sets some thing like:
+
Technically this template relies on values generated by [[template: Concept Table grouped by Collection 2]] via [[template: Concept]]. This approach ensures to get a quick display response time in Semantic MediaWiki to just display cached content and not to render the content during the #ask-inline query. [[Template: Concept Table grouped by Collection 2]] also produces the actual table layout. On a concept page it sets some thing like:
  
 
<pre>
 
<pre>
Line 83: Line 98:
  
 
* [[template: Concept]]
 
* [[template: Concept]]
* <s>[[template:smwAsk InternalAnchorRef]]</s> (used by #ask)
+
* <s>[[template:smwAsk InternalAnchorRef]] (used by #ask)</s>
 
* [[template:Concept Table grouped by Collection 2]] (used by #ask in [[template: Concept]])
 
* [[template:Concept Table grouped by Collection 2]] (used by #ask in [[template: Concept]])
 
** [[property: terms-internal:summary (as table rows) of concept term]]
 
** [[property: terms-internal:summary (as table rows) of concept term]]
 +
** [[property: terms-internal:enLabel]]
 +
** [[property: terms-internal:enDefinition]]
 +
** [[property: terms-internal:enExample]]
 +
** [[property: terms-internal:enNote]]
 +
** [[property: rdfs:isDefinedBy]]<br/> not passed but #ask-ed for in this subsequent template is subobject [[property: constraint of concept]] which holds: [[property: property domain]], [[property: property range]], [[property: cardinality]])
 +
** [[property: dcterms:identifier]] (for the URI)
 +
  
 
[[Category: SMW ask template]]
 
[[Category: SMW ask template]]
Line 97: Line 119:
 
|link style=local page link
 
|link style=local page link
 
}}<!--  
 
}}<!--  
// Using arraymap, loop through present userparam (containing the second level collections like Layer 1, Layer 2), passing the current collection as userparam to next template
+
// Using arraymap, loop through the current collection(s)
 
-->{{#arraymap: {{{1|Audubon Core Attribution Vocabulary}}}<!--
 
-->{{#arraymap: {{{1|Audubon Core Attribution Vocabulary}}}<!--
 
   -->|,<!-- sep
 
   -->|,<!-- sep
 
   -->|§<!-- assign temporary var
 
   -->|§<!-- assign temporary var
   -->|<!--start arraymap output section:
+
   -->|<!-- start arraymap output section:
 
    
 
    
 
   OLD code: avoid rendering during the #ask: inline queries but use pre-rendered display property below. (AP 2020-01-27 16:31:47)  
 
   OLD code: avoid rendering during the #ask: inline queries but use pre-rendered display property below. (AP 2020-01-27 16:31:47)  
Line 129: Line 151:
 
    
 
    
 
     -->{{#ask: [[Category:Concept]] [[vann:termGroup::§]] [[vann:termGroup::{{{1|Audubon Core Attribution Vocabulary}}}]]
 
     -->{{#ask: [[Category:Concept]] [[vann:termGroup::§]] [[vann:termGroup::{{{1|Audubon Core Attribution Vocabulary}}}]]
| ?terms-internal:summary (as table rows) of concept term =
+
| ?terms-internal:summary (as table rows) of concept term =<!-- the property’s content is generated by template:Concept_Table_grouped_by_Collection_2 in template:Concept -->
 
| link=none
 
| link=none
 
| mainlabel=-
 
| mainlabel=-

Latest revision as of 14:47, 28 January 2020

This template displays definitions of terms in a table layout grouped by concept collections. It can be and is usually invoked by a previous #ask query.

Technical Documentation

Parameters

Bold parameters are mandatory, all other are optional:

Parameter Comment, Example Property
|1=
  • a concept collection, e.g. Audubon Core Attribution Vocabulary
|limit concepts=
  • the limit of concepts to display for each collection
  • default: 500

Note: that parameter 1 can also be provided by an #ask query wrapping this template (see use case 2).


Example/Usage

Use cases can be:

  1. to query just one collection
  2. to query multiple concept collections

 Use case 1 (to query just one collection)

Template:Concept Table grouped by Collection 1
 └─ #ask (for concepts within the given collection)
    └─ display table layout via property: terms-internal:summary (as table rows) of concept term
       (generated table layout of template: Concept Table grouped by Collection 2)

If you want to display concepts of just one collection (use case 1) use it as follows (here limited to just 2 concepts for this example):

{{Concept Table grouped by Collection 1|Audubon Core Attribution Vocabulary|limit concepts=2}}

… wich results in

Audubon Core Attribution Vocabulary

Index to Audubon Core Attribution Vocabulary
By label: Attribution Link URL  •  Attribution URL  •  Copyright Owner  •  Credit Line  •  License Logo URL  •  License URL  •  Rights  •  Source  •  UsageTerms
By concept name: ac:attributionLinkURL  •  ac:attributionLogoURL  •  ac:licenseLogoURL  •  dcterms:rights  •  dcterms:source  •  photoshop:Credit  •  xmpRights:Owner  •  xmpRights:UsageTerms  •  xmpRights:WebStatement
Concept definitions in Audubon Core Attribution Vocabulary
… further results and concept collection Audubon Core Attribution Vocabulary
ac:attributionLinkURL
Normative URI http://rs.tdwg.org/ac/terms/attributionLinkURL
Label Attribution Link URL
Definition The URL where information about ownership, attribution, etc. of the resource may be found.
Defined By http://terms.tdwg.org/wiki/Audubon_Core_Term_List#ac:attributionLinkURL
  Required: No — Repeatable: No
Notes: Audubon Core: This URL may be used in creating a clickable logo. Providers should consider making this link as specific and useful to consumers as possible, e. g., linking to a metadata page of the specific image resource rather than to a generic page describing the owner or provider of a resource.
Concept Name: ac:attributionLogoURL
Normative URI http://rs.tdwg.org/ac/terms/attributionLogoURL
Label Attribution URL
Definition The URL of the icon or logo image to appear in source attribution.
Defined By http://terms.tdwg.org/wiki/Audubon_Core_Term_List#ac:attributionLogoURL
  Required: No — Repeatable: No
Notes: Audubon Core: Entering this URL into a browser should only result in the icon (not in a webpage including the icon).



Use case 2 (to query multiple concept collections)

#ask (for multiple concept collections)
 └─ Template:Concept Table grouped by Collection 1
    └─ #ask (for concepts within previous results of concept collections)
       └─ display table layout via property: terms-internal:summary (as table rows) of concept term
          (generated table layout of template: Concept Table grouped by Collection 2)

If you want to query for multiple concept collections (usecase 2: here all collections in scheme GGBN Data Standard) you can use it with an #ask-query as follows:

{{#ask: [[Category:Concept collection]] [[skos:inScheme::GGBN Data Standard]]
| ? #-
| link=none
| mainlabel=-
| format=template
| template=Concept Table grouped by Collection 1
| searchlabel=<i>&#32;…&nbsp;see also further results and collections</i>
| limit=20
}}

Note that the #ask-parameter |limit=20 may be crucial here: 

  • depending on the size of the concept scheme this means it queries for 20 collections and within each, all (up to |limit concepts=500) concepts
  • if there are more results, then at the bottom a link will appear to see further results
  • if the concept collection is too large (over 1000 concepts) this template may not be able to show all concepts and you can get a warning like:
Warning: Template include size is too large. Some templates will not be included.

Pages that have too much template calls can be found in this maintenance category: Pages where template include size is exceeded.

Technically this template relies on values generated by template: Concept Table grouped by Collection 2 via template: Concept. This approach ensures to get a quick display response time in Semantic MediaWiki to just display cached content and not to render the content during the #ask-inline query. Template: Concept Table grouped by Collection 2 also produces the actual table layout. On a concept page it sets some thing like:

{{#set: terms-internal:summary (as table rows) of concept term={{#ask: [[{{PAGENAME}}]]
|format=template
|template=Concept Table grouped by Collection 2
|mainlabel=-
|? #-                              <!-- page name -->
|?terms-internal:enLabel #-        <!-- english label -->
|?terms-internal:enDefinition #-   <!-- english definition -->
|?terms-internal:enExample #-      <!-- english example -->
|?terms-internal:enNote #-         <!-- english notes -->
|?rdfs:isDefinedBy #-              <!-- the is definded by -->
|?dcterms:identifier #-            <!-- the URI -->
}} 
}}


Dependencies