【问题标题】:Access other attributes in the same subobject in semantic-mediawiki访问语义媒体维基中同一子对象中的其他属性
【发布时间】:2020-06-18 13:32:14
【问题描述】:

我在语义媒体维基中使用子属性来存储不同类型的信息,例如一个日志。 这可能如下所示:

{{#subobject:
 |Has date = 2020-06-18
 |Has log = Diary
 |Has tag = Stackoverflow
 |Has agenda = 
* Done Something
}}

我想做的是在访问日期参数的议程部分中使用#ask 查询,如下所示:

{{#subobject:
 |Has date = 2020-06-18
 |Has log = Diary
 |Has tag = Stackoverflow
 |Has agenda = 
* The date today is:

{{#ask:
[[Has log::Diary]]
[[Has date::<<Is there a way to access the date of this subobject?>>]]
|?Has date = Date
}}

}}

我知道这是不可能直接实现的,因为文本必须先存储在数据库中才能稍后检索,但我不介意是否必须保存两次或需要其他解决方法。

谢谢!

【问题讨论】:

  • 第一个日期如何输入?手动,扩展:页面表单?为什么要复制日期信息?如果“有议程”属性不打算通过 api 进行查询,则无需这样做...
  • 第一个日期是手动输入的,就像在第一个代码示例中一样。背景是我有另一组也有日期属性的信息。现在,每当我在这个日志中做一个条目时,我都想从另一个数据集中获取信息,使用像 {{Include_Other_Dataset|date=&lt;&lt;This is where I would like to include the query information of the subobject's date&gt;&gt;}} 这样的模板
  • 对不起,我还是不明白你在做什么。

标签: mediawiki mediawiki-extensions semantic-mediawiki


【解决方案1】:

显而易见的解决方案是将此代码包装在模板中,例如Template:Appointment

<includeonly>{{#subobject:
 |Has date = {{{date|}}}
 |Has log = {{{log|}}}
 |Has tag = {{{tag|}}}
 |Has agenda = {{{agenda|}}}
}}

Also on {{{date|}}} in {{{log|}}}:
{{#ask:
[[Has log::{{{log|}}}]]
[[Has date::{{date|}}}]]
|?Has date = Date
|format = ul
}}
</includeonly>

调用模板之类的

{{Appointment
| date   = 2020-06-18
| log    = Diary
| tag    = Stackoverflow
| agenda = <nowiki>
* The date today is:
}}

当您想将记录添加到日志时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2014-07-06
    相关资源
    最近更新 更多