热门论文:
  • 网站首页 > 计算机类硕士 > 计算机应用 > 支持语义的学术搜索引擎的设计与实现
  • 支持语义的学术搜索引擎的设计与实现

    作者: 【 2010-11-15 16:35:18 】
    【字体: (右键暂停)

    一、引言

    借助搜索引擎查找信息已经成为人们首选的方式,但在利用这种方式获取学术信息时,往往要从大量的非学术性信息(如广告、新闻等)中进行筛选,费时费力,这为有效获取学术性信息增加了困难。人们期待富有个性的、学术性的、专业性的信息资源和服务。为此,网上涌现出众多以检索网络学术信息资源为对象的学术搜索引擎。

    Google Scholar是Google公司于2004年推出的新型搜索服务。使用Google Scholar能够获得来自所有研究领域的同级评审论文、学位论文、图书、预印本、摘要和技术报告。内容涉及医学、物理学到经济学、计算机科学等多个学术领域。目前维普公司已与Google Scholar联合推出中文版。Google学术搜索在索引中涵盖了来自多方面的信息,除可以搜索外文文献信息外,中文资源包括万方数据资源系统,维普资讯,主要大学发表的学术期刊,公开的学术期刊,中国大学的论文以及网上可以搜索到的各类文章。

    尽管学术搜索引擎在学术搜索方面已经做得相当优秀了,但还存在一些不足之处:如界面语言单一,在线主题词表不能全面反映词间关系,全文的获得不方便,学科主题分类不完善,检索结果中仍然存在的无关信息等。很多学术搜索引擎都在致力解决这些难题,发生着一些变化,这些变化中就包含着学术搜索引擎的未来发展趋势。

    二、系统目标

    (一)开发目的。本学术搜索引擎主要是针对图书馆访客而开发的学术论文检索系统,支持一般搜索和高级搜索。访客通过输入关键词,可获得相应的学术论文。通过返回的论文信息,用户可以自行到相关文献数据库下载或到图书馆借阅,对于开放卜.载的学术论文,用户经过身份验证后可直接下载。本系统采用B/S架构,极大地方便了用户的使用。

    (二)语义搜索基础。Web搜索技术已经得到了普及应用,但查全率和查准率仍然不能满足用户的需求。目前已有的搜索引擎大部分是基于关键字或者基于文本内容的检索,并不能充分表达语义信息。如何利用语义Web技术,将推理结合到检索过程中,从而提高当前的搜索效果;在语义Web环境下,如何高效地发现信息资源,实现新一代搜索引擎一语义搜索引擎,将是我们面临的新挑战。语义搜索技术可改善当前搜索引擎的搜索效果,包括查全率和查准率。作为未来语义web的最主要应用之一,语义搜索将对人们的生活产生重大的影响。

    语义搜索涉及到多个研究领域,包括搜索引擎、语义Web、Web信息挖掘和人工智能等。运用的主要研究方法包括:①图理论,RDF数据模型形成了图,图中的弧和路径中都包含着信息,因此在语义搜索中应用到了不同形式的图遍历方法,如实例扩展及查询的形式化等;②匹配算法,在语义搜索中主要是指概念与关键字或者实例与关键字之间的匹配,关键字提供了一种快速定位信息的入口,关键字和概念之间的匹配是语义搜索中的一般性方法;③逻辑特别是描述逻辑、模糊逻辑等。逻辑和推理被整合到未来的语义Web中。

    1.信息检索与信息抽取。信息检索领域是语义搜索诞生的地方,有很多语义搜索的工作,涵盖了非形式化方法、形式化方法和集成化的方法。在非形式化方法中,主要以LSI、PLSI以及像HAL语义空间模型这样的统计和概率分析方法为语义搜索的代表。这一类方法是通过分析索引项和文档的出现频度来建立单词和文档的语义表示。另外一类更直接的非形式化方法是利用单词去歧义技术对单词语义进行直接的获取、表示和处理,从而期望提高传统信息检索的效果。和以上完全的非形式化方法不同,在信息检索领域,还有一些形式化和集成化的语义搜索方法。

    在信息抽取方面,Web-KB项目是较早利用机器学习和信息抽取技术根据本体从万维网上抽取语义信息的工作。给定一个本体,一些训练样本,Web -KB试图通过机器学习的方法来获得语义信息。而KnowltAll项目的工作具有和Web-KB项目类似的目标。该项目希望通过从万维网中抽取语义信息来获得一个庞大的知识库,从而可以用来进行更好的搜索甚至构造一个真正的人工智能系统。

    2.自然语言理解与关键字查询接口。在自然语言理解领域,研究人员希望通过深入分析自然语言文本来获得完整的、复杂的语义信息。这种分析通常包括对文本进行完整的词法、语法和语义处理。该领域的语义搜索通常使用形式化的方法来表示语言中的完整的、复杂的语义信息并根据这种表示来进行查询处理。 这方面比较早的研究是通过手工或者通过机器学习的方法从自然语言中获取概念图的语义表示,将文档和查询转化成概念图的形式进行语义的匹配。在进行查询的时候,对于普通用户来说,他们和基于形式化逻辑的语义查询之间存在一定的鸿沟,一些研究人员提出了不少方法来试图缩短这个鸿沟:Bernstein等人提出了受限查询语言以及有指导的自然语言查询接口。

    而通过关键字查询接口来自动为用户提供形式化语义查询的推荐是一种简单而有效的方法。SemSearch和Onto-Look是较早利用关键字作为查询输入的语义搜索引擎,它定义了一些翻译模版,然后尝试将用户输入的关键字映射到查询语句的三元组中的主语、谓语或宾语。但它的时间复杂性随着关键字个数成指数式增长,所以很难在实际应用中用到。

    3.数据库与知识库。从数据库的角度,有相当多的系统和方法试图解决如何有效存储和查询语义信息的问题。Sesame是这方面的一个著名系统。它较早地实现了用数据库对RDF数据的存储和查询。DLDB试图能够更多地回答OWL的数据上的推理和查询。当前,DLDB仅支持对父子类关系和父子属性关系进行推理。所以其支持的推理能力是非常有限的。比DLDB更进一步,InstanceStore使用了更加深入的推理与分析,进行了更多的预先计算,能够以数据库为基础完成对大规模实例数据的查询和推理。

    (三)学术搜索引擎的特色。相较传统搜索引擎检索效率低下,用户检索负担沉重而言,学术搜索引擎致力于提高检索结果的相关性和针对性,呈现出以下特征:

    1.扩大了信息源,与数据库商之间建立了合作关系。学术搜索引擎不仅搜索海量网页,而且可以进入包括一般搜索引擎无法进入的有使用权限的数据库,建立网站之间无缝的后台链接,对具有科学价值的资源进行整合,以统一的检索界面对用户提供免费服务。同时与全文链接,注册用户可付费获取。当然,专利等全文依然可免费获取。通过跨界合作,一方面实现了学术数据库的广泛传播,同时也丰富了搜索引擎的内容,达到了双赢的目的。

    2.进行信息过滤,增强检索结果的精确性。一般搜索引擎返回的信息中有大量冗余信息,给用户的筛选带来了极大的难度。学术搜索引擎利用先进技术,采用选择信息来源、进行信息过滤、使用书目识别器、设置个性化检索等一系列措施强化搜索结果的精确性,为用户提供针对性较强的信息。另外绝大部分学术搜索引擎具有类似数据库的个性化检索功能,所设置的检索选项甚至超出许多数据库。在高级搜索中其设置了其中包括字段、出版时间、信息类型、文件格式、文献来源与主题学科类目等多个字段,可对一项检索从多个方面进行交叉选择限定,充分显示出其搜索的灵活性和搜索结果的准确性。一般搜索引擎都忽略了专家评审文章,但评审文章对用户了解相关课题以前的状况很有意义,学术搜索引擎满足了用户的这一需求。读者通过分析文献的信息来源,可以判断与评价信息的可靠性及其价值,同时也有助于读者获取全文。

    3.具有跨平台工作、整合资源的能力。学术搜索引擎一般以高质量电子期刊为资源主体,选取拥有科学资源的网站为合作伙伴,集期刊论文、会议文献、科技报告、专利文献、预印本文库等资源于一体,在保证文献的学术性和专业性基础上,将分散在数十个系统内的各种网络信息资源整合在一个统一的平台上供大家共享,不仅扩大了用户查询信息的来源,更重要的是省去用户逐个进入各类数据库所耗费的大量时间。

    4.排序功能增强。普通的搜索引擎只支持搜索结果得相关性排序,学术搜索针对学术资源属性提供了很多独特性的排序,如相关性、引用次数、下载次数、按照时间的引用趋势等;有的还有聚类功能,对搜索结果进行标记。如CNKI的综合排序、相关库、被引次数、期望被引、发表时间、作者指数等。

    5.设计理念代表着搜索引擎未来的发展方向。搜索引擎已成为一个新的研究、开发领域。因为它要用到信息检索、人工智能、计算机网络、分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多学科领域的理论和技术,所以具有综合性和挑战性。总之学术搜索的先进设计理念为科学工作者解决了其他搜索引擎长期未能解决的诸多问题,为用户提供全面、精确的信息资源,代表着搜索引擎未来的发展方向。

    三、系统设计与实现

    (一)系统的处理流程。支持语义的学术搜索引擎的处理流程是:浏览器以GET或POST方式发送Request到服务器;后台逻辑运用RDF Api进行推理;从数据库取出推理结果对应的文献信息,并呈现给用户。

    (二)语义推理。本系统所采用的本体模型是用Protege创建的,本体文件是以owl的形式存储。

    1.OWL。网络本体语言 (Web Ontology Language,OWL)是经过万维网联盟认可,在语义网络中用于描述编纂本体的一系列语言家族。其功能在于为网络文档和应用中固有的类以及其间的逻辑关系提供描述,使得基于此技术的网络应用更加人性化和智能化,节省用户自身资源搜索时间并将这些处理交给计算机系统内部处理。基于不同的语义论特性此家族语言大致分为两个系统:基于描述逻辑进而丰富表达和精准计算属性的OWL DL和OWL Lite,以及以资源描述架构(resource descripdon framwork:RDF)提供兼容叙述的OWL Full。网络本体语言已经被认为是语义网技术的基础语言并吸引了包括学术和商业范围内人士的广泛兴趣。

    2.RAP推理机。RAP是一个用来解析,搜索,操纵,序列化和服务RDF模型的软件包。通过RAP来对所建立本体提供API接口,进行相关的推理功能。

    (三)项目环境。

    系统采用B/S模式,运行所需的软件包括:

    (1) Apache 2.2.9

    http://httpd.apache.org/

    (2) MySQL 5.0.51b

    http://www.mysql.com/

    (3) PHP 5.2.6

    http://www.php.net/

    (4) RAP v0.9.6

    http://sourc eforge.net/projects/rdfapi-php/

    (5) Protege

    http://protege.stanford.edu/

    (6) Notepad++ 5.3.1

    http://notepad-plus.sourceforge.net/tw/site.htm

    (7) Dreamweaver CS4

    (四)数据库设计。本系统包含推理用数据库和通用数据库,推理用数据库由于可调用API来创建,在这里不作介绍。通用数据库包含两张表。

    在上表中,记录下了学术论文的一些基本信息,比如标题、作者、地址、出版商、摘要和关键字等。dlcount字段是用来记录某篇论文被下载的次数,以实现论文下载排行等目的。

    (五)具体算法和系统实现。

    1.本体模型持久化。用Protege建立数据库后,会得到owl文件,此时我们考虑把模型导入数据库,在RAP中,提供了一个名为putMod-el的方法,它支持把模型持久化到数据库。具体步骤如下:

    (1)设置数据库连接并创建表。RAP支持多种不同的数据库,每个包含本体模型的数据库是由DbStore的实例来表示的,我们可以向构造函数传递连接参数来创建这个对象,这里我们使用MySQL数据库,设置连接如下:

    $mysql_database =ModelFactory::getDbStore (’MySQL´,’host’,’db_name´,’user_name’,’password’);

    参数分别是数据库类型,主机名,数据库名,用户名和密码。

    当我们第一次使用时,我们需要创建相应的表以存储本体模型。RAP提供了一个非常有用的方法createTable0来自动创建所有需要的表和索引。我们仅需指定数据库类型即可:

    //第一次创建时建立数据库表

    $mysqLdatabase -> createTables ("MyS QL"):

    (2)创建DbModel。首先从一个owl文件(leo.owl)生成一个MemModel:

    //Create a new memory model

    $memModeI=ModelFactory::getDefaultModel0;

    //Load and parse document

    $memModel->load(”owl/leo.owl”

    然后我们把刚刚创建的$memModel和想要赋值的mod-elURI以参数形式传到方法putModel():

    $modelURI=’http://semantic.zufe.edu.cn/DbModell";

    $mysql_database->putModel($memModel, $modelURI);

    此时我们已经完成了模型持久化到数据库的操作。

    2.R_AP查询语法。

    RAP用RDQL查询语言实现查询。下面将简单地介绍它的语法,示范如何来查询创建的RDF模型。

    RDQL查询的一般形式显示如下,类似SQL语句:

    SELECT variables listing

    FROM rdf documents

    WHERE patterns

    AND filter expressions

    USING prefix declaration

    下面列出一个简单的查询范例(假设已经载入了一个MemModel):

    $queryl=’

    SELECT ?fullName

    WHERE (?x, vcard:FN, ?fullName)

    USING vcard FOR <http://www.w3.org/2001/vcard -rdf/3.0≠≠>’:

    $resultl=$employees- >rdqlQuery ($queryl);

    上面的查询字符串用于查询所有雇员的名字,执行时,只需简单地调用方法rdqlQuery0即可。

    3.简单搜索算法。

    (1)获得关键字。简单搜索首先对浏览器提交的查询字符串做了分词处理,考虑到某些用户直接采取queryString来查询,系统兼容了utf-8和gbk两种编码方式,最大程度上解决了乱码问题。

    首先,对字符编码进行判断转换:

    if(!isset ($_SERVER ["HTTP_RE FERER,1))

    $keyword=mb_convert_encoding($_GET["q"],"utf-8",”utf-8, gbk&acute;);

    else

    $keyword=$_GET["q"];

    然后,对关键字进行分离,这里只是简单地以空格为依据:

    $keyword=str_replace("”,rr, $keyword);

    $str=array0;

    //分离关键字

    while(l){

    $keyword=trim($keyword);

    $arr=explode(&acute;”, $keyword, 2);

    if(count($arr)==2){

    $this->validate($arr[0]);

    $str[]=$arr[0l;

    $keyword=$arr[l];

    } else{

    if($keyword)

    $this->validate($keyword);

    $str0 =$keyword;

    break;

    }

    }

    function validate($token){

    preg_match("/(?:(?:[\xcO-\xdf][\x80-Yxbf]l[\xeO-\xef][\x80-\xbf]{2}l[a-zA-Z_l)+[\d.\一]★)+/",

    $token, $match);

    if (!isset($match[0]) 11 $match[0]!=$token){

    header(&acute;location: error.php&acute;);

    exit;

    }

    }

    通过以上处理,用户输入的关键字已经保存在了数组$st:r中了。还需要加以说明的是这里用正则表达式对关键字进行验证,要求用户输入的单词必须是以utf-8中文或英语或下划线开头,可包含utf-8中文、英文、数字、点、横线和下划线。这样验证的目的是使RAP能进行正常的推理。

    (2) RAP推理。我们得到了前面获得的关键字后,可以开始构造RAP的查询语句:

    $querystring=”SELECT ?paper

    WHERE (?paper,rdftype,leo:Paper)”;

    $i=0;

    foreach($str as $val){

    $i++:

    $querystring.=”(?paper,?var{$i},leo:{$val})”;

    )

    $querystring.=”USING xsd FOR<http://www.w3.org/2001/XMLSchema#>

    rdf FOR<http://www.w3.org/1999/02/22-rdf-syntax-ns#>

    rdfs FOR <http://www.w3.org/2000/Ol/rdf-schema#>

    owl FOR<http://www.w3.org/2002/07/owl#>

    leo FOR <http://www.owl-ontologies.com/leo.owl#>”;

    构造好查询语句,调用推理方法rdqlQuery0,返回推理结果:

    $result=$inf- >rdqlQuery ($querystring);

    $queryarr=array0;

    if (count($result》0){

    foreach ($result as $paper_arr){

    foreach($paper_arr as $paper){

    if ($paper!=null)

    $str=$paper->getLabel0;

    $str=stristr($str,”#’;

    $str=substr($str,1);

    $str=strtr($str,"_&acute;’,”’;

    $queryarr[] =$str;

    }

    }

    }

    此时查询的论文标题信息保存在了$queryarr数组中了,我们可以用这个数组从数据库中获得更详细的数据给用户。至此,我们完成了检索的过程。RAP推理机的任务完成了。

    4.高级搜索算法。高级搜索不同于简单搜索的地方在于提供了一个搜索表单,提供了多个搜索选项,系统可以精确地根据用户的需求来查询相应的学术资料。

    (1)获得关键字。在高级搜索模式下,浏览器以GET方式发送Form到服务器,代码只要取出相应变量即可(代码略)。

    5.分页效果。为了尽量呈现给用户简洁,清晰的导航效果,参考部分网站,实现了这个要求。

    当总页码小于10页时全部显示即可。

    当总页码大于10页时,如果当前选择页大于5,总是处于居中位置。

    6.RAP本地化。由于种种原因,RAP官方暂时仅提供英文支持,这显然是无法满足我们检索中文学术论文的需要的。通过研究API推理流程,我发现只要稍微修改几处代码,即可绕过对于中文的限制,实现中文推理。

    在api中找到RdqlParser类,修改其中的方法_valida-teNCName(string),使支持中文。

    在最初利用RAP从文件读入本体模型到数据库时,api会对xml句法进行校验,默认情况下不支持中文,通过在constants.php中设置VALIDATE_IDS为FALSE来关闭验证以避免出错。

    经过了上述设置,我们仍然无法从数据库中正确地取出utf-8编码的中文字符,通过查询MySQL技术文档,发现对于版本大于4.1的数据库,必须首先设置字符编码才能正确查询,用一条SQL语句即可解决:

    SET character_set_connection=utf8,character_set_results=ud8, character_set_client=binary

    因此我们在取得DbStore实例后需要加一条语句,声明是以utf-8为编码方式:

    $mysqLdatabase =ModelFactory::getDbStore(,,MySQL”,$dbhost,”owl”, $dbuser, $dbpw);

    $mysqLdatabase ->dbConn ->Query (,,SET charac-ter_set_connection =utf8,character_set_results =utfB, charac-ter_set_client=binary&acute;);

    四、系统效果

    本系统在实现了基本的学术论文搜索的基础上提供部分授权论文的下载服务,方便了用户。

    (一)首页。用户输入网址后,首先进入欢迎页面,如图1所示。

    此页面风格类似于主流搜索引擎,很好地兼顾了用户的使用习惯,除了链接,首页仅含输入栏和搜索按钮,在不影响功能使用的情况下力求做到程序的简洁。

    (二)简单搜索结果页。用户在首页点击搜索按钮后,便进入结果页,如图2所示。

    从上图我们可以看到输入了“微电子学与计算机”之后系统自动返回了最符合查询的结果。

    每一条结果包括5个部分:①标题:②作者:③机构;④摘要;⑤刊名和日期。

    (三)高级搜索页面。如果用户觉得这样无法达到精确查找的目的,那么高级搜索可能就会满足要求。高级搜索下,用户需要在表单中填入相应搜索要求,RAP会根据提交的表单自动分析,返回最相关的结果。界面如图3所示。

    (四)数据下载。当用户取得查询结果后,某些开放下载的学术论文会提供下载链接给用户,如果需要,用户直接点击便下载,当然前提是用户已经在本系统上注册过。图4显示了一个下载界面。

    五、结束语

    本系统以RAP核心开发,以php站点开发的基本方法和技术实现了语义搜索的需求。系统界面友好,操作极其简单,初次访问的用户完全没有任何使用上的障碍,这也实现了易用性的设计要求,具有较强的实用性。

    参考文献

    [l]Grigoris Antoruou,Frank van Harmelen著.陈小平等译,语义网基础教程[M].北京:机械工业出版社,2008

    [2]储荷婷.语义网与信息检索[J].图书情报知识,2009

    [3]程妮,科学搜索引擎Scirus研究[J].现代图书情报技术,2005

    (作者单位:浙江财经学院)

    复制地址 】【 收藏 】 【 打印 】 【 关闭

    联系电话:0591-87230077,13675012021 杨老师、刘老师 电子邮件:papers8@qq.com QQ:250537075,860350187

    版权所有 中华论文库 Copyright (C) 2007-2008

    闽ICP备09069815号