虎克的博客

Enthusiasm Biogeography-Biodiversity Informatics-Data Sciences

Ubuntu10.04下正确安装和配置R软件包

| Comments

首先需要安装Sun Java软件包

$sudo apt-get install sun-java6-jdk

$sudo apt-get install openjdk-6-jdk

(注意在Ubuntu里面OpenJDK软件包的名字是”openjdk-6-jdk”,如果你安装成‘openjdk-6-jre‘后面配置安装R中的一些软件包后出错)

安装好JAVA后使用下面的命令检查JAVA对R软件包的支持配置是否正确

$sudo R CMD javareconf

正确配置的结果如下图:

笔者经历过错误安装openjdk-6-jre后,JNI cpp flags后面的配置为空,导致在R软件包中无法安装rJava包。

$sudo R

>install.packages(c(‘rJava’, ‘XML’, ‘sp’, ‘raster’, ‘dismo’, ‘rgdal’))

Mac OS 编译安装Ruby on Rails

| Comments

看到在snow leopard上默认就安装好了rails,我只需gem update rails就可以了。 
Mac OS X确实强大,但心里总觉得缺点什么,本着折腾的原则,看到rails3.0beta出来了,我准备重新编译安装一下。 
说干就干,系统原先的就保留着不动。 
第一步:设置shell路径,使/usr/local/bin能够先认识。打开终端输入 
       

Ruby代码 
  1. vi ~/.profile  

添加如下命令: 
Ruby代码 
  1. export PATH=/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH  

使用如下命令使之生效: 
Ruby代码 
  1. source ~/.profile  

最后再检验一下PATH变量 
Ruby代码 
  1. echo $PATH  

这样的话/usr/local/bin就会在/usr/bin前面,这点很重要。 

第二步:下载Ruby和 RubyGems 
先建个目录用来存放ruby和rubygems源码 
Ruby代码 
  1. mkdir ~/src  
  2. cd ~/src  

从网站上下载源码 
Ruby代码 
  1. curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz  
  2. curl -O http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.3.6.tgz  


第三步:编译和安装 
首先是Ruby 
Ruby代码 
  1. tar xzvf ruby-1.8.7-p174.tar.gz  
  2. cd ruby-1.8.7-p174  
  3. ./configure –enable-shared –enable-pthread CFLAGS=-D_XOPEN_SOURCE=1  
  4. make  
  5. sudo make install  
  6. cd ..  

安装好使用which ruby命令你会发现/usr/local/bin/ruby 
使用ruby -v,你会发现ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.2.0] 
然后是RubyGems, 
Ruby代码 
  1. tar xzvf rubygems-1.3.6.tgz  
  2. cd rubygems-1.3.6  
  3. sudo /usr/local/bin/ruby setup.rb  
  4. cd ..  

安装rails3.0beta 
Ruby代码 
  1. sudo gem install tzinfo builder i18n memcache-client rack \  
  2.         rake rack-test erubis mail text-format \  
  3.         thor bundler  
  4. sudo gem install rack-mount -v=0.4  
  5. sudo gem install rails –pre  

装好后rails blog,失败,漏装了sqlite3-ruby 
Ruby代码 
  1. sudo gem install sqlite3-ruby  

装好后,再测试一下 
Ruby代码 
  1. rails blog  
  2. cd blog  
  3. rails server  


打开Safari访问http://localhost:3000/成功!

原文地址:http://damezc.javaeye.com/blog/627937

配置个性化的GEdit编程环境

| Comments

使用gEdit搭配terminal来写程序也有一段时间了,但一直当它是windows下的notepad,没有好好熟悉下它,今天无意中发现原来gEdit也可以打造一个不错的编程环境。这里对相关的资料收集总结了一下,与大家共享。
gEdit是GNOME桌面环境中默认的文本编辑器,它简单易用,对中文支持良好,支持多种字符编码,同时具有开放的插件支持特性。通过安装插件,作一些 简单的设置,gEdit就可以做为一个简洁的编程环境。在我的ubuntu 8.04下,默认情况只安装了gedit包,还有以下几个插件:

代码:
   Change case: Changes the case of selected text.
   Document Statistics: Analyses the current document and reports the number of words, lines, characters and non-space characters in it.
   External tools: Execute external commands and shell scripts. (More)
   File Browser: A file browser plugin allowing to easily access your filesystem (includes remote mounts, creating new files/dirs, monitor dirs for changes, etc) (More)
   Indent: Indents or un-indents selected lines.
   Modelines: Emacs, Kate and Vim-style modelines support for gedit.
   Python console: Interactive python console standing in the bottom panel.
   Snippets: Insert often used pieces of text in a fast way. (More)
   Sort: Sorts a document or selected text.
   Spell: Checks the spelling of the current document.
   Tag list: Provides a method to easily insert into a document commonly used tags/strings without having to type them.
   Insert Date/Time: Inserts current date and time at the cursor position.


就编程而言,我觉得比较有用的有External tools(外部工具),通过它在菜单上集成shell命令来编译运行程序(由于不是交互性的shell,所以不便用于debug);File Browser(文件浏览器),提供一个多文件(工程)的视图,还有可以编辑远程文件,虽然后者我很少用到;Snippets(片断),提供一种代码模板 以快速输入,如我在snippets->C++下定义了如下for循环:

代码:
      for( $1 ; $2 ; ${3:++ix} )
      {
         $4
      }
      $0


并且其Tab触发器设置为forlp+tab(表示输入forlp,然后按下tab键)。之后在代码中每当我要输入for循环,在C++的源文件中,只需 输入forlp,然后按下tab键,forlp+tab就会自动扩展成上面的for循环,光标会处于$1处,此时可以直接输入for的初始条件,然后按一 下tab,光标会跳到$2处,再按tab,跳到$3处,如此类推。$3处设置了默认值++ix,如果直接按tab跳过,就为默认值++ix,如果输入 ix++之后再按tab跳到$4,默认值就会被ix++覆盖。$0为此模块最后跳转到的位置。
此外Tag list对编写网页等多tag源文件比较有用,Indent方便我们对代码进行缩进与取消缩进。默认安装好系统后,gedit能通过后缀正确识别到不同语 言的源代码,其语法高亮也做得比较好。但是要作为一个编程环境还有很多不方便的地方,此时就要安装另外一些插件来完善其功能了,首先我们安装软件源中 gedit的plugin集,terminal下输入:

代码:
      $ sudo apt-get install gedit-plugins


安装gedit-plugins。其中包括

代码:
     * Smart Spaces: Forget you’re not using tabulations.   <=== 智能空格
     * Embedded Terminal: Embed a terminal in the bottom pane.   <=== 内嵌的terminal,应该是最有用的一个插件了,有了它,我们就可以不用上面External tools来编译调试程序啦,而且也不用心烦在gedit与terminal之间来回切换了,不足之处是貌似只能有一个terminal,有时不够方便。
     * Show/Hide Tabbar: Add a menu entry to show/hide the tabbar.     <=== 显示/隐藏标签栏
     * Join/Split Lines: Join several lines or split long ones         <=== 合并/分割行
     * Color Picker: Pick a color from a dialog and insert its hexadecimal representation.  <=== 拾色器
     * Draw Spaces: Draw Spaces and Tabs           <=== 特别显示空格与制表符
     * Session Saver: Save and restore your working sessions    <=== 会话保存  不过貌似不怎么管用哦,>3<
     * Code comment: Comment out or uncomment a selected block of code.   <=== 注释代码,这下要注释大片代码就方便了
     * Bracket Completion: Automatically adds closing brackets.     <=== 自动的括号补全
     * Character Map: Insert special characters just by clicking on them.  <=== 对特殊字符集映射,暂时对我而言没什么用


安装好后将觉得有用的插件启用,不用的插件禁用掉。比起notepad已经好用了很多,但是还不够,要让gEdit变得更方便,登录gEdit的插件网站 http://live.gnome.org/Gedit/Plugins ,选择你需要的插件啦。这里写下个人觉得写代码比较有用的几个插件,仅供参考:
1.Class Browser:显示代码中类,函数,宏等的大纲,类似于VC或eclipse的类视图,支持多种语言,但这个插件相对简单,另一个Symbol Browser貌似更强大,不过暂时我找不到下载。
2.单词自动补全,有多个word completion的小插件,功能大同小异,都支持自动补全前文或所有打开的文件标签中已经出现过的单词,类似于visual assist或eclipse的自动补全功能,不足在于暂时不支持根据不同语言提供不同的关键字自动补全
3.Full screen: 在打开文件的情况下将gEdit全屏,偶尔会用下。
4.Open terminal here: 在当前文件夹下打开新terminal,有了Embedded Terminal这个插件比较鸡肋了
5.session autosave: 记录上次退出gEdit时打开的文件,下次打开时重新打开这些文件,由于止面的Session Saver好像不能用,所以装了这个。打开多个相关文件时比较有用,退出后下次就不用一个个文件手动打开啦
6.Code Formatter:自动格式化
7.snap open: 输入文件名(支持正则表达式)查找并打开文件
8.vigedit: 支持vi快捷键
9.Tabs Extend: 扩展的标签功能支持
gEdit的插件多用python来写,我们可以根据自己的偏好来修改编写,gEdit的插件网站上也有很多的插件,可以根据自己的需要酌情安装。这些插 件都放在~/.gnome2/gedit/plugins/目录下,如果没有此目录则创建一个,下载的插件可以直接放到此目录下。
很多人可能习惯去改变编辑器的配色(代码高亮,像定制vim或Emacs时常常做的那样),使经常面对着电脑写代码的眼睛没那么累,在gEdit的菜单 [编辑]->[首选项]->[字体和颜色] 中,只有4种配色可选,此外通过GUI并不能具体定制配色。要DIY配色的话,我们可以从网上下载载配置文件,添加配色,或自己重新写一个。下面提供两个 配色文件下载网站:
1. http://github.com/mig/gedit-themes/tree/master
2. http://live.gnome.org/GtkSourceView/StyleSchemes
gEdit使用的是gtksourceview,我们将后缀为.xml的文件下载并放入
1. /usr/share/gtksourceview-2.0/styles <==== 所有用户均可用
or 2. ~/.gnome2/gedit/styles <==== 只有你自己可用
重启一次gedit,就可以在[编辑]->[首选项]->[字体和颜色]选择喜欢的配色,也可以修改配色文件来DIY自己的Style.再定义一种好看的字体,对行号,备份时间等简单设置一下,整个编辑环境就相当个性,舒服啦。
虽然比不上vim,emacs的灵活,也比不上IDE的强大,但Gedit也是不错的一种工具。即使搭配了众多的插件,gEdit还是相当轻量的编辑器, 如你像我一样,用不习惯vim或Emacs,又不喜欢那些慢悠悠的IDE,那就试下系统默认安装的Gedit吧。附我的gEdit截图:

附件:
my_gEdit.png
my_gEdit.png [ 301.01 KiB | 被浏览 4616 次 ]



参考:

1. 把Gedit打造為Linux下的Textmate
http://www.ubuntu-tw.org/modules/newbb/ … t_id=39747
2. 磨快linux下免费的小刀-gedit
http://ror-party.group.javaeye.com/group/blog/195702
3. 13 Gedit Plugins to Make It a More Useful Text Editor
http://www.makeuseof.com/tag/top-plugin … 囗囗囗-linux/
4. 让linux下的gedit媲美textmate
http://www.agatezone.cn/code/archives/62
5. Pimp my Gedit (Was: Textmate for Linux)
http://grigio.org/pimp_my_gedit_was_textmate_linux

友情链接:

ljcs - gedit的c++提示插件
https://forum.ubuntu.org.cn/viewtopic.p … 12&start=0


原文地址:http://forum.ubuntu.org.cn/viewtopic.php?t=186178

 

Vim-addon-manager使用方法

| Comments

Debian系统中,对VIM插件加载方式采用独特的管理方式,Vim-addon-manager。

此工具安装后默认会检测 /usr/share/vim/registry/ 下haml配置文件,如若存在插件同名配置文件或vim-rumtime配置文件,则加载并读取,随后可以使用 vim-addons list 显示,使用 vim-addons install 来安装。

假设需要安装 NERDTree 插件,步骤如下:

1. 下载插件文件,复制到 /usr/share/vim/addons/ 下

2. 在 /usr/share/vim/registry/ 中新建 NERDTree.haml 文件,内容如下:

# vim-addons list 显示的插件名称
addon: NERDTree
# 插件描述
description: “NERDTree is a file explorer”
# 文件位置,默认当前目录为Vim-addon-manager的源地址(可使用 vim-addons -s 设置):
files:
- plugin/NERD_tree.vim
- doc/NERD_tree.txt

3. 在终端运行 vim-addons install NERDTree 完成安装。

原文地址:http://www.grick.net/archives/809

Ubuntu Vim编辑器自定义配置

| Comments

效果图如下

image

.vimrc文件配置

" An example for a vimrc file.
"
" Maintainer:    Bram Moolenaar <Bram@vim.org>
" Last change:    2006 Nov 16
"
" To use it, copy it to
"     for Unix and OS/2:  ~/.vimrc
"          for Amiga:  s:.vimrc
"  for MS-DOS and Win32:  $VIM\_vimrc
"        for OpenVMS:  sys$login:.vimrc

" When started as "evim", evim.vim will already have done these settings.
if v:progname =~? "evim"
  finish
endif

" Use Vim settings, rather then Vi settings (much better!).
" This must be first, because it changes other options as a side effect.
set nocompatible

set enc=utf-8

set fenc=utf-8

set fencs=utf-8,ucs-bom,gb18030,gbk,gbk2312,cp936

set number "show line number

set background=dark "set background color

syntax on "highlight language syntax

set smartindent "intellient indent according to above

set tabstop=4

set showmatch

set termencoding=utf-8

set fileencodings=utf-8,gb2312,gbk,gb18030

set encoding=prc

set incsearch

set nobackup

"设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
"在处理未保存或只读文件的时候,弹出确认
set confirm
"设置显示行号
set number
"与Windows共享剪贴板
set clipboard+=unnamed
"设置背景颜色
set background=dark
" 侦测文件类型
filetype on

" 载入文件类型插件
filetype plugin on
" 为特定文件类型载入相关缩进文件
filetype indent on

" 保存全局变量
  set viminfo+=!
"设置语法高亮
syntax on
set autoindent

" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength ‘\%101v.*’

" 状态行颜色
  highlight StatusLine guifg=SlateBlue guibg=Yellow
  highlight StatusLineNC guifg=Gray guibg=White

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 不要备份文件(根据自己需要取舍)
  set nobackup
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
  setlocal noswapfile
  set bufhidden=hide

" 增强模式中的命令行自动完成操作
  set wildmenu
" 在状态行上显示光标所在位置的行号和列号
  set ruler
  set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

" 命令行(在状态行下)的高度,默认为1,这里是2
  set cmdheight=2
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2

" 允许backspace和光标键跨越行边界
  set whichwrap+=<,>,h,l

" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
  set mouse=a
  set selection=exclusive
  set selectmode=mouse,key
" 启动的时候不显示那个援助索马里儿童的提示
  set shortmess=atI
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0

" 不让vim发出讨厌的滴滴声
  set noerrorbells
" 在被分割的窗口间显示空白,便于阅读
  set fillchars=vert:\ ,stl:\ ,stlnc:\

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch

"匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5

" 在搜索的时候忽略大小写
  set ignorecase

" 不要高亮被搜索的句子(phrases)
  set nohlsearch

" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
  set incsearch

" 输入:set list命令是应该显示些啥?
set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
" 光标移动到buffer的顶部和底部时保持3行距离
  set scrolloff=3
" 不要闪烁
  set novisualbell

" 我的状态行显示的内容(包括文件类型和解码)
  set statusline=%F%m%r%h%w\[POS=%l,%v][%p%%]\%{strftime(\"%d/%m/%y\ -\%H:%M\")}

" 总是显示状态行
  set laststatus=2
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
  set formatoptions=tcrqn
" 继承前一行的缩进方式,特别适用于多行注释
  set autoindent
" 为C程序提供自动缩进
  set smartindent
" 使用C样式的缩进
  set cindent
" 制表符为4
  set tabstop=4
" 统一缩进为4
  set softtabstop=4
  set shiftwidth=4

" 不要用空格代替制表符
  set noexpandtab
" 不要换行
  set nowrap
" 在行和段开始处使用制表符
  set smarttab
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 按照名称排序
  let Tlist_Sort_Type = "name"
" 在右侧显示窗口
  let Tlist_Use_Right_Window = 1
" 压缩方式
  let Tlist_Compart_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
  let Tlist_Exist_OnlyWindow = 1
" 不要关闭其他文件的tags
  let Tlist_File_Fold_Auto_Close = 0

" allow backspacing over everything in insert mode
set backspace=indent,eol,start

"if has("vms")
"  set nobackup        " do not keep a backup file, use versions instead
"else
"  set backup        " keep a backup file
"endif
set history=50        " keep 50 lines of command line history
set ruler        " show the cursor position all the time
set showcmd        " display incomplete commands
set incsearch        " do incremental searching

" For Win32 GUI: remove ‘t’ flag from ‘guioptions’: no tearoff menu entries
" let &guioptions = substitute(&guioptions, "t", "", "g")

" Don’t use Ex mode, use Q for formatting
map Q gq

" In many terminal emulators the mouse works just fine, thus enable it.
set mouse=a

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

" Only do this part when compiled with support for autocommands.
if has("autocmd")

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets ‘tw’ set to 72,
  " ‘cindent’ is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  filetype plugin indent on

  " Put these in an autocmd group, so that we can delete them easily.
  augroup vimrcEx
  au!

  " For all text files set ‘textwidth’ to 78 characters.
  autocmd FileType text setlocal textwidth=78

  " When editing a file, always jump to the last known cursor position.
  " Don’t do it when the position is invalid or when inside an event handler
  " (happens when dropping a file on gvim).
  autocmd BufReadPost *
    \ if line("’\"") > 0 && line("’\"") <= line("$") |
    \   exe "normal! g`\"" |
    \ endif

  augroup END

else

  set autoindent        " always set autoindenting on

endif " has("autocmd")

" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
         \ | wincmd p | diffthis

RubyGems常用命令

| Comments

升级ruby gem

  1. gem update –system 

查看gem版本

  1. gem -v  

查看gem版本,gems安装目录,remote sources等

  1. gem env 

查看已经添加的remote sources

  1. gem sources  


添加一个source

  1. gem sources -a ‘htt://rubygems.org’  

安装一个gem包

  1. gem install will_paginate  


指定源位置

  1. gem install will_paginate –source ‘http://rubygems.org’  
  2. gem install will_paginate -s ‘http://rubygems.org’  


指定版本

  1. gem install rails -v=2.3.5  


查看已经安装的全部gem包

  1. gem list  


或者 gem list -d 查看具体的信息,例如project的author,homepage,安装在系统中的路径 等信息,建议加上该参数…
查看d开头的gem包

  1. gem list d  


更详细的查看

  1. gem list will_paginate -d  


卸载gem包

  1. gem uninstall rails  


卸载指定版本

  1. gem uninstall rails -v=2.1.0  


查找gem包

  1. gem search will_paginate –both (在local和remote源中search含有will_paginate关键字的)  
  2. gem list -r will_paginate  
  3. gem list -dr will_paginate (我常用这个)  


查看gem包依赖其他的gem:

  1. gem dependency rails -v 2.3.5  
  2. Gem rails-2.3.5  
  3.   actionmailer (= 2.3.5, runtime)  
  4.   actionpack (= 2.3.5, runtime)  
  5.   activerecord (= 2.3.5, runtime)  
  6.   activeresource (= 2.3.5, runtime)  
  7.   activesupport (= 2.3.5, runtime)  
  8.   rake (>= 0.8.3, runtime) 

查看gem包的rdoc帮助

  1. gem server (然后http://localhost:8808查看)  


windows 平台上安装

  1. gem install hpricot –platform=mswin32 # 不指定在windows安装会报错  


不安装ri 和 rdoc

  1. gem install hpricot –no-ri –no-rdoc  


查看更多的gem帮助,可以

  1. gem -h  



项目里常用gem命令

  1. rake -T gems:  
  2. (in /usr/local/system/entos/netposa_redmine)  
  3. rake gems:build                # Build any native extensions for unpacked gems  
  4. rake gems:build:force          # Force the build of all gems  
  5. rake gems:install              # Installs all required gems.  
  6. rake gems:refresh_specs        # Regenerate gem specifications in correct format.  
  7. rake gems:unpack               # Unpacks all required gems into vendor/gems.  
  8. rake gems:unpack:dependencies  # Unpacks all required gems and their dependencies into vendor/gems.  


例如你enviroment.rb 中配置了paperclip gem

  1. config.gem ‘paperclip’‘2.3.5’  


那么

  1. rake gems:install   


将会安装paperclip 2.3.5 到你的ruby目录里,

Ruby代码
  1. rake gems:unpack:dependencies   


将会把依赖的gem包unpack 到vendor/gems 目录下,
如果你是直接从gem包copy 到vendor/gems 目录下的话,需要执行

Ruby代码
  1. rake gems:refresh_specs   


来生成 .specifications 文件

ExtJs在ASP.NET MVC环境下实验

| Comments

先从这里下载ExtJs最新的源码包,将其中的adapter和resource文件夹及几个js脚本添加到新建的mvc项目中,项目文件结构如下图:

2011-01-01_021427

下图是LINQ实体对象的结构

2011-01-01_021933

最重要的是下面的JS脚本,将这个脚本文件引用到需要展示数据的视图页面

/*!
* NameData JavaScript Library v1.0.0
* http://www.cnpc.ac.cn/
* Date: Mon Jan 25 19:43:33 2010 -0500
*/
Ext.BLANK_IMAGE_URL = '../../images/default/s.gif';
Ext.namespace('myNameSpace');
myNameSpace.myModule = function () {
	var ds;
	var grid;
	var colModel;
	var myRecordObj;
	var myReader;
	var primaryKey = 'Id';
	var setupDataSource = function () {
		myRecordObj = Ext.data.Record.create([
			{ name: 'Id', type: 'string' },
			{ name: 'CanonicalString', type: 'string' },
			{ name: 'NameAuthor', type: 'string' },
			{ name: 'Reference', type: 'string' },
			{ name: 'PublishedYear', type: 'string' },
			{ name: 'ParentId', type: 'string' },
			{ name: 'Rank', type: 'string' },
			{ name: 'Group', type: 'string' }
		]);
		myReader = new Ext.data.JsonReader(
		{
			root: 'results',
			totalProperty: 'total',
			id: primaryKey
		},
			myRecordObj
		);

		ds = new Ext.data.GroupingStore({
			proxy: new Ext.data.HttpProxy({
				url: '/Name/ListName',
				method: 'POST'
			}),
			reader: myReader,
			remoteSort: true
		});

	}; //end setupDataSource

	var getColumnModel = function () {
		if (!colModel) {

			colModel = new Ext.grid.ColumnModel([
			{
				header: '编号',
				dataIndex: 'Id',
				sortable: true,
				width: 50
			},
			{
				header: '名称',
				dataIndex: 'CanonicalString',
				sortable: true,
				width: 50
			},
			{
				header: '作者',
				dataIndex: 'NameAuthor',
				sortable: true,
				width: 50
			},
			{
				header: '文献',
				dataIndex: 'Reference',
				sortable: true,
				width: 50
			},
			{
				header: '年代',
				dataIndex: 'PublishedYear',
				sortable: true,
				width: 50
			},
			{
				header: 'ParentId',
				dataIndex: 'ParentId',
				sortable: true,
				width: 50
			},
			{
				header: '分类等级',
				dataIndex: 'Rank',
				sortable: true,
				width: 50
			},
			{
				header: '类群',
				dataIndex: 'Group',
				sortable: true,
				width: 50
			}

			]); //end colModel
		} //end if colModel
		return colModel;
	} //end getColumnModel

	var buildGrid = function () {
		function addRecord() {
			var c_Id = new Ext.form.TextField
			({
				fieldLabel: '编号',
				name: 'Id',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_CanonicalString = new Ext.form.TextField
			({
				fieldLabel: '名称',
				name: 'CanonicalString',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_NameAuthor = new Ext.form.TextField
			({
				fieldLabel: '作者',
				name: 'NameAuthor',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_Reference = new Ext.form.TextField
			({
				fieldLabel: '文献',
				name: 'Reference',
				width: '200',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_PublishedYear = new Ext.form.TextField
			({
				fieldLabel: '年代',
				name: 'PublishedYear',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_ParentId = new Ext.form.TextField
			({
				fieldLabel: 'ParentId',
				name: 'ParentId',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_Rank = new Ext.form.TextField
			({
				fieldLabel: 'Rank',
				name: 'Rank',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var c_Group = new Ext.form.TextField
			({
				fieldLabel: 'Group',
				name: 'Group',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var newForm = new Ext.FormPanel({
				bodyStyle: 'padding: 8px',
				url: '/Name/New',
				items: [
				c_Id,
				c_CanonicalString,
				c_NameAuthor,
				c_Reference,
				c_PublishedYear,
				c_ParentId,
				c_Rank,
				c_Group
			  ]
			});

			var newWin = new Ext.Window({
				title: '添加新名字',
				width: 390,
				height: 500,
				minWidth: 300,
				minHeight: 250,
				layout: 'fit',
				plain: true,
				bodyStyle: 'padding:5px;',
				buttonAlign: 'center',
				items: newForm,
				buttons: [{
					text: '保存',
					handler: function () {
						if (newForm.form.isValid()) {
							newForm.form.submit({
								waitMsg: 'In processing',
								failure: function (form, action) {
									Ext.MessageBox.alert('Error Message', action.result.errorInfo);
								},
								success: function (form, action) {
									Ext.MessageBox.alert('Success:', action.response.responseText);
									refreshGrid();
									newWin.hide();
								}
							});
						}
						else {
							Ext.MessageBox.alert('Errors', 'Please fix the errors noted.');
						}
					}
				}, {
					text: '清除',
					handler: function () {
						newForm.getForm().reset();
					}
				}]
			});

			newWin.on('minimize', function () {
				newWin.toggleCollapse();
			});
			newWin.show();
		}; // end addRecord

		function deleteRecord(btn) {
			if (btn == 'yes') {
				var selectedKeys = grid.selModel.selections.keys;

				Ext.Ajax.request({
					waitMsg: 'Saving changes...',
					url: '/Name/Delete',
					params: {
						data: selectedKeys
					},
					callback: function (options, success, response) {
						if (success) {
							Ext.MessageBox.alert('OK', response.responseText);
							var json = Ext.util.JSON.decode(response.responseText);
							Ext.MessageBox.alert('OK', json.del_count + ' record(s) deleted.');
						} else {
							Ext.MessageBox.alert('Sorry, please try again. [Q304]', response.responseText);
						}
					},
					failure: function (response, options) {
						Ext.MessageBox.alert('Warning', 'Oops...');
					},
					success: function (response, options) {
						refreshGrid();
					}
				});
			}
		};

		function handleDelete() {

			var selectedKeys = grid.selModel.selections.keys;
			if (selectedKeys.length > 0) {
				Ext.MessageBox.confirm('Message', 'Do you really want to delete selection?', deleteRecord);
			}
			else {
				Ext.MessageBox.alert('Message', 'Please select at least one item to delete');
			}
		}; // end handleDelete 

		function toggleDetails(btn, pressed) {
			var view = grid.getView();
			view.showPreview = pressed;
			view.refresh();
		}

		function refreshGrid() {
			ds.reload(); //
		};

		grid = new Ext.grid.GridPanel({
			clicksToEdit: 2,
			colModel: getColumnModel(),
			height: 350,
			iconCls: 'icon-grid',
			id: 'myGridID',
			loadMask: true,
			selModel: new Ext.grid.RowSelectionModel({ singleSelect: false }),
			store: ds,
			stripeRows: true,
			title: '名称列表',
			width: 900,
			bbar: new Ext.PagingToolbar({
				pageSize: myNameSpace.myModule.perPage,
				store: ds,
				displayInfo: true,
				displayMsg: 'Displaying topics {0} - {1} of {2}',
				emptyMsg: "No data to display",
				items: [
					'-', {
						pressed: true,
						enableToggle: true,
						text: 'Show Preview',
						cls: 'x-btn-text-icon details',
						toggleHandler: toggleDetails
					}]
			}),
			tbar: [
				{
					text: '添加',
					tooltip: '添加一个新名字',
					//iconCls: 'add',
					handler: addRecord
				}, '-', //add a separator
				{
				text: '删除',
				tooltip: 'Click to Delete selected row(s)',

				//function to call when user clicks on button  
				//iconCls: 'remove',
				handler: handleDelete

}, '-',
				{
					text: '刷新',
					tooltip: 'Click to Refresh the table',
					//iconCls: 'icon-grid',
					handler: refreshGrid

				}
							],
			view: new Ext.grid.GroupingView({
				forceFit: true,
				groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
			})
		}); //end grid


		grid.on('rowdblclick', function (grid, rowIndex, e) {
			var id = ds.data.items[rowIndex].id;

			var u_Id = new Ext.form.TextField
			({
				fieldLabel: '编号',
				name: 'Id',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_CanonicalString = new Ext.form.TextField
			({
				fieldLabel: '名称',
				name: 'CanonicalString',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_NameAuthor = new Ext.form.TextField
			({
				fieldLabel: '作者',
				name: 'NameAuthor',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_Reference = new Ext.form.TextField
			({
				fieldLabel: '文献',
				name: 'Reference',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_PublishedYear = new Ext.form.TextField
			({
				fieldLabel: '年代',
				name: 'PublishedYear',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_ParentId = new Ext.form.TextField
			({
				fieldLabel: 'ParentId',
				name: 'ParentId',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_Rank = new Ext.form.TextField
			({
				fieldLabel: '分类等级',
				name: 'Rank',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});
			var u_Group = new Ext.form.TextField
			({
				fieldLabel: '类群',
				name: 'Group',
				width: '180',
				maskRe: /([a-zA-Z0-9\s]+)$/
			});


			var updateForm = new Ext.FormPanel({

				bodyStyle: 'padding: 8px',
				url: '/Name/Edit',
				reader: new Ext.data.JsonReader(
				  { root: 'results' },
				  [
					{ name: 'Id', type: 'string' },
					{ name: 'CanonicalString', type: 'string' },
					{ name: 'NameAuthor', type: 'string' },
					{ name: 'Reference', type: 'string' },
					{ name: 'PublishedYear', type: 'string' },
					{ name: 'ParentId', type: 'string' },
					{ name: 'Rank', type: 'string' },
					{ name: 'Group', type: 'string' }

				  ]),
				items: [
					u_Id,
					u_CanonicalString,
					u_NameAuthor,
					u_Reference,
					u_PublishedYear,
					u_ParentId,
					u_Rank,
					u_Group
				  ]
			});

			updateForm.form.load({
				url: '/Name/LoadName',
				params: { id: id },
				waitMsg: 'Loading'
			});

			var window = new Ext.Window({
				title: 'Edit Existing Name',
				width: 390,
				height: 500,
				minWidth: 300,
				minHeight: 250,
				layout: 'fit',
				plain: true,
				bodyStyle: 'padding:5px;',
				buttonAlign: 'center',
				items: updateForm,
				buttons: [{
					text: '保存',
					handler: function () {
						if (updateForm.form.isValid()) {
							updateForm.form.submit({
								params: { id: id },
								waitMsg: 'In processing',
								failure: function (form, action) {
									Ext.MessageBox.alert('Error Message', action.result.errorInfo);
								},
								success: function (form, action) {
									Ext.MessageBox.alert('Confirm', action.response.responseText);
									window.hide();
									ds.load({ params: { start: 0, limit: 10} });
								}
							});
						}
						else {
							Ext.MessageBox.alert('Errors', 'Please fix the errors noted.');
						}
					}
				},
					{
						text: '取消',
						handler: function () { window.hide(); }
					}]
			});
			window.show();
		});
	} //end function buildGrid

	var renderGrid = function () {
		grid.render('NamesList');
	}; //end function renderGrid

	var loadStore = function () {
		ds.load({
			params: {
				start: 0,
				limit: myNameSpace.myModule.perPage
			}
		});
		grid.getSelectionModel().selectFirstRow();
	};

	return {
		perPage: 30,
		init: function () {
			this.getMyGrid();

		}, //end of init method
		getMyGrid: function () {

			Ext.QuickTips.init();
			setupDataSource();
			buildGrid();
			renderGrid();
			loadStore();
		},
		getDataSource: function () {
			return ds;
		}
	}//end of return
} ();

Ext.onReady(myNameSpace.myModule.init, myNameSpace.myModule, true);

 

NameController的两个重要方法

public void LoadName()
        {
            string id = Request.Form["id"];
            string message = string.Empty;
            cnpcDataContext db = new cnpcDataContext();
            var query = from n in db.Names
                        where n.Id.ToString() == id
                        select new
                        {
                            n.Id,
                            n.CanonicalString,
                            n.NameAuthor,
                            n.Reference,
                            n.PublishedYear,
                            n.ParentId,
                            n.Rank,
                            n.Group

                        };

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            message = "{\"results\":" + serializer.Serialize(query.ToList()) + "}";

            Response.Write(message);
        }

        public void ListName(int limit, int start, string dir, string sort)
        {
            string message = string.Empty;
            cnpcDataContext db = new cnpcDataContext();
            var query = from n in db.Names
                        select new
                        {
                            n.Id,
                            n.CanonicalString,
                            n.NameAuthor,
                            n.Reference,
                            n.PublishedYear,
                            n.ParentId,
                            n.Rank,
                            n.Group

                        };
            int totalRecords = query.ToList().Count;
            JavaScriptSerializer serializer = new JavaScriptSerializer();

            var list = query.Skip(start).Take(limit);
            message = "{\"total\": \"" + totalRecords + "\", \"results\":" + serializer.Serialize(list.ToList()) + "}";

            Response.Write(message);
        }
 

 

什么是生物地理学?

| Comments

本文部分内容翻译自Brown, J., H. & Lomolino, M. V. 1998. Biogeography. Sunderland, Mass.: Sinauer Associates.

生物地理学是记录和理解生物有机体空间格局的学科,它研究生物过去和现在的地理分布,理解改变物种和生物群系(Biota)空间格局的生物学和自然地理过程(Brown & Gibson, 1983; Cox & Moore, 1993; Brown & Lomolino, 1998; Cox & Moore, 2000; Avise, 2004)。或更为简单的定义为:有机体地理分布的研究(Crisci, 2001; Crisci, & al., 2003)。尽管生物学家们对生物地理学基本上是格局的发现和过程解释的科学逻辑都一直认同(Brown & Lomolino, 1998),然而对相同格局下原因性过程的解释却存在相当不一致的观点。

在过去的20年里,分支系统学理论和方法在生物地理学问题中的应用(Nelson & Platnick, 1981; Wiley, 1988; Brooks & McLennan, 1991; Bremer, 1992; Harold & Mooi, 1994; Morrone, 1994; Bremer, 1995; Morrone & Crisci, 1995; Ronquist, 1997; Humphries & Parenti, 1999; Morrone, 2001; Morrone., 2002; Morrone, 2005)、生物地理学研究认识论和科学基础的争论(Nelson & Ladiges, 1996; Hovenkamp, 1997; Morrone, 2001; Ebach & Humphries., 2002; Morrone., 2002; van Veller, & al., 2002; Wilkinson, 2003; Van Veller, 2004; Ebach, & al., 2005; Ebach & Morrone, 2005; Knapp, 2005; Morrone, 2005; Riddle, 2005),使生物地理学研究经历了一场非凡的革命(Crisci, 2001)。从传统的经验性描述方法,转向了以量化分析方法对格局的发现;以事件为基础的过程模型的建立;格局和过程关系假说的检验这样一个严格的分析论证的研究领域。

生物地理学在科学基础、基本概念、方法论、认识论上的多样化体现在各种经典生物地理学教科书所显示的研究主题。例如:分析生物地理学(Myers & Giller, 1988)、动态生物地理学(Hengeveld, 1990)、历史生物地理学(Crisci, & al., 2003)、分支生物地理学(Humphries & Parenti, 1999)、岛屿生物地理学(Whittaker, 1998; MacArthur & Wilson, 2001)、泛生物地理学(Craw, & al., 1999)、系统发育生物地理学(Avise, 2000)、地区生物地理学(Morain, 1984)、隔离分化生物地理学(Nelson & Platnick, 1981)、古生物地理学(Lieberman, 2000)等。

源于早期19世纪博物学家de Candolle(de Candolle, 1820)对植物地理分布格局解释在不同的空间和时间尺度上的考虑(Nelson, 1978; Lieberman, 2000; Crisci, 2001),研究实践中生物地理学常被划分为历史生物地理学和生态生物地理学两个阵营(Myers & Giller, 1988; Brown & Lomolino, 1998; Cox & Moore, 2000; Crisci, & al., 2003; Crisci, & al., 2006)。生物学家们普遍认为历史生物地理学涉及大的,经常是全球尺度上上百万年的进化过程,生态生物地理学主要涉及发生在较短的时间和小空间尺度上的生态学过程(Myers & Giller, 1988; Cox & Moore, 2000; Lieberman, 2000; Crisci, 2001; Lieberman, 2003; Crisci, & al., 2006)。

尽管生物地理学在研究实践上的多样性和争论,在前达尔文时期所提出的许多有趣的生物地理问题今天依然是生物地理学家们尝试进行回答的问题(Browne, 1983)。其中有些已经被凝练为生物地理学研究永恒的主题。例如:1、根据地球上生长的生物群系对自然地理区域的分类(世界生物地理区划);2、重建生物群系的历史形成过程,包括它们的起源、扩散和多样化;3、解释不同地理区域间生物种类、数目的差异;4、以亲缘类群个体和居群的特征来解释地理变异特点,包括形态学、行为、居群动态的趋势等(Brown & Lomolino, 1998)。

以世界生物地理区划的研究为例,从最早布丰根据哺乳动物对世界生物地理区域的考虑(Buffon, 1707-1789),到19世纪Wallace(Wallace, 1876)和Engler(Engler, 1879-1882)对世界动植物区、地区的划分,20世纪的Diels(Diels, 1908), Good(Good, 1947, 1953, 1964, 1974 1964, 1974 #6185)的修订,到Takhtajan(Takhtajan, 1978; Takhtajan, 1986)的世界植物区系区划方案,以及在此基础上由Cox(Cox, 2001)和Morrone(Morrone., 2002)分别修订的版本,吴征镒(Wu, 1996)提出的东亚植物区系界的新方案等,都遵循的一个基本前提,那就是早期布丰(Buffon, 1707-1789)所观察到的现象:世界不同地区具有相当不同的生物类群和生物群系,也就是著名的布丰法则(Nelson, 1978; Brown & Lomolino, 1998)。布丰法则是对早期前进化论时期,林奈等非进化理论指导下,以起源中心-散布假说,物种时间和空间上的不变性和静态观点来解释地理分布格局的思想颠覆。他给我们提供了现代生物地理学理论的两个关键的组成部分:气候和物种是可变的(Brown & Lomolino, 1998)。

尽管我们认同生物在进化过程中会经历相同或者相似的地质学、气候事件的影响,然而由于类群起源时间、生物学特征、多样化速率、环境适应性的差异,植物类群的生物地理区划相当不同于动物学家们(Prichard, 1826; Swainson, 1835; Sclater, 1858; Darlington, 1957; Simpson, 1962)的考虑。

生物地理区划本质就是对生物地理格局的发现。基于被子植物地理分布的全球分析必然发现的是被子植物全球地理格局特征,这一格局并不一定能够适用于哺乳动物或者是鸟类,但由于地球和生命有机体进化的一致性(Croizat, 1958; Croizat, 1964,1981,1982),不同生物类群所表现的生物地理格局将有可能存在不同程度的相关和一致性(Nelson & Platnick, 1981; Humphries & Parenti, 1999)。例如代表典型冈瓦纳-南半球间断分布式样的南山毛榉(Nothophagus)(Melville, 1982; Heads, 1985; Martin & Dowd, 1993; Linder & Crisp, 1995,1998; Poole, 2002)和平胸鸟类(ratite birds)(Brown & Lomolino, 1998),环热带间断分布的PhaceliaSaniculaBowleisiaOsmorhiza(Solbrig, 1972b,a)。正是由于这种生物地理学普遍格局的存在,使我们有可能发现导致这些共有格局的重要地质、气候、生物迁移事件、绝灭,从而重建生物地理格局的历史。在格局分析的基础上对产生这种格局的过程的解释就构成了我们对生物地理学的理解。

基于全球动植物地理分布的区划方案为基于特别类群研究,找寻其地理起源中心或者多样化中心的研究(Hooker, 1844-1860; Darwin, 1859; Hooker, 1859,1861,1866,1881; Hill, 1929; Takhtajan, 1957; Takhtajan, 1969; Raven & Axelrod, 1974; Beck, 1976; Takhtajan, 1986)提供了一个可参考的地理分类方案,也是传统植物区系地理学研究中划分区系成分、类群地理成分,探讨区系的来源和演化的重要依据。

然而,早期这些全球生物地理学格局研究的工作由于缺乏全面的生物多样性知识的积累,存在较大的局限性。在面对大量类群和地理分布信息时,缺乏有效的定量分析以及多元统计方法上的检验(Proches, 2005),结论的推断存在相当大程度上的经验性。对全球生物区划大尺度方案下进一步的生物地理区域的细化,目前主要依靠专家知识和替代性环境变量,如土壤类型、气候、地质和植被类型等的考虑(Thackway & Cresswell, 1995; Adey & Steneck, 2001; Olson, & al., 2001)。虽然近年来有基于类群全球性分布的研究(Conran, 1995; Proches & Marshall, 2001),科和属级水平生物地理学格局的探讨(Gaston & Blackburn, 1995; Gaston, & al., 1995; Gaston, 1996; Qian, 1998; Qian, 1999; Qian & Ricklefs, 1999,2000; Kier & Barthlott, 2001; Qian, 2001; Qian, 2002; Gaston, 2003; Qian, & al., 2003; Qian & Ricklefs, 2004)和全球维管植物多样性格局的研究(Barthlott, & al., 1996; Barthlott, & al., 1999; Barthlott, & al., 2005; Kier, & al., 2005; Mutke & Barthlott, 2005),量化分析和统计检验技巧的应用(Williams, & al., 1999; Qian, 2001; Kingston, & al., 2003; Proches, 2005),但都缺乏建立全球格局或者说生物地理学区划方案的考虑,同时上述这些研究多侧重生态时间和过程的考虑,缺乏对生物进化全局性特征的考虑。尽管这些“生态地理区”在保护研究中的价值是不可否认的,但并不能与真正的生物地理学区域混淆,后者是由动植物的地理分布信息所决定的(Proches, 2005)。

因此,利用世界维管植物在科和属不同的分类阶元上地理分布信息的综合,从历史生物地理学的侧重点上建立维管植物全球格局的研究将有可能为探讨全球生物多样性的来源、维持机制提供一个新的视野。

生物地理学的历史

生物地理学学科有着相当长的发展历史,学科本身的发展与进化生物学和生态学有着密不可分的关系。生物在空间上的分布和变异是进化生物学家们最为感兴趣的问题之一,其中包括本学科著名的几个先驱,如华莱士,达尔文和拉马克。生态学是本领域相对较为年轻的一个分支学科,主要是根据环境条件的影响和物种间的相互作用来解释生物地理学的格局。然而,生物地理学,生态学和进化生物学都有着相当古的学科来源的历史,可以追溯到达尔文革命之前。实际上,早年亚里斯多德曾经冥思苦想的问题在今天仍然是生物地理学家们正在思考的问题。例如:亚里斯多德曾在其著作中提到如下关于生物地理学的论题:

“但是,如果河流有形成和消退的过程,如果地球各个部分并不总是潮湿的,那么海洋也一定相应发生变化。假如有一些受到海侵和海退影响的地区,那么很明显,地球的整个区域并不总是海洋,也并不总是陆地,而是处在一个随时间变化的过程当中。”(Meteotologica,ca.355B.C.)

亚里斯多德为了解释自然世界的变异,提出了动态地球的预言性观点。他是试图回答生命从哪里来?它们是怎么形成如此的多样性和散布到整个地球表面?等问题的科学家之一。尽管亚里斯多德有着极其伟大的远见,但回答这样的一些问题需要对地球上的自然地理和生物特征有着相当彻底的认识作为基础。因而,生物地理,生态和进化不可避免的和探险时代有着密切的渊源。正如我们接下来将论述的,早期的欧洲探险家们并不是仅仅为他们所采集的标本贴上标签和编制一个目录。可能是惊奇于世界如此之多的多样性的原因,他们立刻试图去回答世界各个生物群系的相似和差异的来源问题。他们所采用的比较方法在当时有着相当的意义,到18世纪生物地理学的研究开始具体到分布的基本格局和地理变异方面。下面将简要回顾生物地理学从探险时代到现在形成为一门成熟和受世人敬仰的学科的基本历程。

现代生物地理学的诸多研究主题实际上都有着非常悠久的历史,很多都可以追溯到前达尔文时代。但这并是说生物地理学在过去的几十年里并没有取得长足的进步和发展,而是说这么学科从其思想的发源和开端时,就已经成为一个在历史积累基础上不断进取和创新的学科。诚如牛顿曾经的名言,如果说我能够在物理学方面有大家公认的远见,那么仅仅是因为我是站在巨人的肩膀上。生物地理学科的发展和积累也同样是站在科学历史这个巨人的肩膀之上,每一个有远见的生物地理学家也同样是站在他们前人的肩膀上。

探险时代

这里很难理解大约在250年前,生物学家们仅仅对我们现在所知道的地球植物和动物的1%做了描述和分类。生物地理学在本质上是与探险活动的日益繁盛和新的生命有机体的发现成加速发展的。18世纪的生物学家和博物学家们是在上帝的号召下勤奋地探索丰富多样的生命世界。当时流行的一个观点是,当探险家或者博物学家们编撰了完全的地球生命有机体的目录时,创世纪的神话将得到一个理想的答案。直道18世纪中期,仍然流行的地球地质历史的观点是地球是静止不动的,它的气候和栖居之上的物种也是不变的。然而,当早期的生物地理学家(当时称他们为博物学家或仅仅是地质学家)带回日渐增多的丰富的各种标本材料和记录时,有两个问题是创世纪的神话所不能解释的。一是生物学家迫切需要一个标准的和系统化的分类方案来处理大量的标本材料;另一个是,如此之小的诺亚方舟如何能够承载如此之多的物种?而且它们现在看来,它们能够很好的适应极其不同和相差很大的气候和环境条件。因而,人们开始怀疑,一个小小的诺言方舟是否真的能够居住这样多适应不同生活条件的物种,即使能够在这个小舟上共处一地,那么,它们又是如何扩散和定居到世界上的其它地区的?

18世纪最具远见和抱负的生物学家之一是卡尔.林奈(1707-1778)。他认为,上帝已经对自然世界做出了明确的规划和设计,他的任务就是从方法上描述和编制天堂博物馆的名录而已。到18世纪末期,林奈形成了一个对所有生命的分类方案,其中双命名法则至今仍得到应有。同时,林奈也致力于回答物种的来源问题。像与他同时代的学者们一样,他认为地球和居住在上面的物种是不变的。但也意识到,用创世纪的神话来来解释物种的数目,多样性的格局时遭到巨大的挑战。快速增加的物种名单里包括那些适应于潮湿的热带到干旱的沙漠,森林,冻原等多种环境条件的物种。如果说物种是不变的,那么它们是怎样从一个地点(诺言方舟的着陆处)扩散到各种不同的环境中去的呢?林奈的解释尽管可能是幼稚的,但在逻辑上是合理的。他假定生命起源(或者说是幸存于圣经的大洪水),Ararat山的斜坡上,该山位于现在土耳其和亚美尼亚(Armenia)的边界处,据说当时诺亚方舟曾经停靠的地方。沿着山的斜坡的海拔梯度是一系列的环境带分布,从干旱的沙漠到严寒的冻原。林奈推测每一个海拔地段栖居着不同的物种群,每一个种都是不变的而且很好的适应了它所栖居的环境。一旦洪水撤退的时候,这些物种从山上向下迁移并且最终占领了它们现在世界各个不同地区的栖居地。

布丰(1707-1788),是与林奈同时代的另一位伟大的生物地理思想渊源的先驱。但是他对哺乳动物及其化石的研究使他对生命的起源和扩散的解释完全不同于林奈的观点。他注意到,如果用林奈的观点来解释的话,有两个方面的问题将没有办法澄清。首先,他观察到地球上具有相似环境条件的地区经常栖居着显著不同的动植物,第二,布丰推测,林奈的扩散观点需要物种在迁移的过程中通过一些它不适宜生活的地区。例如,那些生活在高山森林中的物种在侵入北方的落叶和针叶林的过程中,不得不跨过一些沙漠地区。如果物种不变,那么它就不能适应新的环境,因此它们的散布将受到那些不适应环境的阻隔。所以,布丰推测,生命并不是起源于温带欧亚的某一个高山,而是起源于偏北方的陆块,那里在早先的地质时代气候是更均匀和一致的,他推测那个北方的陆块在新世界和旧世界是一个相对连续的整体;因而当气候变冷的时候,生命能够由北向南迁移到它们现在的位置。在这个迁移的过程中,新世界和旧世界的居群被隔离开来,并且逐渐发生了改变,直到新旧世界的热带生物群系共有极少的生命形式为止。可能现在看起来,布丰的解释似乎是空洞的,但是他给我们提供了现代生物地理学理论的两个关键的组成部分:气候和物种是可变的,另一个是世界上环境相似但是分隔的地区有着显著不同的哺乳动物和鸟类集群,这一观察结果也就是我们现在所著称的生物地理学原则,布丰法则

从1750年到19世纪的早期,许多布丰的同事们不断的对世界各地的生物进行调查,编撰它们的目录,以及对他们的探险活动写出各种报告。其中一个最著名的博物学家或者说采集者是Sir Joseph Bank,他和James Cook上尉在Endeavor号(1768-1771)做了3年的环球旅行,采集了大约3600号植物标本,包括大约1000个未曾发现过的新种(也就是说除了林奈已经在《植物种志》中描述过的6000多种植物以外)。Bank和其他博物学家们的努力导致了两个方面的重要发展。一个是他们再次确认和概括了布丰法则,第二是他们对自然世界的复杂性有了更为全面的认识和理解。Bank和他的同伴们发现了一些非常有趣的布丰法则的例外,尤其是世界广布种的存在。而且他们也注意到了一些现代生物地理学中依然应用的主要生物地理格局。在18世纪的后半期,Johann Reinhold Forster(1729-1798)对植物地理学做出了许多重要的贡献,在他发表于1778的环球旅行的报告中,他第一次系统性的论述了世界的生物群系地区,这其中的每一个地区都是由它显著的植物集群来定义的。他发现,布丰法则不仅仅适用于哺乳动物和鸟类,而且对植物也是同样适用,也不仅仅是适用于热带地区,也适用于世界广泛的其它地区。Forster也描述了这些地区区系和环境间的相互关系,和动物的群系是如何随着植物群系的变化而变化的。他也提出了一些现代生物多样性和岛屿生物地理学理论的重要观点。他曾经注意到,岛屿生物群落比大陆有较少的物种,岛屿上的物种数目随它们可以利用的资源(岛屿面积和生境的多样性)而增加。他也注意到植物多样性从赤道到两极逐渐减少的趋势,他把这种趋势归因于地球表面热量变化的纬度趋势。

1972年,另外一个德国的植物学家,Karl Willdenow(1765-1812),写下了一个主要的植物地理学的总结。他不仅描述了欧洲的区系省,而且还提供了一个关于欧洲植物区系起源的非常新颖的解释。Willdenow并不同意一个单一起源地点的说法,他认为有许多的起源地点–一些在久远的时代被全球海洋所分隔的山体。每一个这样的山体避难所被一些当地起源的物种集群所占据。当洪水撤退的时候,这些植物从它们所栖居的山头扩散到世界的其它区系地区。戏剧性的是,不是Willdenow而是他的学生Alexander von Humboldt(1769-1859),现在所公认的植物地理学之父,根据他自己在新世界热带的生物地理知识经历,继承和发展了他的导师的观点。他是一个伟大的博物学家,敏锐地意识到自然世界的基本法则需要通过分布的研究来发现。在经过对Latreille的节肢动物的研究和Cuvier对爬行类动物的研究工作进行总结后,Humboldt更进一步将布丰法则的应用扩大到植物和许多的陆生动物。在一篇发表与1805年的文章中,他注意到Forster所发现的沿纬度梯度的区系地带现象也发生在沿海边梯度的更局部的尺度上。在对安第斯山进行了多次的区系调查之后,他得出结论,甚至在地区尺度上,植物是也是分布在相应的海拔带,或称之为“区系带”(floristic belt),它们分别在低海拔地段对应于纬度梯度的热带地区,在高海拔地段对应于北方和极地地区。

因此,Forster, Willdenow和Homboldt都观察到,植物的集群现象是强烈地与局部气候相关。其中,Homboldt的一个朋友,瑞士的植物学家,Augustin P. de Candolle(1778-1841),增加了他自己的一些重要的生物地理学观点,生物有机体不仅仅受到光,热和水的影响,而且它们会相互竞争这些资源。Candolle强调了生物群系省或者是地区(他称之为Habitations)和局部生境(他称之为stations)的差别。后来,他转向了Forster所提出的岛屿生物区系的问题,进一步阐述到,岛屿物种的数目受到岛屿面积最明显的影响,另外的因素,比如,岛屿年龄,火山化,气候和隔离情况也影响了它的区系多样性。因而,可以说,生态生物地理学和现代生态学的许多主要组成部分都是建立在1800的早期。而且,看起来,Candolle是第一个在1802年的文献中提到关于竞争和斗争的观点,此观点现在已成为进化和生态学理论的重要基础。

19世纪的生物地理学

到18世纪的早期,生物地理学的三个主要命题已经得到建立;1、基于地区生物区系来划分区系地区;2、重建生物群系的历史形成,包括它们的起源、散布和多样化;3、检查不同地区间生物种类、数目的差异。生物地理学家们正在研究地区生物群系的显著性,它们的起源、散布,以及造成它们生物群系中种类、数目差异的原因。布丰对新旧世界热带哺乳动物的观察结果被归纳为一个一般性的原则,而且在不同的生物类型中得到应用。但是,随着人们日益认识到自然世界地理变异的复杂性,生物地理学也面临着更大的挑战。科学家们在描述基本的地理格局方面取得了极大的成功,包括我们现在仍然有许多在继续描述和研究的格局,但我们对这些格局的解释却相当的缺乏。当我们面对这样的提问:为什么那些相互隔离但具有相同气候条件的地区会有如此显著不同的物种?我们常常难以去回答这样的问题。这种因果的解释不得不既包括对相似性的解释有要包括对差异性的解释。对布丰法则的应用也不得不面对它的例外情况。

在接下来的19世纪里,布丰法则依然得到众多学者的不断应用和证明,无论他们是坚持物种不变,静态地球的观点还是接受物种可变、动态地球的观点。而坚持这两种不同观点的学者们对生物群系的地理分区,解释它们的起源、散布和多样化存在根本性的差异。而19世纪一些另外的生物地理学家则把他们的精力放在物种丰度的基本格局上 (生物地理学的第三个主题)。这种物种的丰度格局在许多分类群得到了较好的验证,当地种 (Local species) (在Candolle’s Stations”的意义上) 的数目将随面积的增加而增加, 随着纬度的增加而减少,随海拔高度的增加而减少。但是为什么会是这样的格局呢?正如我们前面所总结的一样,早在两个多世纪以前,我们的生物地理学家们 (当时或因该称之为博物学家或地质学家) 描述了许多我们至今仍然在不断研究的格局,检查了这些格局的普遍性,并形成了一些因果解释。然而,他们大部分学者仍然在“为什么”的问题上遭遇到极大的挑战。他们对动态地球和物种认识已经相当落后于我们日益增加的地质机构、气候格局和生物多样性知识的积累。对这些基本格局形成的“为什么”问题作出可以验证、更严格的回答必然需要等到19世纪时期三个极为重要的科学贡献:

1、对地球年龄的较好的估计 (许多早期的生物地理学家是在地球仅仅有几千年的历史概念下做的研究);

2、对海洋、陆地动态本质的好的理解 (大陆漂移和板块构造学说);

3、对于物种的散布和多样化的较好的理解-特别是,散布和隔离分化,绝灭和进化

生物地理学研究中持久的主题

1. 基于地区的生物群系分类自然地理区域

2. 重建生物群系的历史发展,包括它们的起源、散布和多样化

3. 解释不同地区生物区系在物种数目和种类上的差异

4. 解释亲缘类群在个体、居群水平上的地理空间变异,包括形态、行为和群落统计

为了获得上述三个方面的发展,生物地理学不得不利用地质学和古植物学的新发现。19世纪里,Adolphe Brongniart (1801-1876) 和 Charle Lyell (1797-1875),他们分别被誉为古植物学和地质学之父,分别得出了地球的气候是高度变动的结论。他们都利用化石记录去推测过去的气候条件 (Ospovat 1977)。他们发现许多适应于热带地区气候条件的生命类型曾一度在欧洲的北部地区繁盛。Lyell也曾经记录了海平面的变化情况,地球的表面曾经由于山体的抬升和海水的侵蚀而发生了变形。由此,他认为这是解释为什么在山体的上部会发现海洋生物化石的原因。Lyell 也给我们提供了绝灭曾经发生的不可辩驳的证据。许多曾经很好的适应了已经存在的气候条件和生物区系中的主体成分没有给我们留下可以追溯的化石记录和痕迹。这种情况也归因于气候的变化和随之发生的海平面变化。然而,尽管有绝灭的发生,Lyell却相信,物种是不会变化的,至少从新种的产生并不是来源于现存的物种意义上看是这样的。而且,他还相信,尽管绝灭事件的影响,但在较大的尺度上看地球上的生物多样性是保持一致均匀。他认为,在每一次的绝灭之后就立即发生了一次物种系列的产生事件,这些新产生的物种又很好地适应了已经改变的气候条件,这样他的绝灭发生但总体生物多样性不变这个自相矛盾的说法才有了逻辑上的自恰性。而且他的这种观点表明:不仅仅有许多的创造中心,而且有许多的创造事件的发生。Lyell在岩石地层和化石记录中观察到地球表面和它的生物群系是动态的直接无可辩驳的证据。他声称,这些变化是来源于自然过程,比如山体的建成、侵蚀,而且这些作用过程一直贯穿于地球的整个历史过程中。他的这一理论代替了早期对地球的地形和生物栖息地灾变性地解释方式。Lyell的均变论理论使当时的学者们从动态的角度思考生命世界,因为,毕竟生物和他所栖居的环境是不可分离的部分。同时,Lyell和另外的地质学家,如James Hutton (1726-1797)也认识到,如果地球的这些地质过程是逐渐缓慢变化的,那么地球的年龄将明显相当古老,而不仅仅是几千年的问题。也只有在地球历史是古老和漫长时间概念下,化石记录所反应的山体形成、侵蚀,古大陆的淹没,整个生物群系的迁移和替代才是容易理解和解释的。

我们将看到,均变论和地球具有相当古老历史概念的接受。正是接受了这样两个重要的认识,达尔文和华莱士才能把他们对有机体多样性的形成接受为收到自然选择这个逐渐而持续的作用的结果。然而,具有讽刺意味的是,Lyell尽管拒绝了无可争辩的事实-物种是来源于其它的物种的观点,但在他同时代的学者们观点的影响下,他也不同意物种是和他所研究的地质特征一样,是始终作用于时间尺度上的自然过程的“创造”或结果,但无可否认的是Lyell在生物地理学的发展中起着相当重要的作用,这一点主要体现在他的巨著-《地质学原理》一书里面。在这部巨著里,他不仅详细讨论了地质动态过程和地球的古老性,而且还论述了陆生动植物的地理学及海洋藻类的分布。

四个英国科学家

19世纪的博物学家里最著名的是四个英国的科学家:查尔斯.达尔文 (Charles Darwin)、(Joseph Dalton Hooker)、(Philip Lutley Sclater)和 (Alfred Russel Wallace)。尽管在此期间许多另外的学者们发表了许多重要的工作,但这四个英国科学家对生物地理学和进化生物学的主要发展做出了极大的贡献。他们都研究早期Linnaeus,Buffon,Forster,Candolle和Lyell的工作,都曾经作为博物学家对新旧世纪热带和温带地区的高山、群岛进行过调查和研究。他们都有一个共同的奋斗目标:去解释生命世界的多样性,阐述生物群系的起源、散布和多样化。因此,他们自然而然的成为生物地理学和进化生物学发展过程中最著名的科学家,并且相互之间建立了相互尊重和持久的友谊。这四个科学家之间的书信中常常包含和他们正式发表的文章一样令人启发和具有远见的思考。在这些信函中,他们表达了对生物多样性问题的关注和肯定了揭示自然世界的一个关键问题是研究分布格局。在Darwin 1854年给Hooker的一封信中,Darwin曾经这样写到:地理分布是一个伟大的主题,几乎是了解创造法则的关键。

带着Lyell的《地质学原理》一书的复印本,Darwin在1831年乘HMS Beagle号海船踏上了5年的旅行,作为一个博物学家和绅士,他伴随他的上尉Rober Fitzroy足迹遍及太平洋、大西洋、印度洋的岛屿,热带地区,南美的大草原和安第斯山地区,研究了各个地区的地质学、土著动植物、土著人群,并驯养了一些野生动物来尝试理解生命的秩序。后来他基于自己日记和采集标本的资料发表了一份他的探险和观察的令人着迷的报告。Darwin被他所观察到的格局及感到着迷而又困惑:那些绝灭的哺乳动物化石在阿根廷的出现,海贝类在安弟斯地区高海拔地区的出现以及岛屿上出现的非常独特的生命形式。加拉帕戈斯群岛 (Galápagos Archipelago)不同的海龟和金丝雀的变异令他产生了是地理隔离推动了居群内和居群间可遗传变异的形成的看法。在回到英格兰后,他形成了他的进化理论,用自然选择学说解释新物种形成的基本机制,而且这种自然选择的作用依然在自然世界里发生着。这一理论被誉为历史上最著名的科学进步,已经渗入到生物地理学的各个方面。

Darwin的自然选择作用下的物种起源的进化理论的发表是个非常有趣的问题,对此有相当多的评论。他在1845年起草了他的这一理论的手稿,但他延迟到15年后才正式发表,在这漫长的15年里,他仍然在不断的收集证据来支持他的理论。最终,当他得知另外一个才华横溢的科学家,Alfred Russel Wallace也正在撰写和他同样的理论时,他不得不立即发表了他的这样作品。在1858年的林奈学会上Darwin和Wallace的文章被同时公布,第二年,Darwin出版了他的伟大作品-《物种起源》,一出版便成为最畅销的书籍。

Darwin对生物地理学的贡献怎样去评价都不为过分。他和华莱士提供了我们理解有机体在时空上分布和适应变化的基础。他提出生物群系的多样性和适应来源于自然选择,散布、最终的隔离和间断是来源于长距离的散布。Darwin对散布学说的坚持和热情超过了生物地理学发展史中的任何一个学者。他的这一观点来源于他对隔离生物群系的观察和创造性的散布和殖民“试验”。通过这些研究,Darwin认为那些表面看起来似乎不大可能的事件,比如在泥沼中的种子被鸟类的脚所携带,是陆生植物殖民到海洋岛屿最可能的方式。

Darwin对散布观点的坚持直接威胁到19世纪人们长期坚持的生物地理学中静止的观点。在19世纪的中期,这个老的观点得到了瑞士籍博物学家Louis Agassiz (1807-1873)的拥护,他曾经培养了许多北美著名的动物学家和地质学家 (Dexter 1978)。在他1848和1855的两篇文章中,Agassiz声称,不仅物种是不变和静止的,而且它们的分布也是如此,它们都生活在它们的创造中心及其相近的地方。然而,由于Darwin的辩论和Asa Gray和Alfred Wallace的支持,这种静态不变的观点最终被19世纪的生物地理学家们放弃 (Fichman 1977)。

但是由散布理论阵营所发起的这场斗争才刚刚开始。不久之后,他们就遭遇到扩张学派 (Extentionists) 更强烈的反对。扩张学派的阵营并不比散布学派逊色,他们有受人尊敬的科学家,象Charles Lyell,Edward Forbes和Joseph Hooker。两个阵营都同意分布在时间和空间上是动态的。然而,扩张学派认为,通过巨大和持久的障碍进行长距离的散布是不可能的,不能用来解释分布的动态性和相关的现象,比如世界分布种和间断分布。他们提出物种的散布是通过巨大的但现在已经淹没的陆桥和古陆。尽管Darwin非常尊敬Lyell,但再也没有什么比扩张学派象一个厨子烹制薄烤饼一样容易地提出的“陆桥”更让他感到恼火的了。在一封1856年给Lyell的信中,Darwin抱怨到:“地质学的跨步前进,你的学科所正在经历和发生的状况……如果你不及时的阻止这种情况的发生,如果对于地质学家有一个接受惩罚的低级地方,我相信,那就是你-我伟大的主人,最应该去的地方。”

尽管Darwin充满激情和持久的争辩,但扩张学派仍然在19世纪的后10年里保持了很大的影响。其中他最大的对手就是Joseph Dalton Hooker,他也是达尔文和华莱士的朋友和仰慕者。Hooker是一个相当有报复的植物采集家 (Turrill 1953)。22岁的时候,他成为了Sir James Clark Ross领导的南半球探险队的一名外科医生助手和植物学家。探险活动期间,Hooker研究了许多南半球大陆的区系,包括澳大利亚、Tasmania,Tierra del Fuego和许多温带和近南极地区的群岛。他也曾经去过非洲、Syria、印度和北美,在那里他和Asa Gray一起研究了落基山脉的区系。除了研究他自己采集的大量标本外,他还研究了其他植物学家采集的标本,尤其是那些来自加拉帕戈斯群岛和北极、南极地区的标本。这些丰富的标本成为了他后来对这些地区区系起源研究最原始的材料。

1843年回到英格兰后,Hooker和达尔文建立友谊,他非常钦佩Darwin对在Beagel号所进行的世界旅行的报告。在他们建立友谊的一年内,Hooker读到了Darwin关于自然选择学说的手稿,他是除Asa Gray在1857年之外唯一读到Darwin这一理论手稿的人。他和Darwin对植物的地理分布有许多相同的观点,也是为数不多的鼓励Darwin致力于他的物种起源理论的人之一。在Darwin物种起源原来的导言部分,Hooker是唯一被致谢的人。Hooker也曾经对Wallace的《岛屿生命》一书给予了有影响的建议。

然而当谈到那些具有容易散布的种子和果实的植物通过长距离的散布到达远隔的岛屿时,Hooker主张长距离的散布是对物种的分布不充足的解释。他认为南半球区系的生物地理格局和特点并不是和Darwin的散布理论相一致的。Hooker认为 (1867),所有的区系证据表明,“南半球的分布格局是一个曾经更连续和广泛的植物区系的成员,……这一连续和广泛的植物区系背地质和气候的原因所破坏了。”

Hooker对南半球植物的亲缘关系的认识是正确的,但他却错误的解释了形成的原因。我们现在知道,这些植物的祖先曾经生活在一个巨大的南北大陆-冈瓦纳古陆,后来大陆的解体,解体后的陆块在1.8亿年前就开始相互分离开来。但是19世纪的地质学家和生物地理学家们,从Lyell、Hooker, 到Darwin和Wallace,都认为大陆相对的大小和位置在地质时间上发生了相当小的变化。所以Hooker假想出曾经存在的古陆和陆桥来说明亲缘类群的间断分布情况。但是地质学对这些所谓的古陆和陆桥从来就没有过实际的物证。到19世纪末期,许多地质学家和生物地理学家,包括Lyell,都放弃了扩张学派的教条。

但我们并不能因此就否认Hooker的巨大贡献。他仍然是原因历史生物地理学的奠基人。是他形成并应用了许多我们现在所称的“隔离分化生物地理学”的诸多原理。除了强调动态地球和气候变化的重要性以外,Hooker还强调研究岛屿生物群系是发现生物地理学过程的重要观点。他确信了早期Forster和另外的学者的观察,岛屿区系比大陆区系更处于衰弱的状态,岛屿隔离的时间越长,物种的数目将减少,但区系的特有性将增加。他也注意到最丰富的区系常常是那些具有最丰富的温度、光照和其它环境条件的地区。他还把海洋岛屿和高山区系做了类比,认为它们都受同样的过程影响。Hooker的这些远见将如我们接下来将看到的,得到了20世纪生物地理学家们的回响。

在生物地理学的早期发展中,它一直是被植物学家所主导,从Linnaeus、Candolle到Forster、Hooker。由于动物的数目更大,很多的动物种类难以收集和鉴定,因此,动物方面的研究对生物地理学的贡献明显滞后于植物是并不奇怪的。有超过70%的已知物种是动物,其中的大部分是昆虫。因而对于动物一般分布格局的认识不得不需要动物多样性分布知识的更多的积累。到19世纪的中期时候,动物学家们在这方面获得了很大的进步。Ernst Haeckel在1866年重要的动物研究工作中,他不仅仅引入了生态学 (Ecology) 的概念,而且还号召大家把自然选择学说整合到生物地理学 (他称为“Chorology”) 而作为一门新的学科来认识。

除了Darwin和Hooker,另外两个著名的英国动物学家-Philip Lutley Sclater和Alfred Russel Wallace也对生物地理学也做出了极大的贡献。Sclater是Darwin的好朋友,也是一个非常卓越的鸟类学家,他首次描述了鸟类的2个科,135个属,1067个种。他雄心勃勃的职业生涯包括,供职于伦敦动物协会的主执行委员超过30年,伦敦皇家地理协会的终身成员,鸟类研究杂志Ibis的主编。尽管在他发表的上百篇文章中只有很少的一部分是涉及动物的分布格局,但他对动物地理学和生物地理学的影响是不可忽略的。

在1857年,在林奈学会上宣读了他的一篇标题为“鸟纲的一般分布”的论文。他在文章中提出把地球表面分成各个生物地区的提案,认为这样的划分“将是地区本质最基本和自然的表面区划。”Sclater也承认,许多另外的学者也做出了一些这样的区划工作,但他认为那些早期的区划系统对动植物区系考虑的太少,所区划的边界人为性太强,比如由经纬度作为边界。他还认为,我们不仅仅是给每一个大陆编撰一个物种的名录,而应该形成一个反应各个显著生物群系起源和形成的系统。他认为有许多的物种创造地区,大部分物种一定是在它们所栖居的地方被创造出来的。因而,这种本体论的区划将能够通过分析它们生物群系的相似和差异而得出。Sclater基于他所擅长的鸟类的之时做出了这样的区划,但他有承认,由于鸟类有相当强的迁移能力,所以鸟类可能并不是进行这种区划最合适的类群。因此,他把自己的类群选定在雀形目,因为他认为雀形目比起其它的鸟类有更强的地点识别和定位的能力。尽管Sclater的区划方案显得有些粗糙,但他所做出的6个生物地理学地区的区划我们至今仍然在使用。

当Darwin和Sclater转向除生物地理学植物其它他们感兴趣的知识时,生物地理学正成为Alfred Russel Wallace毕生追求的事业。Wallace被认为是动物地理学之父,他发展了该领域许多基本的概念和原则,把他自己作为一个采集者的经验和远见与他自己的自然选择学说进行了综合。当Darwin和Sclater仅仅写下为数不多的关于生物地理学的研究时,Walllace则把他多年来的思考积累起来,写进了三部原创性的著作里面:《马来西亚群岛》(1869-曾给过Darwin),《动物的地理分布》(1876),《岛屿生命》(1880-dedicated to Hooker)。我们把Wallace对动物地理学的贡献总结在表2.1。许多Wallace所阐述的概念实际上是一些早期的科学家所提出的,但Wallace在进化的背景下对这些概念做了进一步的阐述、证明和解释。当你读这本书的时候,你可能会经常周期性地参阅Wallace所倡导和提出的许多当代的生物地理学家们依然在研究的思想。

Wallace在东印度采集了大量的标本和进行了许多自然历史观察。他是第一个应用多个分类群的分布情况来分析动物区系地区的人。Wallace的分析不仅支持了Sclater1858年的区划方案,而且更进一步进行了发展。Wallace的区划系统不仅基于鸟类的分布,而且还包括脊椎动物,不能飞行的哺乳动物。他认为,不能飞行的哺乳动物具有限的散布能力,从某种意义上说它们更较精确的反应地球的自然区划。他形成了一个非常详细和精确的地球生物地理学地区的区划地图。在区划图中,他对地区和亚地区的边界做的非常明确,对深海生物 (bathymetric) 的区划反应了不同群岛的隔离情况。他的一个著名的原始性贡献是对东印度的Bali和Lombok岛屿动物区系间明显的间隔做出划分。在这个间隔处,许多东南亚的种类达到了它们的分布区限制而逐渐被澳大利亚的种类和形式所替代 (Wallace 1860)。这个区系间的间隔被称为华莱士线 (Wallace’s line) (Mayr 1944a; Carlquist 1965)。

19世纪生物地理学的另外的贡献和发展

19世纪的一些另外的科学家们也在探索和解释分布数据所揭示的重要格局。不仅仅是考虑物种的名称和数目,他们中的一些先驱者开始分析物种的个体和居群的空间变异特征 (主题4)。在这些贡献中,主要是由C. L. Gloger (1833), C. Bergmann (1847)和J. A. Allen (1878) 所应用的一般性的形态地理学原则。Gloger认为生长在潮湿环境下的同一个物种的个体比在干燥生境下的有更黑的色彩。Bergmann认为寒冷气候条件下的暖血脊椎动物的同种个体比生活在温暖气候的个体有较大的身体尺寸,因而有较小的表面积和体积比。他对这种分布格局的解释是,寒冷气候条件下,小的每单位体积的表面积是动物保持了体内热量较少散失,而较小的体积和较大的表面积则保证了热带地区个体容易散发热量。和Bergmann的原则如出一辙的是,Allen规则这样陈述:在暖血种类中,生活于寒冷地区的种类在肢、翼等末端的构造上更短小,身体的构造更紧凑,极地地区的鸟类和哺乳动物通常有更强健的躯体和较短的肢和翼。这种相似的现象曾被D. S. Jordan在1891年对生活在海洋环境中的冷血的硬骨鱼 (teleos fishes) 类所观察到。按照Jordan的脊椎动物的规则,当我们从赤道向极地地区观察时,我们将会发现硬骨鱼的个体将变小数目将增多。

尽管这些简单的格局是吸引人的,但它们的一般性和因果关系遭到了许多生物地理学家的置疑。虽然存在这这样的一些问题,但这些早期的形态和生态地理规则是研究地理变异和适应的先驱性工作。它们推动了群落生态学 (physiological ecology) 的形成,导致了对异速生长-allometry的观察,也就是说怎样度量身体的尺寸和特征。

除了研究个体特征的地理变异外,生物地理学家们也注意到种群的数量特征在不同地区间的变异情况。1859年,Darwin观察到,在许多属内,“那些分布达到世界范围的种类,在他自己的国家里是最散布开的,而且在个体数量上是最多的。”换句话说,广泛分布的种类常常具有较高的密度分布。这种格局并不是早期生物地理学家们所关注的问题,而在20世纪里在不同的分类群被发现和记录下这些格局的情况。目前,种群水平的参数是如何在地理尺度上变异的情况是生物地理学正衍生的学科-宏观生态学 (macroecology) 所密切关注的焦点问题。

一些早期的进化规则是被那些根据化石记录探究生命的历史和对它们进行解释的古生物学家们描述的。直生论 (Orthogenesis) 就是一个很好的例子。这个理论认为一个类群的进化是连续向一个方向进行的,这个方向是有机体的内在特性决定的不受自然选择的控制。当然这个理论的产生主要是反对Darwin的对生物进化的自然选择学说。几乎没有人相信这一个理论。进化是保守的,它受到系统发育理论和以前存在的谱系的特征的限制。

定向进化理论的一种类型是Cope规则,这个规则认为一个类群的进化是向着身体尺寸增大的方向进行的。尽管这个规则有许多的例外,但大尺寸身体的有利之处是来源于许多动物演化线在尺寸上充分增加的结果。然而,看起来具有较大的身体尺寸的物种容易绝灭 (例如恐龙和大型的哺乳动物和鸟类),当这些大型的种类绝灭后又被另外的一些大型的种类所替代,反过来又演化出具较大尺寸的种类 (Stanley 1973)。

随着动物地理学的发展,植物地理学家们也持续不断的对生物地理学的发展做出着贡献。到19世纪晚期的时候,欧洲的一些植物的学家开始以植物的外部构造和对非生物因子的压力反应来对植物进行归类,比如对水分缺乏和盐分的忍耐性。由丹麦植物学家O. Drude (1887)和E. Warming (1898)的工作很快在20世纪形成了C. Raunkiaer (1934)著名的生活型分类。他基于植物多年生组织的位置将植物划分为一些主要的生活型。一个生态学而不是分类学的方法也被德国的植物学家A. F. W. Schimper (1898, 1903)所采用,他从世界的范围内总结了植物的形式和习性。这些工作后来发展成为生物地理学和生态学的两个重要的组成部分:植物生理生态学(plant physiological ecology)-探究各种植物种类是如何适应于它们所生活的生境,植物群落学(phytosociology)-群落生态学的一个分支学科,研究为什么一些特定的植物种类组合会是与它们的生境相互关联的(see Good 1974)。

早期的植物学家如Candolle和Humboldt已经意识到不同的植被类型占据着不同的海拔地段的现象,但这个普遍型的格局的是由动物学家C. Hart Merriam(1894)正式提出,通过自己对北美西南部多年广泛的研究,他发现植被类型的海拔剃度格局和植物种类的纬度格局是相似的。他把这些具相似植被的地带称为生命带(life zone)。尽管Merriam没有成功的在动物和北美另外的地区总结概括他的生命带的概念,但他正确地判断了植被的海拔剃度格局和物种纬度格局相似,它们都是因为物种和群落对温带和降水等环境因子替代变化的反应。

在1860年,E. W. Hilgard证明,气候因素和植物对成土母岩转化为具有不同质地、酸碱度、矿物组成等的土壤有直接的作用。不久后,一个俄国的科学家V. V. Dokuchaev发现每一种不同的土壤都有一个独特的特征结构。这两个方面的贡献是科学家们意识到一个地区的土壤主要是受到气候格局的影响,气候影响了成土母质的破碎,植物的生长,有机质的降解,最终甚至决定了生活在这些具有不同土壤地区的动植物种类。

一些19世纪的博物学家和探险家们开始将他们的注意力转向了海洋和它的生物群系。如我们前面所提到的,Charles Lyell(1830)在他的巨著《地质学原理》一书中讨论了藻类的分布。Edward Forbes(1815-1854)创作了第一部全面的论述海洋的生物地理学著作(1856)。在这本书中,他把海洋世界分成了9个水平(纬度)的动物区系地区(homoizoic belts),并在垂直方向上分为了5个深度地带。19世纪末期的时候,John Murray(1895),G. Pruvot(1896)和Arnold Ortmann(1896)发表了重要的海洋地理学的工作。在1897年Sclater也发表了一篇关于海洋哺乳动物的文章。和他早年对鸟类的工作一样,他基于土著的哺乳动物属将海洋界分为了6个地区。

如同动物地理学相对滞后于植物地理学的发展一样,海洋地理学的发展成为时代的前沿学科还需要更多的探险调查活动的参与。海洋生物的区划方案直到John Briggs的20世纪30年代的工作发表之后才得到普遍的认同。这已经落后于陆生生物地理区划工作超过了一个世纪。对于海洋生物地理学的研究仍然需要得到继续的发展,它不仅仅在于提供我们更多的海洋生物格局的信息,还在于它可能会改变我们长期以来坚持的海洋和大陆永恒不变的主题。

20世纪的前半期

从20世纪初期到60年代期间,有几个生物地理学的研究趋势极大的影响了生物地理学的发展。古生物学在各个大陆上对动物区系的过去变化动态所做出的贡献是值得让人称道的。许多古生物学家,尤其是C. Ameghino, W. D. Matthew, G. G. Simpson, E. H. Colbert, A. S. Romer, E. C. Olson和B. Kurtén,他们描述了陆生脊椎动物的起源、散布、辐射和衰退过程。他们的研究表明新类群的产生是辐射爆发式的,新产生的类群快速适应新的生态角色,扩展它们的地理分布范围,成为区系地区生物区系中的显著成分,一直持续到古老类型的绝灭。因此,我们陆地上的动物区系有相当悠久和复杂的历史,只有通过研究这些类群的系统发育关系和它们在各个陆块上的迁移历史,我们才能充分的认识到它们的时空发展过程。

如我们前面所讲述的,对陆生有机体在陆块间散布迁移的解释是相当多样的。研究者们总是提出这样或那样一些令人难以置信的,在历史上曾经存在但现在已经消失的陆桥、古陆或岛屿群岛作为类群扩散迁移的途径。在此期间,学者们尤其对有机体是如果到达加拉帕戈斯群岛、澳大利亚和夏威夷群岛这样的地区争论尤其激烈。尽管那时的许多解释现在已经没有人在认可或者认为是不可能的,但它们确在很大程度上鼓舞了系统发育、古气候、地质学和生物地理学知识的重新整合。

通过这些野外的调查,他们试图回答“起源中心”的问题。哪里是各个分类群和生物群系形成和多样化的摇篮哪呢?20世纪早期的生物地理学家们比他们的先辈们倾注了更多的精力和时间来迎接这个问题的巨大挑战。几乎所有的系统学的专著(系统发育的分析和分类群的修订)都提出一个可能的起源地并描述它们的散布过程。由于化石记录的星星点点,这种系统发育的重建经常将有机体现代分布的信息包括在内,使用一些看起来似乎是循环论证的证据。一些更大胆和教条式的学者则利用这些非常有限的资料来推理出一个所谓的起源中心。(例如:Matthew 1915; Willis 1922)

20世纪的早期,生物地理学家们开始关注单个物种的变异格局。继Bergmann和Allen的生态地理学格局之后,Josephy Grinnell, Lee R. Dice和B. Rensch阐述了种内和种间形态变异特征与地理和生态的紧密关系。由此,Theodosius Dobzhansky对果蝇的研究,J. Clausen, D. Kech和W. Hiesey对植物的研究开辟了生理学和遗传变异作为影响植物分布的本质性原因的研究。到20世纪的40年代,进化生物学家们在新的达尔文综合进化论的指导下开始研究地理变异特征并推测新物种形成的机制问题。在物种形成的方式研究方面,我们可以列出一个相当长的科学家的名单来。Ernst Mayr在系统学,进化论和历史生物地理学方面做出了不休的贡献。在他的成就中最值得一提的就是生物学物种概念:物种是生殖上保持相互隔离的居群(Mayr 1942, 1963)。而且,Mayr对物种分布格局和潜在的进化机制-我们现在称之为异域物种形成,的研究是进化生物学和生物地理学发生了一个及其重要的新的综合(Mayr 1944a, b, 1965a, b, 1969, 1974)。

到20世纪中期的时候,许多作者提出了新的和更一般性的各个分类群的生物地理学格局。这些包括PhilipJ. Darlington(1957)和George Gaylord Simpson(1968)对脊椎动物的研究;Sven Ekman(1953)和J. W. Hedgpeth(1957)对海洋的生物地理学研究;Stanley A. Cain(1944)和R. Good(1947)对维管植物的研究;Sherwin Carlquist(1965)对岛屿生物地理学的研究。而且,大量的研究工作进入了生态生物地理学研究领域。Hesse, Allee和Schmidt (1937, 1951)以及Niethammer(1958)对研究动物方面的文献进行了概述;Dansereau(1957)对植物方面的进行了概述。有太多这些方面优先的工作,我们不能一一在这里列举,也是这样一些优秀的先驱者的工作使得生物地理学成为一门受人尊重的科学,它能够给其它学科提供更深刻的洞察力,包括进化生物学,生态学和保护生物学。生物地理学也一样将充分的利用其它学科领域的积极发展和新的动态。这必将导致在20世纪的剩余几十年里生物地理学的新兴(Watts1979)。

20世纪50年代后的生物地理学

20世纪的后40年里,四个方面的发展振兴了生物地理学:板块漂移学说的接受,新的系统发育方法的发展,生态生物地理学研究方法的发展,局限性分布机制的调查和研究。

直道60年代,许多生物地理学学家们还认为地球的地壳是固定的,没有什么所谓的移动。板块构造和大陆漂移学说首先由Antonio Snider-Pelligrini在1858年提出。他这个的激进和没有确凿证据的学说没有钱他当代学者们的注意。直到又过了60年,这一理论才又由德国的气象学家Alfred L. Wegener和美国的地质学家F. B. Taylor(Taylor 1910; Wegener 1912, 1915, 1966)再次提出。Wegener的大陆漂移学说发表于1912-1956,主要是建立在大量的地质学和生物学证据上。但是这一理论再次受到了抵制和尖锐的批评,其中还包括一些著名的学科领军人物,如Simpson和Darlington。Darlington曾争辩,移动动物比起移动整个大陆要容易得多。

大陆漂移理论到60年代地质学提供了无可辩驳的证据时才被大家所接受。这个理论的接受使历史生物地理学发生了革命,迫使科学家们重新思考来解释他们所观察到的地理分布格局。Hooker的观点很接近我们现在的认识,大陆和海洋的相对大小和位置导致了生物群系的移动。然而,他所提出的所谓的陆桥和连接陆块的陆地实际上是由于现存陆块的移动所造成的,并不是什么神秘的力量形成的。无论我们对分布格局做出怎样的解释,它必须和地质学的证据相一致。我们将在第六章里详细论述板块漂移理论的形成和发展。

从60年代开始,生物学家们对分类群的系统发育关系的研究取得了极大的进步,因而改善了我们对生物群系间相互亲缘关系的认识。重建系统发育关系的基本指导思想已经在传统分类学、系统发育系统学和分支系统学领域得到应用(Henning 1950),但是关于谱系历史的问题是在Willi Henning1966年用英语发表了他的工作之后才明确化的。系统发育的研究是从比较解剖学和有机体的其它相似性度量方式的学科转换过来的,在系统发育的研究中,所有可以利用的有机体相似和差异的性状信息都用于谱系多样化历史的重建,物种间的进化关系被定量化进行研究。

在生物地理学的早期发展历史中,生物地理学家们利用有亲缘关系的种类的地理分布信息来重建大陆间的历史。19世纪中期,Asa Gray开始了植物间断分布(disjunctions)-两个紧密相关的种类在地理空间上相互隔离,的先驱性研究。从那时开始,生物地理学家们开始着迷于间断分布的研究,因为间断分布研究能揭示过去大陆和水体的连接情况,或者是分类群在陆块间的散布情况。对间断分布的研究在过去30年里又得到了重新得到了学者们的青睐,部分工作是来自L. Croizat(1958, 1960, 1964)。新的系统发育研究方法的应用使种的间断分布-现在称之为替代种(Vicariants)占据了研究的中心位置,对它们的研究主要是了解它们形成的历史过程。由于对替代种问题的重新重视,过去的一些研究被重新验证或者被重新修订。

一直到60年代时,生物地理学强调的主要方面是类群的系统发育和散布及在到不同地区的生存的方式。到50年代末期,G. E. Hutchinson开始把注意力放在解释决定生命多样性的过程,以及在一个小生境和局部区域共存物种的数目问题。生态学家们开始注意竞争、捕食和互利共生对群落中物种的分布和共存的影响。在生态生物地理学的这些工作中,最具影响力的应该是Robert H. MacArthur和Edward O. Wilson对岛屿物种分布的研究(1936, 1967)。尽管Agassiz的静止分布的观点已经被放弃,但许多学者仍然认为在群岛范围内的物种在进化时间尺度上是变化非常慢的。MacArthur和Wilson的岛屿生物平衡理论挑战了这样静止观点,并最终成为这一领域新的范例。他们的工作改变了生态生物地理学研究的方向,使生态生物地理学家们开始回答物种的多样性和分布格局等抽象的问题,他们认为这些格局反应了两个基本上相反过程-迁移和绝灭,的运作结果。

对物种多样性和共存问题的思考,除了占据生态学和理论生物地理学的部分研究领域外,还激发了对另外一些抽象问题的思考,例如谱系的散布、确立和辐射是静止的(stochastic)还是确定性的(deterministic)(也就是说,如果潜在的机制问题是可以理解的话,这些问题是否是可以预见的)。(Raup et al. 1973; Simberloff 1974b; Stanley 1979; Eldredge and Cracraft 1980)。对这些抽象问题的思考也激起了一些生物地理学试验的验证和量化方法的发展(Simberloff and Wilson 1969)(Pielou 1977a, 1979; Manly 1991; Maurer 1994; Gotelli and Graves 1996; Upton and Fingleton 1990; Cressie 1991)。尽管一些生态学家强调了物种相互作用对物种分布和群落的影响(MacArthur and Connell 1966; MacArthur 1972; Whittaker 1975),但另外的学者们则强调非生物环境因子对个体和种群的影响,反过来又决定了不同地区的物种多样性。从60年代以来设备和技术条件的发展推动了这一领域快速的发展,使生物地理学必须有选择性的挑选合适的文献资料整合进它自己的领域。计算机和相关技术的发展,包括卫星图形(satellite imagery),地理信息系统(geographyic information systems GIS),和空间统计学(或地统计学)(spatial statistics(geostatictics)),使我们发生了量子式地飞跃,可以去探究和分析从局部到全球尺度上地生物地理学格局。

概要的说,许多伟大的科学家对生物地理学做出了极大贡献。他们中的所有人,从Buffon和Candolle到Simpson, Croizat和MacArthur和Wilson,都享有一个共同的目标-理解生物群系的起源、散布和多样化。18世纪的中期,Buffon提出了生物地理学的第一个原则,另外的学者们则检验这个原则的一般性和扩宽这个原则去探究另外一些格局和它们的原因。当这一领域不断发展的时候,自然选择理论,大陆漂移学说,迁移绝灭动态平衡学说提供了一些新的机制去解释已经久以为人们能所接受的格局,而新的比较和试验方法,系统发育的分析以及计算机技术和统计学的发展提供给我们无价的工具。到60年代,生物地理学最终成为了一门受到人们尊敬和严格的学科。它仍然在不断的在向前发展并将在接下来的几十年里显示它独特的魅力。从1900年以来,生物地理学的出版物成指数式的增加,主要的增加发生在过去的30年里。

从生物地理学的概念-整个学科的种子,的发展这个长长的列表中,我们很容易理解一个人想要完全理解和掌握这一领域的所有方面是非常不可能的。对于学习生物地理学的学生们来说,他们可能会因为不能完全理解这个知识体系精深博大而感到沮丧,或者他们会因为生物地理学的聚焦融合性,以及通过它能够了解地球上生命的历史和分布而受到极大的鼓舞。

主要参考文献

Adey, W. H. & Steneck, R. S. 2001. Thermogeography over time creates biogeographic regions: a temperature/space/ time-integrated model and an abundance-weighted test for

benthic marine algae. Journal of Phycology 37: 677-698.

Avise, J. C. 2000. Phylogeography. University of Chicago Press, Chicago, USA.

Avise, J. C. 2004. What is the field of biogeography, and where is it going? Taxon 53: 893-898 (2004) -.

Barthlott, W., Biedinger, N., Braun, G., Feig, F., Kier, G. & Mutke, J. 1999. Terminological and methodological aspects of the mapping and analysis of global biodiversity. Acta Botanica Fennica 162: 103-110.

Barthlott, W., Lauer, W. & Placke, A. 1996. Global distribution of species diversity in vascular plants: towards a world map of phytodiversity. Erdkunde 50: 317-328.

Barthlott, W., Mutke, J., Rafiqpoor, M. D., Kier, G. & Kreft, H. 2005. Global centres of vascular plant diversity. Nova Acta Leopoldina 92: 61-83.

Beck, C. B. 1976. Origin and early evolution of angiosperms. New York: Columbia University Press.

Bremer, K. 1992. Ancestral areas: a cladistic reinterpretation of the center of origin concept. Systematic Biology 4: 435-445.

Bremer, K. 1995. Ancestral Areas: Optimization and probability. Systematic Biology 44: 255-259.

Brooks, D. R. & McLennan, D. A. 1991. Phylogeny, ecology, and behaviour. A research program in comparative biology. The University of Chicago Press, Chicago and London.

Brown, J., H. & Lomolino, M. V. 1998. Biogeography. Sunderland, Mass.: Sinauer Associates.

Brown, J. H. & Gibson, A. C. 1983. Biogeography. St. Louis: Mosby.

Browne, E. J. 1983. The secular ark : studies in the history of biogeography. New Haven: Yale University Press.

Buffon, G.-L. L., Comte de 1707-1789. Histoire Naturelle, Générale et Particuliere, Avec la Description du Cabinet du Roi. Paris: Imprimerie Royale. 36 vols.

Conran, J. G. 1995. Family distributions in the Liliiflorae and their biogeographical implications. Journal of Biogeography 22: 1023-1034.

Cox, C. B. 2001. The biogeographic regions reconsidered. Journal of Biogeography 28: 511-523.

Cox, C. B. & Moore, P. D. 1993. Biogeography: An Ecological and Evolutionary Approach, ed. 5. Oxford: Blackwell.

Cox, C. B. & Moore, P. D. 2000. Biogeography: an ecological and evolutionary approach, 6th edn.: Blackwell, Oxford.

Craw, R. C., Grehan John, R. & Heads Michael, J. 1999. Panbiogeography : tracking the history of life. New York ; Oxford: Oxford University Press.

Crisci, J. V. 2001. The voice of historical biogeography. Journal of Biogeography 28: 157-168.

Crisci, J. V., Katinas, L. & Posadas, P. 2003. Historical biogeography : an introduction. Cambridge, Mass. ; London: Harvard University Press.

Crisci, J. V., Sala, E. O., Katinas, L. & Posadas, P. 2006. Bridging historical and ecological approaches in biogeography. Australian Systematic Botany 19: 1-10.

Croizat, L. 1958. Panbiogeography ; or, An introductory synthesis of zoogeography, phytogeography, and geology, with notes on evolution, systematics, ecology, anthropology, etc. Caracas,.

Croizat, L. 1964. Space, time, form: the biological synthesis. published by the author,Caracas, Venezuela.

Croizat, L. 1981. Biogeography: past, present and future. In: Nelson, G. R. D. E. (ed.) Vicariance biogeography: a critique. Symposium of the Systematics Discussion Group of the American Museum of Natural History, May 2 - 4, 1979.

Croizat, L. 1982. Vicariance/vicariism, panbiogeography, `vicariance biogeography,’ etc.: a clarification. Syst. Zool. 31: 291-304 (1982) -.

Darlington, P. J. 1957. Zoogeography: The Geographical Distribution of Animals. John Wiley & Sons, Inc. .

Darwin, C. 1859. On the origin of species by means of natural selection or the preservation of favoured races in the struggle for life. John Murray, London.

de Candolle, A. P. 1820. GeÂographie botanique. Dictionnaire des Sciences, 18, 359±422. In: Reprinted in Ecological phytogeography in the nineteenth century (ed. F.N. Egerton), 1977. Arno Press, New York.Pp. 359-422. FG Levrault, Strasbourg.

Diels, L. 1908. Pflanzengeographie. Leipzig.

Ebach, M. C., Humphries, C. J., Newman, R. A., Williams, D. M. & Walsh, S. A. 2005. Assumption 2: opaque to intuition? Journal of Biogeography 32(5): 781-787.

Ebach, M. C. & Humphries., C. J. 2002. Cladistic biogeography and the art of discovery. Journal of Biogeography 29(4): 427-444.

Ebach, M. C. & Morrone, J. J. 2005. Forum on historical biogeography: what is cladistic biogeography? Journal of Biogeography 32(12): 2179-2183.

Engler, A. 1879-1882. Versuch einer Entwicklungsgeschichte der Pflanzenwelt, Insbesondere der Florengebiete seit der Tertiärperiode (In Englishe Title: Attempt of a development story of the plant life, especially the Florengebiete since the tertiary period). Leipzig: W. Engelmann.

Gaston, K. J. 1996. Species richness: measure and measurement. In: Gaston, K. J. (ed.) Biodiversity, a biology of numbers and difference.Pp. 77-113. London, UK.: Blackwell Science.

Gaston, K. J. 2003. The structure and dynamics of geographic ranges. Oxford ; New York: Oxford University Press.

Gaston, K. J. & Blackburn, T. M. 1995. Mapping Biodiversity Using Surrogates for Species Richness: Macro-Scales and New World Birds. Proceedings: Biological Sciences 262(1365): 335-341.

Gaston, K. J., Williams, P. H., Eggleton, P. & Humphries, C. J. 1995. Large Scale Patterns of Biodiversity: Spatial Variation in Family Richness Proceedings: Biological Sciences 260(1358): 149-154.

Good, R. 1947, 1953, 1964, 1974. The geography of the flowering plants. London: Longman.

Harold, A. S. & Mooi, R. D. 1994. Areas of endemism. Definition and recognition criteria. Systematic Biology 43: 261-266.

Heads, M. 1985. Biogeographic analysis of Nothofagus (Fagaceae). Taxon 34: 474-480.

Hengeveld, R. 1990. Dynamic biogeography. Cambridge [England] ; New York: Cambridge University Press.

Hill, A. W. (1929). Antarctica and problems in geographical distribution. In: Proc. 5th. International Bot. Congr. Vol. 2. p. 1477.

Hooker, J. D. 1844-1860. The Botany of the Antarctic Voyage of HMS Discovery Ships "Erebus" and "Terror" in the Years 1839-1843, Under the Command of Captain Sir James Clark Ross. London: Reeve Brothers. 3 parts (I. Flora Antarctica II. Flora Novae-Zelandiae III. Flora Tasmaniae) in 6 vols.

Hooker, J. D. 1859. On the Flora of Australia: Its Origin, Affinities, and Distribution, Being an Introductory Essay to the Flora of Tasmania. London: Lovell Reeve.

Hooker, J. D. 1861. Outlines of the distribution of Arctic plants. Transactions of the Linnean Society of London 23(17): 251-348.

Hooker, J. D. (1866). Lecture on insular floras [delivered before the British Association for the Advancement of Science at Nottingham, August 27, 1866; subsequently reprinted in four issues of the Gardeners’ Chronicle in Jan. 1867, and in various pamphlets. In.

Hooker, J. D. 1881. Address to the Geographical Section of the British Association: On Geographical Distribution. Spottiswood and Co.

Hovenkamp, P. 1997. Vicariance events, not areas, should be used in biogeographical analysis. Cladistics 13: 67-79.

Humphries, C. J. & Parenti, L. R. 1999. Cladistic biogeography, interpreting patterns of plant and animal distributions. In: Oxford Biogeography series No. 12.Pp: Oxford University Press, Oxford.

Kier, G. & Barthlott, W. 2001. Measuring and mapping endemism and species richness: a new methodological approach and its application on the flora of Africa. Biodiversity and Conservation 10: 1513-1529.

Kier, G., Mutke, J., Dinerstein, E., Ricketts, T. H., Kuper, W., Kreft, H. & Barthlott, W. 2005. Global patterns of plant diversity and floristic knowledge. Journal of Biogeography 32(7): 1107-1116.

Kingston, N., Waldren, S. & Bradley, U. 2003. The phytogeographical affinities of the Pitcairn Islands-a model for southeastern Polynesia? Journal of Biogeography 30: 1311-1328.

Knapp, S. 2005. Biogeography - space, form and time. Journal of Biogeography 32(1): 3-4.

Lieberman, B. S. 2000. Paleogeography: Using Fossils to Study Global Change, Plate Tectonics, and Evolution. New York: Kluwer Academic/Plenum Publishers.

Lieberman, B. S. 2003. Paleobiogeography:The Relevance of Fossils to Biogeography. Annual Review of Ecology and Evolution Systematics???: ???

Linder, H. P. & Crisp, M. D. 1995. Nothofagus and Pacific biogeography. Cladistics 11: 5-32.

Linder, H. P. & Crisp, M. D. 1998. Nothofagus and Pacific biogeography. Journal of African Earth Sciences 26(2): VI.

MacArthur, R. H. & Wilson, E. O. 2001. The Theory of Island Biogeography. Princeton: Princeton University Press.

Martin, P. G. & Dowd, J. M. 1993. Using sequences of rbcL to study phylogeny and biogeography of Nothofagus species. Austral. Syst. Bot. 6: 441-447.

McClean, C. J., Lovett, J. C., Ku¨per, W., Hannah, L., Sommer, J. H., Barthlott, W., Termansen, M., Smith, G. F., Tokumine, S. & Taplin, J. R. D. 2005. African plant diversity and climate change. Annals of the Missouri Botanical Garden 92(2): 139-152.

Melville, R. 1982. The biogeography of the Nothofagus & Trigonobalanus and the origin of the Fagaceae. Bot. J. Linn. Soc. 85: 75-88.

Morain, S. A. 1984. Systematic and regional biogeography. New York: Van Nostrand Reinhold.

Morrone, J. J. 1994. On the identification of areas of endemism. Systematic Biology 43: 438-441.

Morrone, J. J. 2001. Homology, biogeography and areas of endemism. Diversity & Distributions 7(6): 297-300.

Morrone, J. J. 2005. Cladistic biogeography: identity and place. Journal of Biogeography 32(7): 1281-1284.

Morrone, J. J. & Crisci, J. V. 1995. Historical Biogeography: Introduction to Methods. Annual Review of Ecology and Systematics 26: 373-401.

Morrone., J. J. 2002. Biogeographical regions under track and cladistic scrutiny. Journal of Biogeography 29(2): 149-152.

Mutke, J. & Barthlott, W. 2005. Patterns of vascular plant diversity at continental to global scales. Biologiske Skrifter 55: 521-531.

Myers, A. A. & Giller, P. S. 1988. Analytical biogeography: an integrated approach to the study of animal and plant distributions. London: Chapman & Hall.

Nelson, G. 1978. From Candolle to Croizat: comments on the history of biogeography. Journal of the History of Biology 11: 269-305.

Nelson, G. & Ladiges, P. Y. 1996. Paralogy in cladistic biogeography and analysis of paralogy-free subtrees. American Museum Novitates: 3167.

Nelson, G. J. & Platnick, N. I. 1981. Systematics and biogeography : cladistics and vicariance. New York: Columbia University Press.

Olson, D. M., Dinerstein, E., Wikramanayake, E. D., Burgess, N. D., Powell, G. V. N., Underwood, E. C., Amico, J. A., Itoua, I., Strand, H. E., Morrison, J. C., Loucks, C. J., Allnutt, T. F., Ricketts, T. H., Kura, Y., Lamoureux, J. F., Wettengel, W. W., Hedao, P. & Kassem, K. R. 2001. Terrestrial ecoregions of the World: a new map of life on earth. BioScience 51: 933-938.

Poole, I. 2002. Systematics of Cretaceous and Tertiary Nothofagoxylon: implications for Southern Hemisphere biogeography and evolution of the Nothofagaceae. Aust. Syst. Bot. 15: 247-276.

Prichard, J. C. 1826. Researches into the Physical History of Mankind. London: Sherwood, Gilbert & Piper.

Proches, S. 2005. The world’s biogeographical regions: cluster analyses based on bat distributions. Journal of Biogeography 32(4): 607-614.

Proches, S. & Marshall, D. J. 2001. Global distribution patterns of non-halacarid marine intertidal mites: implications for their origins in marine habitats. Journal of Biogeography 28: 47-58.

Qian, H. 1998. Large-scale biogeographic patterns of vascular plant richness in North America: an analysis at the generic level. Journal of Biogeography 25: 829?836.

Qian, H. 1999. Spatial pattern of vascular plant diversity in North America north of Mexico and its floristic relationship with Eurasia. Annals of Botany 83: 271-283.

Qian, H. 2001. A comparison of generic endemism of vascular plants between East Asia and North America. International Journal of Plant Sciences 162: 191-199.

Qian, H. 2002. A comparison of the taxonomic richness of temperate plants in East Asia and North America. American Journal of Botany 89: 1818-1825.

Qian, H. & Ricklefs, R. E. 1999. A Comparison of the Taxonomic Richness of Vascular Plants in China and the United States. Am. Nat. 154(2): 160-181.

Qian, H. & Ricklefs, R. E. 2000. Large-scale processes and the Asian bias in species diversity of temperate plants. Nature 407: 180-182.

Qian, H. & Ricklefs, R. E. 2004. Geographical distribution and ecological conservatism of disjunct genera of vascular plants in eastern Asia and eastern North America. Journal of Ecology 92: 253-265.

Qian, H., Song, J.-S., Krestov, P., Guo, Q.-F., Wu, Z.-M., Shen, X.-S. & Guo, X.-S. 2003. Large-scale phytogeographical patterns in East Asia in relation to latitudinal and climatic gradients. Journal of Biogeography 30: 129-141.

Raven, P. H. & Axelrod, D. I. 1974. Angiosperm biogeography and past continental movements. Annals of the Missouri Botanical Garden 61(3): 539-673.

Riddle, B. R. 2005. Is biogeography emerging from its identity crisis? Journal of Biogeography 32(2): 185-186.

Ronquist, F. 1997. Dispersal-vicariance analysis: a new approach to the quantifiation of historical biogeography. Systematic Biology 46: 195-203.

Sala, O. E., III, F. S. C., Juan J. Armesto, Eric Berlow, Janine Bloomfield, Rodolfo Dirzo, Elisabeth Huber-Sanwald, Laura F. Huenneke, Robert B. Jackson, Ann Kinzig, Rik Leemans, David M. Lodge, Harold A. Mooney, Martín Oesterheld, N. LeRoy Poff, Martin T. Sykes, Brian H. Walker, Marilyn Walker & Wall, D. H. 2000. Global Biodiversity Scenarios for the Year 2100. Science 287(5459): 1770 - 1774.

Sclater, P. L. 1858. On the general geographical distribution of the members of the class Aves. Journal of the Linnaean Socials of Zoology 2: 130-145.

Simpson, G. G. 1962. Evolution and geography : an essay on historical biogeography, with special reference to mammals. Eugene: Oregon State System of Higher Education.

Solbrig, O. T. 1972a. The floristic disjunct between the Monte in Argentina and the Sonoran desert in Mexico and the United States. Annals of the Missouri Botanical Garden 59: 605-614.

Solbrig, O. T. 1972b. New approach to the study of disjuncts with special emphasis on the American amphitropical desert disjunct. In: Valentine, D. H. (ed.) Taxonomy, phytogeography and evolution.London: Academic Press.

Swainson, W. 1835. A Treatise on the Geography and Classification of Animals. London: Longman.

Takhtajan, A. 1969. Flowering plants: origin and dispersal. Bishen Singh Mahendra Pal Singh and Otto Koeltz Science Publishers.

Takhtajan, A. L. 1957. On the origin of the temperate flora of Eurasia. Bot. Zurn. (Moscow & Leningrad) 42: 935-953.

Takhtajan, A. L. 1978. The Floristic Regions of the World. Moscow (In Russian): Soviet Sciences Press.

Takhtajan, A. L. 1986. Floristic regions of the world. University of California Press, Los Angeles and Berkeley.

Thackway, R. & Cresswell, I. D. 1995. An interim biogeographic regionalisation for Australia: a framework for establishing the national system of reserves, version 4.0. In: Pp: Australian Nature Conservation Agency, Canberra.

Van Veller, M. G. P. 2004. Methods for historical biogeographical analyses: anything goes? Journal of Biogeography 31(9): 1552-1553.

van Veller, M. G. P., Kornet, D. J. & Zandee, M. 2002. A posteriori and a priori methodologies for hypotheses of causal processes in vicariance biogeography. Cladistics 18: 207-217.

Wallace, A., Russel 1876. The Geographical Distribution of Animals; With a Study of the Relations of Living and Extinct Faunas as Elucidating the Past Changes of the Earth’s Surface. London: Macmillan; New York: Harper & Brothers. 2 vols. .

Whittaker, R. J. 1998. Island biogeography: ecology, evolution, and conservation. Oxford University Press, Oxford.

Wiley, E. O. 1988. Vicariance Biogeography. Annual Review of Ecology and Systematics 19: 513-542.

Wilkinson, D. M. 2003. Dispersal, cladistics and the nature of biogeography. Journal of Biogeography 30(11): 1779-1780.

Williams, P. H., de Klerk, H. M. & Crowe, T. H. 1999. Interpreting biogeographical boundaries among Afrotropical birds: spatial patterns in richness gradients and species replacement. Journal of Biogeography 26: 459-474.

Wu, C.-Y. 1996. A proposal for a new floristic kingdom(realm)-the E.Asiatic kingdom, its delimeation and characteristics. In: Zhang, A.-L. & WU, S.-G. (eds.) Florsitic characteristics and diversity of East Asian Plants.Pp. 3-42. Beijing, New York: China Higher Education Press Beijing, Springer-Verlag Berlin Heidelberg.

UBuntu中增加中文字符编码的方法

| Comments

UBuntu中增加中文字符编码的方法

在Widnows XP下的FTP服务器中有中文文件名,今天使用ftp命令,发现不能显示中文文件名,只能显示????。于是到网上查了一些资料,也没有找到好的解决方法,只是有人说使用图形化的ftp工具 gftp,安装方法:sudo apt-get install gftp,另外还要增加中文字符编码zh_CN.GBK即可即可。在这里总结一下Ubuntu下增加中文字符编码的方法。
一. Ubuntu默认的中文字符编码
Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在/etc/environment中看到:
sudo gedit /etc/environment
可以看到如下内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
第二行即是默认的中文字符编码。注:可以通过这里修改默认的中文编码字符,比如修改为:zh_CN.GBK。

二. 添加中文字符编码的方法
1. 直接使用locale-gen
在超级终端输入命令:
sudo locale-gen zh_CN.GB18030
即可完成中文字符集的添加。完成后可以转到/usr/lib/locale/,下面已经有一个zh_CN.gb18030文件夹;在超级终端输入命令:gedit /var/lib/locales/supported.d/local,可以发现文件中多了一行:zh_CN.GB18030 GB18030。说明添加成功。

2. 通过修改/var/lib/locales/supported.d/local文件
在终端输入命令行
sudo gedit /var/lib/locales/supported.d/local
可以看到如下内容:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
在文件尾添加中文字符集
zh_CN.GBK GBK
保存后退出。在超级终端输入命令:
sudo dpkg-reconfigure locales

Generating locales…
en_AU.UTF-8… done
en_BW.UTF-8… done
en_CA.UTF-8… done
en_DK.UTF-8… done
en_GB.UTF-8… done
en_HK.UTF-8… done
en_IE.UTF-8… done
en_IN.UTF-8… done
en_NZ.UTF-8… done
en_PH.UTF-8… done
en_SG.UTF-8… done
en_US.UTF-8… done
en_ZA.UTF-8… done
en_ZW.UTF-8… done
zh_CN.GBK… done
zh_CN.UTF-8… up-to-date
zh_HK.UTF-8… done
zh_SG.UTF-8… done
zh_TW.UTF-8… done
Generation complete.

即可生成相应文件:/usr/lib/locale/zh_CN.gbk/
注:也可使用locale-gen

+++++++++++++++++++
Ubuntu 默认采用UTF8编码,可以方便global。但对中文支持,还不细致,即便默认采用中文安装,也并不会自动添加GB*等支持,致使在Ubuntu下访问部分Win文本文件时,出现乱码。

I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置参数

zh_CN.GB18030 GB18030 (最新汉字编码字符集,向下兼容GBK,GB2312)
zh_CN.GBK GBK (汉字扩展编码,向下兼容GB2312, 并包含BIG5全部汉字)
zh_CN.GB2312 GB2312 (简化汉字编码字符集, 最近有客户要我们改进GB2312,太看得起我们了,我只能说:"NO!")
zh_CN.GB18031 GB18031 (数字键盘汉字编码输入,面向手持设备,我的Nokia3120从来就是发短信,接听电话,无法和PC通讯,就不用这个了。 maybe用Google Android SDK的大侠们需要这个)
zh_HK.BIG5 BIG5 (繁体)
zh_TW.BIG5 BIG5 (繁体)

然后执行 sudo locale-gen
提示以下信息,成功了
zh_CN.GB18030… done
zh_CN.GBK… done
……

II. 系统环境支持GB*内码了,但用vi, gedit等工具访问文件还会继续乱码,需要针对不同的工具分别配置,使之自己检测支持范围内的编码
e.g. vi
执行 sudo vi /etc/vim/vimrc
加入以下配置参数
let &termencoding=&encoding
set fileencodings=utf-8,gb18030,gbk,gb2312,big5

e.g. gedit
执行 gconf-editor
选择 apps/gedit-2/preferences/encodings
找到 auto_detected 编辑,在Values中分别加入 GB18030,GBK,GB2312,BIG5

OK~

感谢lec的支援。
enca工具很方便,用于检测文件内码(前提是系统环境支持,如,环境不支持BIG5,是无法检测的,这个晕了我许久)
安装 sudo apt-get install enca
用法 enca filename
+++++++++++++++++++++++++++++++++++
1.编辑/var/lib/locales/supported.d/*
格式参考 /usr/share/i18n/SUPPORTED
vi /var/lib/locales/supported.d/local
vi /var/lib/locales/supported.d/zh
vi /var/lib/locales/supported.d/en

如:
more /var/lib/locales/supported.d/local
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030

2.生成locale(自动保存在/usr/lib/locale/中)
locale-gen

3.修改locale
vi /etc/environment

LANG="zh_CN.UTF-8"
改成
LANG="zh_CN.GB18030"

more /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:
/usr/games"
#LANG="zh_CN.UTF-8"
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN:zh:en_US:en"
CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun/lib
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

4.重新启动或切换下运行级别,查看locale
root@1006:~# locale
LANG=zh_CN.GB18030
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=

5.登陆界面的选项里
默认语言也要相应改选成 zh_CN.GB18030,这样ubuntu就完全被中文化了,zh_CN.GB18030是目前最标准国家强制要求的中文编码

原文地址:http://ihipop.info/2009/06/85.html