<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>xiawared的博客</title>
<link>http://blogger.org.cn/blog/blog.asp?name=xiawared</link>
<description>xiawared的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[Google 以外的17个搜索引擎创新（转）]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34166</link>
<author>xiawared</author>
<pubDate>2008/4/20 18:15:36</pubDate>
<description><![CDATA[<EM><FONT face=Verdana>许多新的搜索引擎（最新统计有100多个）都在开创一些搜索技术的创新。下面是一份17大搜索创新清单，我们认为，这些创新将来会是破坏性的（译者：关于破坏性创新，</FONT></EM><A href="http://dict.yodao.com/search?keyfrom=dict.suggest&amp;q=disruptive%20innovation" target=_blank><FONT face=Verdana color=#333333><EM>请参见这里</EM></FONT></A><EM><FONT face=Verdana>）。这些创新分为4类：查询预处理；信息来源；算法改进；结果可视化和后处理。<BR><BR>[其中的某些创新也在Google的存在各种产品中，但是，正如下文所述，Google的主搜索页中不是缺失了这些功能，就是功能还很有限。]<BR><BR></FONT></EM>
<H2>查询预处理</H2>
<P>&nbsp;这类改进的主要目的是应用逻辑来尽量预测用户的意图，并由此改进查询的输入。<BR></P>
<H3>1. 自然语言处理</H3>
<P>这一功能最初是由Ask.com开创的。同期最著名的例子是<A href="http://www.hakia.com/" target=_blank><FONT color=#333333>Hakia</FONT></A> 和 <A href="http://www.powerset.com/" target=_blank><FONT color=#333333>Powerset</FONT></A>，二者以不同的方式试图理解用户查询背后的语义或意思。这些搜索引擎与Google的很大的不同，是他们认为“忽略词”（<A href="http://www.barneypell.com/archives/2006/10/powerset_and_na.html" target=_blank><FONT color=#333333>stopwords</FONT></A>）非常重要，如次要的连词，像by, for, about, of, in等，Google通常会忽略它们。<BR><BR></P>
<H3>2. 个人相关性（亦称“个性化”）</H3>
<P>长久以来，大家认为按某特定用户的兴趣和要求处理查询，能获得更高相关性的搜索结果。 Google已在其搜索引擎中支持这一功能，但需要登陆才能使用。很多用户理所当然地不情愿这样做，因为这样可能会给Google提供追踪其特殊的搜索内容的条件。 [即使John Battelle<A href="http://battellemedia.com/archives/003559.php" target=_blank><FONT color=#333333>也认为这个想法有点可怕</FONT></A>，尽管Google的Matt Cutts<A href="http://www.mattcutts.com/blog/google-and-privacy/" target=_blank><FONT color=#333333>并不同意这个看法</FONT></A>。] 所需要的就是一种虽然是匿名方式，但能提供个性化的搜索方式。从更广泛的角度来说，提供多个网站上的个性化会更加有用。 <A href="http://www.collarity.com/" target=_blank><FONT color=#333333>Collarity</FONT></A>就是拥有这一功能的搜索引擎。<BR><BR></P>
<H3>3. 定制的、专门的搜索</H3>
<P>这是一个简单但强大的功能。这一应用的典型代表是SimplyHired，一个求职招聘的垂直搜索引擎，能提供强大的、预设的搜索，比如“适合年纪大的员工的雇主”、“允许上班带狗的雇主”等。<BR><BR></P>
<H2>信息来源</H2>
<P>这些改进着重于潜在的数据来源：额外的内容类型和对数据来源的限制，提高了搜索结果的可靠性（减少垃圾信息）。<BR></P>
<H3>4. 新的内容类型</H3>
<P>今天的年轻人正像交流文字信息一样，在手机上舒服地交流照片和视频，成为这个时代的标记。在网上，富媒体内容-图片、音频、视频、电视等，及与其内容有关的语义信息一起正在爆炸性地增长。搜索引擎也愈加需要相应地支持这些内容类型。一些支持丰富内容的搜索引擎的示例如下：<BR><BR>-富媒体搜索：音频 (<A href="http://odeo.com/" target=_blank><FONT color=#333333>odeo</FONT></A>, <A href="http://www.podzinger.com/" target=_blank><FONT color=#333333>podzinger</FONT></A> )，视频(<A href="http://www.youtube.com/" target=_blank><FONT color=#333333>Youtube</FONT></A>, <A href="http://www.searchvideo.com/" target=_blank><FONT color=#333333>truveo</FONT></A>)，电视 (<A href="http://www.blinkx.com/" target=_blank><FONT color=#333333>Blinkx</FONT></A> )，图片 (<A href="http://www.picsearch.com/" target=_blank><FONT color=#333333>Picsearch</FONT></A>, <A href="http://www.netvue.com/" target=_blank><FONT color=#333333>Netvue</FONT></A> )<BR><BR>-专业化内容搜索：博客 (<A href="http://www.technorati.com/" target=_blank><FONT color=#333333>Technorati</FONT></A> )，新闻(<A href="http://www.topix.com/" target=_blank><FONT color=#333333>Topix</FONT></A> )，分类广告 (<A href="http://www.oodle.com/" target=_blank><FONT color=#333333>oodle</FONT></A> )<BR><BR>当然，Google在这一领域也非常活跃，如<A href="http://blogsearch.google.com/" target=_blank><FONT color=#333333>Google Blogsearch</FONT></A>（博客），<A href="http://www.searchmash.com/" target=_blank><FONT color=#333333>Searchmash</FONT></A> (图片), Google视频, Google新闻等，因此，也许将这一项放在这个清单里不大公平。尽管如此，理想的情况是，将不同的媒体结果集合在一个搜索里，正如Searchmash已经做的那样（<A href="http://www.retrevo.com/" target=_blank><FONT color=#333333>Retrevo</FONT></A>是另外一个好例子）。<BR><BR></P>
<H3>5. 限定的数据来源</H3>
<P><BR>最使搜索用户烦心的问题之一是垃圾信息。由于营销商们更加聪明，正日益使用更多侵略性的SEO（搜索引擎优化）技巧，搜索结果的质量就又下降了。 (Google，作为最流行的搜索引擎，更是众矢之的。) 对一系列受信任站点的限制性搜索排除了这一问题，尽管它也缩小了搜索内容的领域—它为某些类型的搜索很好地提供了真实的、优质的结果，比如，当为一个小学项目研究火山时，搜索维基百科（Wikipedia）、国家地理（National Geographic）和科学/教育站点。<BR><BR>这一应用最好的例子来自<A href="http://www.a9.com/" target=_blank><FONT color=#333333>A9.com</FONT></A>，它能从多种数据来源中提供内容，并允许用户对每一个搜索作出清楚的选择。<A href="http://www.google.com/coop/" target=_blank><FONT color=#333333>Google Co-op</FONT></A> 和 <A href="http://builder.search.yahoo.com/" target=_blank><FONT color=#333333>Yahoo! Search Builder</FONT></A> 能使第三方可以创建这种解决方案；<A href="http://www.rollyo.com/" target=_blank><FONT color=#333333>Rollyo</FONT></A>早已经是这一领域的先行者！<BR><BR></P>
<H3>6. 特定领域的搜索（垂直搜索）</H3>
<P><BR>通过聚焦一个单一的垂直方向，搜索引擎能提供更好的用户体验，它对某一特定领域更加全面、简明。针对不同的领域有令人难以置信的大量的垂直搜索引擎，更多资料请查看<A href="http://www.readwriteweb.com/archives/vertical_search.php" target=_blank><FONT color=#333333>Alex Iskold在读写网（Read/WriteWeb）</FONT></A>上的文章或在Software Abstractions博客上的<A href="http://blog.softwareabstractions.com/the_software_abstractions/2006/08/the_rise_of_ver.html" target=_blank><FONT color=#333333>概述</FONT></A>。 [要更全面地了解这方面的信息，Sramana Mitra的<A href="http://sramanamitra.com/blog/929" target=_blank><FONT color=#333333>在线旅游服务概述</FONT></A>介绍了垂直搜索与通用搜索的关系。]<BR><BR></P>
<H2>算法改进</H2>
<P><BR>这些改进着重于提高潜在的搜索算法以提高搜索结果的相关性并提供新的搜索能力。</P>
<H3>7. 参数搜索</H3>
<P>这类搜索更接近于数据库查询，而不象文本搜索。它回答的问题从本质上不同。参数搜索有助于发现问题解决方案，而不是文本文档。比如，<A href="http://www.shopping.com/" target=_blank><FONT color=#333333>Shopping.com</FONT></A>允许你用材料、品牌、风格或价格不同来限定衣服搜索；像<A href="http://www.indeed.com/" target=_blank><FONT color=#333333>indeed</FONT></A> 这样的招聘搜索网站让你限定搜索匹配的邮政编码<A href="http://www.globalspec.com/" target=_blank><FONT color=#333333>；GlobalSpec</FONT></A>让你搜索工程部件时指定多种参数（如搜<A href="http://process-equipment.globalspec.com/specsearch/searchform/processing_equipment/pipe_tubing_hose_fittings_accessories/pipe"><FONT color=#333333>索工业管道时输入各种参数</FONT></A>）。参数搜索是垂直搜索引擎的天然特性。<BR><BR>Google已在通用层面上组合了这一特性，比如在高级搜索页面上的参数，但是冲淡了它的有用性。当你深入进标准的搜索结果，或当你限定搜索某一特定垂直领域时，附加参数的强大功能最能充分体现出来。</P>
<H3>8. 社会化信息输入</H3>
<P>Yahoo! 的Bradley Horowitz<A href="http://www.readwriteweb.com/archives/interview_with_3.php" target=_blank><FONT color=#333333>相信社会化输入</FONT></A>未来将是搜索技术一个重要的分水岭（微软<A href="http://www.businessweek.com/technology/content/apr2006/tc20060414_163652.htm" target=_blank><FONT color=#333333>也有同样看法</FONT></A>）。来自大量用户的聚集信息输入使搜索引擎受益于群众的智慧而提供优质的搜索结果。当然，如果某些个别的输入缺乏独立性或可能是故意捣乱，搜索结果可能会无效。在这一领域中提供的不同的服务中，del.icio.us 是根据这一方法提供优质搜索能力的典范。[在我较早发布的文章中，作了一个基于“外包给群众（crowd-sourcing）”的<A href="http://blog.softwareabstractions.com/the_software_abstractions/2007/01/search_and_the_.html" target=_blank><FONT color=#333333>不同解决方案的可搜索性能的对比</FONT></A>。] 其他基于用户评价的系统包括<A href="http://www.stumbleupon.com/" target=_blank><FONT color=#333333>StumbleUpon</FONT></A>, <A href="http://www.squidoo.com/" target=_blank><FONT color=#333333>Squidoo</FONT></A>, About.com，当然也有Wikipedia。尽管严格来说，它们不是搜索引擎，它们都可以归结于可搜索性的总体框架之内。<BR><BR>当然，Google那功勋卓著的网页排名（PageRank）算法也隐含地根据社会化输入。由于网页排名（PageRank）的一个重要组成部分是基于不同网站的外部链接的数量和特点，那些外部链接担当了收集<A href="http://en.wikipedia.org/wiki/Collective_intelligence" target=_blank><FONT color=#333333>群体智慧</FONT></A>的隐含投票。</P>
<H3>9. 人工输入</H3>
<P>为了有一个完整的认识，把这一类包括进来。像<A href="http://www.chacha.com/" target=_blank><FONT color=#333333>ChaCha</FONT></A>这样的搜索引擎正在试验用人工操作员来回答搜索查询。值得讨论，<A href="http://answers.yahoo.com/" target=_blank><FONT color=#333333>Yahoo! Answers</FONT></A>是否也是这一领域中的另一种解决方案，尽管这些答案由其他用户，而不是为搜索引擎工作的人来提供。<BR><BR>很难看出ChaCha这类方法怎样扩大规模，除非它设法利用社区资源。</P>
<H3>10. 语义搜索</H3>
<P>最近搜索领域一些令人激动的新发展与从整个网络中提取智能信息有关。这些应用刚刚开始，他们表达了<A href="http://www.yeeyan.com/main/tag/57" target=_blank><FONT color=#333333>语义网络</FONT></A>的巨大潜能。这一领域早期的先行者包括：<A href="http://www.monitor110.com/" target=_blank><FONT color=#333333>Monitor110</FONT></A>，它试图从网络上提取可作为行动参考的金融信息，金融机构投资者们可能对这些信息有兴趣；<A href="http://www.spock.com/" target=_blank><FONT color=#333333>Spock</FONT></A>，“搜人”引擎（现在正处于封闭测试阶段），它计划在启动时数据库中有1亿份档案；<A href="http://www.riya.com/" target=_blank><FONT color=#333333>Riya，</FONT></A>一个视觉搜索引擎，其技术能提供照片的面部和文本识别。</P>
<H3>11. 对发现的支持</H3>
<P>与个性化和代理技术并肩的是发现技术，这是搜索的圣杯。尽管即时需求的搜索现在是最流行的，但大部分用户在长时间内有相当稳定的兴趣。如果你能发现新的数据源，特别是当优质的feed出现时，岂不是很爽？<BR><BR>在这一方向上已经有了一些试探性的尝试，将搜索与RSS的力量联合起来，比如你已经能建立一个RSS feed来输出许多 Google 和 Yahoo!中的搜索内容。<A href="http://www.bloglines.com/" target=_blank><FONT color=#333333>Bloglines</FONT></A>已经支持“特荐Feed”的功能－－很明显，feed读者很适合在你感兴趣的领域推荐新的博客和feed（基于你的OPML文档的内容）。这一领域中还有<A href="http://www.aggregateknowledge.com/" target=_blank><FONT color=#333333>Aggregate Knowledge</FONT></A>，它通过从多处网站匿名收集信息来为零售和媒体提供专业化服务。总体而言，这将来会是一个令人激动的领域！</P>
<H2>结果显示和后处理</H2>
<P>这些改进着重于改善结果显示和为查询后提供的“下一步”功能。</P>
<H3>12. 分类、标签云和聚类</H3>
<P>像<A href="http://www.quintura.com/" target=_blank><FONT color=#333333>Quintura</FONT></A>和<A href="http://clusty.com/"><FONT color=#333333>Clusty</FONT></A>这样的搜索引擎根据标签和关键词提供结果的聚类。它不仅让用户看到结果本身，也使结果的聚类及结果之间的关系可视化。这一元信息（meta-information）能帮助用户领会结果并<A href="http://www.readwriteweb.com/archives/quintura_ui_innovations.php" target=_blank><FONT color=#333333>发现相关主题</FONT></A>的新信息。<BR><BR></P>
<H3>13. 结果可视化</H3>
<P><BR>图片比文本结果更容易让人的大脑理解和记忆。在比聚类更普遍的水平上，用专门的图形用户界面来显示搜索结果及结果之间的关系，能传达给用户更多的意义并使用户感觉到“大方向”。在某一特定的上下文中，这一方法效果特别好，比如垂直搜索引擎。 Thinkmap的<A href="http://www.visualthesaurus.com/" target=_blank><FONT color=#333333>Visual Thesaurus</FONT></A>，<A href="http://www.inxight.com/" target=_blank><FONT color=#333333>Inxight Software</FONT></A>的VizServer和房地产搜索引擎<A href="http://www.trulia.com/" target=_blank><FONT color=#333333>Trulia</FONT></A>的<A href="http://www.trulia.com/home_prices/"><FONT color=#333333>HeatMaps</FONT></A>都是使信息可视化的新方法的例子，尽管在这一领域的研究还处于早期阶段。更简单的一个应用<A href="http://www.housingmaps.com/" target=_blank><FONT color=#333333>，HousingMaps</FONT></A>是一个显示可租/售房屋位置的聚合。<BR><BR></P>
<H3>14. 结果提炼与过滤</H3>
<P><BR>搜索后下一步经常是通过进一步的对结果的提炼并“深入进”结果里去。这不同于我们在Google已经用到的“关键词修改”，它不仅仅是用关键词组合来试验提交新的查询，而是试图确实地提炼结果[等于是在SQL查询的“where”子句中增加更多的条件]，这将使用户收缩其结果并趋近于想要的答案。<BR><BR>查询提炼是搜索处理的重要部分，尽管它还没有引起应有的注意。一个好例子是医疗搜索引擎<A href="http://www.healia.com/" target=_blank><FONT color=#333333>Healia</FONT></A>，它允许用户通过使用人口特质过滤器来改动卫生保健搜索结果。这很重要，因为人口特质，比如年龄、种族和性别可能对症状、疾病和治疗用药的搜索结果有很大的影响；还有基于发现结果的复杂性、来源和类型的过滤器。<BR><BR>Google最近在其结果页面底端引入了一个新按钮：“在结果中搜索”，这是正确的一步；结果还可以通过现有的 <A href="http://searchenginewatch.com/showPage.html?page=3623898" target=_blank><FONT color=#333333>OneBox插件</FONT></A>和相关的<A href="http://www.seomoz.org/blog/google-plus-a-sign-of-the-future-of-search" target=_blank><FONT color=#333333>Plusbox</FONT></A>新功能来提炼。随着时间的过去，我们可以期待这一功能会日益成熟。<BR><BR></P>
<H3>15. 结果输出平台</H3>
<P><BR>由于社会化媒体和在线内容变得更加流行，用户数字信息可选择的数量继续增加；相应地，搜索引擎必须支持多种输出平台，包括：网络搜索，移动设备，RIA（丰富互联网应用程序　Rich Internet Applications），RSS，电子邮件等。随着从不同设备接入网络更加普遍，未来的用户很可能会将更加非传统的资源来连接搜索引擎，比如：用TiVo（译者：一种可以录制数字电视节目的系统。）系统来搜索感兴趣的电影或节目，用Nintendo（任天堂）系统搜索在线游戏，甚至用冰箱的触摸屏来搜索菜谱。<BR><BR>现在的一些搜索引擎已经支持标准的网络浏览器和移动设备之外的附加的平台。网络搜索引擎<A href="http://www.plazoo.com/" target=_blank><FONT color=#333333>Plazoo</FONT></A>提供RSS feed 已经很长时间了；<A href="http://www.quintura.com/"><FONT color=#333333>Quintura</FONT></A>起初根本就是一个可下载的RIA应用，现在这个搜索引擎刚刚开始提供网络界面。<BR><BR>为许多不同的结果类型提供支持的最简单的方法是提供开放的API，使第三方开发人员能为专业化的目标平台创建定制的用户界面。<A href="http://websearch.alexa.com/" target=_blank><FONT color=#333333>Alexa网络搜索平台</FONT></A>是最先提供开放的API的平台之一（<A href="http://radar.oreilly.com/archives/2007/04/amazon_sues_ale.html" target=_blank><FONT color=#333333>尽管你自己承担使用该API的风险</FONT></A>），其他可用的API包括<A href="http://www.oodle.com/info/api" target=_blank><FONT color=#333333>oodle</FONT></A>, <A href="http://www.zillow.com/howto/api/APIOverview.htm" target=_blank><FONT color=#333333>zillow</FONT></A> 和 <A href="http://developer.trulia.com/" target=_blank><FONT color=#333333>trulia</FONT></A>。<BR><BR>当然，Google也为几种不同的产品提供API，比如Google Base, Google Maps 和 AJAX 搜索API，尽管不是为主搜索引擎提供。手持设备能通过Google Mobile获得支持；Google Base 和 Blogsearch已经提供了RSS输出。<BR><BR></P>
<H3>16. 相关服务</H3>
<P><BR>严格来讲，这并不是搜索功能本身的一部分。但是，一旦你完成一个查询，经常下一步自然地就是跟随这一搜索的结果。比如，你搜索工作机会以后，你就会想申请你发现的招聘岗位。从最终用户的有用性来看，这是搜索引擎全部功能的内在部分。<BR><BR>令人吃惊的是，这一特征除了显示与上下文相关的广告外，还没有被许多搜索引擎重点开发。这一方法的完美的例子是这个有一个有趣的名字的搜索引擎： <A href="http://www.thewebstoobig.com/pr/default.asp" target=_blank><FONT color=#333333>the web's too big</FONT></A>（互联网太大了），它能使用户搜索英国的公共关系机构的网站上的信息。他们提供一个<A href="http://blog.softwareabstractions.com/the_software_abstractions/2007/03/shrinking_the_w.html" target=_blank><FONT color=#333333>有趣的附加功能</FONT></A>：用户能输入他们的想查询的有关公关的详细情况，点击一下就可以直接提交给多个公关机构。类似地，房地产搜索引擎Zillow提供<A href="http://www.zillow.com/howto/Zestimate.htm" target=_blank><FONT color=#333333>Zestimate</FONT></A>（Zillow计算的房产的估计价值）的概念，以及<A href="http://www.zillowblog.com/zillow_blog/2007/04/new_today_on_zi.html" target=_blank><FONT color=#333333>房产问答</FONT></A>的功能。这些类型的附加服务增加了提供给用户的搜索结果的价值，也使这个网站更有“粘性”。<BR><BR>Google在它的一些产品上也提供附加服务，比如在Google Maps上的“寻找商家”，但并不是在它的主搜索引擎上。<BR><BR></P>
<H3>17. 搜索代理</H3>
<P><BR>搜索代理与持久兴趣的搜索和把搜索结果作为feed输出这两个方向密切相关。设想某个软件有一种定期搜索查询的功能，监控网上感兴趣主题的更新信息，收集并整理结果，移除重复信息并以汇总的形式定期报告给用户。这对某些类型的、重要的但并不立刻需要结果的连续性搜索非常有用：比如，监控感兴趣的招聘、按特定参数设定的在售新房、降到某特定价格的衣服等。<BR><BR><A href="http://www.copernic.com/" target=_blank><FONT color=#333333>Copernic</FONT></A>是这一领域的有趣的服务—Copernic搜索代理能自动运行已存储的搜索，提供新结果的汇总，还能跟踪网页的变化。来自<A href="http://www.connotate.com/" target=_blank><FONT color=#333333>Connotate Technologies</FONT></A>的Information Agent Suite挖掘“深层网络”并自动进行变化探测。更多搜索代理的例子，详见读写网（Read/WriteWeb）的<A href="http://www.readwriteweb.com/archives/allthat_launches_search_agents_app.php" target=_blank><FONT color=#333333>一篇文章</FONT></A>，介绍了<A href="http://allth.at/" target=_blank><FONT color=#333333>Allth.at</FONT></A>及<A href="http://www.swamii.com/" target=_blank><FONT color=#333333>Swamii</FONT></A> 和<A href="http://searchbots.net/" target=_blank><FONT color=#333333>Searchbots.net</FONT></A>。<BR><BR></P>
<H2>结论</H2>
<P><BR>很明显，Google不会坐以待毙的。正像它把个性化搜索引入到它主要的搜索引擎上，当这些其他的方法成功时，Google将继续把这些方法集成到其主搜索引擎上。比如，垂直专业化搜索是Google肯定会用的强大工具。<BR><BR>将来很可能在Google首页上简单的“搜索框”后面会隐藏着多种专业化搜索引擎。另一方面，试图勉强加入这些数量日益增加的复杂特性，将可能使Google或任何其他主流网络搜索引擎的整体结构非常复杂而难以改变，因此如何取舍将是越来越困难的挑战。在Software Abstractions博客的一篇文章中，我们看一看<A href="http://blog.softwareabstractions.com/the_software_abstractions/2007/05/a_conceptual_ar.html" target=_blank><FONT color=#333333>集成了上述大部分功能的主流搜索引擎</FONT></A>的概念结构。</P>
<H2>参考资料</H2>
<P>关于“Google和搜索创新”的著名文章<BR><BR>Josh Kopelman/Redeye VC: <A href="http://redeye.firstround.com/2006/11/google_the_next.html" target=_blank><FONT color=#333333>Google –下一个垂直搜索引擎</FONT></A>？<BR>O'Reilly Rader (via Sarah Milstein): <A href="http://radar.oreilly.com/archives/2006/11/thoughts_on_the_1.html" target=_blank><FONT color=#333333>搜索状况思考</FONT></A><BR>Don Dodge: <A href="http://dondodge.typepad.com/the_next_big_thing/2006/12/whats_new_in_se.html" target=_blank><FONT color=#333333>搜索技术有什么新意？是Google吗？</FONT></A><BR>Rich Skrenta: <A href="http://www.skrenta.com/2007/03/how_to_beat_google_part_1.html" target=_blank><FONT color=#333333>怎样战胜Google（第一部分）</FONT></A><BR>Information Arbitrage: <A href="http://www.informationarbitrage.com/2006/12/domain_expertis.html" target=_blank><FONT color=#333333>知识领域：下一代搜索的钥匙</FONT></A><BR>David Berkowitz: <A href="http://www.marketersstudio.com/2007/03/the_hunt_for_se.html" target=_blank><FONT color=#333333>寻找搜索创新（第一部分）</FONT></A><BR>Richard MacManus/RWW: <A href="http://www.readwriteweb.com/archives/interview_with_matt_cutts_next_generation_search.php" target=_blank><FONT color=#333333>关于下一代互联网对Google的Matt Cutts的访谈</FONT></A><BR>Phil Butler谈<A href="http://www.profy.com/2007/05/02/hakia-search/" target=_blank><FONT color=#333333>Hakia</FONT></A>和<A href="http://www.profy.com/2007/01/05/powerset-search-engine/" target=_blank><FONT color=#333333>Powerset</FONT></A><BR>Bob Stumpel: <A href="http://bobstumpel.blogspot.com/2006/12/search-20-consolidated.html" target=_blank><FONT color=#333333>搜索2.0--合并</FONT></A><BR>Google操作系统： <A href="http://googlesystem.blogspot.com/2007/04/what-has-google-done-in-search-lately.html" target=_blank><FONT color=#333333>Google最近在搜索领域作了什么</FONT></A>？<BR><BR>更新：我曾经发现Google的主搜索引擎确实支持上述某些功能，但他们仅仅在特定搜索或特定条件下间歇地出现。如果你在Google里遇到这些功能，请给我发email：nitink@softwareabstractions.com，我会很高兴发布并更新。有这一功能的屏幕截图就更好了！</P>
<DIV class=invisible id=reference>文章引用自：<A href="" target=_blank></A> </DIV>
<DIV id=Sina_AD2></DIV>
<DIV id=articleUtil><A id=comments href="http://blog.sina.com.cn/s/comment_4d6ce3d0010088q0_1.html" target=contentIframeLink>评论(<SPAN id=commentsNum>0</SPAN>)</A> <!--   <a id="quote" href="http://my.blog.sina.com.cn/writing/scriber/article_add_by_quote.php?blog_id=4d6ce3d0010088q0" target="_blank">引用</a> --><A id=views href="http://blog.sina.com.cn/s/reader_4d6ce3d0010088q0.html" target=_blank>阅读(<SPAN id=viewNum>15</SPAN>)</A> <A id=circle href="http://blog.sina.com.cn/s/circleinfo_4d6ce3d0010088q0_1.html" target=contentIframeLink>圈子</A> <A class=invisible id=edit href="http://my.blog.sina.com.cn/writing/scriber/article_edit.php?mode=1&amp;blog_id=4d6ce3d0010088q0" target=_blank _extended="true">编辑</A> <A id=views href="http://blog.sina.com.cn/s/print_4d6ce3d0010088q0.html" target=_blank>打印</A> <A class=noSplit id=report onclick="window.open('/advice/impeach.php?url=' + escape('http://blog.sina.com.cn/s/blog_4d6ce3d0010088q0.html'), '', 'width=510,height=495,left=' + (window.screen.width-538)/2 + ',top=' + (window.screen.height-525)/2);" href="javascript:void(0);">有奖举报</A> </DIV>
<DIV class=articleNavbtn id=articleNavBtn>
<DIV class=NavPrv><A onclick="sendLog('articlenewone','rela_articleprev');" href="http://blog.sina.com.cn/s/blog_4d6ce3d001000cgl.html">前一篇：Do&nbsp;not&nbsp;wait...</A></DIV>
<DIV class=NavNext><A onclick="sendLog('articlenewone','rela_articleprev');" href="http://blog.sina.com.cn/s/blog_4d6ce3d001008wb2.html">后一篇：偶的婚纱照片</A></DIV></DIV><IFRAME class=subContent id=contentIframeLink style="DISPLAY: block; HEIGHT: 490px" name=contentIframeLink src="http://blog.sina.com.cn/s/comment_4d6ce3d0010088q0_1.html" frameBorder=0 scrolling=no allowTransparency _extended="true"></IFRAME>
<SCRIPT>preProcedure();</SCRIPT>
<!--componentContent-->
<DIV class=componentFooter></DIV><!--componentFooter--><!--column_2-->
<DIV class=floatLeft id=gap_2></DIV>
<DIV class=floatLeft id=column_3></DIV><!--column_3-->
<DIV class=floatLeft id=gap_3></DIV>
<DIV class=floatLeft id=column_4></DIV><!--column_4-->
<DIV class=floatLeft id=contentRight></DIV><!--contentRight-->
<DIV class=clearBoth id=contentBottom></DIV><!--contentLayout-->]]></description>
</item><item>
<title><![CDATA[本体涉及的工具]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34117</link>
<author>xiawared</author>
<pubDate>2008/4/19 9:48:20</pubDate>
<description><![CDATA[<P>　本体工具列表：<BR>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ontology Translation </P>
<P>所谓“Ontology Translation”，实际上讲的就是全局本体和局部本体之间的映射问题。 </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Articulation Service：在2 个source ontologies间构建一个不对称映射。映射使用一个articulation ontology表示。没有找到下载链接。不过可以在网上运行一个demo。</P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lexicon-Based Ontology Mapping Tool：基于词典的 ontology 映射工具。开放源码。 </P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntoMerge：作为人和代理间的半自动化的连接，解决在重叠的主题领域中的符号的不同。没有找到下载链接。不过可以在网上运行一个demo。 </P>
<P>&nbsp;</P>
<P><BR>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDBMS Mapping </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D2R MAP：一种 declarative 语言，描述关系数据库 schemata 和 RDF-S/OWL ontologies 间的映射。D2R 处理器可以使用这个映射将关系数据库中的信息输出进 RDF。开源。</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D2RQ：一种 declarative 映射语言，将 non-RDF 数据库作为 Jena 工具包里的虚拟 RDF 图进行处理。开源。</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; KAON-REVERSE：KAON-REVERSE 是一个 Ontomat 插件，它使用 JDBC 连接至一个现有的关系数据库，半自动的定义数据库表到一个 ontology 的映射，根据那些映射，将包含在数据库中的数据抽取为实例。有老版本可以下载。</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unicorn System：Unicorn 系统使用数据语义为数据生命周期管理提供了全面的集成平台。不开源，有些demo可以看看。 </P>
<P><BR>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本体编辑器 </P>
<P>3.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Editor<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Emacs Mode：网页打不开 </P>
<P>3.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ontology Editor<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML+OIL Plugin for Protege 2000：a plugin for Protege 2000 that allows users to read, edit, and generate DAML+OIL ontologies </P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML UML Enhanced Tool (DUET)：DUET provides a UML visualization and authoring environment for DAML. DUET is available as a Rational Rose Addin or an ArgoUML plugin.网页打不开 </P>
<P>&nbsp;</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ezOWL：a diagram-based ontology editor for OWL implemented as a Protege plugin网页打不开 </P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Medius Visual Ontology Modeler：a UML-based ontology modeling tool, an add-in to Rational Rose Enterprise Edition, that can export DAML。没找到下载链接。 </P>
<P>&nbsp;</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OilEd：includes interface to FaCT reasoner。可下载。 </P>
<P>&nbsp;</P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntoEdit：an Ontology Editor, which can import and export DAML+OIL as well as RDF and F-Logic。可下载。 </P>
<P>&nbsp;</P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Plugin for Protege 2000：a plugin for Protege 2000 that allows users to read, edit, and generate OWL ontologies </P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Unicorn System：The Unicorn system provides a comprehensive integrated platform for data life cycle management using data semantics。没找到下载。 </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ontolingua </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Protege</P>
<P>3.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Editor<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Emacs Mode：网页显示无效项目 </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Filetype Plugin for VIM：provides menu-accessible functions for autogenerating common OWL constructs。可下载。 </P>
<P>3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Editor <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MR3 </P>
<P>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本体解释器<BR>4.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL Parser<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWL API&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWLP </P>
<P>4.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Parser <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Another RDF Parser (ARP)&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML dotnetAPI&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Drive&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICS-FORTH Validating RDF Parser (VRP)&nbsp; </P>
<P><BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jena </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jena Location Modification&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OWLP&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Raptor&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF API&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF API for PHP (RAP)&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF I/O (Rio)&nbsp; <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDFLib&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Parser Toolkit (repat)&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Redland </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sesame </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Simple RDF Parser And Compiler (SiRPAC)&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Source and Dynamic Loading Extensions for Jena&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thea RDF Parser&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VicSoft.Rdf Parser </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wilbur RDF Toolkit&nbsp; </P>
<P>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Annotation <BR>5.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Annotation <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Annotea<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MnM<BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ontomat&nbsp; <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Trellis </P>
<P>5.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Annotation <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AeroDAML&nbsp; <BR>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML API <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML API&nbsp; <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAMLJessKB&nbsp; <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jena&nbsp; <BR>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Crawler <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Crawler&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Crawler </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scutter&nbsp; </P>
<P>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本体转换<BR>8.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML Transformation <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DAML/XSLT Adapter&nbsp; </P>
<P>8.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Transformation <BR>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDF Twig </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RX4RDF&nbsp; </P>
<P>l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TreeHugger&nbsp; </P>
<P><BR>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[语义网涉及到的工具列表]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34116</link>
<author>xiawared</author>
<pubDate>2008/4/19 9:45:46</pubDate>
<description><![CDATA[<P>转载 语言网工具</P>
<P>All Tools by Category <BR>Category Tool <BR>Agent Infrastructure CoABS Grid <BR>Agent Infrastructure Cognitive Agent Architecture (Cougaar) <BR>Agent Infrastructure Open Agent Architecture (OAA) <BR>Annotation Annotea <BR>Annotation MnM <BR>Annotation Ontomat <BR>Annotation Trellis <BR>Application Server Racoon <BR>Application Server Spectacle:Server <BR>Application Server Zope <BR>Compiler Jikes <BR>DAML Annotation AeroDAML <BR>DAML API DAML API <BR>DAML API DAMLJessKB <BR>DAML API Jena <BR>DAML Browser DAML Markup Tool <BR>DAML Browser DAML Mozilla sidebar <BR>DAML Browser DAML Sidebar <BR>DAML Browser HyperDAML <BR>DAML Browser OntoDoc <BR>DAML Browser Spectacle:Server <BR>DAML Crawler DAML Crawler <BR>DAML Crawler RDF Crawler <BR>DAML Crawler scutter <BR>DAML Editor DAML Emacs Mode <BR>DAML Graph Visualization DAML VisuaLinks <BR>DAML Graph Visualization Fenfire Loom <BR>DAML Graph Visualization IsaViz <BR>DAML Graph Visualization Object Viewer <BR>DAML Graph Visualization RDF Model Browser <BR>DAML Graph Visualization SemTalk <BR>DAML Graph Visualization VisioDAML <BR>DAML Markup tool Semantic Markup, Ontology and RDF Editor (SMORE) <BR>DAML Transformation DAML/XSLT Adapter <BR>DAML Validator DAML Validator <BR>DAML Viewer BrownSauce <BR>DAML Viewer DAML Viewer <BR>DAML Viewer PalmDAML <BR>DAML Viewer Spectacle:Server <BR>Database Interface dbview <BR>Database Management System MySQL <BR>Database Management System Sleepycat Berkeley DB <BR>EMail Archive Hypermail <BR>EMail List Manager Majordomo <BR>Export OWL Converter <BR>GPS API Chaeron Global Positioning System (GPS) Library <BR>Graph Visualization GraphViz <BR>Graph Visualization Grappa <BR>Graph Visualization IHMC Concept Mapping Software <BR>Graph Visualization JGraph <BR>Graph Visualization JViews <BR>Graph Visualization MonarchGraph <BR>Graph Visualization Tom Sawyer Graph Layout/Editor Tools <BR>Graph Visualization TouchGraph <BR>HTML Screen Scraper Compaq's Web Language (WebL) <BR>HTML Screen Scraper RDF Web Scraper <BR>HTML Screen Scraper World Wide Web Wrapper Factory (W4F) <BR>HTTP Cache WWW Offline Explorer (WWWOFFLE) <BR>Import Excel to RDF converter <BR>Import PDDL to DAML Translator <BR>Import RDF Web Scraper <BR>Import Uml2Daml Converter <BR>Import Unicorn System <BR>Import XML Schema to DAML Translator <BR>Inference Engine Bossam - A Web-Oriented Rule Processor <BR>Inference Engine Cerebra <BR>Inference Engine CLIPS <BR>Inference Engine CommonRules <BR>Inference Engine cwm <BR>Inference Engine drools <BR>Inference Engine Euler proof mechanism <BR>Inference Engine Fast Classification of Terminologies (FaCT) <BR>Inference Engine FLORA-2 <BR>Inference Engine F-OWL <BR>Inference Engine InferEd <BR>Inference Engine Java Expert System Shell (JESS) <BR>Inference Engine Java Theorem Prover (JTP) <BR>Inference Engine Metalog <BR>Inference Engine OpenCyc <BR>Inference Engine Otter <BR>Inference Engine OWLEngine <BR>Inference Engine Pellet <BR>Inference Engine PowerLoom <BR>Inference Engine RACER <BR>Inference Engine RDF Gateway <BR>Inference Engine Sesame <BR>Inference Engine Simple Logic-based RDF Interpreter (SiLRI) <BR>Inference Engine SRI's New Automated Reasoning Kit (SNARK) <BR>Inference Engine Surnia <BR>Inference Engine SweetJess <BR>Inference Engine SWI Prolog <BR>Inference Engine TRIPLE <BR>Inference Engine Vampire <BR>Inference Engine XSB <BR>Interactive Development Environment eclipse <BR>Knowledge Base OpenCyc <BR>Map Toolkit OpenMap <BR>Middleware Bridge J-Integra <BR>Network Sniffer Ethereal <BR>Ontology Analyzer Chimaera <BR>Ontology Analyzer ConsVISor <BR>Ontology Analyzer DAML+OIL Ontology Checker <BR>Ontology Browser OntoRama <BR>Ontology Editor DAML+OIL Plugin for Protege 2000 <BR>Ontology Editor DAML UML Enhanced Tool (DUET) <BR>Ontology Editor ezOWL <BR>Ontology Editor Medius Visual Ontology Modeler <BR>Ontology Editor OilEd <BR>Ontology Editor OntoEdit <BR>Ontology Editor Ontolingua <BR>Ontology Editor OWL Plugin for Protege 2000 <BR>Ontology Editor Protege <BR>Ontology Editor Unicorn System <BR>Ontology Library OntoMap.org <BR>Ontology Library SchemaWeb <BR>Ontology Management System Semantic Network Ontology Base (SNOBASE) <BR>Ontology Translation Articulation Service <BR>Ontology Translation Lexicon-Based Ontology Mapping Tool <BR>Ontology Translation OntoMerge <BR>Ontology Visualization dumpont <BR>OWL Browser Semantic Web Ontology Overview and Perusal (SWOOP) <BR>OWL Editor OWL Emacs Mode <BR>OWL Editor OWL Filetype Plugin for VIM <BR>OWL Parser OWL API <BR>OWL Parser OWLP <BR>OWL Validator OWL Ontology Validator <BR>OWL Validator OWL Validator <BR>PalmOS utilities PDBcruncher <BR>Performance Analysis JProbe <BR>Performance Analysis Quantify <BR>Persistence 3store <BR>Persistence DAML DB <BR>Persistence Jena <BR>Persistence Kowari <BR>Persistence ParkaSW <BR>Persistence RDF Gateway <BR>Persistence RDFLib <BR>Persistence RDF-Source related Storage System (RDF-S3) <BR>Persistence Sesame <BR>Persistence Tucana KnowledgeStore (TKS) <BR>Presentation Tools SlideMaker <BR>Programming Language Fabl <BR>Programming Language Python <BR>Programming Language Water <BR>Query 3store <BR>Query Kowari <BR>Query RDF Data Query Language (RDQL) <BR>Query RDF Gateway <BR>RDBMS Mapping D2R MAP <BR>RDBMS Mapping KAON-REVERSE <BR>RDBMS Mapping Unicorn System <BR>RDF/DAML Authoring RDF Instance Creator (RIC) <BR>RDF Authoring InferEd <BR>RDF Browser RDFX: A Resource Description Framework Explorer <BR>RDF Editor MR3 <BR>RDF Parser Another RDF Parser (ARP) <BR>RDF Parser DAML dotnetAPI <BR>RDF Parser Drive <BR>RDF Parser ICS-FORTH Validating RDF Parser (VRP) <BR>RDF Parser Jena <BR>RDF Parser Jena Location Modification <BR>RDF Parser OWLP <BR>RDF Parser Raptor <BR>RDF Parser RDF API <BR>RDF Parser RDF API for PHP (RAP) <BR>RDF Parser RDF I/O (Rio) <BR>RDF Parser RDFLib <BR>RDF Parser RDF Parser Toolkit (repat) <BR>RDF Parser Redland <BR>RDF Parser Sesame <BR>RDF Parser Simple RDF Parser And Compiler (SiRPAC) <BR>RDF Parser Source and Dynamic Loading Extensions for Jena <BR>RDF Parser Thea RDF Parser <BR>RDF Parser VicSoft.Rdf Parser <BR>RDF Parser Wilbur RDF Toolkit <BR>RDF Query Algae <BR>RDF Query Easy RDF Query Language (eRQL) <BR>RDF Query Jena <BR>RDF Query RDF API for PHP (RAP) <BR>RDF Query Rudolf Squish <BR>RDF Query Sesame <BR>RDF Query Versa <BR>RDF Storage PARKA-DB <BR>RDF Storage rdfDB <BR>RDF Storage RDFStore <BR>RDF Transformation RDF Twig <BR>RDF Transformation RX4RDF <BR>RDF Transformation TreeHugger <BR>Remote Access WinVNC <BR>Report Generation Webscripter <BR>Search Engine DAML Semantic Search Service <BR>Search Engine Lucene <BR>Search Engine Semantic Query Interface in Restricted English (SQIRE) <BR>Search Engine Simple Web Indexing System for Humans -- Enhanced (SWISH-E) <BR>Search Engine Webinator <BR>Secure Shell Client F-Secure SSH Client <BR>Secure Shell Client PuTTY <BR>Security OpenSSL <BR>Text Editor GNU Emacs <BR>Text Editor vim <BR>Text Editor XEmacs <BR>Thesaurus Construction MultiTes <BR>Topic Map Browser Omnigator 007 <BR>UML Editor ArgoUML <BR>UML Editor Poseidon <BR>UML Editor Rational Rose <BR>UML Editor Telelogic Tau UML Suite <BR>Version Control Concurrent Versions System (CVS) <BR>WWW browser Amaya <BR>WWW browser Mozilla <BR>WWW browser Opera <BR>WWW server Apache <BR>WWW Site Statistics Perl WebStats <BR>XML Editor RDFedt <BR>XML Editor Stylus Studio <BR>XML Editor XML Spy <BR>XML Parser Java API for XML Parsing (JAXP) <BR>XML Parser XML Parser Toolkit (expat) <BR>XML Schema API Castor <BR>XML Schema API Oracle XML Schema Processor <BR>XML Schema API Sun XML Datatypes Library <BR>XML Schema Validator XML Schema Validator (XSV) <BR>XSLT xalan <BR>XSLT XT&nbsp; </P>]]></description>
</item><item>
<title><![CDATA[理解jena 推理机制]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34013</link>
<author>xiawared</author>
<pubDate>2008/4/16 16:14:39</pubDate>
<description><![CDATA[<P>网上搜到一篇关于jena的推理机制的简介，看了这篇文章就可以大致知道Jena推理咋回事了。。。</P>
<P>晕死，传不上去</P>
<P>《<FONT size=3><FONT color=#c60a00>Jena</FONT><FONT color=#c60a00>推理机</FONT>在基于本体的信息检索中的应用</FONT>》</P>
<P>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[本体与owl]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34012</link>
<author>xiawared</author>
<pubDate>2008/4/16 15:54:31</pubDate>
<description><![CDATA[<P>本体的定义：</P>
<P>它在哲学中的定义为“对世界上客观存在物的系统地描述，即存在论”，是客观存在的一个系统的解释或说明，关心的是客观现实的抽象本质。 </P>
<P>在人工智能界，最早给出Ontology定义的是Neches等人，他们将Ontology定义为“给出构成相关领域词汇的基本术语和关系，以及利用这些术语和关系构成的规定这些词汇外延的规则的定义”。</P>
<P>Ontology的概念包括四个主要方面： <BR>1. 概念化（conceptualization）：客观世界的现象的抽象模型； <BR>2. 明确（explicit）：概念及它们之间联系都被精确定义； <BR>3. 形式化（formal）：精确的数学描述； <BR>4. 共享（share）：本体中反映的知识是其使用者共同认可的。</P>
<P>owl：</P>
<P>OWL（Web Ontology Language）是W3C开发的一种网络本体语言，用于对本体进行语义描述。</P>
<P>W3C的设计人员针对各类特征的需求制定了三种相应的OWL的子语言，即OWL Lite、OWL DL和OWL Full，而且各子语言的表达能力递增。<BR>OWL Lite是表达能力最弱的子语言。它是OWL DL的一个子集，但是通过降低OWL DL中的公理约束，保证了迅速高效的推理。它支持基数约束，但基数值只能为0或l。因为OWL Lite表达能力较弱，为其开发支持工具要比其他两个子语言容易一些。OWL Lite用于提供给那些仅需要一个分类层次和简单约束的用户.</P>
<P>可参考的资料：</P>
<P>&nbsp;1.OWL Web Ontology Language Reference，<A href="http://www.w3.org/TR/owl-ref/" target=_blank>http://www.w3.org/TR/owl-ref/</A> <BR>&nbsp;2.OWL Web Ontology Language Guide， <A href="http://www.w3.org/TR/owl-guide/" target=_blank>http://www.w3.org/TR/owl-guide/</A> <BR>&nbsp;3.OWL Web Ontology Language Overview，<A href="http://www.w3.org/TR/owlfeatures/" target=_blank>http://www.w3.org/TR/owlfeatures/</A> </P>
<P>owl 编译工具：protege ，jena</P>
<P>推理工具：racer jena KAON2 ...</P>
<P><BR>&nbsp;</P>]]></description>
</item><item>
<title><![CDATA[使用 jena]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34011</link>
<author>xiawared</author>
<pubDate>2008/4/16 15:46:05</pubDate>
<description><![CDATA[<P>参照网上的一些资料组合这个例子，给大家一个使用jena的大概印象。</P>
<P>import java.util.Iterator;</P>
<P>import com.hp.hpl.jena.db.DBConnection;<BR>import com.hp.hpl.jena.db.IDBConnection;<BR>import com.hp.hpl.jena.ontology.Individual;<BR>import com.hp.hpl.jena.ontology.OntClass;<BR>import com.hp.hpl.jena.ontology.OntModel;<BR>import com.hp.hpl.jena.ontology.OntModelSpec;<BR>import com.hp.hpl.jena.ontology.OntProperty;<BR>import com.hp.hpl.jena.rdf.model.Model;<BR>import com.hp.hpl.jena.rdf.model.ModelFactory;<BR>import com.hp.hpl.jena.rdf.model.ModelMaker;<BR>import com.hp.hpl.jena.util.iterator.ExtendedIterator;</P>
<P><BR>public class test {<BR>&nbsp;&nbsp;&nbsp;public static IDBConnection connectDB(String DB_URL, String DB_USER,String DB_PASSWD, String DB_NAME) </P>
<P>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new DBConnection(DB_URL, DB_USER, DB_PASSWD, DB_NAME);<BR>&nbsp;&nbsp;&nbsp;} <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;/* 从文件读取本体并将其存入数据库 */<BR>&nbsp;&nbsp;&nbsp;public static OntModel createDBModelFromFile(IDBConnection con, String name, String filePath) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ModelMaker maker = ModelFactory.createModelRDBMaker(con);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Model base = maker.createModel(name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntModel newmodel = ModelFactory.createOntologyModel(getModelSpec(maker), base);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newmodel.read(filePath);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return newmodel;<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;&nbsp;/* 从数据库中得到已存入本体 */<BR>&nbsp;&nbsp;&nbsp;public static OntModel getModelFromDB(IDBConnection con, String name) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ModelMaker maker = ModelFactory.createModelRDBMaker(con);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Model base = maker.getModel(name);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntModel newmodel = ModelFactory.createOntologyModel(<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getModelSpec(maker), base);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return newmodel;<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;&nbsp;&nbsp;public static OntModelSpec getModelSpec(ModelMaker maker) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntModelSpec spec = new OntModelSpec(OntModelSpec.OWL_MEM);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spec.setImportModelMaker(maker);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return spec;<BR>&nbsp;&nbsp;&nbsp;}</P>
<P>&nbsp;public static void main(String[] args){<BR>//&nbsp;&nbsp;test JaneUtils = new test();<BR>&nbsp;&nbsp;String DB_URL = "jdbc:mysql://localhost/protege_db";<BR>&nbsp;&nbsp;&nbsp;&nbsp; String DB_USER = "root";<BR>&nbsp;&nbsp;&nbsp;&nbsp; String DB_PASSWD = "25647335";<BR>&nbsp;&nbsp;&nbsp;&nbsp; String DB = "MySQL";<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; try {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName("com.mysql.jdbc.Driver");<BR>&nbsp;&nbsp;&nbsp;&nbsp; } catch (ClassNotFoundException e) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; String filePath = "file:F://eclipse//workspace//Animal.owl";<BR>&nbsp;&nbsp;&nbsp;&nbsp; IDBConnection con = connectDB(DB_URL,DB_USER, DB_PASSWD, DB);<BR>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(con);<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; createDBModelFromFile(con, "expert",filePath);&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; OntModel model = getModelFromDB(con, "expert");<BR>&nbsp;&nbsp;&nbsp;&nbsp; SimpleReadOntology(model);<BR>&nbsp;&nbsp;&nbsp;&nbsp; getInstance(model);<BR>&nbsp;&nbsp;&nbsp;&nbsp; getInstanceProperty(model);<BR>}<BR>&nbsp;public static void SimpleReadOntology(OntModel model) {<BR>&nbsp;&nbsp;System.out.println("Simeple read ontology : ");<BR>&nbsp;&nbsp;System.out.println("There are "+model.listClasses().toList().size()+"Classes : ");<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator i = model.listClasses(); i.hasNext();) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntClass c = (OntClass) i.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c.getLocalName()!=null){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println(c.getLocalName());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(c.getURI()!=null)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;System.out.println(c.getURI());<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;}<BR>&nbsp;public static void getInstance(OntModel model){<BR>&nbsp;&nbsp;System.out.println("Get Instance : ");<BR>&nbsp;&nbsp;//http://www.owl-ontologies.com/Expert.owl#";<BR>&nbsp;&nbsp;&nbsp;&nbsp; String prix = "<A href="http://www.owl-ontologies.com/Ontology1208149104.owl">http://www.owl-ontologies.com/Ontology1208149104.owl</A>#";<BR>&nbsp;&nbsp;&nbsp;&nbsp; /*得到本体中的Expert类*/<BR>&nbsp;&nbsp;&nbsp;&nbsp; OntClass expert = model.getOntClass(prix + "Zoo");<BR>&nbsp;&nbsp;&nbsp;&nbsp; //打印类名<BR>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(expert.getLocalName() + ":");<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; //获得其所以个体<BR>&nbsp;&nbsp;&nbsp;&nbsp; ExtendedIterator it = expert.listInstances();<BR>&nbsp;&nbsp;&nbsp;&nbsp; //打印其个体<BR>&nbsp;&nbsp;&nbsp;&nbsp; while(it.hasNext()){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Individual oi = (Individual)it.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(oi.getLocalName());<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;}<BR>&nbsp;public static void getInstanceProperty(OntModel model) {<BR>&nbsp;&nbsp;System.out.println("Get Instance Property :");<BR>&nbsp;&nbsp;&nbsp;&nbsp; String NS = "<A href="http://www.owl-ontologies.com/Ontology1208149104.owl">http://www.owl-ontologies.com/Ontology1208149104.owl</A>#";<BR>&nbsp;&nbsp;&nbsp;&nbsp; /* 得到本体中的Expert类 */<BR>&nbsp;&nbsp;&nbsp;&nbsp; OntClass expert = model.getOntClass(NS + "Zoo");<BR>&nbsp;&nbsp;&nbsp;&nbsp; // 打印类名<BR>&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(expert.getLocalName());</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; // 获得其所以个体<BR>&nbsp;&nbsp;&nbsp;&nbsp; ExtendedIterator it = expert.listInstances();<BR>&nbsp;&nbsp;&nbsp;&nbsp; // 打印其个体<BR>&nbsp;&nbsp;&nbsp;&nbsp; while (it.hasNext()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Individual oi = (Individual) it.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(oi.getLocalName());</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (Iterator ipp = expert.listDeclaredProperties(); ipp.hasNext();) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OntProperty p = (OntProperty) ipp.next();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("&nbsp; associated property: " + p.getLocalName() + " : "+oi.getPropertyValue(p));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }// property ends<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;}</P>
<P>}</P>
<P>用到的本体：</P>
<P><IMG src="http://blogger.org.cn/blog/images/file/zip.gif" border=0><A href="http://blogger.org.cn/blog/uploadfile/2008416154851771.RAR" target=_blank>Animal.rar</A><BR></P>]]></description>
</item><item>
<title><![CDATA[protege 入门系列]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34010</link>
<author>xiawared</author>
<pubDate>2008/4/16 15:37:38</pubDate>
<description><![CDATA[<P>网上有很多，觉得还不错。作为入门教程，有点意思。。。</P>
<P><IMG src="http://blogger.org.cn/blog/images/file/zip.gif" border=0><A href="http://blogger.org.cn/blog/uploadfile/2008416154227569.RAR" target=_blank>Protege新手入门(基础篇).rar</A></P>]]></description>
</item><item>
<title><![CDATA[jena 入门]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=34008</link>
<author>xiawared</author>
<pubDate>2008/4/16 15:35:06</pubDate>
<description><![CDATA[<A></A> 
<TABLE style="TABLE-LAYOUT: fixed">
<TBODY>
<TR>
<TD>
<DIV class=cnt id=blog_text>
<P><FONT color=#000000>Jena文档《An Introduction to RDF and the Jena RDF API》的译文</FONT></P>
<P><BR><FONT color=#000000>RDF和Jena RDF API入门<BR>________________________________________<BR>前言<BR>本文是一篇对W3C的资源描述框架(RDF)和 Jena(一个Java的RDF API)的教程性介绍. 本文是为那些不熟悉RDF的, 以及那些通过建立原形可以达到最好学习效果的, 或是因为其他原因希望能快速操作Jena的程序员而写的. 我们假设读者在阅读本文前已具有一定的XML和Java知识.<BR>如果读者在没有理解RDF数据模型的基础上就迅速进入操作阶段,往往会导致失败和失望. 然而,如果光学习数据模型又是十分枯燥乏味的, 并常常会导致曲折的形而上学的难题. 更好的学习办法是在理解数据模型的同时练习操作它. 可以先学习一点数据模型再动手试一试.然后在学习一点再试一试. 这样一来就能达到理论实践相结合的效果.数据模型本身十分简单,所以学习过程不会太长.<BR>RDF具有XML的语法, 所以许多熟悉XML的人就会认为以XML语法的形式来思考RDF. 然而, 这是不对的. RDF应该以它数据模型的形式来被理解. RDF数据可是用XML来表示, 但是理解数据模型的重要性更在理解此语法重要性之上.<BR>Jena API的一个运行例子, 包括本教程中所有例子的工作源代码都可以在</FONT><A href="http://www.hpl.hp.com/semweb/"><FONT color=#000000>http://www.hpl.hp.com/semweb/</FONT></A><FONT color=#000000>下载.<BR>________________________________________<BR>目录<BR>1. 导言<BR>2. 陈述Statements<BR>3. RDF写操作<BR>4. RDF读操作<BR>5. Jena RDF 包<BR>6. 操纵模型<BR>7. 查询模型<BR>8. 对模型的操作 <BR>9. 容器Containers<BR>10. 关于Literals和数据类型的更多探讨<BR>11. 术语表<BR>________________________________________<BR>导言<BR>资源描述框架是(RDF)是描述资源的一项标准(在技术上是W3C的推荐标准). 什么是资源? 这实在是一个很难回答的问题, 其精确的定义目前尚在争论中. 出于我们的目的, 我们可以把资源想象成任何我们可以确定识别的东西. 在本教程中,读者你本身就是一个资源, 而你的主页也是一个资源, 数字1和故事中巨大的白鲸都是资源.<BR>在本教程中, 我们的例子会围绕人们展开. 假设人们会使用VCARDS, 而VCARD将由RDF表示机制来描述. 我们最好把RDF考虑成由结点和箭头的形式构成的图. 一个简单的vcard在RDF中可能看起来是这样的:</FONT></P>
<P><BR><FONT color=#000000>资源John Smith在图中用椭圆表示, 并被一个统一资源定位符(URI)所标识, 在本例中是"</FONT><A href="http://.../JohnSmith"><FONT color=#000000>http://.../JohnSmith</FONT></A><FONT color=#000000>"). 如果你想要通过你的浏览器来访问这个资源的话,你很有可能会失败. 四月的愚人节笑话并不经得起考验, 相反如果你的浏览器把John Smith传递到你的桌面的话, 你才该感到惊讶. 如果你并不熟悉URI's的话, 你可以把它们想象成简单的陌生名字.<BR>资源拥有属性(property). 在这些例子中, 我们对John Smith名片上出现的那些属性很感兴趣.图1只显示了一个属性, John Smith的全名. 属性是由标有属性名的箭头表示的. 属性的名字也是一个URI, 但是由于URI十分冗长笨重, 所以图中将它显示为XML qname的形式. 在':'之前的部分称为命名空间前缀并表示了一个命名空间. 在':'之后的部分称为局部名, 并表示在命名空间中的一个名字. 在写成RDF XML形式时, 属性常常以qname的形式表示, 这是一个在图形和文本中的简单的缩写方法. 然而, 严格地讲, 属性应该用URI来标识. 命名空间前缀:局部名的形式是一种命名空间连接局部名的URI缩写. 当浏览器访问时, 用并没有强制属性的URI必须指向一些具体的事物.<BR>每个属性都有一个值. 在此例中, 值为一个文本(literal), 我们现在可以把它看成一个字符串.文本在图中显示为长方形.<BR>Jena是一个Java API, 我们可以用它来创建和操纵诸如上述例图的RDF图. Jena设有表示图(graph), 资源(resource), 属性和文本(literal)的对象类. 表示资源, 属性和文本的接口分别称为Resource, Property, 和Literal. 在Jena中, 一个图(graph)被称为一个模型并被Model接口所表示.<BR>创建上述例图或称为上述模型的代码很简单:<BR>// some definitions<BR>static String personURI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "</FONT><A href="http://somewhere/JohnSmith"><FONT color=#000000>http://somewhere/JohnSmith</FONT></A><FONT color=#000000>";<BR>static String fullName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "John Smith"; </FONT></P>
<P><FONT color=#000000>// create an empty Model<BR>Model model = ModelFactory.createDefaultModel();</FONT></P>
<P><FONT color=#000000>// create the resource<BR>Resource johnSmith = model.createResource(personURI);</FONT></P>
<P><FONT color=#000000>// add the property<BR>johnSmith.addProperty(VCARD.FN, fullName);</FONT></P>
<P><FONT color=#000000>这些代码先定义了一些常量, 然后使用了ModelFactory类中的createDefaultMode()方法创建了一个空的基于内存存储的模型(Model 或 model). Jena还包含了Model接口的其他实现方式. 例如, 使用关系数据库的, 这些类型 Model接口也可以从ModelFactory中创建.<BR>于是John Smith这个资源就被创建了, 并向其添加了一个属性. 此属性由一个"常" ("constant")类VCARD提供, 这个类保存了在VCARD模式(schema)中所有定义的表示对象. Jena也为其他一些著名的模式提供了常类的表示方法, 例如是RDF和RDF模式, Dublin 核心标准和DAML.<BR>创建资源和添加属性的代码可以写成更紧凑的层叠形式:<BR>Resource johnSmith =<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; model.createResource(personURI)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addProperty(VCARD.FN, fullName);<BR>这个例子的工作代码可以在Jena发布的材料的教程包中的Tutorial1中找到. 作为练习, 你自己可以获得此代码并修改其以创建一个简单VCARD.<BR>现在让我们为vcard再增加一些更详细的内容, 以便探索更多的RDF和Jena的特性.<BR>在第一个例子里, 属性值为一个文本. 然而RDF属性也可以采用其他的资源作为其属性值. 下面这个例子使用常用的RDF技术展示了如何表示John Smith名字的不同部分:</FONT></P>
<P><FONT color=#000000>在这里我们增加了一个新的属性, vcard:N, 来表示John Smith名字的结构. 这个模型有几点有趣之处. 注意属性vcard:N使用一个资源作为起属性值. 同时注意代表复合名字的椭圆并没有URI标识. 它被认为是一个空白结点(blank Node).<BR>创建此例的Jena代码也十分简单. 首先是一些声明和对空模型的创建.<BR>// some definitions<BR>String personURI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "</FONT><A href="http://somewhere/JohnSmith"><FONT color=#000000>http://somewhere/JohnSmith</FONT></A><FONT color=#000000>";<BR>String givenName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "John";<BR>String familyName&nbsp;&nbsp;&nbsp;&nbsp; = "Smith";<BR>String fullName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = givenName + " " + familyName;</FONT></P>
<P><FONT color=#000000>// create an empty Model<BR>Model model = ModelFactory.createDefaultModel();</FONT></P>
<P><FONT color=#000000>// create the resource<BR>//&nbsp;&nbsp;&nbsp;&nbsp; and add the properties cascading style<BR>Resource johnSmith<BR>&nbsp;&nbsp;&nbsp; = model.createResource(personURI)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addProperty(VCARD.FN, fullName)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addProperty(VCARD.N,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; model.createResource()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addProperty(VCARD.Given, givenName)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .addProperty(VCARD.Family, familyName));<BR>此例的工作代码可以在Jena发布材料的教程包的Tutorial2中得到.<BR>________________________________________<BR>陈述<BR>RDF模型中的每一个箭头表示为一个陈述(statement). 每一个陈述声明了关于某个资源的某个事实. 一个陈述有三部分组成.<BR>主体, 也就是箭头的出发的资源.<BR>谓词, 也就是标识箭头的属性.<BR>客体, 也就是箭头所指向的那个资源或文本.<BR>一个陈述有时也叫做一个三元组的原因就是它由三部分组成.<BR>一个RDF模型(译者注: 指Jena中的接口Model)是由一组陈述所组成的. 在Tutorial2中, 每调用一次addProperty函数就会在模型中增加另一个陈述. (因为一个模型是由一组陈述组成的, 所以增加一个重复的陈述并不会产生任何意义.) Jena模型接口定义了一个listStatements()方法, 此方法会返回一个StmtIterator类型的变量. StmtIterator是Java中Iterator的一个子类型, 这个StmtIterator变量重复迭代了该接口模型中的所有陈述. StmtIterator类型中有一个方法nextStatement(), 该方法会从iterator返回下一个陈述. (就和next()返回的一样, 但是已将其映射为Statement类型). 接口Statement提供了访问陈述中主体, 谓词和客体的方法.<BR>现在我们会用使用那个接口来扩展Tutorial2, 使起列出所有的创建的陈述并将它们打印出来. 此例完整的代码可以在Tutorial3中找到.<BR>// list the statements in the Model<BR>StmtIterator iter = model.listStatements();</FONT></P>
<P><FONT color=#000000>// print out the predicate, subject and object of each statement<BR>while (iter.hasNext()) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement stmt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = iter.nextStatement();&nbsp;&nbsp;&nbsp; // get next statement<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resource&nbsp;&nbsp;&nbsp; subject&nbsp;&nbsp;&nbsp;&nbsp; = stmt.getSubject();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // get the subject<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Property&nbsp;&nbsp;&nbsp; predicate = stmt.getPredicate();&nbsp;&nbsp;&nbsp;&nbsp; // get the predicate<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RDFNode&nbsp;&nbsp;&nbsp;&nbsp; object&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = stmt.getObject();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // get the object</FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(subject.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(" " + predicate.toString() + " ");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (object instanceof Resource) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(object.toString());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // object is a literal<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.print(" \"" + object.toString() + "\"");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></P>
<P><FONT color=#000000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(" .");<BR>} <BR>因为一个陈述的客体可以是一个资源也可以是一个文本. getObject()方法会返回一个类型为RDFNode的客体, RDFNode是Resource和Literal类共同的超类. 为了确定本例中的客体确切的类型, 代码中使用 instanceof来确定其类型和相应的处理.<BR>运行后, 此程序回产生与此相似的输出:<BR></FONT><A href="http://somewhere/JohnSmith"><FONT color=#000000>http://somewhere/JohnSmith</FONT></A><FONT color=#000000> </FONT><A href="http://www.w3.org/2001/vcard-rdf/3.0#N"><FONT color=#000000>http://www.w3.org/2001/vcard-rdf/3.0#N</FONT></A><FONT color=#000000> anon:14df86:ecc3dee17b:-7fff.<BR>anon:14df86:ecc3dee17b:-7fff </FONT><A href="http://www.w3.org/2001/vcard-rdf/3.0#Family"><FONT color=#000000>http://www.w3.org/2001/vcard-rdf/3.0#Family</FONT></A><FONT color=#000000>&nbsp;&nbsp;&nbsp; "Smith".<BR>anon:14df86:ecc3dee17b:-7fff </FONT><A href="http://www.w3.org/2001/vcard-rdf/3.0#Given"><FONT color=#000000>http://www.w3.org/2001/vcard-rdf/3.0#Given</FONT></A><FONT color=#000000>&nbsp;&nbsp;&nbsp; "John" .<BR></FONT><A href="http://somewhere/JohnSmith"><FONT color=#000000>http://somewhere/JohnSmith</FONT></A><FONT color=#000000> </FONT><A href="http://www.w3.org/2001/vcard-rdf/3.0#FN"><FONT color=#000000>http://www.w3.org/2001/vcard-rdf/3.0#FN</FONT></A><FONT color=#000000>&nbsp;&nbsp;&nbsp; "John Smith".</FONT></P>
<P><FONT color=#000000>现在你明白了为什么模型构建会更加清晰. 如果你仔细观察, 就会发现上面每一行都由三个域组成, 这三个域分别代表了每一个陈述的主体, 谓词和客体. 在此模型中有四个箭头, 所以会有四个陈述. "anon:14df86:ecc3dee17b:-7fff"是有Jena产生的一个内部标识符, 它不是一个URI, 也不应该与URI混淆. 它只是Jena处理时使用的一个内部标号.<BR>W3C的RDF核心工作小组定义了一个类似的表示符号称为N-三元组(N-Triples). 这个名字表示会使用"三元组符号". 在下一节中我们会看到Jena有一个内置的N-三元组写机制(writer).<BR></FONT></P></DIV></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[deep web 数据集成]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=xiawared&amp;id=33940</link>
<author>xiawared</author>
<pubDate>2008/4/14 12:26:39</pubDate>
<description><![CDATA[
<P>《Deep Web数据集成研究综述》是一篇很好的综述性的文章，看了这篇文章之后，对数据集成会有更清晰的认识。</P>
<P>共享下这篇文章，大家一起学习啊。。。</P>
<P><IMG src="http://blogger.org.cn/blog/images/file/pdf.gif" border=0><A href="http://blogger.org.cn/blog/uploadfile/200841412323964.PDF" target=_blank>Deep Web数据集成研究综述.pdf</A></P>]]></description>
</item>
</channel>
</rss>