1

我是 Semantic Mediawiki 的新手,它最近安装在我贡献的一个 wiki 上。我正在考虑如何表示一些数据,我认为子对象可能会有所帮助,但我不清楚细节。

特别是,有一些属性,例如视频的拍摄位置(wiki 是一个互联网喜剧网站),似乎很适合 Page 数据类型,因为大多数常见位置都有相关页面,但有些一次性位置似乎不值得每个页面。您是否可以创建列出所有此类位置的页面的子对象,并将其用作属性值,如果可以,如何?另外,如果是这样,当您添加值时链接指向什么(使用 [[Location::Value]] 表示法),链接的文本是什么?假设它有效,这种方法是否有任何缺点。

需要明确的是,我想错过带有页面的位置,以及只是子对象的位置,位置的数据类型为 Page。

编辑:为了进一步澄清,我仍然想要这些位置的页面,以提供简要说明,但是在一个名为 [[Minor Locations]] 的页面上,例如,其中将包含每个次要位置的句子(类似于如何维基百科处理次要字符)。我的想法是将位置创建为该页面的子对象,并且剧集将包含该位置作为属性值,就好像它们是一个页面一样。这样,两集可以共享一个次要位置,但它本身不需要整篇文章。

4

1 回答 1

1

要添加子对象,您必须使用#subobject解析器函数,如下所示:

{{#subobject:Location
  |name=Ystad
  |coordinates=55°25′N 13°50′E
}}

正如您所写,子对象的优点是您可以组合多个属性而不必创建页面。

但是,如果您真的不需要附加到每个位置的其他属性,我建议您只使用页面作为值。没有什么能阻止您使用页面类型,即使您不打算实际创建所有页面。对于 SMW,页面是否存在并不重要,它们仍然是属性的有效值。这样查询会容易得多!

编辑:是的,您可以使用 SO 作为属性的值。它们看起来像Pagename#XXXXXXXX(请参阅官方文档),但是我个人不建议将页面和子对象混合为同一属性的值。查询会很复杂,维护也...

于 2015-01-15T10:13:45.457 回答