基于案例的Web推理方法研究
2008-05-27
作者:李林青,田伟峰,王文杰
摘 要: 提出一种基于案例的Web推理方法和对应的CBR系统结构,以适应目前Internet环境下知识共享、知识管理工具和知识应用的发展。
关键词: 语义Web CBR 案例 CaseML
基于案例推理CBR(Case Based Reasoning)是人工智能研究的传统研究领域,吸引了大量的研究者致力于CBR的理论方法和应用研究,但是案例的存储形式、相应的组织结构及其检索、推理和应用一直是研究的重点和难点。从目前的研究情况来看,推理方法的实现是针对特定的案例表示和组织形式的,只有相应的工具才能使用案例,智能主体(Agent)无法直接理解案例的内容,不支持主体的自动求解,限制了案例库的适用范围,对案例库进行更改必须同时修改CBR算法,不同的案例库之间很难集成。随着网络技术的不断发展和Internet规模的急剧扩大,使得CBR上述的局限性愈加明显,单机系统已不能满足应用的需要,需要基于Web框架来实现CBR系统。
1 CBR简述
严格地说CBR并不是一种理论或技术,而是一种模拟人进行信息处理的方法。人们在进行问题求解时,除了逻辑推理,有些时候可能会依赖于过去的经验或相类似的案例。例如,医生在诊断病人时,常常会通过相类似的病例进行诊断。这种推理在人工智能研究领域称为基于案例的推理CBR。CBR在人工智能领域已经有比较深入的研究和较广泛的应用。
一个典型的CBR系统由如下几个部分组成:
(1)一组由多个案例(Case)组成的案例库(Case Base);
(2)一个或多个相似度比较函数;
(3)一系列案例调整或自学习规则(Adaptive Rules)。
下面是传统的广为所知的R4 CBR推理周期[1]。具体分述如下:
(1)Retrieve:从案例库中获取最相似的案例列表;
(2)Reuse:重用这些案例以解决新问题;
(3)Revise:修改这些案例以适应新的问题,并形成新的解决方法;
(4)Retain:保存这些新的案例以备以后使用。
基于案例的方法在应用于Web查询与推理时有其一定的优势。一方面,CBR以案例的问题描述为查询输入,比之基于关键字的方法,查询表达相对更为丰富;另外一方面,CBR以案例的相似度比较来完成查询处理,比之基于逻辑的方法,查询处理要相对容易。因此,在某些应用场景下,CBR更适合于Web查询与推理的实现。
目前这类系统在Web上已经有很多具体实现,但这些CBR都存在一些共同的问题:(1)缺乏一致化的案例表达语言。虽然有很多现成的案例表达语言,如面向对象的表达语言CASUEL和Noos,基于XML的表达语言OML[02]和CBML[3],但这些语言各有特点,很难统一。(2)定义案例的领域术语缺乏本体的支持。这不适应于Web CBR的需要,因为Web CBR的典型模式是多个由不同机构或组织开发的案例库进行集成式的协同CBR推理。(3)案例库相对独立和封闭,不满足Web的开放性需要。
基于上述考虑,本文提出、定义和设计实现" title="设计实现">设计实现了CaseML语言,并基于开放式知识服务体系,提出了Web CBR的基本实现架构与方法。
传统的Case表达方法共同的缺陷是,定义案例的术语缺乏明确表达的语义或本体支持,从而导致基于案例的知识共享、案例库集成和案例交换难于实现。语义Web技术为解决这一问题提供了可能。为此提出并设计实现了一个基于RDF的案例表达语言,称为CaseML。CaseML的基本设计思想是:基于RDF来描述案例,即基于RDF来描述和表达案例的问题空间" title="问题空间">问题空间和解答空间。也就是说,CaseML通过Web本体来统一案例描述的语义,以支持Web案例知识库的集成。
2 CaseML的基本表达元语
本节对CaseML的基本表达元语进行介绍,并给出了CaseML的RDF Schema定义。首先给出CaseML案例库和案例的定义。
Definition CaseML CaseBase
一个CaseBase=〈Cases,SimilarityAssessment〉,即包含一组案例描述和一组相似度比较方法定义;
Definition CaseML Case
一个Case=〈Problem,Solution,AdaptiveRule〉,即一个案例包含一个问题描述,一个解答描述,以及一个案例适配" title="适配">适配规则。
接下来介绍CaseML的Schema定义,后面的" title="面的">面的定义用到了下面的命名空间定义:
〈?xml version=″1.0″?〉
〈?DOCTYPE rdf:RDF [ENTITY xsd
http://www.w3.org/2001/XMLSchema#〉]〉
〈rdf∷RDF
xmlns:rdf=″http://www.w3.org/1999/02/22-rdf-syntax-ns#″
xmlns:rdfs=″http://www.w3.org/2000/01/rdf-schema#″
xmls:caseml=″http://grid.zju.edu.cn/caseml/″
xmls:base=″http://grid.zju.edu.cn/caseml/〉″
CaseML中的Class定义
CaseBase:CaseBase是rdf:Bag类的子类,它是案例的容器。每个案例类实例都包含一个hasSimilarityAssement的属性,并指向一个SimilarityAssessment类实例。
〈rdfs:Class rdf:ID=″CaseBase″〉
〈rdfs:subClassOf rdf:resource=″rdf:Bag″/〉
Case:每个案例都有一个问题描述(Problem)和一个解决方法描述(Solution)。
〈rdfs:Class rdf:ID=″Problem″/〉
Feature:一个特征(Feature)包含一组关于案例的问题或解答的RDF陈述。案例库设计者可预先定义好描述案例的问题空间和解答空间的本体词汇,这些词汇可以在CaseML的Feature部分进行定义。
〈rdfs:Class rdf:ID=″Feature″/〉
Solution:一个解决方法也包含一个或多个特征描述。
〈rdfs:Class rdf:ID=″Solution″/〉
SimilarityAssessment:这个包装了关于如何对该案例库内的案例进行相似度比较的信息。可能包装的是一个外部程序调用方法,也可能是一个Web服务的地址。
〈rdfs:Class rdf:ID=″Case″/〉
AdaptaionRule:这个类用于包装某个案例的调整规则,这些规则可以用类似于RuleML[4]的规则表达语言进行表达。
〈rdfs:Class rdf:ID=″AdaptationRule″/〉
CaseML中的Property定义
domainOntology:一个案例库需要指明其所使用的领域术语所属的Web本体的地址
〈rdfs:Property rdf:ID=″domainOntology″〉
〈rdfs:domain rdf:resource=″#CaseBase″/〉
〈rdfs:range rdf:resource=″&xsd;string″/〉
〈/rdfs:Property〉/〉
hasProblem:这个属性建立了Case类和Problem类的关系;
〈rdfs:Property rdf:ID=″hasProblem″〉
〈rdfs:domain rdf:resource=″#Case″/〉
〈rdfs:range rdf:resource=″#Problem″/〉
〈/rdfs:Property〉/〉
hasDescription:通过这个属性,一个Feature类建立起和案例的问题或解答的具体描述。用户可以把任何“rdf:resource”描述通过此属性加入到案例的描述中。该“rdf Resource”可以是描述一个领域对象,也可以是描述一组属性/值对,甚至可以是自由文本Literal;
〈rdfs:Property rdf:ID=″hasDescription″〉
〈rdfs:domain rdf:resource=″#Feature″/〉
〈rdfs:range rdf:resource=″rdf:Resource″/〉
〈/rdfs:Property〉/〉
hasSolution:此属性建立起Case类的Solution类的关系;
〈rdfs:Property rdf:ID=″hasSolution″〉
〈rdfs:domain rdf:resource=″#Case″/〉
〈rdfs:range rdf:resource=″solution″/〉
〈/rdfs:Property〉/〉
hasFeatures:此属性建立起Problem类、Solution类和Feature类之间的关系;
〈rdfs:Property rdf:ID=″hasFeatures″〉
〈rdfs:domain rdf:resource=″#problem″/〉
〈rdfs:domain rdf:resource=″#solution″/〉
〈rdfs:range rdf:resource=″# Feature″/〉
〈/rdfs:Property〉/〉
hasSimilarityAssessment每个案例库实例都包含一个hasSimilarityAssessment属性,并指向一个SimilarityAssessment类实例。有可能一个案例库包含多个这样的属性,也就是说一个案例库可能有多种不同比较相似度的方法;
〈rdfs:Property rdf:ID=″hasSimilarityAssessment″〉
〈rdfs:domain rdf:resource=″#CaseBase″/〉
〈rdfs:range rdf:resource=″# SimilarityAssessment″/〉
〈/rdfs:Property〉/〉
hasAdaptationRule:这个属性建立起Case类和一个适配规则(Adaptation Rule)之间的关系。适配规则用于对查询出的案例进行适配性的修改,因为有可能查询出的案例并不能完全适用于新的问题。
3 几个中医药实例
下面通过一个来自于中医药的案例介绍CaseML的表达案例的方法。
中医药的典型特征是个体化诊疗,因此用案例来表达中医药知识非常合适。一个典型的中医药案例可由如下两部分组成:
Problem描述:即症状的描述。
中医药对症状进行诊断的基本方法是四诊,即望、闻、问、切。可以抽取出四诊的特征值,并表示为案例的属性/值对,如:
舌苔:无苔、白苔、黄苔、黑苔。
脉象:浮脉、沉脉、迟脉、数脉。
Solution描述:可包含病因分析、治疗方法和处方部分的描述。
病因部分:脾虚、心阴虚。
治法部分:健脾、补心阳。
处方部分:酉己方。
四诊描述:
Problem赵某,男,27岁,头晕,咳嗽,胸闷,气短,低热,盗汗,形体瘦弱,脉沉数,舌质暗红,少苔,大便干,小便赤黄。
Solution 病因描述:阴虚、肺痨、肝火旺。
治法描述:清肺气、养肺阴、清肝火、益肾精。
处方描述:
处方名:保肺露。
药物组成:百部10克、天浆壳10克、乌贼骨" title="乌贼骨">乌贼骨10克、龙胆草10克、石决明15克、白芍10克、麦冬10克、紫苑10克、秋石6克、潼沙苑10克、百合30克。
制作方法:浸泡30分钟、文火煎煮40分钟、加水再煎30分钟。
AdaptationRule处方调整规则:咳血者,加三七粉。痰多者,加川贝母。少儿,百部减半;
一个典型的中医药案例的组成在定义中医药案例时需要用到中医药的本体和术语定义。
上述中医药案例可以用CaseML描述如下:
〈caseml:Case rdf:id=″#case001″〉
〈caseml:hasProblem rdf:resource=″#problem001″/〉
〈caseml:hasSolution rdf:resource=″#solution001″/〉
〈caseml:hasAdaptationRule〉
咳血者,加三七粉; 痰多者,加川贝母;少儿,百部减半
〈/caseml:hasAdaptationRule〉
〈/caseml:Case〉
〈caseml:Problem rdf:id=″#problem001″/〉
〈caseml:hasFeature rdf:resource=″#feature001″/〉
〈caseml:hasFeature rdf:resource=″#feature002″/〉
……
〈/caseml:Problem〉
〈caseml:Feature rdf:id=″#feature001″/〉
〈caseml:hasDescription〉
〈rdf:description rdf:nodeID=″ ″〉
〈tcm:性别〉 男 〈/tcm:性别〉
〈tcm:年龄〉 27〈/tcm:年龄〉
〈/rdf:Description〉
〈/caseml:Feature〉
〈caseml:Feature rdf:id=″#feature002″/〉
〈caseml:hasDescription〉
〈rdf:Description rdf:nodeID=″ ″〉
〈tcm:舌质〉 暗红、少苔 〈/tcm:舌质〉
〈tcm:脉象〉 沉、数 〈/tcm:脉象〉
〈tcm:寒热〉 低热、盗汗 〈/tcm:寒热〉
……
〈/rdf:Description〉
〈/caseml:Feature〉
……
〈caseml:Solution rdf:id=″# Solution 001″〉
〈caseml:hasFeature rdf:resource=″#feature003″/〉
〈caseml:hasFeature rdf:resource=″#feature004″/〉
……
〈/caseml:Solution〉
〈caseml:Feature rdf:id=″#feature003″〉
〈caseml:hasDescription〉
〈rdf:Description rdf:nodeID=″ ″〉
〈tcm:病因〉 阴虚、肺痨、肝火旺
〈/tcm:病因〉
〈tcm:治法〉清肺气、养肺阴、清肝火、益肾精〈/tcm:治法〉
〈tcm:处方 rdf:resource=″tcm:处方001″〉
〈/rdf:Description〉
〈/caseml:Feature〉
〈tcm:方剂 rdf:id=″#处方001″〉
〈tcm:方剂名称〉保肺露〈/tcm:方剂名称〉
〈tcm:组成〉
百部10克、天浆壳10克、乌贼骨10克、龙胆草10克、石决明15克、白芍10克、麦冬10克、紫苑10克、秋石6克、潼沙苑10克、百合30克
〈/tcm:组成〉
〈tcm:制备方法〉
浸泡30分钟、文火煎煮40分钟、加水再煎30分钟
〈/tcm:制备方法〉
〈/tcm:方剂〉
……
网络环境下CBR的系统结构,使最新的网络技术应用成为CBR新的研究方向。
参考文献
1 Aamodt A,Plaza E.Case-Based Reasoning:Foundational Issues,Methodological Variations,and System Approaches.AI Communications.IOS Press,1994;(7)39~59
2 Aha D.The omnipresence of case-based reasoning in science and application.Knowledge-Based System.1998;(11):261~273
3 Goker M H,Berghofer T R.The development and utilization of the case-based help-desk support system HOMER.Engi-neering Applications of Artificial Intelligence.1999;(12):665~680
4 Schmidt R,Montani S,Bellazzi R et al.Case-Based Reason-ing for Medical Knowledge-based Systems.International Jour-nal of Medical Informatics.2001;(64):355~367