CN1866253A - 把Web服务映射到本体 - Google Patents

把Web服务映射到本体 Download PDF

Info

Publication number
CN1866253A
CN1866253A CNA2006100047107A CN200610004710A CN1866253A CN 1866253 A CN1866253 A CN 1866253A CN A2006100047107 A CNA2006100047107 A CN A2006100047107A CN 200610004710 A CN200610004710 A CN 200610004710A CN 1866253 A CN1866253 A CN 1866253A
Authority
CN
China
Prior art keywords
class
xml
definition
mapped
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006100047107A
Other languages
English (en)
Other versions
CN100583093C (zh
Inventor
于尔根·安格勒
于尔根·哈巴特
哈拉尔德·舍宁
韦尔特·沃特费尔德
凯·温克勒
米夏埃尔·格斯曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Software Public Co Ltd
ontoprise GmbH
Original Assignee
Software Public Co Ltd
ontoprise GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Software Public Co Ltd, ontoprise GmbH filed Critical Software Public Co Ltd
Publication of CN1866253A publication Critical patent/CN1866253A/zh
Application granted granted Critical
Publication of CN100583093C publication Critical patent/CN100583093C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Knitting Of Fabric (AREA)
  • Chemical Or Physical Treatment Of Fibers (AREA)

Abstract

公开了一种企业信息集成系统。该系统基于不同的层:-各数据源,-对应于所述各数据源的数据模式的各源本体,-集成了不同源本体的集成本体,-查询输入级,优选按web服务的形式。在各级别之间使用映射规则。对文档风格的web服务和XML文档到本体的映射,给出了详细的规则,除了其他之外,覆盖了分别映射到类特性和关系(对象特性)的简单内容和复杂内容元素。

Description

把Web服务映射到本体
技术领域
本发明涉及对分布数据源的统一查询以及有效恢复在分布数据源中所存储数据的方法。
本发明特别涉及把XML文档的数据结构映射到本体(ontology)。
背景技术
企业数据系统,尤其是对大型企业,通常要包括多个数据源,这些数据源可基于不同的数据模式,如
关系型数据库
XML文档、XML模式、XML文档类型定义(DTD)
Web服务
Adabas文件
SGML文本
接口描述语言(IDL)
JAVA接口
资源描述框架(RDF)
统一建模语言(UML)
本体Web语言(OWL)
对象角色建模
话题映射(Topic maps)
等等
由于几代IT技术的演进和/或数据的合并和获取等,具有不同数据模式的几个数据库可以包含不同商务区域中的信息。另一方面,还可以从Web服务获得信息页。例如,企业人事数据可能存储在服从第一关系数据库模式的关系数据库中,而企业财务数据可能存储在服从第二关系数据库模式的关系数据库中。常常这些不同的数据源可能会重叠,而且用户很难进行跨企业数据源的查询。
因此,需要工具用于数据集成或信息集成,并且需要统一的查询工具使得用户可以跨越服从不同数据模式的数据源来查询数据。当单一的查询问题要涉及多个数据源的时候也需要统一的查询工具。
相关技术的说明
属于同一个专利族的专利申请US 2004/0216030 A1、US2004/0093559 A1、US 2004/0093344 A1、US 2003/0179228 A1、US2003/0177481 A1、US 2003/0163597 A1、US 2003/0163450 A1、US2003/0120665 A1、以及US 2003/0101170 A1描述了数据模式的映射,除了其他之外,中央本体模型包括关系数据库模式和XML模式用于解决数据集成问题(后面将详细说明本体的概念)。不同数据模式的基本结构映射到中央本体模型的类和属性。这样,对关系数据库模式,表(table)通常映射成类(class),而表的字段(field)通常映射成类的属性(property)。类似地,对XML模式,复杂类型通常映射成本体类,而复杂类型中的元素和属性通常映射成本体属性。
这样,在XML文档和本体结构之间需要映射。
XML数据可源于:
Web服务
XML文档或数据库
另外的XML数据源
最常见的情况是,Web服务把XML文档作为输入并产生XML文档作为输出。这样的Web服务被称作“文档风格的Web服务”。
XML简介
XML是可扩展置标语言(eXtensible Markup Language)的英文缩写。置标语言是一组标记和文本值(简单说明)。当今最著名的置标语言是HTML,用来设计网页。XML使得人们可以设计他们自己的置标语言,使这种置标语言适于存储任何类型的信息。下面是XML文档的例子:
<addresses>
    <employee name="John Doe">
        <address>
            <street>Oakroad 5</street>
            <city>Lyngby</city>
            <country>Denmark</country>
        </address>
        <phone>124-21424-21</phone>
        <email>jd@example.com</email>
        <category>friend</category>
        <category>co-worker</category>
    </employee>
</addresses>
看一看这个文档很快就知道它的用途:它是用于存储联系地址的置标语言。再仔细看一看各元素(element)或节点:
<employee name="John Doe">...</person>
<employee>称作打开标记(opening tag)。该打开标记中的name="John Doe"称作属性(attribute)。该属性的名为"name",并且该属性的值或实例为"John Doe"。"..."是该元素的内容。这既可以是更多的元素也可以是文本数据。</employee>是关闭标记。
元素总是要关闭,以构造良好的XML文档。在XML文档中的注释具有和HTML文档同样的文法。
<!—此处写注释-->
要注意XML文档的结构。最外层的元素,即包含所有其他标记的元素,被称作根节点或根元素。在上述的例子中,<addresses>是根节点。在另外元素内容中的任何元素称作该元素的子女节点。
XML文档可以看作是分层的树形结构。每个元素是一个节点。最顶上的节点是根元素或根节点。注意,除了根节点之外的所有的节点有且只有一个双亲节点。
所有XML文档的起始行都是
<?xml version="1.0"encoding="iso-8859-1"?>
对encoding属性可以有变化。增加下述的处理指令:
<?xml-stylesheet href="stylesheet.xsl"type="text/xsl"?>
这表示无论用什么程序来表现该XML文档,都使用XSL风格页。制作包含该行的XML文档可使得Internet Explorer(6.0及更高版本)可根据该风格页表现该文档。
XML模式简介
XML模式用来说明XML文档的结构。XML模式语言也称作XML模式定义(XSD)。请看下面的记作“note.xml”的例子XML文档:
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
下面的记作"note.xsd"的XML模式文件用于定义上述的XML文档("note.xml")的元素:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to"type="xs:string"/>
<xs:element name="from"type="xs:string"/>
<xs:element name="heading"type="xs:string"/>
<xs:element name="body"type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
该note元素被称作复杂类型(复杂元素),因它包含其他的元素。这些其他的元素(to,from,heading,body)被称作简单类型(简单元素),因它们不包含另外的元素。
type="xs:string"用于定义数据类型,这里是定义了字符串(string)。也可以定义其他数据类型,如“整数(integer)”、“日期(date)”等。这些简单类型被称作“原子(atomic)”类型。
<schema>元素是每个XML模式的根元素:
<?xml version="1.0"?>
<xs:schema>...
...
</xs:schema>
<schema>元素可包含某些属性。模式声明(declaration)常常如下面的样子:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
...
</xs:schema>
下面的片断:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
指示在该模式中使用的元素和数据类型(schema、element、complexType、sequence、string、boolean等)来自“ http://www.w3.org/2001/XMLSchema”名字空间(namespace)。它还指示来自“ http://www.w3.org/2001/XMLSchema”名字空间的元素和数据类型应该带有前缀“xs:”。
下面的片断:
targetNamespace="http://www.w3schools.com"
指示由该模式定义的元素(note,to,from,heading,body)来自“ http://www.w3schools.com”名字空间。
片断:
xmlns="http://www.w3schools.com"
指定了默认的名字空间声明。该声明告知模式验证器(schema-validator)在该XML文档中使用的所有元素都在"http://www.w3schools.com"名字空间中声明。
片断:
elementFormDefault="qualified"
指示该XML示例文档所使用的在该模式中声明的任何元素必须是名字空间合格的。
该XML文档具有到XML模式的参照:
<?xml version="1.0"?>
<note xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
一旦使XML Schema Instance名字空间可用:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
就可以使用schemaLocation属性。该属性有两个值。第一个值是要使用的名字空间。第二个值是要使用该名字空间的XML模式的位置:
xsi:schemaLocation="http://www.w3schools.com note.xsd"
对XML文档可生成XML模式,该XML模式包含该XML文档中所包含数据的数据类型定义。利用这样的XML模式,可以验证相应的XML文档,即可以在这方面检查该文档中的数据,不论它们是否服从正确的数据类型。该验证过程产生XML文档的注解版本,对每个数据或XML实例包含PSVI实例(PSVI=post schema validationinfo set,后模式验证信息集),即所谓的标记,它是从该XML文档到合适数据类型的参照。PSVI实例包含有关XML实例的数据类型的信息。PSVI的一个例子是:
<ProductDetails xsi:type="productDetailsType">
它是上述的所给的例子<addresses>加PSVI注解的版本:
<addresses xsi:type="addressestype">
    <employee xsi:type="fullpersoninfo"name="John Doe">
        <shoesize xsi:type="shoesizetype"
                        country="france">35</shoesize>
        <address xsi:type="addresstype">
            <street xsi:type="xs:string">Oakroad 5
            </street>
            <city xsi:type="xs:string">Lyngby</city>
            <country xsi:type="xs:string">Denmark
            </country>
        </address>
        <phone xsi:type="xs:string">124-21424-21</phone>
        <email xsi:type="xs:string">jd@example.com
        </email>
        <category xsi:type="xs:string">friend</category>
        <category xsi:type="xs:string>co-worker</category>
    </employee>
</addresses>
xsi:type="fullpersoninfo"是PSVI注解。它按附加属性的形式给出。
对于带有多重节点的XML分层结构,所需要的映射是困难的。
发明内容
因此,本发明的目的是提供一种详尽的方法,用于把XML数据结构映射到本体构造。
本发明的第一方面用于实现这个目的。在本发明的其他方面说明优选的实施例。
本发明各个方面的合理组合也在本发明的公开范围之内。
一般而言,对于XML文档,复杂类型(complex type)映射到本体类(ontology class),复杂类型中的元素和属性(attribute)映射到本体特性(ontology property)。
为了映射XML文档和文档风格WEB服务,建议下面的方法。在下面将祥述该方法的各个步骤。不必按该文本中给定的次序来执行这些步骤。而且,没有明确陈述的另外步骤也可以作为该方法的一部分。
在描述该方法之前,需要定义更多的XML模式的元素。
简单类型(SimpleType)元素
XSD simpleType元素是其类型为简单类型(如type="xs:string")的元素:
    <xs:element name="firstname"type="xs:string"/>
带有属性的简单内容(simpleContent)元素
simpleContent元素包含在只有文本的复杂类型上或在简单类型上的扩展或限制作为内容,并且不包含元素,但具有属性。相应的双亲元素是complexType元素(见下述)。下面是不包含元素的XML元素(<shoesize>):
<shoesize country="france">35</shoesize>
下述例子声明了complexType,“鞋尺码(shoesize)”,其内容被定义成整数数据类型并带有国家(country)属性:
<xs:complexType name="shoesizetype">
  <xs:simpleContent>
    <xs:extension base="xs:integer">
      <xs:attribute name="country"type="xs:string"/>
    </xs:extension>
  </xs:simpleContent>
</xs:complexType>
<xs:element name="shoesize"type=”shoesizetype”/>
复杂内容(complexContent)元素
complexContent元素在包含有混合内容或仅包含元素的复杂类型上定义扩展和限制。
下面的例子具有复杂类型,“fullpersoninfo”,其通过对带有三个附加元素(address、city、country)的继承类型进行扩展,从另外的复杂类型“personinfo”导出:
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname"type="xs:string"/>
    <xs:element name="lastname"type="xs:string"/>
    <xs:element name="shoesize"type="shoesizetype"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="companytype">
  <xs:sequence>
    <xs:element name="name"type="xs:string"/>
    <xs:element name="employee"type="fullpersoninfo"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address"type="xs:string"/>
        <xs:element name="city"type="xs:string"/>
        <xs:element name="country"type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>
在上述的例子中,"employee"元素必须按顺序包含下述元素:"firstname"、"lastname"、"address"、"city"、以及"country"。
简言之,XSD complexContent元素是其类型带有complexContent的复杂类型(comlexType)的元素。
建议的方法
所建议的用于把XML数据结构映射到本体的方法包括下述步骤:
提供XML文档,其带有相应的XML模式定义。
按下述方式把XML模式声明和定义映射到本体模式定义:
-把XML元素和属性声明映射到本体特性定义;
-把XML模式complexType定义映射到本体类定义。
如果使用通过XML模式验证XML文档所得到的信息(PSVI注解),按下述方式把带有已知PSVI类型的XML节点映射到本体实例:
-把PSVI complexType注解映射到本体类实例;
-把元素和属性节点映射到本体特性实例。
定义预定义的本体类定义和预定义的本体数据类型(datatype)特性定义以及预定义的对象特性定义。
如果已经通过XML模式验证了该XML文档,通过把XML元素和属性节点映射到本体特性实例和本体类实例而把不带有PSVI类型注解的XML节点映射到本体实例和本体定义。
在下面的段落中将详细描述根据本发明的方法。
按照下面详细说明的方式把XML模式声明和定义映射到本地模式定义,即在模式一级做完整的映射。声明(declaration)是可在XML模式以及XML文档中找到的名字(name)。除了在XML文档中通过xsi:type机制显式地赋予类型,声明只出现在XML模式中。
把XSD complexType定义映射到本体的类定义。类的名字是复杂类型(complexType)的名字(或系统定义的名字)。
把XSD complexType定义的XSD complexContent元素声明映射到本体的对象特性定义,该对象特性具有域类(domain class)和范围类(range class),在域类中使用该元素,而该复杂内容(complexContent)元素的复杂类型(complexType)映射到对象特性的范围类。在上述给出的例子中,XSD complexContent元素声明的例子是"employee"。
一般而言,特性的域类是这样的类,该类的特性由所述特性来定义。而范围(range)定义所述特性的允许值。如上述给出的类"companytype"具有数据类型特性"name"和对象特性"employee",其具有范围(类)"fullpersoninfo"和域(类)"companytype"。
把XSD simpleType元素映射到本体的数据类型特性定义,该数据类型(datatype)特性具有域类,该域类是其中使用了该元素的类,而该范围类型是simpleType元素声明的XML模式类型。在上述给出的例子中XSD simpleContent元素声明的例子是"firstname"。
更精确地定义,XSD simpleContent元素是其类型为带有简单内容(simpleContent)的复杂类型(comlexType)的元素。术语XSDsimpleContent元素也用于simpleType元素(type="xs:string"),即,用于其元素内容为simpleType的元素。
把带有属性的XSD simpleContent元素声明映射到本体的对象特性定义,该对象特性具有域类和范围类,该域类是其中使用了该元素的类,并且该对象特性的范围类是simpleContent元素的complexType所映射到的类。上述给出的例子中带有属性的XSD simpleContent元素声明的例子是"shoesize"。
把XSD属性声明映射到本体的datatype特性定义,该datatype特性具有域类,该鱼类是其中使用了该元素的类,并且该范围类型是该属性声明的XML模式类型。在上述给出的例子中XSD属性声明的例子是"country"。
如果使用通过XML模式验证XML文档得到的信息(PSVI注解),按照下述方式把带有已知类型的XML节点映射到本体实例。
如上面定义的,PSVI注解(如xsi:type="fullpersoninfo")用于引导本体模式构造,该构造然后再用XML元素的实例来补充。对于本体,“数据”被称作实例。类的实例被称作“对象”。XML文档的“实例”被称作“节点”。
有时候,类的“对象特性”被称作“关系(relations)”。它们定义了从一个类或对象到另外类或对象的指针。通常,类之间的对象特性以及特性的继承要结合到本体中。除了对象特性,所谓的datatype特性是标准的,可以按数据的形式对其定义类的特性。
对每个带有complexType注解的XML元素节点,产生该本体的类的实例,该实例的类是该complexType定义所要映射到的类。在上述给出的例子中,带有complexType注解的元素节点的例子是"employee"。
把XML simpleType元素节点映射到本体的datatype特性实例,该datatype特性实例的域类实例是对其中使用该元素节点的PSVI类型注解生成的实例。在上述给出的例子中,XML simpleType元素节点的例子是""firstname"=Peter"。
把带有属性的XML simpleContent元素节点映射到该本体的对象特性实例,具有域类实例和范围类实例,该对象特性实例的域类实例是对其中使用该元素的类型注解生成的实例,该对象特性实例的范围类实例是对该XML simpleContent元素节点的PSVI注解生成的类实例。在上述给出的例子中,XML simpleContent元素节点的例子是
<shoesize country=”france">35</shoesize>.
把XML complexContent元素节点映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对其中使用该元素的PSVI类型注解生成的实例,并且该对象特性实例的范围类实例是对该XML complexContent元素节点的PSVI类型注解生成的类实例。在上述给出的例子中,XML complexContent元素节点的例子是:
<employee name="John Doe">
        <shoesize
                country="france">35</shoesize>
        <address>
            <street>Oakroad 5
            </street>
            <city>Lyngby</city>
            <country>Denmark
            </country>
        </address>
        <phone>124-21424-21</phone>
        <email>jd@example.com
        </email>
        <category>friend</category>
        <category>co-worker</category>
    </employee>
把XML simpleType属性映射到该本体的datatype特性实例,该datatype特性实例的域类实例是对其中使用属性节点的PSVI类型注解生成的实例。在上述给出的例子中,XML simpleType属性节点的例子是
country="France".
定义下述预定义的本体模式定义:
-单一的类定义,其为所有生成的类定义的超类(super class);
-单一的对象特性定义,其为所有生成的对象特性定义的超对象(super object)特性,该对象特性具有域类和范围类,它们是所述的超类;
-单一的datatype特性定义,其为所有生成的datatype特性定义的超datatype特性,该datatype具有作为所述超类的域类,该范围类型是任何原子类型。
如果通过XML模式验证了XML文档,按下述方式把不带有PSVI类型注解的XML节点映射到本体实例和本体定义:
对每个不是叶子节点的XML元素节点,生成该本体的所有生成的类的预定义超类的实例;以及生成该预定义超对象特性的对象特性实例,该对象特性实例的域类实例是对包含元素节点生成的实例,并且该范围类实例是对该XML元素节点生成的类实例。叶子节点是位于最低级的节点。
对每个不带有属性节点的XML叶子元素节点,生成预定义超datatype特性的datatype特性实例,该datatype特性的域类实例是对该包含元素节点生成的实例。“包含元素节点”是该XML文档的上一级节点。在上面给出的例子中,不带有属性节点的XML叶子元素节点是""firstname"=Peter"。
对每个XML属性节点,生成该预定义的超datatype特性的datatype特性实例,该datatype特性的域类实例是对该属性所属于的元素节点生成的实例。
通常,不带有PSVI类型的XML节点是通过XSD通配符验证的节点。作为默认,优选使用下述预定义的本体模式定义:
  class   GeneralWSInstance
  object property   GeneralWSObjectProperty
  datatype property   GeneralWSDatatypeProperty
这样,本体实例和特性实例总是具有这些本体定义作为类型:或者直接对不带有PSVI类型的XML节点,或者间接对带有PSVI类型的节点,因所有生成的本体定义具有这些本体定义作为超类和超特性。
优选从该模式定义生成类是特性类型。如果不能这样(如对通配符元素没有PSVI类型),利用默认的定义生成类和特性定义。
把XML web服务映射到本体
如果根据上述的方法完成所需要的XML数据结构的映射,则可实现文档风格的web服务到本体的映射。
更详细地,为了把XML web服务映射到本体,执行下述的步骤:
提供带有相应web服务描述符(WSDL)的XML SOAPwebservice。
按下述方式把WSDL定义映射到本体模式定义:
-把操作定义映射到该本体的类定义;
-把部分定义(part definition)映射到本体特性定义。
SOAP请求的输入和输出消息按下述方式映射到本体实例:
-单一的SOAP请求映射到单一本体类实例;
-表示输入和输出消息的部分的元素节点映射到本体特性实例。
更精确地,可按下述方式完成WSDL定义到本体模式定义的映射:
-把操作定义映射到该本体的类定义;
-如果该输入或输出消息的部分被定义成complexContent元素声明,其映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是从该操作定义映射的类,并且该对象特性的范围类是complexContent元素的complexType所映射到的类;
-如果该输入和输出消息的部分被定义成XSD simpleType元素声明,其映射到该本体的datatype特性定义,该datatype特性具有从该操作定义映射的域类以及范围类型,该范围类型是该simpleType元素声明的XML模式类型。
-如果该输入或输出消息的部分被定义成带有属性的XSDsimpleContent元素声明,其映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是从该操作定义映射的类,并且该对象特性的范围类是simpleContent元素的complexType所映射到的类。
操作的例子是附录A中的"getProductDetails"。带有simpleType的元素声明的部分定义的例子是附录A中的"ProductNumber"。带有complexContent元素声明的部分定义的例子是附录A中的"ProductDetails"。
进而,该soap请求的输入和输出消息按下述方式映射到本体实例:
-对操作的每个SOAP请求,生成该本体的类的实例,该实例的类是这样的类,该操作定义要映射到该类;
-如果该输入或输出消息包含XML simpleType元素节点,其映射到该本体的datatype特性实例,该datatype特性实例的域类实例是对该SOAP请求的操作生成的实例;
-如果该输入或输出消息包含带有属性的XML simpleContent元素节点,其映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对该SOAP请求的操作生成的实例,该对象特性实例的范围类实例是对该XML simpleContent元素节点的PSVI类型注解生成的类实例;
-如果该输入或输出消息包含XML complexContent元素节点,其映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对该SOAP请求的操作生成的实例,并且该对象特性实例的范围类实例是对该XML complexContent元素节点的PSVI类型注解生成的类实例。
请求操作的例子是附录C中的"getProductDetails"的输入消息。简单元素节点部分的例子是附录C中的SOAP请求的输入消息中的节点"ProductNumber"。复杂内容元素节点部分的例子是附录C中的SOAP请求的输出消息中的节点"ProductDetails"。
输入消息的落地
为了使得web服务能够产生结果或输出,必须定义良好的输入。该输入可以不包含变量;所有的变量必须具有指定的值。换言之,所有的变量必须“落地(grounded)”。本体的特性是“落地”的,是指该特性存在实例或值。因此,需要本体的定义,其中本体类的对象或datatype特性可以被标记成落地的。
另外,本发明的目的可以通过以下的结构来实现:
-可加载到计算机的数据结构,当在计算机上执行该数据结构时,其适于执行根据本说明书中所描述的实施例之一的方法,
-计算机程序,其中当在计算机上执行该计算机程序时,该程序适于执行根据本说明书中所描述的实施例之一的方法,
-计算机程序,包括程序工具(program means),当在计算机或计算机网络上执行该计算机程序时,用于执行根据本说明书中所描述的实施例之一的方法,
-计算机程序,包括根据前述方面的计算机工具,其中,该程序工具存储在计算机可读的存储介质上,
-存储介质,其中数据结构存储在该存储介质上,并且其中该数据结构在被加载到计算机或计算机网络的主和/或工作存储区时适于执行根据本说明书中所描述的实施例之一的方法,
-计算机程序产品,具有程序代码工具,其中,该程序代码工具可存储在或被存储在存储介质中,当该程序代码工具在计算机或计算机网络上执行时,用于执行根据本说明书中所描述的实施例之一的方法,
-至少一个操作系统、其中存储有多个计算机可执行指令的计算机可读介质、协处理装置、计算装置以及带有计算机可执行指令的调制数据信号,用于执行根据本说明书中所描述的实施例之一的方法。
通过结合附图阅读说明书以及权利要求书,可以理解本发明的其他目的和优点。
附图说明
为了更完整地理解本发明,可参照附图阅读说明书。附图包括:
图1示出了企业信息集成平台的一般视图;
图2示出了把XML数据结构映射到本体的一般概述;以及
图3示出了示例性的数据结构。
具体实施方式
内容
1.系统的一般视图
2.F-Logic介绍
3.映射
3.1.数据库的映射
3.1.1.关系数据库到源本体的映射
3.2.XML映射
3.2.1.带有complexContent的XML参数映射到本体
3.3.Web服务映射
3.3.1.输入变量的落地
4.定义成参数化查询的外部视图
5.作为web服务的出版
附录A web服务的web服务模式的例子
附录B包含在依据附录A的web服务的web服务描述中的XML模式
附录C用于依据附录A的web服务的SOAP请求
1.系统的一般视图
图1示出了企业信息集成平台的一般视图。其中示出了若干数据源XML、DB1、DB2和RPC,RPC是远程过程调用并代表一种web服务。存在源本体100、102、104和106分别对应每个数据源。这些源本体被集成到集成本体108。该集成本体及其下层结构可通过预定义的外部视图V1、V2和V3来存取。对应这些外部视图的是web服务WS1、WS2和WS3。这些web服务可用于把查询输入到系统。推理机或运行时单元110被用于回答这些查询。在这一端,它把该查询输入通过web服务翻译成用该集成本体108的查询语言表示的查询。而且,它动态地访问本体结构100、102、104、106和108以及为回答该查询的对应规则。这些规则的一部分在源本体100、102、104和106与各数据源之间映射。这些映射包含内置函数(built-in)用于访问各数据源。运行时引擎110在使用规则评估查询的同时直接访问外部数据源。
根据示例性的第一实施例,本发明包含系统,优选的是计算机系统,用于统一查询符合不同数据模式的分布数据源。
该系统包含多个数据源,各数据源分别符合给定的数据模式。这些数据源的不同数据模式例如可以是关系数据库、XML文本、web服务等。不同的数据源可存储在不同的存储介质上、存储在网络中的不同计算机上、存储在不同的工厂,或者存储在一个计算机或一个硬盘驱动器上。
每种数据模式具有用来组织数据的结构以及数据模式查询语言,如SQL、Xquery、web服务的API的远程过程调用等。
该系统还包括多个源本体,各对应到一个数据源。每个源本体包括一组结构。通常,该组结构至少包括类和该类的特性。有时候在文献中,类(class)也被称作“类别(category)”,特性(property)也被称作“属性(attribute)”。通常,对象特性和各类之间的关系以及数据类型特性的继承等也结合到本体中。
该数据被称作类的实例。换言之,类是集合,而数据/实例是集合的成员。
优选实现作为类分层结构的对象模型。在分层结构之内,在预定级别上的各类被分别分派到更高级别的确定一个类,也即只允许单继承。一般来说,类结构也可以更一般地实现成无回路的图(acyclicgraph),对此可允许多继承。
例如类的例子可以是类“人”。该类“人”的特性的例子是人的“姓名”。类或数据可以通过对象特性联系起来,如人A和人B“合作”。
定义每个数据源和其对应的源本体之间的映射。利用该映射,把数据源的数据模式的结构映射到源本体的结构。如,对关系数据库模式,表(table)通常映射到源本体的类,而表的字段(field)通常映射到类的特性。
使用基于谓词逻辑的陈述性规则系统,实现各数据源和其对应的源本体之间的映射。陈述性规则系统的一个重要特征是规则计算的结果不依赖于规则定义的次序。
该映射包括工具(mean),用于通过数据源的数据模式查询语言来查询该数据源。
另外,该系统包括集成本体。该集成本体又包括一组结构,通常至少有类和特性。
在优选的实施例中,集成本体具有与其相关联的本体查询语言。该集成本体的本体查询语言不必与源本体的本体查询语言相同,尽管出于实用的原因通常是相同的。
该系统提供每个源本体与该集成本体之间的映射。从字面上看,集成本体是最高级的或全局的本体。利用该映射,各源本体的结构映射到该集成本体的结构。集成本体给出数据的统一视图。这使得可以做信息集成。
该映射不必把源本体的类映射到该集成本体的类,也不必把源本体的特性映射到集成本体的特性。这些本体可具有不同的结构,这可以适当地在个别情况下把特定类映射到特性。如,一个源本体可能具有类“激光打印机”,而集成本体可具有类“打印机”并带有特性“型号”,其实例(实现、数据)可以是“激光打印机”。
源本体和集成本体之间的映射还可以使用基于谓词逻辑的陈述性规则系统来实现。
该系统还包括用于输入与各数据源的数据有关的查询工具。
最后,至少存在一个基于谓词逻辑的推理单元,用于通过使用规则来评估查询。由该推理单元来回答查询。为此,该推理单元对规则评估,它选择适于回答问题的规则。在自顶向下的方法中,规则相继地从集成本体导出到相关的源本体。另外,把相关的源本体映射到相应数据源的规则包括用于通过该数据源的数据模式查询语言来查询该数据源的工具。这些工具把各查询翻译成该数据模式的语言。可以回答这些查询并返回结果。推理单元使用这些结果在web服务的级别上回答查询。因此,该推理单元用作运行时(runtime)单元来回答查询。利用来自本体的信息和规则,可直接查询下层数据源。它是单独的单元而不是本体结构的一部分。
本系统相对于现有技术的主要优点在于映射中所使用的强有力而灵活的规则。结构可以被转换;结构可以被重命名;值可以被改变、转换或计算。
基于本体和陈述性规则的系统提供了无与伦比的建模数据和过程的可能性。
而且,很容易把具有新数据模式的新数据源集成到本系统中。它可以在新的源本体和新的数据模式之间定义映射。在该源本体和集成本体之间的映射不需要新的编程的过程,只需纯的建模。
为了获得该系统的许多优点,关键是使该系统建立在谓词逻辑的基础上或基于谓词逻辑的规则的基础上,而不是建立在现有技术中常用的商业规则的基础上。对此需要做一些解释。如果我们把谓词逻辑限制在具有否定的霍恩(horn)逻辑(规范逻辑)而不是商业规则,并且规范逻辑规则应该至少与它们的外部表示如它们的句法密切关联。相对地,它们底层背景理论基本是不同的。规范逻辑有很好的理论基础:谓词逻辑的模型伦。Herbrand模型是事实的集合(有时候是无限的)。规范逻辑规则和实事的集合的意思由唯一的最小Herbrand模型来定义。这样,不严格地说,规范逻辑规则和实事的集合是实事集合的简化,即最小的Herbrand模型。该最小Herbrand模型的定义独立于给定的规则顺序、独立于给定的规则体顺序并独立于计算该模型的推理算法。对于商业规则的含义没有可用的理论。商业规则的含义由简单的推理算法Rete算法给出。该算法的结果严重依赖规则的顺序、规则体顺序和规则头中使用的操作。这样,对于规则含义的确定没有独立的理论,必须等待推理算法的回答,以得到规则集合的确切含义。更糟糕的是,每个商业规则系统的表现都是不同的。
为了提高本系统的易用性,可自动生成对应于数据源和其数据模式的源本体。同样可自动生成源本体和其对应的数据源之间的映射。
如所提到的,可使用谓词逻辑明确定义本体和本体之间的映射。这些模型可用推理机直接执行。这样,在实现阶段就不会损失信息,也无需信息的再解释,并且该执行对应于原始含义,而且该执行可以立刻开始。
为了加速系统的工作,用作推理引擎的推理单元可在查询评估期间动态存取本体的规则和结构。当推理单元存取存储有模型的数据结构,就给出了实现动态存取的方法。这样就可以动态建模该数据集成,并同时查询所建模的结构。也可以对模型测试。而且,这种系统的知识工程师和用户可以同时工作在系统上。
在优选的实施例中,集成本体具有与其相关联的本体查询语言,并且该系统包括工具用于把每个查询翻译成该集成本体的本体查询语言。
为了进一步提高该系统的灵活性和性能,至少一个本体补充有基于谓词逻辑的陈述性规则系统,用于表示附加的信息。
为了符合流行的标准,优选实施例中的该系统包括至少一个web服务形式的查询单元,用于输入与该集成本体有关的查询。把该查询由web服务输入翻译成该集成本体的本体查询语言,使得可对分布数据进行统一的查询。一般来说,对所有相关的查询定义单独的web服务。
为了使数据模式查询语言的能力尽可能强并加速查询的计算,该系统包括用于标示查询或规则或可结合成该数据源的数据模式查询语言中的复杂查询的规则的组合的工具,以及用于把这些查询或规则或者规则组合翻译成该数据源的数据模式查询语言中的复杂查询。如对关系数据库,结合了不同表和字段以及它们的数据项的查询可以被标示并被翻译成相应的SQL查询。
为了在运行时进一步加速查询的计算,该系统包括工具用来动态过滤那些在web服务级别上对回答该查询没有影响的数据或规则或查询。
为了更好满足不同用户组的需求,该系统可包括多个集成本体,集成不同的数据源或集成相同的数据源,并且表示数据上的不同视图。
2.F-Logic介绍
为了明确表达查询,通常使用逻辑语言F-Logic作为本体查询语言(参见J.Angele,G.Lausen:"Ontologies in F-Logic"in S.Staab,R.Studer(Eds.):Handbook on Ontologies in Information Systems.International Handbooks on Information Systems,Springer,2003,page29)。为了获得F-Logic功能性的某些直观理解,使用下述的例子,在其中对西方世界所熟知的圣经人物之间的关系做映射。
首先,定义本体,即类和其分层结构以及一些实事:
abraham:man.
sarah:woman.
isaac:man[fatherIs->abraham;motherIs->sarah].
ishmael:man[fatherIs->abraham;motherIs->hagar:woman].
jacob:man[fatherIs->isaac;motherIs->rebekah:woman].
esau:man[fatherIs->isaac;motherIs->rebekah].
这里明确定义了一些类:"man"和"woman"。如亚伯拉罕(Abraham)是男人(man)。类"man"具有特性"fatherIs"和"motherIs",这代表双亲。例如男人以撒(Isaac)有父亲亚伯拉罕(Abraham)和母亲撒拉(Sarah)。在这个特定的例子中,各特性是对象特性(objectproperties)。
尽管F-Logic适于定义本体的类结构,但是,在许多情况下,也使用本体语言RDF或OWL用于这种目的。
另外,给出某些规则来定义各类之间的依赖性:
FORALL X,Y X[sonIs->>Y]<-Y:man[fatherIs->X].
FORALL X,Y X[sonIs->>Y]<-Y:man[motherIs->X].
FORALL X,Y X[daughterIs->>Y]<-Y:woman[fatherIs->X].
FORALL X,Y X[daughterIs->>Y]<-Y:woman[motherIs->X].
利用F-Logic编写的规则包括规则头(左侧)和规则体(右侧)。这样,上面所给例子中的第一条规则的意思就是:如果Y是男人,其父亲是X,则Y是X的儿子之一(可能有多个儿子)。单箭头"->"表示对给定的数据类型(datatype)或对象特性只可能有一个值,而双箭头"->>"表示对特性可赋予多于一个的值。
最后,明确构造一个查询,查找“生有儿子且该儿子的父亲为亚伯拉罕的所有女人”。换句话说,就是查找同亚伯拉罕生过儿子的所有女人:
FORALL X,Y<-X:woman[sonIs->>Y[fatherIs->abraham]].
该查询的文法类似于规则定义,但省去了规则头。
查询结果是撒拉和夏甲:
X=sarah
X=hagar
3.映射
3.1.数据库的映射
对于数据库的映射,定义特殊的内置函数(built-in)。利用该内置函数可以存取数据库。它建立诸如SQL的查询来存取数据库。该内置函数结合到映射规则中。
下面的例子说明了在作为数据库类型的MS SQLServer上对数据库的存取,运行在称作"host"的特殊计算机或端口上。该数据库包含表"Person",该表含有有关人的"Id"、"name"和"town"的信息。映射规则具有格式:
              X:Person[hasName->Y;livesInTown->Z]<-
        dbaccess("MS SQL",host,Person,f(Id,X,Name,Y,Town,Z)).
3.1.1.关系数据库到源本体的映射
关系数据库包含一组表。每个表由固定数目的命名列构成。对每个列给定数据类型。表的内容必须符合这些数据类型。对表中的行,必须给出(唯一)关键码,用于明确标示一个行。该关键码可由某些列的值构成,或使用如数字的另外的单独的值。外码定义到其他表的链接;它们表示其他表的关键码,因此代表对象特性。
按如下来定义关系数据库到其对应的源本体的映射:
-每个表映射到本体中的类。
-表中不表示外码的每个列,即不表示关系的每个列,映射到本体的对应类的数据类型特性。
-表示外码的每个列映射到本体的二元关系。
-表中的每个行映射到本体的实例。由该行的关键码或由该行的所有值(当没有可用的关键码)生成该实例的唯一标识符。
-该行中的值映射到所述的数据类型特性值和对象特性。
可按下述方式对关系数据库的数据模式自动生成源本体和映射:
-类名是表名。
-特性名是列名。
-如果有主关键码(primary key),则由数据库名、数据库位置、表名加上该主关键码生成该实例的唯一标识符。
-如果没有唯一关键码,使用该行中所有的值v1、...、vn通过连接这些值建立唯一的关键码。
-通过该行中的值直接给出实例的特性值。
-通过所述的外码的关键码转换建立对象特性。
参加例子:表"person"包含"id"、"name"、"city"、"street"、"zip"、"married"。"id"是关键码。该表包含有数据项"1"、"Peter"、"New York"、"King street"、"12"、"2"。
相应的源本体是如下的样子(按F-Logic的形式):
Person[
   name=>STRING;
   city=>STRING;
  street=>STRING;
  zip=>NUMBER;
  married=>Person].
通过下述的规则给出该表到概念"Person"的映射:
f(database,person,X):Person[id->X;name->Y;city->Z;street->U;zip->V;married->f(database,foreigntablename,W)]<-dbaccess(database,person,access(id,X,name,Y,city,Z,street,U,zip,V,married,W)).
源本体以及从该表到源本体的映射因此可自动生成。
3.2.XML映射
在XML实例和F-Logic实例或源本体的结构之间需要映射。
对于XML文档,可以产生XML模式,其包含XML文档中包含的数据的数据类型定义。利用这样的XML模式,可以验证对应的XML文档,即可在这方面来检查该文档中的数据,看其是否符合正确的数据类型。验证过程产生XML文档的注解版本,对每个元素或XML实例包含有PSVI实例(PSVI=post schema validation info set,后模式验证信息集合),其参照XML模式的适当数据类型。PSVI实例包含有关XML实例的数据类型的信息。
现在,我们利用XML模式来考察XML实例,在设计时其具有固定的模式。对XML实例给出PSVI实例,其对类型信息做注解并从XML表示的具体词汇中做摘要。
该映射应该尽可能的保留信息。当然丢失某些信息也是可接受的,因做这种保留的工作量太大,如
-通过嵌套序列、选择或所有模型组来约束复杂内容模型。
-利用如0、1以及无界的量来约束最小发生次数(MinOccurs)和最大发生次数(MaxOccurs)。
有利用相关联的XML模式结构把XML元素节点映射到本体实例和模式的模式驱动映射。
该映射按如下来定义:
-把XML simpleType元素说明映射到本体的datatype特性定义(如表的列)。
-把XML complexType定义映射到本体类定义。
-把XML complexContent元素说明映射到本体的对象特性定义。
-把带有属性的XML simpleContent元素说明映射到本体的对象特性定义。
通过下面的例子说明该映射。利用附录B中的目录模式来说明该例子的XML模式。在图3中可见该结构。
下面的XML文档的例子适合该模式。<ProductDetails="tns:productDetailsType"xmlns="http://www.example.com/ProductCatalog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tns="http://www.example.com/ProductCatalog.xsd"xmlns:xs="http://www.w3.org/2001/XMLSchema"xsi:schemaLocation="http://www.example.com/ProductCatalog.xsdProductCatalog.xsd">
<Weight>25</Weight>
<WeightUnit>kg</WeightUnit>
<Dimensions>
   <Height>27</Height>
   <Width>24</Width>
   <Depth>21</Depth>
</Dimensions>
<DimensionsUnit>cm</DimensionsUnit>
<Colour transparency="50">red</Colour></ProductDetails>
对该带有简单和复杂类型元素说明的XML模式,产生下述的本体,该例子用语言F-Logic表达:
productDetailsType[].
dimensionsType[].
productDetailsType[Weight=>xsd#INTEGER;
 WeightUnit=>xsd#STRING;
 Dimensions=>>dimensionsType;
 DimensionsUnit=>xsd#STRING;
     Colour=>colourType].
dimensionsType[Height=>xsd#INTEGER;
 Width=>xsd#INTEGER;
 Depth=>xsd#STRING].
colourType[value=>xsd#STRING;
 transparency=>xsd#INTEGER].
该XML映射把上述XML实例映射到下述的本体的实例:
instance2productDetailsType:productDetailsType.
instance2productDetailsType[Weight->>"24,6";
 WeightUnit->>"pounds";
 Dimensions->>instance4dimenstionsType;
DimensionsUnit->>"inches";
    Colour->>instance5ColourType].
instance4dimensionsType:dimensionsType.
instance4dimensionsType[Width->>24.0;
 Depth->>21.0;
 Height->>26.0].
instance5ColourType:ColourType.
instance5ColourType[value->"red”;
transparency->>50].
图2示出了XML数据结构到本体映射的一般视图。模式定义映射到模式定义,并且实例映射到实例。
这通过一般内置函数(generic built-in)来实现,其具有作为输入的XML模式信息及其到本体定义的映射。通过存取XML实例,该内置函数具有所有的信息,用于构造相应的作为带有本体模式信息的变量给出的本体实例。这根据上述的模式驱动映射来实现。
根据该类属XML内置函数,该映射通过生成的F-Logic映射规则来实现,该生成的F-Logic映射规则通过XML内置函数把生成的本体类和特性映射到相应的XML构造。下面是这种生成规则的例子:FORALL VAR0,VAR1,VAR2,VAR3,VAR4,VAR5(id("productDetailsType",VAR0):
    productDetailsType[
 Weight->>VAR1;
 WeightUnit->>VAR2;
 Dimensions->>VAR3;
 DimensionsUnit->>VAR4;
     Colour->>VAR5]<-XMLBuiltin("datasource-URL",VAR0
"XMLSchemaDefiniton”,”MappingToOntology”,
     F(VAR1,VAR2,VAR3,VAR4,VAR5))
该内置函数生成Xqueries。该Xqueries的XML结果根据该规则映射到本体实例。
3.2.1.把带有complexContent的XML参数映射到本体
一般来说,web服务方法本身可以映射到源本体的类(概念),其所有参数映射到数据类型或对象特性。SimpleType XML元素说明象表那样映射,即可以直接映射到数据类型或对象特性。需要解决的问题是带有复杂内容(complexContent)的参数。
下面的表1定义了从带有包括复杂内容的XML模式信息的XML元素节点到F-Logic/本体模式(以F-Logic表示的本体)的映射。
  XML schema   F-Logic schema
  命名的complexType   类带有所有元素的特性和包含在complexType内容模型中的属性。忽略模型组(序列、选项、所有)
  <xs:complexTypename="productDetailsType"><xs:sequence><xs:element    name="Weight"type="xs:int"/><xs:element name="WeightUnit"type="xs:string"/><xs:element name="Dimensions"type="tns:dimensionsType"/><xs:elementname="DimensionsUnit"type="xs:string"/></xs:sequence></xs:complexType>   productDetailsType[Weight=>xs#NUMERIC;WeightUnit=>xs#STRING;Dimensions=>DimensionsUnitType]
  匿名complexType   类带有从路径到complexType的生成名对匿名complexType使用封装元素名
  <xs:complexTypename="productDetailsType"><xs:sequence>…<xs:element name="Unit"><xs:complexType><xs:sequence><xs:elementname="unitName"type="xs:strmg"/><xs:elementname="unitSpecification"type="xs:anyURI"/></xs:sequence></xs:complexType></xs:element>...</xs:sequence></xs:complexType>   productDetailsType.Unit[unitName=>xs#STRING;unitSpecification=>xs#STRING]
  元素complexContent的元素   ObjectProperty带有对complexType的类范围,如关系
  <xs:element    name="ProductDetails"type="tns:productDetailsType"/><xs:complexTypename="productDetailsType"><xs:sequence><xs:element      name="Weight"type="x=s:int"/><xs:element name="WeightUnit"type="xs:string"/><xs:element name="Dimensions"type="tns:dimensionsType"/><xs:elementname="DimensionUnit"type="xs:string"/></xs:sequence></xs:complexType>   [..ProductDetails=>productDetailsType]productDetailsType[Weight=>xs#NUMERIC;WeightUnit=>xs#STRING;Dimensions=>DimensionsUnitType;DimensionUnit=>xs#STRING]DimensionsUnitType[Height=>xs#NUMERIC;Width->xs#NUMERIC:Depth->xs#NUMERIC;]
  带有simpleContent的元素   datatypeProperty
  <xs:element        name="Height"type="xs:int"/>   [weight=>xs:int]
  属性   DatatypeProperty带有名字前缀@
  <xs:e              anAttribute="EUR"type="xs:string"/>   [@anAttribute=>xs#STRING]
  MinOccurs=0MaxOccurs>1   =>==>
  subtyping   subtype
  <xs:complexType name="Employee"<xs:complexContent><xs:extension base="Person"><xs:sequence><xs:element name="loan"type="xs:string">   Employee::Person[load=>xs#integer]
  带有complexContent的通配符元素   对类无特别特性定义
  <xs:element name="ProductDetails"><xs:complexTypename="productDetailsType"><xs:sequence><xs:anymaxOccurs=”unbounded”/></xs:sequence></xs:complexType></xs:element>   [..ProductDetails=>productDetailsType]
表1
下述的表2定义了从带有包括复杂内容的XML模式信息的XML元素节点到F-Logic/本体实例(以F-Logic表示的本体)的映射。
  XML instance(PSVI)   F-Logic instance
  带有从PSVI指定xsi:type的元素复杂内容   对象带有生成的对象标识符(由对象特性参考)
  <ProductDetailsxsi:type="productDetailsType"><Weight>24.6</Weight><WeightUnit>pounds</WeightUnit><Dimensions><Height>26</Height><Width>24</Width><Depth>21</Depth></Dimensions><DimensionUnit>inches</DimensionUnit></ProductDetails>   ProductDetailsType(id1):productDetailsType[Weight->24.6;WeightUnit->"pounds";Dimensions->DimensionsUnitType(id2)DimensionsUnitType(id2):DimensionsUnitType[Height->26;Width->24;Depth->21]
  没有命名类型的复杂内容元素节点   带有生成的对象标识符的对象(由对象特性参考)
<Unit><unitName>kg</unitName><unitSpecification>http://www.std.org/unit/measures</unitName></Unit>   ProductDetailsType.Unit(Obj1):productDetailsType.anType1[unitName->"kg";unitSpecification->"http://www.std.org/unit/measures"]
  复杂内容(complexContent)元素节点   对象类型特性实例
  <ProductDetailsxsi:type="productDetailsType"><Weight>24.6</Weight><WeightUnit>pounds</WeightUnit><Dimensions><Height>26</Height><Width>24</Width><Depth>21</Depth></Dimensions><DimensionUnit>inches</DimensionUnit></ProductDetails>   [..ProductDetails->productDetailsType(id1)]productDetailsType(id1):productDetailsType[Weight->24.6;WeightUnit->"pounds";Dimensions->DimensionsUnitType(id2);DimensionUnit->"inches"]DimensionsUnitType(id2):DimensionsUnitType[Height->26;Width->24;Depth->21]
  元素(Element)   数据类型特性(datatypeProperty)
  <weight xsi:type="xs:integer>4711</weight>   [weight->4711]
  XML属性节点   Datatype Property实例
  <e anAttribute="EUR"></e>   [@anAttribute->"EUR"]
  假定:XML元素没有任何类型注解   对象特性实例
  <ProductDetails<Weight>24.6</Weight><WeightUnit>pounds</WeightUnit><DimensionUnit>inches</DimensionUnit></ProductDetails>   [..ProductDetails->GeneralWSInstance(id1)]GeneralWSInstance(id1):GeneralWSInstance[Weight->24.6;WeightUnit->"pounds";Dimensions->GeneralWSInstance(id2);DimensionUnit->"inches"]
表2
忽略下述的模式概念:
模型组序列中的差异、选择和所有混合内容。
不映射的XML节点:
-处理指令节点以及
-注释
3.3.Web服务映射
Web服务可以被看作是带有一组输入参数和一组输出参数的远程过程调用(RPC),其包括结果。
例如,发布城市的当前温度信息的web服务可具有作为输入参数的邮政编码以及作为输出参数的温度。相应的源本体可具有类“地点(place)”,其带有两个特性:“邮政编码(zip code)”和“温度(temperature)”。
这里只考虑文档风格的web服务,其中所有的输入参数包含在输入消息的单一的XML元素中,并且所有的输出参数包含在输出消息的单一XML元素中。所述XML元素由XML模式定义来描述。该web服务由参照XML模式定义的WSDL(web服务描述语言)来描述。
附录A包含下述的定义web服务getProductDetails的例子,其使用在描述XML映射中使用的相同模式的元素。
Web服务操作映射到本体类,该类把输入消息的元素和输出消息的元素作为特性。这些元素的内容如上述的XML映射所规定的映射到本体定义。因此上述的web服务将产生下述的本体定义。
//CLASSES--------------------
getProductDetailsOperation[].
productDetailsType[].
dimensionsType[].
getProductDetailsType[].
//PROPERTIES--------------------
getProductDetailsOperation[
 ProductNumber=>ProductNumberType;
 ProductDetails=>productDetailsType].
productDetailsType[Weight=>xsd#INTEGER;
 WeightUnit=>xsd#STRING;
 Dimensions=>>dimensionsType;
 DimensionsUnit=>xsd#STRING;
 Colour=>colourType].
dimensionsType[Height=>xsd#INTEGER;
 Width=>xsd#INTEGER;
 Depth=>xsd#STRING].
colourType[value=>xsd#STRING;
transparency=>xsd#INTEGER].
在附录C中,有根据给定的WSDL定义的SOAP请求的例子。SOAP代表“简单对象存取协议(Simple Object Access Protocol)”;它是轻便的基于XML的消息协议,在向网络上发送web服务请求中的信息并响应消息之前,使用该协议编码这些信息。
该web服务映射把上述的web服务的SOAP请求映射到下述的本体实例。注意只有第一个实例是专门针对该web服务映射的。其他的实例与XML映射例子中的相同。
instance1GetProductDetailsOperation:getProductDetailsOperation.
instance1GetProductDetailsOperation[ProductNumber->>605001;
  ProductDetails->>instance2productDetailsType].
instance2productDetailsType:productDetailsType.
instance2productDetailsType[Weight->>"24,6";
  WeightUnit->>"pounds";
  Dimensions->>instance4dimenstionsType;
  DimensionsUnit->>"inches";
  Colour->>instance5ColourType].
instance4dimenstionsType:dimensionsType.
instance4dimenstionsType[Width->>24.0;
   Depth->>21.0;
  Height->>26.0].
  instance5ColourType:ColourType.
  instance5ColourType[value->"red”;
  transparency->>50].
根据上面规定的映射,一般内置函数"webservice"实现该对应的SOAP请求到本体实例的转换。该内置函数获得WSDL描述及其到本体定义的映射作为输入。由此从SOAP请求的结果构造本体实例。
根据该类属web服务内置函数,通过生成的F-Logic映射规则实现该映射,所述规则把生成的本体类和特性映射到该web服务内置函数。下面是生成的规则的例子:
FORALL PN,PD
getProductDetailsOperation(PN):getProductDetailsOperation
     [ProductNumber->PN;ProductDetails->PD]
<-webservice("http://www.example.com/Products",
input(”ProductNumber”,PN),
output(”ProductDetails”,PD))
附录A至C示出了web服务,通过相应的的SOAP请求描述web服务,以及说明该请求如何映射到本体模式和实例。
3.3.1.输入变量的落地
为了使web服务能够产生结果或输出,必须仔细定义输入。输入可以不包含变量;所有的变量必须要赋值。换言之,所有的变量必须是“落地的”。如果本体的特性具有实例或值,则称该特性是“落地的(grounded)”。
下面的例子说明了特性的落地。该例子中,通过下述的规则把产品细节(Product Details)从web服务映射到本体:
FORALL PN,PD
       getProductDetailsOperation(PN):
       getProductDetailsOperation[
       ProductNumber->PN;ProductDetails->PD]
    <-webservice(http://
       www.example.com/Products,
                input("ProductNumber",PN),
                output("ProductDetails",PD)).
由于产品号是对该web服务的输入,它必须有一个值,它必须是落地的。如果有另外的规则把该源本体映射到集成本体,如:
FORALL X,Y
     X:Product[PoNumber->Y]<-
X:getProductDetailsOperation[ProductNumber->Y].
则该集成本体的数据类型特性“PONumber”必须是落地的。另一方面,对产品号可用性的查询检查,如:
FORALL X<-X:Product[PoNumber->5].
是可执行的,由于值5是落地的值,因此对该web服务的输入("ProductNumber",5)是落地的,并且该web服务是可执行。
对此,可以定义本体定义的扩展,这种扩展可以把本体类的对象或数据类型特性标记成落地的。只有对这样的本体元素的查询才是允许的,其中这些元素是直接落地的或者等同于其他落地的特性。如果输入是落地的,或者换句话说,被标记成必须落地的,则这些直接依赖或(通过规则)间接依赖该WSDL操作的特性定义就是落地的。依赖该WSDL的输入的特性定义事先不落地。
例如,对集成本体的查询,当查询所有产品号是不允许的:
FORALL X,Y<-X:Product[PoNumber->Y].
因数据类型特性"PoNumber"不落地,对web服务内置函数的输入参数没有可用的值(通过规则来传递)。因此,不能执行该web服务,也不能回答该查询。
解决该问题的另一个方法是通过使用推理机的指令。在该实施例中,推理机知道那个对象或数据类型特性必须落地(它们在本体中必须是未标记的),并拒绝没有适当落地的查询。推理机通过规则图(系统图)来传递所述落地的特性。因此,不需要通过说明哪个特性必须落地以及哪个特性不需要落地来扩展本体。
如果集成本体的某些特性或类落地,通过该集成本体的落地的本体特性可以扩展映射,以便使WSDL操作的输入消息的部分落地。如,通过馈送带有来自集成本体的值的web服务的输入值,可以扩展web服务的映射。如果该集成本体知道所有可能的产品号(如通过从数据库的映射),这些产品号可以用作对web服务的输入:
FORALL PN,PD,X
          getProductDetailsOperation(PN):
          getProductDetailsOperation[
          ProductNumber->PN;ProductDetails->PD]
    <-X:Product[PoNumber->PN]and
          webservice(http://www.example.com/Products,
          input(“ProductNumber”,PN),
          output(“ProductDetails”,PD)).
因此,扩展了映射。使用来自集成本体的产品号通过值来初始化变量PN,并因此使web服务的输入落地。这使得诸如
FORALL X,Y<-X:Product[PoNumber->Y].
的查询可被回答,因对于所有的产品号,该本体知道(如通过数据库映射)可以执行web服务内置函数。
4.定义成参数化查询的外部视图
在集成数据上的不同外部视图可通过指定预定义的查询来定义。它们可被理解成预定义的对该集成本体的参数化查询,并使用该集成本体的查询语言来构成。
4.1.例子
考察在web服务输入级别上提出的查询如何被转换到web服务数据源级别上。然后再考察上述给出的web服务getProductDetails的例子。
我们给出一个对包含有附录A中的例子web服务Catalog的集成本体的查询例子:
Forall X,Y,Z,U<-X:getProductDetails[ProductNumber->50600;getProductDetails->Y[Weight->Z;WeightUnit->U]].
5.Web服务输入
对每个外部视图,可以定义该系统的相应web服务访问,这使得可以相应地查询该系统。在最一般的情况下,这样的web服务以XML文档作为输入并生成XML文档作为输出或回答。这样的web服务被称作“文档风格的web服务”。
这样,对上述给出的web服务getProductDetails的例子,输入的XML文档可以是如下的样子
<ProductNumber>
123
</ProductNumber>
输出可以是如下的样子
<ProductDetails>
<Weight>60</Weight>
<WeightUnit>kg</WeightUnit>
</ProductDetails>
更详细的解释在后面给出。
尽管结合特定的实施例说明并示出了本发明,本领域的普通技术人员能够理解,如所说明的和所主张的权利,在不脱离这里所说明的本发明的基本原理的前提下,可以有各种变化和修改。在不脱离其精神实质和基本特征的前提下,本发明可以用其他的特定形式来实现。从各个方面来说,所给出的实施例都应该被理解成是示例性的,而不是限制性的。因此,本发明的范围由权利要求书来限定,而不是由上述的说明来限定。权利要求的等价物的含义和范围内的所有变化都在所主张的权利要求之内。
引用的参考文献
美国专利US 2004/0216030 A1
美国专利US 2004/0093559 A1
美国专利US 2004/0093344 A1
美国专利US 2003/0179228 A1
美国专利US 2003/0177481 A1
美国专利US 2003/0163597 A1
美国专利US 2003/0163450 A1
美国专利US 2003/0120665 A1
美国专利US 2003/0101170 A1
J.Angele,G.Lausen:"Ontologies in F-Logic"in S.Staab,R.Studer(Eds.):Handbook on Ontologies in Information Systems.InternationalHandbooks on Information Systems,Springer,2003,page 29ff..
A.Van Gelder,K.A.Ross,and J.S.Schlipf:"The well-foundedsemantics for general logic programs";Journal of the ACM,38(3):620-650,July 1991.
J.D.Ullman:"Principles of Database and Knowledge-Base Systems";vol.I,Computer Sciences Press,Rockville,Maryland,1988.附录A
Catalog Webservice
  ProductCatalog.wsdl
  <wsdl:definitions
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns:cat="http://www.example.com/ProductCatalog.xsd"
  xmlns:tns="http://www.example.com/ProductCatalog.wsdl"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  targetNamespace="http://www.example.com/ProductCatalog.wsdl">

        <wsdl:types>

           <xs:schema xmlns:xs="http://

                              www.w3.org/2001/XMLSchema">

                      <xs:import namespace="http://

                           www.example.com/ProductCatalog.xsd"

                           schemaLocation="ProductCatalog.xsd"/>

           </xs:schema>

        </wsdl:types>

        <wsdl:message name="getProductDetailsRequest">

           <wsdl:part name="request"

                           element="cat:ProductNumber"/>

        </wsdl:message>

        <wsdl:message name="getProductDetailsResponse">

           <wsdl:part name="Body"element="cat:ProductDetails"/>

        </wsdl:message>

        <wsdl:portType name="CatalogPortType">

           <wsdl:operation name="getProductDetails">

                <wsdl:input name="getDetailsRequest"
        <!-- SIPO <DP n="47"> -->
        <dp n="d47"/>
               message="tns:getProductDetailsRequest"/>

       <wsdl:output name="getDetailsResponse"

               message="tns:getProductDetailsResponse"/>
   </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CatalogSoapBinding"

                         type="tns:CatalogPortType">
   <soap:binding style="document"transport="http://

                       schemas.xmlsoap.org/soap/http"/>
   <wsdl:operation name="getProductDetails">

    <soap:operation/>

    <wsdl:input>

       <soap:body parts="request"use="literal"/>

    </wsdl:input>

    <wsdl:output>

       <soap:body parts="Body"use="literal"/>

    </wsdl:output>
   </wsdl:operation>
</wsdl:binding>
<wsdl:service name="getProductDetails">
   <wsdl:port name="getProductPort"

                       binding="tns:CatalogSoapBinding">

    <soap:address location="http://

            www.example.com/getProductDetails"/>
   </wsdl:port>
</wsdl:service>
</wsdl:definitions>
附录B
Catalog schema
ProductCatalog.xsd
  <?xml version="1.0"encoding="UTF-8"?>
 <xs:schema targetNamespace="http://

                      www.example.com/ProductCatalog.xsd"<br/>
 xmlns:tns="http://www.example.com/ProductCatalog.xsd"<br/>
 xmlns:xs="http://www.w3.org/2001/XMLSchema"

                      elementFormDefault="qualified">

    <xs:element name="ProductNumber"type="xs:int"/>

    <xs:element name="ProductDetails"

                      type="tns:productDetailsType"/>

    <xs:complexType name="productDetailsType">

       <xs:complexContent>

          <xs:restriction base="xs:anyType">

             <xs:sequence>

                <xs:element name="Weight"

                           type="xs:int"/>

                <xs:element name="WeightUnit"

                           type="xs:string"/>

                <xs:element name="Dimensions"

                           type="tns:dimensionsType"/>

                <xs:element name="DimensionsUnit"

                           type="xs:string"/>

                <xs:element name="Colour"

                           type="tns:colourType"/>

             </xs:sequence>

          </xs:restriction>
        <!-- SIPO <DP n="49"> -->
        <dp n="d49"/>
   </xs:complexContent>
 </xs:complexType>
 <xs:complexType name="colourType">

   <xs:simpleContent>

      <xs:extension base="xs:string">

         <xs:attribute name="transparency"

                                  type="xs:int"/>

      </xs:extension>

   </xs:simpleContent>
 </xs:complexType>
 <xs:complexType name="dimensionsType">

   <xs:complexContent>

      <xs:restriction base="xs:anyType">

         <xs:sequence>

            <xs:element name="Height"

                    type="xs:int"/>

            <xs:element name="Width"

                    type="xs:int"/>

            <xs:element name="Depth"

                    type="xs:int"/>

         </xs:sequence>

      </xs:restriction>

   </xs:complexContent>
 </xs:complexType>
</xs:schema>
附录CSOAP request输入消息<SOAP-ENV:Envelope                                        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"           xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
      <tns:ProductNumberxmlns:tns="http://www.example.com/ProductCatalog.xsd"xsi:schemaLocation="http://www.example.com/ProductCatalog.xsdProductCatalog.xsd">50600</tns:ProductNumber>
    </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>输出消息<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://
          schemas.xmlsoap.org/soap/envelope/"xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
      <tns:ProductDetailsxmlns:tns="http://www.example.com/ProductCatalog.xsd"xsi:schemaLocation="http://
  www.example.com/ProductCatalog.xsd ProductCatalog.xsd">
    <tns:Weight>25</tns:Weight>
    <tns:WeightUnit>kg</tns:WeightUnit>
    <tns:Dimensions>
       <tns:Height>27</tns:Height>
       <tns:Width>24</tns:Width>
       <tns:Depth>21</tns:Depth>
    </tns:Dimensions>
    <tns:DimensionsUnit>cm</tns:DimensionsUnit>
    <tns:Colour transparency="50">red</tns:Colour>
 </tns:ProductDetails></SOAP-ENV:Body></SOAP-ENV:Envelope>

Claims (17)

1.一种用于把XML数据结构映射到本体的方法,该方法包括:
提供具有相应XML模式定义的XML文档;
a)按下述方式把XML模式声明和定义映射到本体模式定义:
-把XML元素和属性声明映射到本体特性定义;
-把XML复杂类型定义映射到本体类定义;
b)如果使用来自通过XML模式的XML文档验证的信息(PSVI注解),按下述方式把带有已知PSVI类型的XML节点映射到本体实例:
-把PSVI复杂类型注解映射到本体类实例;
-把元素和属性节点映射到本体特性实例;
c)定义下述预定义的本体模式定义:
-定义预定义的本体类定义和预定义的本体数据类型特性定义以及预定义的对象特性定义;
d)如果已经通过XML模式验证了该XML文档,按下述方式把不带有PSVI类型注解的XML节点映射到本体实例和本体定义:
-把XML元素和属性节点映射到本体特性实例和本体类实例。
2.根据权利要求1所述的方法,包括步骤:
a)按下述方式把XML模式声明和定义映射到本体模式定义:
a1)把XSD复杂类型定义映射到该本体的类定义;
a2)把XSD复杂类型定义的XSD复杂内容元素声明映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是其中使用该元素的类,并且该对象特性的范围类是该复杂内容元素的复杂类型所要映射到的类;
a3)把XSD简单元素声明映射到该本体的数据类型特性定义,该数据类型特性具有域类,该域类是其中使用该元素的类,并且范围类型是该简单类型元素声明的XML模式类型;
a4)把带有属性的XSD简单内容元素声明映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是其中使用该元素的类,并且该对象特性的范围类是该简单内容元素的复杂类型所要映射到的类;
a5)把XSD属性声明映射到该本体的数据类型特性定义,该数据类型特性具有域类,该域类是其中使用该元素的类,并且范围类型是该属性声明的XML模式类型。
3.根据权利要求1所述的方法,包括步骤:
b)如果使用来自通过该XML模式的该XML文档验证的信息(PSVI注解),按下述方式把带有已知PSVI类型的XML节点映射到本体实例:
b1)对每个带有复杂类型注解的XML元素节点生成该本体的类的实例,该实例的类是该复杂类型定义所要映射到的类;
b2)把XML简单类型元素节点映射到该本体的数据类型特性实例,该数据类型特性实例的域类实例是对其中使用该元素节点的PSVI类型注解生成的实例;
b3)把带有属性的XML简单内容元素节点映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对其中使用该元素的类型注解生成的实例,该对象特性实例的范围类实例是对该XML简单内容元素节点的PSVI类型注解生成的类实例;
b4)把XML复杂内容元素节点映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对其中使用该元素的PSVI类型注解生成的实例,并且该对象特性实例的范围类实例是对该XML复杂内容元素节点的PSVI类型注解生成的类实例;
b5)把XML简单类型属性节点映射到该本体的数据类型特性实例,该数据类型特性实例的域类实例是对其中使用该属性节点的PSVI类型注解生成的实例。
4.根据权利要求1所述的方法,包括步骤:
c)定义下述的预定义本体模式定义:
c1)单一的类定义,其为所有生成的类定义的超类;
c2)单一的对象特性定义,其为所有生成的对象特性定义的超对象特性,该对象特性具有域类和范围类,其为所述的超类;
c3)单一的数据类型特性定义,其为所有生成的数据类型特性定义的超数据类型特性,该数据类型特性具有域类,其为所述超类,该范围类型是任何原子类型。
5.根据权利要求1所述的方法,包括步骤:
d)如果通过该XML模式验证了该XML文档,把不带有PSVI类型注解的XML节点按下述方式映射到本体实例和本体定义:
d1)对每个非叶子节点的XML元素节点
d1a)生成该本体的所有生成的类的预定义超类的实例;以及
d1b)生成该预定义超对象特性的对象特性实例,该对象特性实例的域类实例是对包含元素节点生成的实例,并且该范围类实例是对该XML元素节点生成的类实例;
d2)对每个不带有属性节点的XML叶子元素节点,生成该预定义超数据类型特性的数据类型特性实例,该数据类型特性的域类实例是对该包含元素节点生成的实例;
d3)对每个带有属性节点的XML叶子元素节点,生成该预定义超对象特性的对象特性实例,该对象特性的域类实例是对该包含元素节点生成的实例,并且该范围类实例是对该元素节点生成的类实例;
d4)对每个XML属性节点,生成该预定义超数据类型特性的数据类型特性实例,该数据类型特性的域类实例是对该属性所属于的元素节点生成的实例。
6.根据前述任意一项权利要求所述的方法,把文档风格的web服务映射到本体,由此完成所需要的XML数据结构的映射。
7.根据权利要求6所述的方法,其特征在于
对于XML web服务到本体的映射,执行下述的步骤:
-提供带有相应web服务描述(WSDL)的XML SOAP webservice;
a)按下述方式把该WSDL定义映射到本体模式定义:
-把操作定义映射到该本体的类定义;
-把部分定义映射到本体特性定义;
b)按下述方式把该SOAP请求的输入和输出消息映射到本体实例:
-单一的SOAP请求映射到单一的本体类实例;
-把表示该输入和输出消息的部分的元素节点映射到本体特性实例。
8.根据权利要求7所述的方法,包括步骤:
a)按下述方式把WSDL定义映射到本体模式定义;
a1)把操作定义映射到该本体的类定义;
a2)如果该输入或输出消息的部分被定义成复杂内容元素声明,其映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是从该操作定义映射的类,并且该对象特性的范围类是该复杂内容元素的复杂类型所要映射到的类;
a3)如果该输入或输出消息的部分被定义成不带有属性的XSD简单类型元素声明,其映射到该本体的数据类型特性定义,该数据类型特性具有从该操作定义映射的域类,并且范围类型是该简单类型元素声明的XML模式类型;
a4)如果该输入或输出消息的部分被定义成带有属性的XSD简单内容元素声明,其映射到该本体的对象特性定义,该对象特性具有域类和范围类,该域类是从该操作定义映射的类,并且该对象特性的范围类是该简单内容元素的复杂类型所要映射到的类。
9.根据权利要求7所述的方法,包括步骤:
b)按下述方式把SOAP请求的输入和输出消息映射到本体实例:
b1)对操作的每个SOAP请求,生成该本体的类的实例,该实例的类是该操作定义要映射到的类;
b2)如果该输入和输出消息包含XML简单类型元素节点,其映射到该本体的数据类型特性实例,该数据类特性实例的域类实例是对该SOAP请求的操作生成的实例;
b3)如果该输入或输出消息包含带有属性的XML简单内容元素节点,其映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对该SOAP请求的操作生成的实例,该对象特性实例的范围类实例是对该XML简单内容元素节点的PSVI类型注解生成的类实例;
b4)如果该输入或输出消息包含XML复杂内容元素节点,其映射到该本体的对象特性实例,该对象特性具有域类实例和范围类实例,该对象特性实例的域类实例是对该SOAP请求的操作生成的实例,并且该对象特性实例的范围类实例是对该XML复杂内容元素节点的PSVI类型注解生成的类实例。
10.在本体定义中,本体类的对象和数据类型特性可被标记成落地的。
11.一种计算机可加载数据结构,当在计算机上执行该数据结构时,其适于执行根据所述方法权利要求所述的方法。
12.一种计算机程序,其中,当在计算机执行该计算机程序时,该计算机程序适于执行根据所述方法权利要求所述的方法。
13.一种计算机程序,包括程序工具,当在计算机或计算机网络上执行该计算机程序时,其用于执行根据所述方法权利要求所述的方法。
14.一种计算机程序,包括根据所述方法权利要求的程序工具,其中,该程序工具存储在计算机可读的存储介质上。
15.一种存储介质,其中数据结构存储在该存储介质上,并且其中,当该数据结构被加载到计算机或计算机网络的主和/或工作存储器之后,其适于执行根据所述方法权利要求所述的方法。
16.一种计算机程序产品,具有程序代码工具,其中,该程序代码工具可被存储在或者被存储在存储介质上,当该程序代码工具在计算机或在计算机网络上执行,其用于执行所述方法权利要求所述的方法。
17.如权利要求1所述的方法,该方法由操作系统、其上存储有多个计算机可执行指令的计算机可读介质、协处理装置、计算装置以及携带有计算机可执行指令的调制数据信号中的至少一个来执行。
CN200610004710A 2005-01-31 2006-01-27 把Web服务映射到本体 Expired - Fee Related CN100583093C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05001913A EP1686495B1 (en) 2005-01-31 2005-01-31 Mapping web services to ontologies
EP05001913.2 2005-01-31

Publications (2)

Publication Number Publication Date
CN1866253A true CN1866253A (zh) 2006-11-22
CN100583093C CN100583093C (zh) 2010-01-20

Family

ID=34933517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610004710A Expired - Fee Related CN100583093C (zh) 2005-01-31 2006-01-27 把Web服务映射到本体

Country Status (5)

Country Link
US (1) US7487166B2 (zh)
EP (1) EP1686495B1 (zh)
CN (1) CN100583093C (zh)
AT (1) ATE510259T1 (zh)
HK (1) HK1091282A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010037295A1 (zh) * 2008-09-27 2010-04-08 国家电力调度通信中心 一种用于大规模信息交换和处理的数据模型描述方法
CN101504657B (zh) * 2009-03-20 2011-02-16 武汉大学 面向语义Web服务的资源搜索方法
CN101398858B (zh) * 2008-11-07 2011-09-21 西安交通大学 一种基于本体学习的Web服务语义提取方法
CN103123646A (zh) * 2012-12-11 2013-05-29 北京航空航天大学 将xml文档自动转化为oml文档的转换方法及装置
CN103313098A (zh) * 2009-05-08 2013-09-18 柯尔无限授权责任有限公司 用于配置业务指南演示的方法及装置
CN105190596A (zh) * 2012-09-07 2015-12-23 美国化学协会 自动组成评估器
CN112035707A (zh) * 2020-08-17 2020-12-04 深圳市中盛瑞达科技有限公司 一种作业转换方法及系统

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426516B1 (en) * 2003-11-24 2008-09-16 Novell, Inc. Mechanism for supporting indexed tagged content in a general purpose data store
US7877726B2 (en) * 2004-07-13 2011-01-25 The Mitre Corporation Semantic system for integrating software components
US7823123B2 (en) * 2004-07-13 2010-10-26 The Mitre Corporation Semantic system for integrating software components
US20080005085A1 (en) * 2004-11-12 2008-01-03 Yusuke Fujimaki Server Device and Search Method
US7680800B2 (en) * 2005-05-20 2010-03-16 International Business Machines Corporation Algorithm to marshal/unmarshal XML schema annotations to SDO dataobjects
US7461075B2 (en) * 2005-05-20 2008-12-02 International Business Machines Corporation Method for updating XML schema registry using schema pass by value with message
WO2007084790A2 (en) * 2006-01-20 2007-07-26 Glenbrook Associates, Inc. System and method for context-rich database optimized for processing of concepts
US20080033967A1 (en) * 2006-07-18 2008-02-07 Ravi Murthy Semantic aware processing of XML documents
DE602006015316D1 (de) * 2006-09-13 2010-08-19 Alcatel Lucent Entdeckung von Web-Diensten
US20080120544A1 (en) * 2006-11-21 2008-05-22 Sybase, Inc. Automated Generation of Agent Networks from Standard Ontologies
US7469252B2 (en) * 2006-11-30 2008-12-23 Fortinet, Inc. Device, system and/or method for providing schema-independent access to object in documents
EP1944695A1 (en) * 2007-01-15 2008-07-16 Software Ag Method and system for monitoring a software system
US20080222515A1 (en) * 2007-02-26 2008-09-11 Microsoft Corporation Parameterized types and elements in xml schema
WO2008113164A1 (en) * 2007-03-16 2008-09-25 Research In Motion Limited Automating construction of a data-source interface for component applications
US8166465B2 (en) 2007-04-02 2012-04-24 International Business Machines Corporation Method and system for composing stream processing applications according to a semantic description of a processing goal
US8370812B2 (en) 2007-04-02 2013-02-05 International Business Machines Corporation Method and system for automatically assembling processing graphs in information processing systems
US7953770B2 (en) * 2007-04-18 2011-05-31 Sap Ag Conflict management in a versioned file system
US7765241B2 (en) * 2007-04-20 2010-07-27 Microsoft Corporation Describing expected entity relationships in a model
US8332209B2 (en) * 2007-04-24 2012-12-11 Zinovy D. Grinblat Method and system for text compression and decompression
US8117233B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Method and system for message-oriented semantic web service composition based on artificial intelligence planning
US7865823B2 (en) * 2007-06-28 2011-01-04 Intel Corporation Method and apparatus for schema validation
US9613138B2 (en) * 2008-09-03 2017-04-04 Hamid Hatami-Hanza Unified semantic scoring of compositions of ontological subjects
US8775365B2 (en) * 2010-03-07 2014-07-08 Hamid Hatami-Hanza Interactive and social knowledge discovery sessions
US7711749B2 (en) * 2007-08-20 2010-05-04 International Business Machines Corporation Privacy ontology for identifying and classifying personally identifiable information and a related GUI
US8429709B2 (en) * 2007-08-20 2013-04-23 International Business Machines Corporation Privacy ontology for identifying and classifying personally identifiable information and a related GUI
US8027948B2 (en) * 2008-01-31 2011-09-27 International Business Machines Corporation Method and system for generating an ontology
US8645434B2 (en) * 2008-03-18 2014-02-04 Apple Inc. Techniques for schema production and transformation
US8229963B2 (en) * 2008-03-25 2012-07-24 Microsoft Corporation Schema for federated searching
US8117239B2 (en) * 2008-03-25 2012-02-14 Microsoft Corporation Aggregating schema data from multiple sources
US9213699B2 (en) * 2008-04-30 2015-12-15 Aspect Software Inc. Super-object in administering system
TWI393107B (zh) * 2008-07-02 2013-04-11 Au Optronics Corp 液晶顯示裝置
CN101605141A (zh) * 2008-08-05 2009-12-16 天津大学 基于语义的Web服务关系网络系统
US20110035418A1 (en) * 2009-08-06 2011-02-10 Raytheon Company Object-Knowledge Mapping Method
US20110035349A1 (en) * 2009-08-07 2011-02-10 Raytheon Company Knowledge Management Environment
US9542484B2 (en) * 2009-09-29 2017-01-10 Sap Se Updating ontology while maintaining document annotations
US8745096B1 (en) 2010-03-31 2014-06-03 Amazon Technologies, Inc. Techniques for aggregating data from multiple sources
US9477730B2 (en) * 2010-10-28 2016-10-25 Microsoft Technology Licensing, Llc Web services runtime for dataset transformation
US9298287B2 (en) 2011-03-31 2016-03-29 Microsoft Technology Licensing, Llc Combined activation for natural user interface systems
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US10642934B2 (en) 2011-03-31 2020-05-05 Microsoft Technology Licensing, Llc Augmented conversational understanding architecture
US9858343B2 (en) 2011-03-31 2018-01-02 Microsoft Technology Licensing Llc Personalization of queries, conversations, and searches
US9842168B2 (en) 2011-03-31 2017-12-12 Microsoft Technology Licensing, Llc Task driven user intents
US9244984B2 (en) 2011-03-31 2016-01-26 Microsoft Technology Licensing, Llc Location based conversational understanding
JP6087899B2 (ja) * 2011-03-31 2017-03-01 マイクロソフト テクノロジー ライセンシング,エルエルシー 会話ダイアログ学習および会話ダイアログ訂正
US9454962B2 (en) 2011-05-12 2016-09-27 Microsoft Technology Licensing, Llc Sentence simplification for spoken language understanding
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US20130173523A1 (en) * 2011-12-29 2013-07-04 Spribo, Llc. Method and system for contextual knowledge society network
US9116932B2 (en) * 2012-04-24 2015-08-25 Business Objects Software Limited System and method of querying data
US9189531B2 (en) * 2012-11-30 2015-11-17 Orbis Technologies, Inc. Ontology harmonization and mediation systems and methods
US9183501B2 (en) 2013-05-11 2015-11-10 International Business Machines Corporation Upper merged ontology for it architecture
US9720972B2 (en) * 2013-06-17 2017-08-01 Microsoft Technology Licensing, Llc Cross-model filtering
IN2013CH05997A (zh) 2013-12-20 2015-06-26 Infosys Ltd
US10262075B2 (en) * 2014-12-05 2019-04-16 Sap Se Efficient navigation through hierarchical mappings
RU2592396C1 (ru) * 2015-02-03 2016-07-20 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ и система для машинного извлечения и интерпретации текстовой информации
KR101713625B1 (ko) 2015-07-29 2017-03-08 조선대학교산학협력단 향토산업과 연관된 환경정보 데이터를 수집 및 분석하기 위한 시스템 및 그 방법
JPWO2017099059A1 (ja) * 2015-12-08 2018-09-27 日本電気株式会社 文書処理装置、方法および記憶媒体
GB201716304D0 (en) * 2017-10-05 2017-11-22 Palantir Technologies Inc Data analysis system and method
EP3709189A1 (en) * 2019-03-14 2020-09-16 Siemens Aktiengesellschaft Recommender system for data integration
CN111767406B (zh) * 2019-04-01 2022-08-30 杭州电子科技大学 Plc工程的知识表示方法及装置
CN115509647B (zh) * 2022-11-21 2023-03-03 深圳市蓝凌软件股份有限公司 Api接口访问方法、转换方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US7877421B2 (en) * 2001-05-25 2011-01-25 International Business Machines Corporation Method and system for mapping enterprise data assets to a semantic information model
US20030101170A1 (en) * 2001-05-25 2003-05-29 Joseph Edelstein Data query and location through a central ontology model
US8412746B2 (en) * 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
EP1547009A1 (en) * 2002-09-20 2005-06-29 Board Of Regents The University Of Texas System Computer program products, systems and methods for information discovery and relational analyses
GB0226778D0 (en) * 2002-11-18 2002-12-24 Hewlett Packard Co Using semantic web technology to enhance current business-to-business integration approaches
US7823123B2 (en) * 2004-07-13 2010-10-26 The Mitre Corporation Semantic system for integrating software components
US20060074980A1 (en) * 2004-09-29 2006-04-06 Sarkar Pte. Ltd. System for semantically disambiguating text information
US7337170B2 (en) * 2005-01-18 2008-02-26 International Business Machines Corporation System and method for planning and generating queries for multi-dimensional analysis using domain models and data federation

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010037295A1 (zh) * 2008-09-27 2010-04-08 国家电力调度通信中心 一种用于大规模信息交换和处理的数据模型描述方法
CN101398858B (zh) * 2008-11-07 2011-09-21 西安交通大学 一种基于本体学习的Web服务语义提取方法
CN101504657B (zh) * 2009-03-20 2011-02-16 武汉大学 面向语义Web服务的资源搜索方法
CN103313098A (zh) * 2009-05-08 2013-09-18 柯尔无限授权责任有限公司 用于配置业务指南演示的方法及装置
US9906832B2 (en) 2009-05-08 2018-02-27 Conversant Wireless Licensing S.A R.L. Method and apparatus for configuring presentation of service guides
US10791363B2 (en) 2009-05-08 2020-09-29 Conversant Wireless Licensing S.a.r.l. Method and apparatus for configuring presentation of service guides
CN105190596A (zh) * 2012-09-07 2015-12-23 美国化学协会 自动组成评估器
CN103123646A (zh) * 2012-12-11 2013-05-29 北京航空航天大学 将xml文档自动转化为oml文档的转换方法及装置
CN103123646B (zh) * 2012-12-11 2015-11-04 北京航空航天大学 将xml文档自动转化为owl文档的转换方法及装置
CN112035707A (zh) * 2020-08-17 2020-12-04 深圳市中盛瑞达科技有限公司 一种作业转换方法及系统
CN112035707B (zh) * 2020-08-17 2021-03-30 深圳市中盛瑞达科技有限公司 一种作业转换方法及系统

Also Published As

Publication number Publication date
CN100583093C (zh) 2010-01-20
EP1686495B1 (en) 2011-05-18
EP1686495A1 (en) 2006-08-02
ATE510259T1 (de) 2011-06-15
HK1091282A1 (en) 2007-01-12
US7487166B2 (en) 2009-02-03
US20060173868A1 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
CN1866253A (zh) 把Web服务映射到本体
CN1811772A (zh) 企业信息集成平台
CN1155906C (zh) 数据处理方法、系统、处理程序及记录媒体
CN1604082A (zh) 用于任意数据模型的映射体系结构
CN1262958C (zh) 使用元数据在关系数据库中创建多维数据集的方法和系统
CN1609856A (zh) 查询中间语言的方法和系统
CN1132098C (zh) 并行分布处理系统及其方法
CN1182467C (zh) 可扩充的分布企业应用集成系统
CN1204515C (zh) 自由格式数据处理的方法和设备
CN1585945A (zh) 用于将xml模式映射到对象关系数据库系统的机制
CN101044479A (zh) 用于关系数据库系统中基于本体的语义匹配的系统
CN1609855A (zh) 查询优化系统和方法
CN1749999A (zh) .net数据类型和实例的持久存储
CN1679026A (zh) Web服务设备和方法
CN1073276A (zh) 语言的中性对象
CN1689022A (zh) 可扩展标记语言流化转换器
CN1629869A (zh) 产生和管理商业过程集成解决方案的系统和方法
CN1073540A (zh) 管理类方法名
CN1359489A (zh) 用于构筑建模工具的装置和方法
CN1524216A (zh) 软件构件插件程序结构的系统和方法
CN1573759A (zh) 公共查询运行期系统以及应用编程接口
CN1766886A (zh) 用于数据管理和/或转换的数据结构、数据库系统及方法
CN1592905A (zh) 自动产生数据库查询的系统和方法
CN1949763A (zh) 共享信息服务器系统
CN1609795A (zh) 用于计算机平台的编程接口

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100120

Termination date: 20170127