首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在语义媒体维基中结合#ask子查询的结果

在语义媒体维基中结合#ask子查询的结果
EN

Stack Overflow用户
提问于 2019-10-10 15:28:41
回答 1查看 249关注 0票数 2

我有一个科学论文集存储在语义媒体。这一页总是论文的标题。每一张纸都有一个唯一的id,其形式是citekey属性[[Has citekey::someauthor2019]]

现在,我想将它链接到其他出版物,并自动显示所有参考论文的表格。为了做到这一点,我为每个页面保留了多个属性,其中包含了引用属性[[Has reference::authorX2017]][[Has reference::authorY2018]]等。

为了实现这一点,我希望使用#ask查询获取所有引用,并在一个新的#ask查询中使用这些结果来获取所有将其中一个引用作为其citekey属性的结果。

为了获取引用,我使用了以下#ask查询的组合:

代码语言:javascript
运行
复制
{{#ask: [[Has citekey::someauthor2019]]
 |?Has reference
 |format=template
 |template=Query Result
}}

使用此查询结果格式模板:

代码语言:javascript
运行
复制
{{{2}}}

例如,这将导致输出: authorX2017、authorY2018

如何在新的#问询中自动使用它来获取将这些引用中的任何一个作为其citekey属性的页面列表?

谢谢你的建议!

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 12:01:28

如何在一个新的#问询中使用它来获取将这些引用中的任何一个作为它们的citekey属性的页面的列表?

您应该只使用结果参数作为模板内部ask查询的新参数。这边有麻烦吗?

试着使用

代码语言:javascript
运行
复制
 |link=none

(见来源1)

这将把{1}}和{2}}的结果作为原始文本传递给模板。

你的请求变成:

代码语言:javascript
运行
复制
{{#ask: [[Has citekey::someauthor2019]]
 |?Has reference
 |format=template
 |template=Query Result
 |link=none
}}

然后,可以使用{1}}和{2}}作为新查询的参数。

但是,您已经说过,{具有引用}结果参数可能有多个结果。因此,您应该使用类似于arraymaptemplate的东西(参见源2)。

代码语言:javascript
运行
复制
{{#arraymaptemplate:value|template|delimiter|new_delimiter}}

其中,“模板”将在其自身请求中使用{2}列表的每个值。

资料来源:

  1. https://www.semantic-mediawiki.org/wiki/Help:Inline_queries#Standard_parameters_for_inline_queries
  2. https://www.mediawiki.org/wiki/Extension:Page_Forms/Page_Forms_and_templates#arraymaptemplate
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58326404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档