我有一个科学论文集存储在语义媒体。这一页总是论文的标题。每一张纸都有一个唯一的id,其形式是citekey属性[[Has citekey::someauthor2019]]。
现在,我想将它链接到其他出版物,并自动显示所有参考论文的表格。为了做到这一点,我为每个页面保留了多个属性,其中包含了引用属性[[Has reference::authorX2017]]、[[Has reference::authorY2018]]等。
为了实现这一点,我希望使用#ask查询获取所有引用,并在一个新的#ask查询中使用这些结果来获取所有将其中一个引用作为其citekey属性的结果。
为了获取引用,我使用了以下#ask查询的组合:
{{#ask: [[Has citekey::someauthor2019]]
|?Has reference
|format=template
|template=Query Result
}}使用此查询结果格式模板:
{{{2}}}例如,这将导致输出: authorX2017、authorY2018
如何在新的#问询中自动使用它来获取将这些引用中的任何一个作为其citekey属性的页面列表?
谢谢你的建议!
发布于 2019-10-11 12:01:28
如何在一个新的#问询中使用它来获取将这些引用中的任何一个作为它们的citekey属性的页面的列表?
您应该只使用结果参数作为模板内部ask查询的新参数。这边有麻烦吗?
试着使用
|link=none(见来源1)
这将把{1}}和{2}}的结果作为原始文本传递给模板。
你的请求变成:
{{#ask: [[Has citekey::someauthor2019]]
|?Has reference
|format=template
|template=Query Result
|link=none
}}然后,可以使用{1}}和{2}}作为新查询的参数。
但是,您已经说过,{具有引用}结果参数可能有多个结果。因此,您应该使用类似于arraymaptemplate的东西(参见源2)。
{{#arraymaptemplate:value|template|delimiter|new_delimiter}}其中,“模板”将在其自身请求中使用{2}列表的每个值。
资料来源:
https://stackoverflow.com/questions/58326404
复制相似问题