【问题标题】:How should optional or empty values be handled in Semantic Mediawiki?在 Semantic Mediawiki 中应如何处理可选值或空值?
【发布时间】:2018-03-14 04:45:20
【问题描述】:

我正在为 Semantic Mediawiki 实施设置一些模板。模板参数被输入到注释中。但是,这些值是可选的;并不总是在每个领域都有一个价值。这会导致某些数据类型出现问题。具体来说,如果我有

{{#set:
| Has phone={{{phone}}}
}}

我将收到URIs of the form *** are not allowed 形式的错误,其中 *** 是 {{{phone}}} 或我尝试放入的任何默认值。电话或电子邮件等数据类型似乎不可能为空。我无法弄清楚如何在我的模板中支持这些字段的空值。在 SMW 注释中使用空值的正确模式是什么?

【问题讨论】:

    标签: mediawiki semantic-mediawiki


    【解决方案1】:

    你可以使用模板参数的default-value feature,但是给它一个空白的默认值:

    {{#set:
    | Has phone={{{phone|}}}
    }}
    

    (已更新:) 或者,如果您需要阻止它设置任何内容,请将其包装在条件中:

    {{#if: {{{phone|}}}
    | {{#set: Has phone={{{phone}}} }}
    }}
    

    【讨论】:

    • 这不适用于带有数据类型电话的注释。空字符串是无效的电话号码并生成错误。
    • @Topsy:对不起,错过了。我已经更新了我的答案。 :)
    • 看起来很别扭,但我只是习惯了 MW 和 SMW... 如果它是这样做的,那就这样吧。谢谢你。另外,澄清一下:这个解决方案需要 ParserFunctions 扩展。
    • 是的,它确实需要 ParserFunctions。这很尴尬,但实际上通常只在定义实体的模板中完成,所以还不错。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    相关资源
    最近更新 更多