Difference between revisions of "Template:Concept scheme relation"
m (fix bug property range) |
m (div display non → avoid-empty-paragraph-of-concept-scheme-relation) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<includeonly><!-- | <includeonly><!-- | ||
-->{{#if:{{{scheme|}}} <!-- | -->{{#if:{{{scheme|}}} <!-- | ||
− | THEN-->| | + | THEN-->|<!-- |
− | + | --><div style="display:none;" class="avoid-empty-paragraph-of-concept-scheme-relation"><!-- maybe these #set produce empty <p></p>? <div style="display:none;"></div> work around is recommended by SMW | |
− | + | -->{{#set: skos:inScheme={{{scheme}}}}}<!-- | |
− | + | -->[[Category:{{{scheme}}}]]<!-- | |
− | --> | + | |
− | --> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | --> | + | |
− | }}<!-- | + | |
+ | -->{{#if: {{{property domain|}}}{{{property range|}}}{{{property cardinality|}}}<!-- | ||
+ | then-->|{{#set_internal: constraint of concept<!-- | ||
+ | -->|constraint defined in scheme={{{scheme}}} | ||
+ | TODO: do empty values work out? | ||
+ | |property domain={{{property domain|}}} | ||
+ | |property range={{{property range|}}} | ||
+ | |cardinality={{{property cardinality|}}}<!-- | ||
+ | |is instance of=?correct? | ||
+ | -->}}<!--end #set_internal | ||
+ | -->}}<!-- end if | ||
+ | --></div><!-- | ||
////////////////////////////// | ////////////////////////////// | ||
// output (TODO adjust correct links/texts) | // output (TODO adjust correct links/texts) | ||
////////////////////////////// | ////////////////////////////// | ||
− | -->{{#if: {{{property cardinality|}}}{{{property domain|}}}{{{property range|}}}<!-- no output when | + | -->{{#if: {{{property cardinality|}}}{{{property domain|}}}{{{property range|}}}<!-- no output when only the scheme was specified |
then-->|<nowiki></nowiki> | then-->|<nowiki></nowiki> | ||
− | + | Constraints in the context of [[{{{scheme}}}]]: {{#if:{{{property cardinality|}}} | | |
* [[Help:Cardinality | cardinality]] {{Cardinality from value to explained | {{{property cardinality|}}} }} }}<!-- | * [[Help:Cardinality | cardinality]] {{Cardinality from value to explained | {{{property cardinality|}}} }} }}<!-- | ||
-->{{#if:{{{property domain|}}} | | -->{{#if:{{{property domain|}}} | | ||
− | * [[rdfs:domain]]: {{{property domain|}}} }}<!-- | + | * [[rdfs:domain]]: {{#set: rdfs:domain={{Complete pagename to fullurl |{{{property domain|}}}}}}}{{{property domain|}}} (=the class, to which “{{PAGENAME}}” may be applied) }}<!-- |
-->{{#if:{{{property range|}}} | | -->{{#if:{{{property range|}}} | | ||
− | * [[rdfs:range]]: {{{property range|}}} }}<!-- | + | * [[rdfs:range]]: {{#set: rdfs:range={{Complete pagename to fullurl |{{{property range|}}}}}}}{{{property range|}}} (=the class or datatype of the values or objects that are assigned to “{{PAGENAME}}”, i.e. the right side in the triple) }}<!-- |
else-->|<!-- | else-->|<!-- |
Latest revision as of 09:55, 17 December 2012
Contents
Background
Originally, the inScheme relation was part of the general relations (see template: Concept relation). It was separated, because we desire to express constraints (range, domain, cardinality) about concepts. The complication here is that consensus exists to define "base-schemes" with as few constraints as possible, which are then re-used in more constraining schemes. This means that constraints for a concept are not universal properties of the concept itself, but rather of their re-use.
Usage
On Concept pages (using Form:Concept) the following can be repeated any number of times (bold=mandatory parameter):
{{Concept scheme relation | scheme = <!-- page name of a concept scheme --> | property domain =<!-- a domain constraint defined within that scheme --> | property range =<!-- a range constraint defined within that scheme --> | property cardinality =<!-- one value of: "0..1", "0..n", "1..1", "1..n" --> }}
Parameter in detail:
scheme=
age name of a concept scheme
property domain =
if present concept is a property, a domain constraint defined within that scheme. A domain defines the class of subject resources, to which a property may be applied. The constraints of the original scheme are most relevant, but other schemes may define other constraints. This maps to rdfs:domain if the skos concept is applied as an rdfs/owl ontology.
property range =
if present concept is a property, a range constraint defined within that scheme. A range declares the class or datatype of the values or objects that are assigned to a property (the right side in the triple). The constraints of the original scheme are most relevant, but other schemes may define other constraints. This maps to rdfs:range[1] if the skos concept is applied as an rdfs/owl ontology.
property cardinality =
if present concept is a property, a cardinality constraint defined within that scheme. Values are:
- 0..1 (optional single occurrence)
- 0..n (optional multiple occurrence)
- 1..1 (mandatory single occurrence)
- 1..n (mandatory multiple occurrence).
The constraints of the original scheme are most relevant, but other schemes may define other constraints. For example "1..1" maps to owl:minCardinality "1" owl:maxCardinality "1" if the skos concept is applied as an rdfs/owl ontology.
- ↑ is rdfs:range correct? --Andreas Plank 17:32, 25 October 2012 (CEST)
TODO
- decide for a self-explanatory pagename property for #set_internal’s first argument (see Template talk:Concept scheme relation)
- revise layout + semantic properties