本体应用可视化研究,本文主要内容关键词为:本体论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
当今是一个“信息爆炸”的时代,更是一个“信息迷航”的时代。作为信息技术或互联网的最终用户,他们渴望从信息的混沌中看到一张清晰的知识网络。近年来,语义网(Semantic Web)技术的迅猛发展使得这一目标看到了曙光。语义网利用人工智能(Artificial Intelligence)的部分成果来使当前的Web更加智能化,以协助人们进行网上的各种日常活动。而本体(Ontology)作为语义Web体系结构中一个十分关键的层次,解决了知识描述、知识共享等问题[1]。
1 本体、信息可视化和知识可视化
哲学观点认为世界是普遍联系的,那么通俗地讲,本体就是来显式揭示这种联系的利器。本体是对客观世界概念化和结构化的明确描述,揭示知识本身含义和知识之间的联系,以还原世界本来面目。本体研究特定领域知识的对象分类、对象属性和对象间的关系[2]。本体通常被看做是一个领域的知识基础,它使得应用程序可以方便地获取,并促进领域知识的共享。
从揭示信息的角度来看,信息可视化的初衷与本体有异曲同工之妙。1989年,Robertson,Card 和Mackinlay在《用于交互性用户界面的认知协处理器》一文中首次提出了信息可视化这个概念[3]。信息可视化不仅给信息以形象的表示,为我们提供直观的结果以便观察,而且能够揭示信息之间的关联,挖掘隐含的模式和结构,让我们有效地利用信息、发现知识。目前,信息可视化系统主要采用树(Trees)、图(Graphs)、地图(Maps)及虚拟现实(Virtual Reality)等隐喻方式完成信息及其结构的可视化呈现[4]。信息可视化通过这种视觉的方法提供一种新的科学洞察分析方法,从而弥补现有科学分析方法的缺陷[5]。
本文所介绍的本体可视化正是在本体揭示领域知识的基础上,将知识进一步直观地呈现给用户。本体与信息可视化二者的结合,其实就是一种知识可视化,知识可视化指的是所有可以用来建构和传达复杂知识的图解手段。除了传达事实信息之外,知识可视化的目标在于传输见解、经验、态度、价值观、期望和预测等,并以这种方式帮助他人正确地重构、记忆和应用这些知识[6]。知识可视化着眼于知识的获取、传递、交流,等等,它和信息可视化都是用来表示一种“结构”的,但知识可视化是表示知识的结构。本体可视化所展示的是经过提炼、组织、检索后的与用户查询语义匹配度较高的知识元素,而不是海量信息的简单罗列和展示。
2 本体可视化的可行性
本体的特点使得它易于用可视化的方法来描述。RDF和OWL都是语义Web体系结构中关于本体描述语言的规格说明。而RDF是基于这一思想的:被描述的事物具有一些属性(Properties),而这些属性各有其值(Values);对资源的描述可以通过对它做出指定了上述属性及值的陈述(Statement)来进行。三元组是一种描述陈述的表示方法。在三元组表示法中,每个陈述都可以写成一个依次为主体(Subject)、谓语(Predicate)、客体(Object)的三元组。这使得RDF可以将一个或多个关于资源的简单陈述表示为一个由节点(Node)和弧(Edge)组成的图(Graph),其中的节点和弧代表资源、属性或属性值。下面的这组陈述[7]:
“有一个人由http://www.example.org/contactJHJme标识,他的名字是Eric Miller,他的电子邮件地址是em@w3.org,他的头衔是Dr.”可以表示为图1。
图1 一个描述Eric Miller的RDF图
从图1能够看出,RDF图是怎样描述本体库中最基本的单元——三元组,本体可视化就是解决怎样用更丰富的表现形式来描绘和展现知识网络图。由于本体之间关系的复杂性,引入可视化技术表现本体,能加深人们对知识的理解和认识。本体可视化的发展已取得了一定的进展,开发出了一些比较成熟的本体可视化工具,它们都能提供多种可视化技术表达本体。
3 本体应用可视化工具
目前,本体可视化的工具主要分两种,一种是基于Protégé的可视化插件;另一种是独立于本体领域的通用可视化工具。第一种方便快捷,如TGViz,Jambalaya,OntoViz等,第二种易于扩展,如Piccolo,Processing,The Visualization Toolkit(VTK),JUNG等。
3.1 Protégé可视化插件
Protégé是由斯坦福大学研究设计的一个开源的Java工具,提供一种可扩展的结构框架用于基于知识库的应用系统的开发,它是目前比较完善的本体支持工具,已有很多专业领域的本体利用Protégé构建。Protégé为编辑Ontology所涉及的类、属性、实例提供一个友好的图形用户界面。
Protégé支持的多种本体可视化插件可以将编辑好的本体立刻用多种可视化方式展现出来。仅Protégé官网上列出的可视化插件就有13种,这些可视化工具都各有特点,功能丰富多样。下面介绍比较有代表性的两种:OWLViz[8]和OntoSphere[9]。
1)OWLViz。0WLViz允许对OWL本体中的层级关系进行浏览和递增式导航,能够把层级关系和推理出来的关系进行对比。OWLViz使用不同的色彩模式来区分不同的概念,并能将类的层级关系输出为各种图像格式,包括PNG,JPG,SVC等,见图2。
图2 UWL Viz
2)OntoSphere。现实世界是三维的,从人的习惯和接受力出发,3D代替2D是更好的可视化表现方式。OntoSphere则实现了在三维空间中可视化本体。OntoSphere基于Java 3D API实现了本体概念和关系的三维交互表达,本体装载和管理基于Jena语义框架。见图3。
图3 OntoSphere
3.2 独立可视化工具
相比Protégé的插件,一些独立的可视化工具拥有更加强大的可视化功能和扩展接口,易于将之应用于本体的可视化。
1)TouchGraph。Touchgraph是一套使用“force- based layout”和“Focus+Context”技术进行图形可视化编程的接口。通常所说的TouchGraph其实是一个可视化的关联浏览器,目前推出了基于Amazon,Google和Facebook的可视化关联浏览,在Amazon中,可以通过搜索相关的图书、音乐和电影,然后在一个可视化的语义网络图中去发现与你所搜索的内容有联系的其他的图书、音乐或者电影,并且还可以在此基础上继续不断地去发现关联的关联。
在图4所示的一个浏览窗口中,提供了搜索、编辑、可视化浏览、相关信息展示等几个部分的内容。在搜索框中输入“terminator”的关键词,选中“movie”项,这样会检索出与“terminator”相关的很多电影和电视剧,譬如“Hero”,“Prison Break”,“Lost”,等等。而点击其中每一个,都又会产生更多的关联。
图4 TouchGraph Amazon的检索效果
在TouchGraph Google中则可以通过搜索关键词或者网址,浏览收录在Google的数据库中的相应资源之间的关联;通过TouchGraph Facebook则是去探寻人与人之间的联系。TouchGraph本身有支持Protégé的插件TGViz[10],它利用TouchGraph的Java库来可视化显示本体,将本体知识网络渲染成为具有动态交互性的图。
2)Prefuse。Prefuse[11]是美国加利福尼亚州伯克利大学计算机科学分部的J.Heer和M.Agrawala开发的Java开源可视化工具包。它是一个比较强大的数据建模显示工程,支持多种数据的建模、显示,以及与用户的交互。它提供了“表”、“图”和“树”作为数据的基本结构,在数据显示方面,它提供了大量的布局以及视觉编码技术,并且支持动画、动态查询,等等。它可以用来建立独立的应用程序、大型应用中的可视化组件和Web applets。Prefuse深得Web2.0的精髓,其对社会网络(Social Network)、复杂网络(Complex Network)的展现千奇百态,令人叹为观止。见图5。
图5 Prefuse对人际关系的展示
4 本体应用可视化实例
本节所介绍的是TouchGraph和Prefuse在两个基于本体的信息检索模型中的应用,两个项目的可视化在基本原理上是一样的,在技术实现上略有不同。第一个项目主要从本体可视化的基本原理和用户体验上进行说明,第二个项目从技术角度对本体可视化应用作了更详细的解剖。
4.1 基于本体的数字图书馆可视化检索模型
本研究在“基于本体的数字图书馆检索模型”的项目中,以历史领域为突破口,开发了一个实现本体基本功能的系统,包括本体建库、本体检索、本体推理、本体可视化。其中模型可视化描述形象生动,静态和动态的可视化方式使用户印象深刻。
TouchGraph本身并不支持阅读和解释语义数据,该模型首先利用本体处理引擎Jena从OWL文件中抽取信息,转化为一系列三元组。根据三元组的Subject和Object,创造出节点,而Predicate则定义了Subject和Object节点之间的关系(Property),表现为图6中的有向边。TG中的GraphLayout组件实现了缩放(Zoom),摇动(Pan),焦点/背景(Focus/Context)及递增性导航(Incremental Navigation)等效果。见图6。
图6 Touch Graph在本体可视化中的应用
本体信息的图形化显示由一个Java Applet实现。当用户通过检索入口选中某个实例查看其具体信息时,在图形显示区域会显示一个或多个连通图,该实例及与其直接相关的本体实例连同它们之间的关系就是组成连通图的节点和边,而它的相关详细文本描述信息则在文本显示区域同步显示。图6中每个节点都含有一个文字标签,以显示它所代表的本体实例名,文字的颜色与左侧检索入口的本体类型复选框一致,代表了该本体实例所属的类型。节点间以有向边连接,较粗的一端代表了该边的起始点,较细的一端代表了它的终止点,以这种方向性来映射本体中属性的主体、客体关系。
当本体实例十分庞大,本体之间关系错综复杂的时候,查看某个实例可能与其相关的实例非常多,而这些实例又可能与其他大量实例相关,一次同时将所有这些实例显示在屏幕上并没有必要,太多的边和节点相互交错只会使用户感到无所适从。因此该模型选择只显示仅与焦点实例直接相关的实例,同时对这些相关实例按照本体类型分类。用户可以通过在焦点节点上点击右键选择相应弹出菜单项任意切换仅查看其中一类或几类的相关实例。而对于那些和焦点实例间接相关的节点,虽不予显示,但将它们的数量以小标签的形式标注在相关节点上,隐喻用户可进一步查看。同时在图形中提供“缩放”,“旋转”工具条,方便用户调整视角,清晰地观察图形,理解各实例之间的语义关系。用户也可以直接使用鼠标拖拽图形进行调整。
4.2 基于本体的文档可视化检索模型
在参与“健康什邡2015行动计划”活动中,开发了一套基于本体的文档检索系统。该检索系统可针对本体库中的卫生医疗政策进行查询,并将查询结果进行可视化展现,以揭示这些文档之间的关联。
本可视化系统是基于Prefuse工具包进行二次开发的(见图7),基本体系架构与Prefuse相似。较大的不同点在于数据模型层,传入可视化系统的不是Prefuse自身独特的数据处理对象(“table”,“graph”和“tree”),而是本体对象,具体来说是采用开源Java本体开发工具包Jena所创建的OntModel,OntClass等本体对象。
图7 Prefuse在本体可视化中的应用
检索子系统将OntModel对象传入可视化模型的数据映射层,OntModel对象中包含大量类、关系以及实例对象。根据图8的映射关系,本体类和实例分别映射为对应的节点,对象特性(ObjectProperty)映射为对应的边,而所有本体对象的名称、URL、说明等数据特性(DataProperty)则作为其所对应的Prefuse对象的属性保存。
图8 数据对象映射图
以下代码为本可视化系统的数据映射层将Jena中的OntClass对象映射为Prefuse中的Node对象的部分程序代码。
Node currNode=m_graph.addNode( );
currNode.setString(“ URI”,p_currentClass.getURI( ));
currNode.setString(“name”,p_currentClass.getLocalName( ));
currNode.setString(“type”,“class”)。
p_currentClass为将要映射为Node类实例的OntClass类的实例,m_graph为Prefuse中Graph数据类的实例。m_graph在图结构中新建一个节点currNode作为本体对象p_currentClass在Prefuse中的映射副本,之后将p_currentClass的数据特性(URI、本体名称、类别)添加到其映射副本currNode以“URI”、“name”和“type”命名的属性的值域中。这样便完成了一次本体对象到Prefuse数据对象的简单映射过程。
本体检索系统所返回的数据首先进入数据映射层,实现数据对象的类型转换。在数据映射部分完成后,系统中已拥有了大量的Prefuse数据对象,这些对象接着被传送到系统的上层结构中。
系统在抽象可视化数据模型层将有关特定可视化的Prefuse数据对象同其对应的颜色、形状等外观数据绑定在一起,将特定的结构同其对应的动画、将要应用于前台的用户交互控制,以及最终绘制图像的绘制类型绑定在一起。
以下代码将深灰色与节点的文字颜色绑定。
ColorAction aText=new ColorAction(NODES,VisualItem.TEXTCOLOR);
aStroke.setDefaultColor(ColorLib.gray(100));
aStroke.add(“_hover”,ColorLib.rgb(255,100,100));
在交互界面层,绘制对象将所有的视觉对象绘制到前台界面的显示区域内。以下代码表示管理绘制的对象。
DefaultRendererFactory drf= new DefaultRendererFactory( );
drf.setDefaultRenderer(labelR);
drf.add(“ingroup(‘aggregates’)”,polyR);
drf.add(new InGroupPredicate(EDGES),edgeR);
随着用户与图像交互动作的发生,前台控制层将用户动作所对应的一系列操作反馈给数据映射、数据模型、抽象可视化数据模型和交互界面层,触发新一轮的图像绘制动作。以下代码为负责用户交互的控制类,它们通过addControlListener方法被注入前台界面中,在用户发出动作时进行相应。
this.addControlListener(new AggregateDragControl());
this.addControlListener(new PopupControl());
5 结束语
本体的本质在于揭示知识以及知识之间的联系,可视化的好处在于用丰富生动的图形来展示本体天然的特性。两者的结合——本体可视化,必将使得知识的获取与理解变得更加轻松自如。实现对信息的理解是情报学研究的终极目的,而可视化这种方法具有“一图胜千言”的强大理解力。有一款叫做ezOwL的工具受启发于UML,提供了可视化的本体编辑界面,允许用户用图形化的方式来构建本体,使得对OWL不熟悉的用户也可以轻松构建本体。诸如此类的工具为本体的构建以及本体研究领域的繁荣带来了勃勃生机。本文中提到的本体可视化工具只是冰山一角,还有更多成熟易用的工具有待发掘利用。
收稿日期:2009-07-20