The Last Day of July

这周该忙的事情其实都做得还不错,法语开始了GRE般的苦行僧背单词;最让人担心的签证问题也基本解决;然后还去了Nuance面试,这再次印证了我在陌生人面前的那种“兴奋感” -- 知道如何去开适当的玩笑,知道如何去缓和气氛,知道如何去表现礼貌,也知道(就如大学同学张毅所说一般)如何去表现自己,甚至把自己没有的一面也表现出来 xD。

不过,当面试结束后,看到他们真实的工作,我不得不同意老刘导师和邢进同学的经验之谈 -- “工作很无聊”,indeed!可以说,工作上就没有什么挑战的难度,一个Master学生给我说公司也不会相信你,不会给你一个才进来的Master学生任何有意义的工作做。我明白,在Nuance这样以研发为主的公司里,博士多于研究生,研究生是受一种某种程度上的鄙视。不过,各人应该有各人的玩法,如果你就安心于这样简单的编程工作,养家,朝九晚五,这也是一种无奈的人生活法(比如有人)。我喜欢有挑战的工作,不过(这里的“不过”是对应前面一句话),我更喜欢跳来跳去中的短期宁静生活。但是,我该怎么选择呢?毕业后不管去什么样的公司都是做这样的事情,暨,不断地重复简单的代码粘贴。领高工资更像是这个行业中的潜规则,就是让你丫闭嘴,装13,然后让所有外人都感觉我们在做很伟大的事情。如果要进入avant-garde的前沿开发,没有个博士学位是没戏的。

读到这个程度,去争取个博士学位貌似也是顺水推舟的事情。你,我可以埋着头,继续安心的顺着这条路往前走。不过,这是我想要的生活吗?我是否只是看到了事情的一面就开始东看西想?什么才是我最终的目标?什么样的生活才是我最想要的生活?在人生的这个阶段当中,充满了阳光般的希望和机遇,越是这般越是应该去寻找真正的自我,而非囫囵度过。

哦,哦,哦 事情还是比较多

由于这段时间很忙,所以也没怎么顾得总结,不过周三晚上把SPARQL-GIS/Web Service的转换写好了,可以稍稍松口气。目前还有些事情:

1.关于数据库语句和Web Service语句之间转换的问题,到底是否改成Substring()也需要认真考虑。不过,最合理的解决办法还是:如果能够找到匹配的关键字则使用那个关键字,否则返回Substring()的结果。

2.MQWW返回的错误encoding问题(Eliz)和CHGIS中如何返回所有tag相关数据的问题(Lex)(需要找到当事人.... email again and again)。

3.OneToManyMap中数据对之间不匹配的问题。

4.SPARQL推理机或者是翻译器的编写,争取下周之内有个眉头。这篇文章则是必读(需要学校的VPN或者在学校的无线网中打开)。

5.XML parser与李伟中的合作要定下个初步的计划和论文阅读表(on doit要在8月初定下方向)。

6.8月15号后联系卡尔加里大学的Steve Liang关于新想法的讨论。(所以之前要多读些相关论文,具体化新想法)

7.周一(7月27号)春冬季注册截止,明天向师妹打听清楚具体注册事宜。

8.下周注意查看CAQ文件,要抓紧加拿大签证的更新,否则马上就成黑户了.....

9.下周四(7月30号)的Nuance技术面试,注意Java,基本数据结构和算法,Design Patterns的复习准备。

10.下周内前段时间所学法语的复习和7000单词背诵开始。

11.8月1号Coldplay演唱会不能忘了去(和法语老师讨论周六的加课取消)。

P.S.
Sotte Bosse是个很棒的乐队,主唱感觉和椎名林檎有那么几分的相似,在椎名消失的时代,能听到他们的音乐也是一种幸福。推荐:
1.太阳が心にさすように
2.in the world
3.ひらり
4.远く 远く
5.SAKURAドロップス

幽声隧道是个有品位的Podcast,由主播一个人坚持做了一百多期节目,有空可以去听听 http://www.triphopmusic.net/radio.php

一个简单算法

作为Http Get请求送到远端服务器的总是"Http://..../xml/placename/[地名|Region Name]",所以对于一个Connection来说最终要的是取得地名。

现在我们有的查询的形式总是这样:地名常量+:Predicate +?变量名,因此一个简单的策略便是:

1.将有相同地名常量的所有TriplePattern合起来形成一个NodeRelation。其中projections列表中包含已解析过的变量名,即与变量名对应的Tag名,which are already stated in the 映射文件中;而在原有D2RQ中condition中所包含的Constant的关系即是我们需要的地名。这里存在的一个问题是,是否需要重写或者重命名现有的NodeRelation的定义和解析方法。

2.每一个NodeRelation都能作为一个Connection被发送到远端服务器,然后取得结果。假设最简单的情况是,一个SPARQL查询中只有出现了一个地址(即只有一个NodeRelation),那么直接可以把这个NodeRelation中的变量列表(并非projections)添加到整个查询的变量列表中。在D2RQ取得数据,并加以解析和包装后,可供前端程序员取数据。

3.假如一个SPARQL查询中有多个不同的地名出现(即会产生多个NodeRelation),那么我们首先需要多次请求远端服务器提供结果(对于前端程序员来说这是透明的)。其次是在每一次发送请求并取得结果后都要立即解析结果,并将(变量名,结果字符)添加到返回的结果列表中。

现在需要认真解决的问题是:
1.重新审视查询和影射文件的解释过程,并有计划的修改
2.完成向远端服务器提交的查询申请的形成过程
3.结果的解析和包装过程

当然这样说还太高层,具体的细节也不清楚,在做的过程中还需要仔细辨别和思考。

嗨....... 都很麻烦,这个东西做完之后我一定要去海边看鲸鱼然后住上一阵。