SMW中可搜索的日期/时间持续时间

时间:2015-01-12 05:19:39

标签: php date mediawiki semantic-mediawiki

我使用MediaWiki和SMW扩展程序在私人环境中组织我的小组正在创建的虚构世界。我有一些我喜欢的功能,而且我想知道那里是否有扩展,或者是否可以制作我自己的扩展,这将让我做我想做的事。

基本上,用简单的英语...我想知道宇宙在特定时间点(或持续时间)发生的事情。

我希望让用户能够提供日期(简单到一年,或根据需要精确)或持续时间,并返回每个持续时间重叠的事件。

例如。

  • 事件1从公元前3200年开始,到公元前198年
  • 结束
  • 事件2从公元前509年开始到公元前405年
  • 结束
  • 活动3开始于公元前1/15/419,并于公元1/17/419结束
  • 活动4开始〜公元前409年,于公元2/14/2021结束

用户输入日期(在本例中为部分)309 BCE。 Wiki返回事件1和事件4,因为给定日期在两者的持续时间内。

这将允许我的创作者查询特定日期(并希望持续时间)并发现已经发生的事件,因此他们可以根据已经建立的内容调整他们的作品。它是一个简单的冲突检查器。

如果没有可用的扩展程序可以解决这个问题,那么在我可以研究的任何地方都有这样的东西吗?我从未在PHP中处理日期。我是一名普通的商业编码员,我从未做过复杂的应用程序。

1 个答案:

答案 0 :(得分:1)

SMW中没有内置的“持续时间”数据类型,因此最简单的方法可能是使用一个date property作为开始日期,一个作为结束日期(注意它必须是{{ 1}} / BC,而不是AD / BCE或类似的):

CE

然后您可以查询具有开始日期之前的每个事件,以及某个日期之后的结束日期:

[[Event starts at::3200 BC]]
[[Event ends at::198 BC]]

请注意,{{#ask:[[Event starts at::<1000 BC]] [[Event ends at::>1000 BC]]}} 实际上意味着SMW查询语法中的“大于或等于”。