草长莺飞 xtykc的博客

A chinese lion statue

This Blog1.0 is a working space for Research Institute of Library and Information Science of Shanghai Library. It is undercontruction now...

Drupal对RDF的支持:RDF数据的查询

xtykc 08月 11th, 2010

SPARQL_endpoint模块提供了一个界面,支持用SPARQL语言查询Drupal站点中的RDF数据,并支持不同格式的输出方式:XML, JSON, Serialized PHP, Turtle, RDF/XML, query Structure, HTML Table, TSV.

这个模块安装启用后,需要在站点上做如下配置,才能生效:

1. 设置好用户权限。在Drupal里,新的模块启用后,即需要考虑与之相关的用户权限的问题。在这里,需要设置好anonymous用户“access RDF data”的权限。

2.重建RDF索引。(居然是手动的,还没找到自动索引的方式,不知道设置好cron对RDF索引是否有效?)

需要注意的是,这个模块不适用于大型站点,因为RDF索引比较耗时,如300个节点1650个三元组大约耗时1分30秒。

以下是查询结果片段(RDF/XML格式):

<?xml version=”1.0″ ?>
- <sparql xmlns=”http://www.w3.org/2005/sparql-results#>
- <head>
<!–

 query time: 0.1066 sec

–>

<variable name=”g />
<variable name=”s />
<variable name=”p />
<variable name=”o />
</head>
- <results>
- <result>
- <binding name=”g>
<uri>http://localhost/ld/node/4/rdf</uri>
</binding>
- <binding name=”s>
<uri>http://localhost/ld/node/4</uri>
</binding>
- <binding name=”p>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
- <binding name=”o>
<uri>http://localhost/ld/ns#Chineseera</uri>
</binding>
</result>
- <result>
- <binding name=”g>
<uri>http://localhost/ld/node/4/rdf</uri>
</binding>
- <binding name=”s>
<uri>http://localhost/ld/node/4</uri>
</binding>
- <binding name=”p>
<uri>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</uri>
</binding>
- <binding name=”o>
<uri>http://www.w3.org/2006/time#Interval</uri>
</binding>
</result>

利用Drupal发布Linked Data(2)——导入外部本体/词表

xtykc 08月 11th, 2010

RDF API模块加上作为RDF数据仓储的ARC2,已经为Drupal站点的节点生成了一套基于RDF/S的本地RDF 数据,但是,更多的时候,我们需要引入外部本体才能满足实际需求。

如果一个本体在web世界有一个命名空间(namespace)和一个前缀(prefix),和由命名空间指向的RDF文档,那么,利用External RDF Vocabulary Importer(evoc)模块,即可将这个本体导入drupal站点,在drupal站点的Mysql数据库中生成该本体的类和属性。如要导入OWL-Time本体,找到它的前缀time和命名空间http://www.w3.org/2006/time#,即可。

但是,在导入外部本体之前,一定要确保drupal站点的服务器(XAMPP)能访问Internet,否则,当在drupal站点上向服务器发送导入外 部本体的请求时,服务器连不上外网,就打不开所要导入本体的RDF文档,无法获取该本体的类和属性,并存储在drupal站点的mysql数据库中。

如何利用导入的外部本体呢?这就需要借助RDF CCK模块,为drupal的content type(内容类型)定义它的RDF Mappings,把一个content type映射到外部本体的一个class,而content field映射到一个本体的Property,这样,当建立了这个内容类型的节点后,drupal会自动为此节点生成基于外部本体的RDF 数据,这些RDF数据同样存储在ARC2之中。在drupal站点中,如果一个节点的地址是http://localhost/ld/node/4,那么它的RDF数据的地址即为http://localhost/ld/node/4/rdf,由于drupal的url自定义功能,http://localhost/ld/node/4这个地址当然也可以由创建者设置为更易为人读的“http://localhost/ld/清代”,RDF数据地址则为:”http://localhost/ld/清代/rdf”。

LD & Library Presentations and papers

Drupal & Linked Data重要资料

xtykc 08月 3rd, 2010

这两位PPT是一个项目组的成果,PPT的模板都一样,不过内容大不相同,2010年的内容异常丰富,是对粗通Drupal和LD的人的一个全面的培训。
View more presentations from scorlosquet.

一个收集英文Linked Data资料的网站

xtykc 08月 2nd, 2010

该网站名为:Linked Data - Connect Distributed Data across the Web。管理员是鼎鼎大名的Tom Heath,Tom Health是研究Linked Data的大亨,在很多有关Linked Data的国际会议中,都能见到他的名字。他在英国读完博士之后加盟了英国Talis公司,Talis是英国著名的图书馆集成管理系统提供商。

该网站搜罗了大量的有关Linked Data的英文资料,包括以下内容:

其中FAQ整理了许多很有意思的问题,如果这些问题都回答得出来,就成LD通了。一些LD的重要学习材料、会议信息、重要事件、新闻、PPT、图片、视频资料甚至行业应用等,基本能在这个网站找到链接。

这个网站是用Drupal搭建的,采用了Drupal的经典主题。不过网站没有开放注册,浏览没有问题。

OWL时间本体学习笔记

xtykc 08月 1st, 2010

OWL-Time,OWL的时间本体Time Ontology包含以下类和属性:

类和子类的关系

  • TemporalEntity(时间实体,有两个子类instant和interval,instant我理解为时间点,interval我理解为时间段。它有一对属性hasBeginninghasEnd,这两个属性的取值都为instant。instant也可以看做是biginning和end相同的interval。它的另一个属性inside可以确定instant和interval的关系,取值为Instant。它还有一对属性before和after用来表示temporalEntity之间的关系,取值范围也为temporalEntity。最后一个属性hasDurationDescription将在下文提到。

    • Instant

    • Interval(beginning和end可以确定一个interval,如果它们都存在。interval可以没有beginning,或没有end。)

      • ProperInterval (beginning和end不同的interval,properInterval之间的关系可用如下属性表示:intervalEquals, intervalBefore, intervalMeets, intervalOverlaps, intervalStarts, intervalDuring, intervalFinishes; intervalAfter, intervalMetBy, intervalOverlappedBy, intervalStartedBy, intervalContains, intervalFinishedBy.)

        • DateTimeInterval(是ProperInterval的子类,它有且只有它有一个DateTimeDescription。

  • DurationDescription(是对interval的期间的不同表述方式,如1天2小时,26小时,1560分钟等。其属性有:years,months,weeks,days,hours,minutes,seconds。hasDurationDescription是temporalEntity的属性,用来规定一个temporalEntity的表述方式,取值范围为DurationDescription。)

  • DateTimeDescription(时间日期描述。属性有unitType, year, month, week, day, dayOfWeek, dayOfYear, hour, minute, second, 和 timeZoneunitType是DateTimeDescription的单位类型,取值范围为TemporalUnit。如”10:30″的单位类型为minute,”March 20, 2006″的单位类型为day。hasDateTimeDescription是DateTimeInterval的属性,取值范围为DateTimeDescription。只有DateTimeInterval才有DateTimeDescription。 “May 8”是个DateTimeInterval,它有DateTimeDescription,但interval “1:30pm, May 8~1:30pm, May 9″就没有DateTimeDescription。DateTimeDescription通常只是DateTimeInterval的描述,而不是一个实例。但它可用inDateTimeinXSDDateTime这两个instant的属性来描述,注意,这两个属性是Instant的属性,它们是用来规定一个instant处于某个时间间隔DateTimeInterval之间,唯一不同的是它们的取值范围,inDateTime的取值为DateTimeDescription,inXSDDateTime的取值范围为XML Schema datatype dateTime。它的另一个属性DayOfWeek的取值为DayOfWeek类:Sunday :Monday :Tuesday :Wednesday :Thursday :Friday :Saturday。)

  • TemporalUnit

  • DayOfWeek

一个子类继承父类属性的例子:

A Use Case for Scheduling

Suppose someone has a telecon scheduled for 6:00pm EST on November 5, 2006. You would like to make an appointment with him for 2:00pm PST on the same day, and expect the meeting to last 45 minutes.  Will there be an overlap?

In this use case we can specify the facts about the telecon and the meeting using our ontology in OWL that will allow a temporal reasoner to determine whether there is a conflict:

:telecon
a :Interval ;
:hasBeginning :teleconStart .

:meeting
a :Interval ;
:hasBeginning :meetingStart ;
:hasDurationDescription
:meetingDuration .

:teleconStart
a :Instant ;
:inXSDDateTime
2006-11-05T18:00:00-5:00 .

:meetingStart
a :Instant ;
:inXSDDateTime
2006-11-05T14:00:00-8:00 .

:meetingDuration
a :DurationDescription ;
:minutes 45 .

The telecon and the meeting are defined as intervals. hasBeginning is used for specifying the start times of the meetings. The datetimes are specified using inXSDDateTime. The duration of the meeting is specified using the duration description class.

其中,telecon和meeting都被定义为Interval类,但telecon和meeting的属性:hasBeginning 和hasDurationDescription都是Interval的父类TemporalEntity的属性。

属性列表

Property Name

Domain

Range

before

TemporalEntity

TemporalEntity

after

TemporalEntity

TemporalEntity

hasBeginning

TemporalEntity

Instant

hasEnd

TemporalEntity

Instant

inside

Interval

Instant

intervalEquals

ProperInterval

ProperInterval

intervalBefore

ProperInterval

ProperInterval

intervalMeets

ProperInterval

ProperInterval

intervalOverlaps

ProperInterval

ProperInterval

intervalStarts

ProperInterval

ProperInterval

intervalDuring

ProperInterval

ProperInterval

intervalFinishes

ProperInterval

ProperInterval

intervalAfter

ProperInterval

ProperInterval

intervalMetBy

ProperInterval

ProperInterval

intervalOverlappedBy

ProperInterval

ProperInterval

intervalStartedBy

ProperInterval

ProperInterval

intervalContains

ProperInterval

ProperInterval

intervalFinishedBy

ProperInterval

ProperInterval

years

DurationDescription

xsd;decimal

months

DurationDescription

xsd;decimal

weeks

DurationDescription

xsd;decimal

days

DurationDescription

xsd;decimal

hours

DurationDescription

xsd;decimal

minutes

DurationDescription

xsd;decimal

seconds

DurationDescription

xsd;decimal

hasDurationDescription

TemporalEntity

DurationDescription

unitType

DateTimeDescription

TemporalUnit

year

DateTimeDescription

xsd;gYear

month

DateTimeDescription

xsd;gMonth

week

DateTimeDescription

xsd;nonNegativeInteger

day

DateTimeDescription

xsd;gDay

dayOfWeek

DateTimeDescription

DayOfWeek

dayOfYear

DateTimeDescription

xsd;nonNegativeInteger

hour

DateTimeDescription

xsd;nonNegativeInteger

minute

DateTimeDescription

xsd;nonNegativeInteger

second

DateTimeDescription

xsd;decimal

timeZone

DateTimeDescription

tzont;TimeZone

inDateTime

Instant

DateTimeDescription

inXSDDateTime

Instant

xsd;dateTime

hasDateTimeDescription

DateTimeInterval

DateTimeDescription

xsdDateTime

DateTimeInterval

xsd;dateTime

Drupal对RDF的支持——模块之间的合作与背离

xtykc 07月 31st, 2010

Drupal对RDF的支持,已经有很长的历史了,源头可以追溯至2000年,那时Drupal还是Drop,Dries Buytaert就导入了一个名为rdf.php的源文件,有一个面向对象的基于RDF的XML解析器和一个RDF标题生成器。

目前,Drupal支持RDF的模块,根据其功能的不同,大致可以分为以下几组:

1.RDF,ARC2

2.RDF CCK,evoc

3.SPARQL,RDF SPARQL Endpoint

4.RDF Proxy

第一组,体现了Drupal对RDF最基本最诚实的支持。RDF(API)模块为Drupal提供了看起来较为全面RDF支持,包括RDF数据的逐条创建和批量导出,导入各种格式的外部RDF数据。而ACR2是存储这些RDF数据的仓储。这两个模块与Drupal本身的核心结构并非紧密耦合,只是借助了Drupal的底层平台,可以看做是对RDF数据实例的管理。这个截图展示了创建一个RDF三元组statement的功能,其中的Subject字段(来自于“主体-谓词-客体(subject-predicate-object)模型”,对应于RDF三元组中的Resource),目前看来,其取值只能是一个entity或一个resource的URI或 CURIE

第二组:是为Drupal的核心CCK服务的。Drupal的CCK模块支持管理员自定义任何类型的节点,是Drupal之所以具备强大可扩展性的灵魂,也是Drupal之所以有如此成就的主要原因之一。这两个模块为Drupal的CCK模块插上了语义的翅膀。RDF CCK模块为CCK提供了RDF Mapping的功能,可以让一个节点类型与一个class映射,让节点类型的字段与一个property映射。而这里用到的class和propery则需要依赖evoc模块导入已有的外部词汇表vocabulary或者说Ontology。

第三组:SPARQL和SPAQL endpoint这两个模块为第一组模块中得到的RDF数据提供检索支持,并且后者是依赖于前者的。

第四组:前面的两篇文章都有简述,是用来收割外部RDF数据的,把世界纳入怀中。

这四组模块中,第一组和第二组无疑最为重要,Drupal想要支持RDF,这两组模块不可或缺。第三组和第四组也很必要,可以说是锦上添花。它们之间互有合作,第一组为第三组提供数据基础,第三组为第一组提供利用渠道,第四组是第一组的补充。但在目前看来,最为关键的第一组和第二组却看不出合作的痕迹,我只想到一种合作的情况,创建一个基于第二组模块定义的某个内容类型的节点,得到这个节点的URL,作为第一组模块中创建的RDF statement的Subject的值,这样就可以把drupal的节点作为RDF数据来进行编码,并有机会作为Linked Data发布。之所以说第一组和第二组的合作不尽人意,是因为:1.statement中Subject的取值不能是class,只是实体层面的URI。2.第一组中的RDF(API)模块在安装之后,虽然已经包含了RDF、RDFS、XSD、OWL、DC、DCterms、DCMItype这几个词汇表,这个截图中对应于RDF三元组的Property的字段Predicate的取值可以从这几个词汇表中选择,但这些词汇表是无法扩展的,第二组中evoc模块导入的词汇表在此无法使用,也就是说最为炫目的evoc模块和最为核心的RDF模块之间没有交集,这一点非常遗憾,这使得Drupal不能直接复用已有词汇表/本体,只能利用建立映射关系这种间接的方式,这无疑在很大程度地上局限了Drupal在RDF数据管理方面的功能,只能管理实例,无法管理schema,这是一个致命伤。

(由于个人能力和认识的局限性,以上只是一家之言,欢迎留言批评指正。)

ALA 2010值得关注的会前会节目

xtykc 07月 29th, 2010

1.关联数据(Linked Data)

题目:关联数据:让图书馆数据与世界接轨

培训者:Jennifer Bowen,Karen Coyle,Corey Harper,Diane Hillmann,Eric Miller,John Phipps,Ross Singer,Ed Summers

主要内容:语义网的专家们认为,图书馆的元数据必需转换为关联数据,以在更广阔的web环境下起到更大的作用。这对于图书馆来说意味着什么?这件事有多么紧迫?哪些具体的步骤可以确保图书馆更为有效地参与语义网活动?这个培训将试着回答这些问题,并结合图书馆为牵头的关联数据项目来解释关联数据的原则,参加培训的人还可以手把手地练习如何创建关联数据。

收费:$279(non-member)

2.RDA

题目:RDA 101

培训者:Barbara Bushman,Rovert Ellett,John Espley,Shawne Miksa,Barbara Tillett

主要内容:RDA 已经进入快速部署实施的阶段,这个培训将帮助你为此做最基本的准备。在指导参加者如何使用RDA时,主要专注于新规则在实际实施过程中如何应用。在培训中,将对RDA的新规则和MARC21如何转换为RDA做一个概述性的介绍。这个培训主要适用于那些急于了解图书馆资源如何适应新规则的人。

收费:$279(non-member)

3.XSLT

题目:XSLT在数字图书馆中的利用

培训者:Christine Ruotolo,Kevin Clair,Patrick Yott

主要内容:这个培训是为元数据专家和编目人员准备的,在数字图书馆项目中,需要利用XSLT把目录和元数据记录转换成其它格式。在培训中,参加者有机会学到如何在数字图书馆项目中利用XSLT来操纵元数据。

收费:$279(non-member)

4.开源CMS

题目:开源CMS游戏室

培训者:Karen A. Coombs,Amanda Hollister

主要内容:开源内容管理系统为图书馆馆提供了一套绝佳的工具,去进行分布式的内容创建和维护,并为图书馆网站增加web2.0的特性。这个培训将对几个主流的内容管理系统进行一个大概的梳理、比较,并对它们的功能和特性做一个对比,还会详细的说明开源CMSs是如何改善图书馆网站。参加者可以带着自己的笔记本电脑,现场安装WordPress,Joomla,Silverstripe,以及Drupal,对它们有一个基本的了解和认识。

收费:$380(non-member)

5.开源ILS

题目:向开源ILS迁移

培训者:Terry Reese, David Lindahl,Brenda Chawner

主要内容:已经有相当数量的图书馆成功地转向开源的ILS系统或数字仓储系统,如Duraspace, Evergreen, Koha。但是,他们是怎样从A点走向B点?在这个培训中,LITA开源软件兴趣小组的成员和一些受邀的专家将分享他们在系统迁移和流程管理方面的实践经验和窍门。

收费:$380(non-member)

6. Web 2.0

题目:利用Web 2.0工具促进青少年阅读

主要内容:对web的接触已经改善了青少年的信息素养,尤其是当年轻人自己参与web内容的创建时,效果则更为显著。作为图书馆员,你已经准备好了吗?图书馆如何利用web 2.0工具来把阅读和写作与青少年联系在一起。图书馆员、研究人员和学术界人士研究了青少年看小说玩游戏时日常利用的技术,在数字或印刷阅读渠道中的选择规律。这个培训将讨论基于社会性网络的阅读方式。

美国行记(二):在路上

xtykc 07月 27th, 2010

机票

我们是6月24日中午12点的飞机,东航MU588,从上海到纽约拉瓜迪亚机场(LGA)转机到华盛顿特区里根机场(DCA)。到纽约是美国时间下午2点多,从纽约出发的时间是下午6点35,晚上8点半左右到达华盛顿。订票的时候咨询了一位出国达人,因为抵达美国之后需要办理入境和安检手续,还要转机,比较耗时,时间要留得充足一点,3个小时是要的,我们预留了将近4个小时,事后证明非常明智。

出发

24日一早8点半,我们从家里出发去浦东机场,一般的建议是国际航班提前3小时到机场,国内航班提前2小时,9点半到达浦东机场1号航站楼,顺便记住了航站楼的英文”Terminal”,办理登记牌,托运行李,安检,11点半开始登机,飞机12点准时起飞,到达纽约需花费14小时左右,我第一次踏上了离开“伟大祖国”的征途,兴奋伴随着些许恐惧和焦虑,远在大洋彼岸的美国,对我来说,还是充满了神秘和陌生。

飞机飞越太平洋,经过位于美国东海岸的阿拉斯加时,地面温度零下48摄氏度,我们打开飞机窗户的遮光板,看见雪山的尖顶在云海中沉浮,初升的红日为雪山涂上一抹娇红,宛如美人面上的胭脂,娇俏异常。

入境 安检 转机

进入美国,须填写两份表格,一份是美国海关申报单,一份是美国出入境证明单,即I-94表。在飞机上,空姐就把这两张表发在我们手里,因为之前做过了功课,我们很快就用英文大写字母填好了这两张表,海关申报单上需说明是否带有植物的种子、食物等禁止入境的物品,我都填写了无,但是我的托运行李里面有好几桶方便面,都是牛肉的,询问了空姐,说是不允许的,最好吃掉或者扔掉,无奈。

飞机抵达纽约LGA机场时,透过窗户,看到机场中心的草坪,杂草丛生,还枯黄枯黄的,想到上海随处可见的修剪得整整齐齐的草坪,一色的碧绿油亮,颇为不解。下了飞机之后,即是办理入境手续,在国内美领馆签证通过并不代表能进入美国,在机场还要通过美国移民局的入境审查,这一点,让人颇觉不安。等待入境的人很多,找到VISITORS窗口排队,另外一边的窗口是针对美国公民AMERICAN CITIZEN的,排了将近一个小时,轮到我们了,同事先过去,问了一会儿被移民局的官员带走了,不过看样子不是什么大问题,不久这个官员回来了,示意我也过去,问了和面签时差不多的几个问题之后,让我直接去拿行李,我问他我的同事哪里去了,他告诉我,同事的指纹有点问题,他找人去帮她fix,这个官员的态度比美领馆签证官差了不少。我在bagage claim处找到我和同事的行李,等了好久,也不见同事的身影,我的心开始七上八下,同事的手机在美国没信号,我联系不上她,我想,不管怎么样,我就在这里等她,如果等不到,我再去找那个移民官。好在过了不知多久,同事终于奔了过来。原来那个移民官把她带进去的时候,根本没告诉里面的人她只是因为指纹的原因,直接把她扔在那里就走了,里面也有不少人正在等着,那里的官员更加牛B,根本不理她,她过去催了一次,那个官员就发火了,她只得连说了几个SORRY,另一个官员看了她的资料,就把她放了出来,也没有再去取指纹,不解之二。

我打开自己的行李,取出方便面,扔到了垃圾桶里面,把报关单交给安检员,即顺利地通过了安检,也没有打开我的行李检查,可惜了我的牛肉面,本来是准备晚上到华盛顿如果来不及吃晚饭就靠它们了,我们的晚餐啊。

通过安检之后,就来到了一个connecting flights的柜台,这里就是办理转机的地方了。有些人在排队,同事发现了东方航空的柜台后有一位华人,就过去问了转机的事,他告诉我们去华盛顿的达美航空在2号航站楼,要坐air train过去,不过后来另一个年龄稍长的人告诉我们,直接走出1号航站楼,在地面步行几分钟即可到达。我们在此地重新托运了行李,换到了登机牌,不得不说,美国的登机牌远没有贵国的华丽和硬挺,只是一张普通的薄纸条,打印的文字像复印的,不甚清晰,也没有座位号。

我们走出1号航站楼,外面阳光正好,我第一次晒到了美国的太阳,温度大概30度左右,天空灰蓝,白云稀薄,远处静立数棵老树,隐见几座旧楼,与一般的机场并无二致,甚至并不如浦东机场的开阔和亮堂。机场上有几个黑人大汉在搬运货物行李,各种大大小小的车辆穿梭来往,当看到国航的几架飞机上写着“中国航空”这几个汉字时,莫名的亲切感油然而生。

果然,走了没几分钟,就到了2号航站楼,我们找到了航班所在的登机口,逛了几个免税商店,登机的时间差不多就到了。在登机处,我们的登机牌被换成了更为小气的小纸片,只有一个模糊的条码号和航班号等简单信息。我们终于登上了从纽约飞往华盛顿的班机,达美(Delta)航空的DL6733,这是我坐过的最小的飞机,一排4个座位,里面只有一个空姐,如果说那位黑人大妈还是空姐的话,她看了我们的登机牌,让我们坐到“behind 4 lines”那里去,我想了好一会儿才明白她是啥意思,为什么不说“last 4 lines”呢?我们坐到了最后一排,一抬头,竟然发现飞机的舱壁上有一条裂缝,露出包装泡沫一样的内填物,看来,这不仅是我坐过的最小的飞机,还是最破的飞机了。整个飞机里只有我们两个亚洲人,我举起相机想给同事拍张照片,坐在旁边的一位绅士礼貌地举手冲着我摇了摇,伴随一个亲切明朗的笑容,我即明白了他的意思,说了声SORRY,调整了相机的角度,心里感到非常舒服,笑容真是一个万能通行证,我也终于感受到了米国人与贵国人的不同之处。

飞往华盛顿

飞机在机场的跑道上排了好久的队,大概40分钟了,也没有起飞,我等得有点不耐烦了,机内的乘客貌似司空见惯,没有人说话,都在昏昏欲睡,非常安静,我们也只得等待。大概7点半的时候,飞机终于起飞了,此时,宛如午后的灿烂阳光斜照在飞机上,华盛顿越来越近了。

(未完待续)

美国行记(一):准备去远方

xtykc 07月 14th, 2010

今年对于我来说,真是五味杂陈,悲喜交加的一年。

年初的时候,突然被通知准备赴美参加ALA年会的各种材料,当时的感觉那是相当的惊悚。当然幸好还有另一名其他部门的同性同事同行,这是单位的惯例。于是3月份起,我们就开始为参加这一会议做准备,首先是索要邀请函,这是通过赴美签证的重要凭证。ALA当然有自己的网站,同时也为今年的年会开辟了专题,我们从网站上找到了诸多基于分工的不同联系方式,由于网站上没有明确说明索要邀请函具体应该联系哪个联系人,再加上时差的关系,以至于我们索要邀请函的过程相当曲折,从我们致信到得到邀请函,一共历时两周有余,其间也曾求助过几位大佬,在此谢过不表。

接下来是会议注册,ALA不愧为业界老大,果然无比强大,网站上为注册者提供了多种多样的注册方式,下载填写注册表通过邮件或传真发送、在线注册、现场注册等,注册费也根据时间段提供了不同价位的选择。最便宜的时候250美刀左右,最贵当然是现场注册(on site registeration)了,要掏380刀,贵了好多,现场注册也可以网上进行,由于从没去过米国,又听说美国头次签证很难,在米国人眼里,米国当然是世界上最美的地方,与贵国相比,似乎是天堂之比地狱,所以任何去米国的贵国人,都有常驻米国乐不思蜀的嫌疑。SO,我们很胆小,不得不等签证成功后才敢付注册费,鉴于签证结果之深不可测,SO,我们最后当然支付了380刀,白白被多宰了100多刀。

接下来就准备各种签证的书面材料,和签证申请流程,这些自然由单位里专门负责这些事务的专职人员搞定,无可赘述。到了5月底的时候,终于等来了面签通知,在面签前几天,开始在网上猛搜赴美面签攻略,认真地研习了一番,所谓“临时抱佛脚”是也!因为听说第一次美国签证不通过的话,将来到欧洲的签证也难,所以不得不重视。到了面签那一天,带好了各种资料(面签通知单、护照、邀请函、行程单、收入证明、工作证明、银行开具的存款证明、房产证等等所有表明你和贵国密不可分的东西,甚至还准备了一家人其乐融融的照片),我们早早赶到了梅龙镇广场,排队的人真不少,有很多是从江浙特意赶来的。由于米国人的安全意识异常浓厚,面签之前的安检尤其严格,所以我们不得不把包寄存到旁边的美琪大剧院的寄包处,寄包处的大爷居然还负责帮我们把准备好的材料分分类,按主次顺序理理好,莫名惊诧之。终于到了著名的梅陇镇广场8楼,进去一看,弯弯曲曲的排队队伍挤满了整个大厅,于是脱鞋解皮带通过安检,顺便提一句,负责安检的保安大叔,那态度果然名不虚传,不是一般的凶狠,让人忐忑不安的心情更添几分紧张。

排了将近两个小时,期间经过采集指纹等程序,终于能看到签证官(简称VO)的真容了,清一色的白种人,居然都不时地操着一口流利的汉语,观察良久,没有看到明显被拒的人,这天是因公签证专场,看来因公签证还是很好通过的,我的心也放下了一大半。轮到我时,签证官是个帅哥,很主动很礼貌地对我说“你好”,我也就顺水推舟地用汉语回答了他的几个简单的问题,然后他又问我会说英语吗?我说我会,于是又用英语对答了一番,无非就是去米国干什么,呆多久,去哪里之类的问题,除了看了我的邀请函之外,其他准备的东东一律没看过。接着他在电脑上噼里啪啦地操作了一番,最后微笑着用汉语对我说:你通过了,我说了谢谢,这样,我就顺利地拿到了去米国的签证。

再接下来,我们通过机票代理机构订好了机票和酒店,这时候离出发的时间只有不到20天,所以订到的机票也是相当的贵,再接下来就开始研究到了米国之后的具体行程,从下了飞机到如何坐地铁到酒店,如何去会议地点,如何参观当地名胜等等。同时开始打理行装,这里不得不感谢某位前辈多年前的提醒,那就是出国一定要准备一个结实耐用的旅行包,否则到了国外,一旦包包经不起折腾而散架,会带来诸多的麻烦。我对这位前辈向来敬仰,他的话我确信无疑,以至于多年后还能牢记于心,于是特意到青浦的奥特莱斯,买了一个大号的爱思箱包,事实证明,这个包还是经受住了重重考验,终于完璧而归!有点可惜的是,爱思(ACE)是个日本的牌子~~~~~·

(未完待续)

Next »