书社会的Caveman在做一项很实用的研究,问了一个很好的问题(一般而言,回答不上来的问题都是好问题)。我在这里做一些讨论,希望抛砖引玉,批评指正。
在这里把问题归纳为:如何用RDF(及其家族)描述中国朝代的公元纪年。他的朝代与公元纪年对照表在这里:http://tinyurl.com/timeReignChinese。
直感转换方法有很多种,可以用RDF,也可以用SKOS和OWL,甚至其它,包括直接用XML自定义也可以。
编码原则应该是:能复用就复用,看看前人的成果。
而如何编码,哪种方式合用,关键还要看需求。
网络上已经有一些供人使用的转换工具了,但如果要通用性,应该基于RDF进行编码,并开发一个工具,甚至变成语义网络的一种服务,就能够直接为机器理解、获取和使用,能够被其它应用任意调用,就能体现语义技术最大的优越性了。
想到目前国内有些分类法主题词表分别都有了网络版,但那是给人看的,无法通过服务器直接获取术语和术语关系,进行匹配和关系运算,这实际上发挥不了多大的作用。只有用RDF(SKOS或OWL)编码之后,提供一定的语义Web服务(例如用关联数据方式发布),才能真正发挥词表的作用。
这里的核心需求可以整理为:
1、某个朝代有哪些年号,这些年号的起讫日期(即这个对照表:http://tinyurl.com/timeReignChinese)。
2、某个公元年号落在哪个朝代的哪个年号。
3、模糊年号(如不同朝代相同年号)和模糊日期(如起讫年精确到年还是月还是日)的处理。
4a、是否需要提供网络服务接口,实现双向转换;
4b、还是提供代码,嵌入任何应用;
4c、还是仅仅用RDF来描述这个对照表。
5、进一步的,不同朝代的国家情况(地理疆域、并行的国号等)。
就这个对照表的转换而言,可以认为只需满足1、2和4c即可。
简单的解决方案可以这样:
定义朝代(dynasty)类和年号(reign)子类,都属于event类,复用event本体(http://motools.sourceforge.net/event/event.html)和timeline本体(http://motools.sourceforge.net/timeline/timeline.html)中的元素,建立“朝代-年号”和“年号-公元纪年(date interval类型)”的rdf描述即可。
将来可以扩展(复用)event的其它属性,例如皇帝,都城,等等。