首页 > 未分类 > 利用interwiki链接来引用不同Wiki的词条

利用interwiki链接来引用不同Wiki的词条

2007年6月15日

在mediawiki为平台的wiki中,链接主要可以分为四种

  1. 内部链接:同一个wiki内不同页面之间的链接
  2. 外部链接:指向wiki之外的网站的链接
  3. inter-wiki链接 :专指链接到其他wiki的外部链接
  4. 不同语言链接:专指到同一个wiki内同一页面不同语言版本的内部链接

这第三种链接方式“”之所以从外部链接专列出来,是因为它的链接形式很像内部链接,可以简单地采取[[映射前缀:页面名称]]的方式来产生指向其他站点的外部链接。虽然它其实也可以用来链接到一般站点,但由于这种形式常常用来指向其他wiki站点的页面,且链接形式又很wiki化,因而也就被通称做Inter-wiki链接。

使用inter-wiki链接,首先要在mediawiki系统中为目标站点设定一个统一的指代名称,如用“libpedia”指代网站http://www.xmulib.net。之后在wiki编辑过程中,如果要生成一个指向www.xmulib.net网站“元数据”页面的链接,可以直接用[[:libpedia:元数据]][[libpedia:元数据]]来代替,而不再需要用 “http://www.xmulib.net/wiki/元数据”这么长的代码,也方便记忆。

那么怎么建立这种映射关系么?

建立映射关系,需要修改wiki数据库。因此必须确定你有数据库的相应权限。需要修改的数据表是“interwiki”(可能你在建库是加了前缀,比如“mywiki_interwiki”)。表中主要包含了几个字段:prefix、url、local。

  • 假设对于“[[:前缀:条目]]
  • Prefix”就是我们在编辑中要使用的“前缀”,如我要使用的“libpedia”。
  • Url”则是最终要将Prefix替换掉的目标网址,比如“http://www.xmulib.net/wiki/$1”,其中“$1”表示“条目名称
  • Local”,则表示是否“不同语言链接” ,“0”表示False

如上,很容易就知道,只要在Interwiki表中添加相应的一行,就可以在自己的wiki中轻松的引用其他wiki站点的条目了。

同样,从url的格式,我们也可发现只要目标站点链接格式固定,那么即便不是wiki站点,那也可以建立映射关系。比如要为del.icio.us上的用户建立映射关系,只要:prefix – delicious、url – http://del.icio.us/$1、Local – 0。那么在编辑页面时用 [[:delicious:sogg]],就能产生到 http://del.icio.us/sogg的链接。

注:

相关日志:

未分类

  1. yuan
    2007年6月15日12:08 | #1

    Sogg, 你的Inter-wiki链接讲得非常好。我没试过,以后还要向你请教。你说的那种句法是不是就是XML/RDF中的QName (XML qualified name)?
    QName contains a prefix that has been assigned to a namespace URI, followed by a colon, and then a local name.
    The full URIref is formed from the QName by appending the local name to the namespace URI assigned to the prefix.
    So, for example, if the QName prefix foo is assigned to the namespace URI http://example.org/somewhere/, then the QName foo:bar
    is shorthand for the URIref
    http://example.org/somewhere/bar.
    Source: http://www.w3.org/TR/rdf-primer/

  1. 本文目前尚无任何 trackbacks 和 pingbacks.