CN101393554A - 一种idl信息到owl信息的转换方法及装置 - Google Patents
一种idl信息到owl信息的转换方法及装置 Download PDFInfo
- Publication number
- CN101393554A CN101393554A CNA2008101199534A CN200810119953A CN101393554A CN 101393554 A CN101393554 A CN 101393554A CN A2008101199534 A CNA2008101199534 A CN A2008101199534A CN 200810119953 A CN200810119953 A CN 200810119953A CN 101393554 A CN101393554 A CN 101393554A
- Authority
- CN
- China
- Prior art keywords
- owl
- attribute
- idl
- information
- file
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明为了解决现有技术中没有有效对IDL文件转换存储为OWL文件的问题,提供一种IDL信息到OWL信息的转换方法及装置。本发明方法公开了以下技术手段实现上述目的,加载IDL文件,对所述加载的IDL文件进行建模,通过所述建模生成的接口读取所述加载的IDL文件中所有基本元素,并将所述读取的基本元素无损的转换存储为OWL信息文件。根据本发明提供的转换方法及装置,可以解决IDL信息与CORBA平台紧耦合,实现复杂,代价比较大,不利于信息跨域交互共享的问题;同时,发挥OWL与平台无关性、描述能力强方面的优势,从而支持信息的跨域交互共享、统一管理。
Description
技术领域
本发明涉及通信技术领域,特别涉及信息模型的描述技术,具体地讲是一种基于IDL网络资源信息模型到基于OWL共享管理信息模型之间无损的语义转换方法及装置。
背景技术
在网络运营管理技术迅速发展的今天,运营商要求对通信网络的整体运行情况进行统一综合管理,信息的跨域交互和共享需求已经变得十分迫切。目前通信网络设备繁多、多种专业网络并存、组网方式多种多样,采用的网络管理接口技术、网管系统开发平台也各不相同。复杂的网络环境给统一综合的网络管理和异构系统数据交互共享带来了极大的挑战。
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是由OMG(Object Management Group,对象管理组织)提出的分布式对象技术,是当前网络管理采用的主流接口技术,在电信领域有大规模的应用。IDL(Interface Description Language)作为CORBA平台的接口定义语言,通过定义接口(interface)提供对网络被管对象信息的访问入口,包括接口操作interface和被管网络资源interface两部分。CORBA应用范围广泛,当前绝大部分的网络资源信息均可以通过IDL定义的接口获取。在信息的跨域交互方面,IDL是一种面向对象的类编程语言的描述语言,对信息之间关系的描述能力有限,而信息之间关系又是信息共享的重点和信息在不同系统中交互时保证信息一致性的关键。同时,IDL被管网络资源interface本质上不是用于描述资源信息,而是用于描述信息的访问入口;interface中的attribute(属性)本质上也不是网络资源的信息属性,而是访问接口interface的参数。另外,IDL与CORBA平台紧耦合,实现复杂,代价比较大,不利于信息的跨平台跨系统共享交互的实现。
而基于本体的网络管理信息模型被认为是解决网络异构系统互操作,实现跨域管理的有效手段之一,近年来得到广泛的关注和研究。W3C(World WideWeb Consortium,万维网联盟)制定的OWL(Web Ontology Language)规范首先是一种标记语言,具有与平台无关性、可读性强的特点,W3C已经将其作为目前语义Web框架中的推荐语言。其次,OWL采用的语法格式是基于XML(Extensible Marked Language,可扩展标记语言)、RDF(Resource DescriptionFramework,资源描述框架),并在其上增加了一种能够对Web文档中的术语间关系含义进行形式化描述的本体语言。因此,OWL具备了更多对含义和语义的描述能力。OWL提供了大量关于类、类关系、属性、属性特性、属性限制等描述构词,能够充分支持信息的充分表达。采用基于OWL的本体信息模型可以跨越不同的应用程序、企业和集团的边界实现数据的共享和重用。
因此,将当前主流的IDL描述的网络资源模型转换为采用OWL描述共享信息模型,是解决IDL网络资源模型在信息跨域共享交互方面的不足,发挥OWL与平台无关、含义与语义描述能力强方面的优势,实现共享信息模型与现有系统进行协同工作,支撑信息的跨系统跨平台交互共享、统一管理的有效手段,具有重大的现实意义。
发明内容
本发明的目的在于提供一种IDL信息的到OWL信息的转换方法,用于支持基于IDL网络资源信息模型到基于OWL共享管理信息模型之间无损的语义转换,解决IDL网络资源信息模型与CORBA平台紧耦合,对信息之间关系的描述能力有限,不利于信息跨域交互共享的问题,从而支持统一跨专业网络跨平台综合管理的实现。
本发明的另一目的在于提供一种IDL信息的到OWL信息的转换装置,用于解决现有技术中不能自动的实现IDL文件存储于OWL文件的不足,并且提高现有IDL网络资源模型与OWL共享管理信息模型之间的同步更新效率,从而支持资源共享的目的。
为了实现上述目的,本发明提供了一种IDL信息到OWL信息的转换方法和装置,该方法和装置是通过如下技术方案实现的:
一种IDL信息到OWL信息的转换方法,该方法包括:加载IDL文件;对所述加载的IDL文件进行建模,并定义访问标准IDL文件基本元素的接口;通过所述建模生成的接口读取所述加载的IDL文件中所有基本元素的信息;将所述读取的基本元素转换存储为OWL信息文件,根据所述读取的基本元素,创建OWL文件、创建OWL的类(owl:Class)并声明类关系、创建OWL的属性并声明属性特性(Property Characteristics),对创建的OWL属性进行属性限制(Property Restrictions)。
一种IDL信息到OWL信息的转换装置,该装置包括:IDL文件,加载单元,建模单元,读取单元,映射单元,OWL文件;所述加载单元加载IDL文件,所述建模单元对所述IDL文件进行建模,所述读取单元通过所述建模单元生成的接口读取所述IDL文件中的所有基本元素,所述映射单元将所述基本元素无损的映射并存储于OWL文件中。
本发明的有益效果在于,是一种实现基于IDL信息到基于OWL的信息无损的映射转换方法及自动、实用的转换装置,可以有效地将上述IDL文件转换存储为OWL文件,建立基于OWL的与平台无关、具备强大描述能力的共享信息模型,支持信息的跨域交互共享、统一管理。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本中请的一部分,并不构成对本发明的限定。在附图中:
如图1所示为本发明一种IDL信息到OWL信息的转换方法流程图;
如图2所示为本发明加载IDL文件步骤详细流程图;
如图3所示为本发明读取IDL文件基本元素的流程图;
如图4所示为本发明子域信息读取步骤流程图;
如图5所示为本发明IDL基本元素取值类型读取步骤流程图;
如图6所示为本发明对IDL文件的基本元素进行OWL文件转换存储步骤详细流程图;
如图7所示为本发明装置结构图;
如图8所示为本发明实施例IDL文件与映射存储的OWL文件内容示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供一种IDL信息到OWL信息的转换方法及装置。以下结合附图对本发明进行详细说明。
如图1所示为本发明一种IDL信息到OWL信息的转换方法流程图,包括步骤101,加载IDL文件,用户输入文件名和路径,在磁盘上查找该文件,如果存在则返回文件正在读取的信息,否则提示用户输入有误。所述IDL文件为用于描述网络资源信息模型定义的IDL信息。
步骤102,对上述加载的IDL文件进行建模,解析该IDL文件,把该文件加载到内存中,并定义了访问标准IDL文件基本元素的接口。其中,本发明所述基本元素为用于描述网络资源信息模型的IDL基本元素和数据类型,包括:module(模块)、interface(接口)、attribute(属性);基本数据类型:short、long、float、double、boolean、octet、unsigned long、unsigned short、string、wstring、char、wchar、long long、unsigned long long、long double、fixed;构造数据类型:struct(结构体)及其子域、union(联合体)及其子域、array(数组)、sequence(序列)、enum(枚举)。可以通过连接CORBA接口库的方式,直接获取IDL信息的访问接口。
步骤103,利用上述接口读取所述加载的IDL文件中的基本元素。所述加载的IDL文件的基本元素可能少于上述IDL标准中用于描述网络资源信息模型的标准基本元素
步骤104,按照映射规则对上述读取的IDL基本元素对应OWL的基本元素进行转换存储。根据所述IDL的基本元素分别对应创建OWL文件、OWL的类(owl:Class)并声明类关系、OWL的属性并声明属性特性(PropertyCharacteristics),对创建的OWL属性进行属性限制(Property Restrictions)。
具体过程如下面所述。
如图2所示为本发明加载IDL文件步骤详细流程图,包括步骤201,用户通过用户界面输入IDL文件名和其路径。步骤202,查找文件是否存在,如果不存在,则将错误信息返回用户界面201,提示用户重新输入;如果存在,则进入步骤203。步骤203,分配内存,设置一个缓冲区(buffer)。步骤204,通过调用加载文件函数InputFile(string name)加载IDL文件的内容,存入缓冲区中。
如图3所示为本发明读取IDL文件基本元素的流程图,包括步骤301开始读取流程。步骤302,读取当前基本元素关键字、简单名称和全局名称。步骤303,判断当前基本元素关键字是否为interface,如果是则进入步骤309,否则进入步骤304。步骤304,判断当前基本元素关键字是否为struct,如果是则进入步骤310,否则进入步骤305。步骤305,判断当前基本元素关键字是否为union,如果是则进入步骤311,否则进入步骤306。步骤306,判断当前基本元素关键字是否为array,如果是则进入步骤312,否则进入步骤307。步骤307,判断当前基本元素关键字是否为sequence,如果是则进入步骤313,否则进入步骤308。步骤308,判断当前基本元素关键字是否为enum,如果是则进入步骤314,否则进入步骤315。步骤309,读取interface继承关系,设定interface下的attribute为子域后进入步骤流程401读取子域信息。步骤310,设定struct参数为子域后进入步骤流程401读取子域信息。步骤311,读取union鉴别器取值类型,设定union参数为子域后进入步骤流程401读取子域信息。312,读取array元素个数,进入步骤流程501读取array的取值类型。步骤313,读取sequence的序列个数上边界值,无上边界时标记为无上边界,并进入步骤流程501读取sequence的取值类型。步骤314,并逐一读取enum取值元素。步骤315,结束当前基本元素读取。
作为优选的实施例,上述读取IDL基本元素的步骤303至308的先后顺序可以任意组合,不作限制。
如图4所示为本发明子域信息读取步骤流程图,包括步骤401,开始子域信息读取流程。步骤402,读取子域关键字、简单名称和全局名称,并进入步骤流程501读取子域的取值类型。步骤403,判断子域是否读完,如果是则进入步骤404,否则进入步骤402。步骤404,结束子域信息读取步骤流程。
如图5所示为本发明IDL基本元素取值类型读取步骤流程图,包括步骤501,开始取值类型读取流程。步骤502,判断取值类型是否为构造数据类型,如果是则进入步骤503,否则进入步骤504。步骤503,标记取值类型为构造数据类型并读取构造数据类型名。步骤504,读取简单类型关键字。步骤505,结束取值类型读取步骤流程。
在读取上述IDL文件后,将上述读取出的IDL文件的基本元素进行OWL语法和语义的转换存储。如图6所示为本发明对IDL文件的基本元素进行OWL文件转换存储步骤详细流程图,包括:
步骤601,创建OWL文件。首先是根据不同的module的全局名称,分别建立IDL基本元素映射的OWL文件,以module的全局名称声明OWL文件的命名空间。
步骤602,创建OWL的类并声明类关系。首先根据interface、struct、union、array、sequence、enum的全局名称,在对应module的OWL文件下创建OWL的类,对所述interface的继承关系和取值为构造数据类型的sequence,采用构词rdfs:subClassOf在生成的子类中进行父类声明。所述sequence生成的类的父类为所述构造数据类型对应生成的OWL的类。
如表1所示为IDL interface转换为OWL的类的一实施例。
IDL信息 | 转换后的OWL信息 |
interface Father/*接口Father定义*/{attribute string name;};interface Son:Father/*接口Son继承Father{attribute GenderType gender;};typedef sequence <FixedLength>StructSeqType;/* sequence取值为构造数据类型*/ | <owl:Class rdf:ID="Father"/><owl:Class rdf:ID="Son"><rdfs:subClassOfrdf:resource="#Father"/></owl:Class><owl:Class rdf:ID="FixedLength"/><owl:Class rdff:ID="StructSeqType"><rdfs:subClassOfrdf:resource="#FixedLength"/></owl:Class> |
根据表1所示,IDL接口Father和Son、取值为构造数据类型FixedLength的序列类型StructSeqType分别映射创建OWL的类Father、Son和StructSeqType。类Son采用构词rdfs:subClassOf声明与Father之间的继承关系。类StructSeqType通过构词rdfs:subClassOf声明父类为类型FixedLength对应生成的类FixedLength。
对enum的数据元素,采用构词owl:oneOf(通过直接枚举类的成员的方法来描述类)将所有数据元素在所述enum生成的类中一一声明。
例如表2所示为IDL enum转换为OWL信息的一实施例。
IDL信息 | 转换后的OWL信息 |
enum GenderType{Male,Female}; /*枚举类型*/ | <owl:Class rdf:ID="GenderType"><owl:oneOfrdf:parseType="Collection"><owl:Thing rdf:about="#Male"/><owl:Thing rdf:about="#Female"/></owl:oneOf></owl:Class> |
根据表2所示,IDL枚举类型GenderType映射创建OWL的类GenderType。GenderType通过构词oneOf声明枚举取值“Male”和“Female”。
步骤603,创建OWL的属性并声明属性特性,包括:
根据所述读取基本元素的全局名称,逐一为取值类型为构造数据类型的attribute、struct子域参数、union子域参数在对应module的OWL文件下新建OWL的对象属性(owl:ObjectProperty)。将所述对象属性的定义域声明为所述attribute所属interface、struct、union对应生成的OWL的类,值域声明为所述构造数据类型对应的OWL的类。
如表3所示为取值类型为构造数据类型的attribute、struct子域参数、union的子域参数转换为OWL的对象属性的一实施例。
IDL信息 | 转换后的OWL信息 |
interface Son:Father/*接口Son继承Father*/{attribute GenderType gender;/*接口属性取值为构造数据类型*/}; | <owl:Class rdf:ID="Son"><rdfs:subClassOfrdf:resource="#Father"/></owl:Class><owl:ObjectProperty rdf:ID="gender"><rdfs:domain rdf:resource="#Son"/> |
struct FixedLength/*struct类型定义*/{……GenderType mem2;/*struct子域值为枚举类型GenderType*/};union ComplexUnionTypeswitch(GenderType)/*union鉴别器定义为的枚举类型GenderType*/{……case famale:FixedLength u2;};…… | <rdfs:rangerdf:resource="#GenderType"/></owl:Obj ectProperty><owl:Class rdf:ID="FixedLength"/><owl:ObjectProperty rdf:ID="mem2"><rdfs:domainrdf:resource="#FixedLength"/><rdfs:rangerdf:resource="#GenderType"/></owl:ObjectProperty><owl:Class rdf:ID="FixedLength"/><owl:ObjectProperty rdf:ID="u2"><rdf:typerdf:resource="&owl;FunctionalProperty"/><rdfs:domainrdf:resource="#ComplexUnionType"/><rdfs:rangerdf:resource="#FixedLength"/></owl:ObjectProperty> |
根据表3所示,IDL接口Son属性gender取值类型是枚举类型GenderType,映射创建OWL的对象属性gender,定义域为类Son,值域为枚举GenderType生成的类GenderType。IDL结构体FixedLength存在子域参数mem2,取值类型为GenderType,映射存储为OWL的对象属性mem2,定义域为类FixedLength,值域为枚举GenderType生成的类GenderType。IDL联合体ComplexUnionType存在子域参数u2,取值类型为结构体FixedLength,映射存储为OWL的对象属性u2,定义域为类ComplexUnionType,值域为结构体FixedLength生成的类FixedLength。
根据所述读取基本元素的全局名称,逐一为取值类型为IDL基本数据类型的array、sequence、attribute、struct子域参数、union子域参数在对应module的OWL文件下创建OWL的数值属性(owl:DatatypeProperty)。array数值属性命名为:array类型名+“_has_”+基本数据类型关键字;sequence数值属性命名为:sequence类型名+“_has_”+基本数据类型关键字。并将所述创建的属性的定义域声明为所述array、sequence、attribute所属interface、struct、union对应生成的OWL的类,值域声明为所述IDL基本数据类型对应的OWL中Xml Schema基本类型,具体见表4IDL基本数据类型到OWL数据类型的映射所示。
表4 IDL基本数据类型到OWL数据类型的映射
针对union的子域参数,还需要采用构词owl:FunctionalProperty声明属性特性,表示该属性至多有唯一值,符合union中子域的含义(union鉴别器取值不同,union的子域参数不同)。
如表5所示为取值类型为IDL基本数据类型的attribute、struct子域参数和union子域参数转换为OWL的数值属性的一实施例。
IDL信息 | 转换后的OWL信息 |
interface Father/*接口Father定义*/{attribute string name;/*接口属性取值为基本数据类型*/};struct FixedLength/*struct类型定义{long mem1;/*struct子域值为基本类型*/ | <owl:Class rdf:ID="Father"/><owl:DatatypeProperty rdf:ID="name"><rdfs:domain rdf:resource="#Father"/><rdfs:range rdf:resource="&xsd;string"/></owl:DatatypeProperty><owl:Class rdf:ID="FixedLength"/><owl:DatatypeProperty rdf:ID="mem1"><rdfs:domainrdf:resource="#FixedLength"/> |
……};union ComplexUnionTypeswitch(GenderType) /*union类型定义*/{case male:shortu1;……,}; | <rdfs:range rdf:resource="&xsd;long"/></owl:DatatypeProperty><owl:Class rdf:ID="ComplexUnionType"/><owl:DatatypeProperty rdf:ID="u1"><rdf:typerdf:resource="&owl;FunctionalProperty"/><rdfs:domainrdf:resource="#ComplexUnionType"/><rdfs:range rdf:resource="&xsd;short"/></owl:DatatypeProperty> |
根据表5所示,IDL接口Father的属性name取值为基本数据类型string,映射创建OWL的数值属性name,定义域为类Father,值域为直接映射的OWL类型string。IDL结构体FixedLength存在子域参数mem1取值为基本数据类型long,映射创建OWL的数值属性mem1,定义域为类FixedLength,值域为直接映射的OWL类型long。IDL联合体ComplexUnionType的鉴别器类型为枚举GenderType,取值为Male和Female;IDL联合体ComplexUnionType存在子域参数u1,取值为基本数据类型short,映射存储为OWL的对象属性u1,定义域为类ComplexUnionType,值域为直接映射的OWL类型short,并采用构词owl:FunctionalProperty进行属性特性声明,表示该属性至多取唯一值。
如表6所示为取值类型为IDL基本数据类型的array、sequence创建OWL数值属性的一实施例。
IDL信息 | 转换后的OWL信息 |
typedef short ShortArrayType[3];/*数组类型定义*/typedef sequence<long,5>LongSeq;/*有界sequence*/ | <owl:Class rdf:ID="ShortArrayType"/><owl:DatatypePropertyrdf:ID="ShortArrayType_has_short"><rdfs:domainrdf:resource="#ShortArrayType"/><rdfs:range rdf:resource="xsd;short"/></owl:DatatypeProperty><owl:Class rdf:ID="LongSeq"/><owl:DatatypePropertyrdf:ID="LongSeq_has_long"><rdfs:domain rdf:resource="LongSeq"/><rdfs:range rdf:resource="xsd;long"/></owl:DatatypeProperty> |
根据表6所示,IDL数组ShortArrayType取值为基本数据类型short,映射创建OWL的数值属性ShortArrayType_has_short,定义域为类ShortArrayType,值域为直接映射的OWL类型short。IDL序列LongSeq取值为基本数据类型long,映射创建OWL的数值属性LongSeq_has_long,定义域为类LongSeq,值域为直接映射的OWL类型long。
步骤604,对创建的OWL属性进行属性限制。针对array元素个数长度,采用构词owl:Cardinality(限定一个属性取值的精确个数)对取值类型为array的attribute对应生成的OWL对象属性进行限制。针对sequence序列边界值,采用构词owl:minCardinality和owl:maxCardinality对取值类型为sequence的attribute对应生成的OWL对象属性进行限制。sequence无界时,设定owl:minCardinality为零。
如表7所示为对取值为IDL数组类型array的attribute创建OWL属性限制的一实施例。
IDL信息 | 转换后的OWL信息 |
typedef short ShortArrayType[3];/*ShortArrayType数据长度为3*/attribute ShortArrayType shortArrayAttr;/*属性取值为数组类型shortArrayAttr*/ | <owl:Restriction><owl:onPropertyrdf:resource="#shortArrayAttr"/><owl:Cardinalityrdf:datatype="&xsd;nonNegativeInteger">3</owl:Cardinality></owl:Restriction> |
根据表7所示,IDL属性shortArrayAttr取值类型为长度为3的数组ShortArrayType,所述属性映射创建OWL的对象属性shortArrayAttr,并采用构词owl:Cardinality对创建属性shortArrayAttr限制取值序列长度为3。
例如表8所示为对取值为IDL序列类型sequence的基本元素创建OWL属性限制的一实施例。
IDL信息 | 转换后的OWL信息 |
typedef sequence<long,5>LongSeq; | <owl:Restriction> |
/*有界sequence*/typedef sequence <FixedLength>StructSeqType;/*无界sequence*/attribute LongSeq longSeqAttr;/*属性取值为有界sequence类型*/attribute StructSeqType structSeqAttr;/*属性取值为无界sequence类型*/ | <owl:onPropertyrdf:resource="#longSeqAttr"/><owl:maxCardinalityrdf:datatype="&xsd;nonNegativeInteger">5</owl:maxCardinality></owl:Restriction><owl:Restriction><owl:onPropertyrdf:resource="#structSeqAttr"/><owl:minCardinalityrdf:datatype="&xsd;nonNegativeInteger">0</owl:minCardinality></owl:Restriction> |
根据表8所示,IDL属性longSeqAttr取值类型为上边界值为5的序列LongSeq,所述属性映射创建OWL的对象属性longSeqAttr,并采用构词owl:maxCardinality对创建属性longSeqAttr限制取值序列长度最大为5。IDL属性structSeqAttr取值类型为无界的序列StructSeqType,所述属性映射创建OWL的对象属性structSeqAttr,并采用构词minCardinality对属性structSeqAttr限制取值序列长度最小为零,表示无上边界。
步骤605,结束对IDL文件的基本元素进行OWL文件转换存储流程。
如图7所示为本发明装置结构图,包括IDL文件701,用户访问单元702,IDL文件加载单元703,建模单元704,基本元素读取单元705,映射单元706,OWL文件707。所述IDL文件701与所述加载单元703相连接,所述用户访问单元702分别与所述加载单元703和所述OWL文件707相连接,所述加载单元703与所述建模单元704相连接,所述建模单元704与所述读取单元705相连接,所述读取单元705与所述映射单元706相连接,所述映射单元706与所述OWL文件707相连接。
所述IDL文件701,为待处理的数据载体,可以为从网络管理接口上直接获取的IDL文件,或者从存储器上读取的IDL文件。
所述用户访问单元702,用于与用户交互,为用户提供输入IDL文件名和路径的界面,并设置运行按钮;并为用户提供查阅转换生成OWL文件功能。
所述加载单元703,查找文件是否存在,如果不存在,则将错误信息返回用户界面,提示用户重新输入;如果存在,则调用函数InputFile(string name)读出IDL文件的内容,存入buffer中。
所述建模单元704,解析该IDL文件,把该文件加载到内存中,并定义访问标准IDL文件所有基本元素的接口。
所述读取单元705,利用上述建模单元704生成的接口读取所述加载单元703加载的IDL文件中的基本元素,首先读取所述基本元素的关键字、简单名称、全局名称,再根据不同基本元素的关键字以读取不同的信息,主要包括:继承关系、子域信息、取值类型、元素个数、取值元素等信息。所述加载的IDL文件的基本元素可能少于上述IDL标准中用于描述网络资源信息模型的标准基本元素。
所述映射单元706,按照映射规则对上述读取的基本元素在OWL文件707中进行存储,主要是对应读取的IDL的基本元素创建OWL文件、创建OWL的类并声明类关系、创建OWL的属性并声明属性特性,对创建的OWL属性进行属性限制。创建OWL文件是指,根据module创建OWL文件并声明OWL文件的命名空间;创建OWL的类并声明类关系是指,根据所述读取的interface、struct、union、array、sequence、enum对应创建OWL的类,根据interface的继承关系和取值为构造数据类型的sequence,采用继承关系构词rdfs:subClassOf进行父类声明,并采用构词owl:oneOf将enum列举所有数据元素;创建OWL的属性并声明属性特性是指,跟据所述读取的取值为构造数据类型的attribute、struct子域参数和union子域参数对应创建OWL的对象属性,根据所述读取的取值为基本数据类型的array、sequence、attribute、struct子域参数和union子域参数对应创建OWL的数值属性,针对union的子域参数采用构词owl:FunctionalProperty声明属性特性;对创建的OWL属性进行属性限制是指,针对读取的取值类型为array、sequence的所述基本元素转换存储的OWL的属性,采用基数约束构词owl:Cardinality、owl:minCardinality和owl:maxCardinality对所述OWL属性进行元素个数限制声明。
图8所示为本发明实施例IDL文件与映射存储的OWL文件内容示意图。该test.idl文件作为输入文件,用户在用户访问单元702上填上输入文件名和路径,用户访问单元702将这个信息传给所述加载单元703,所述加载单元703在磁盘上查找该文件,如果存在则返回文件test.idl的内容,否则提示用户输入有误。当所述加载单元703读入idl.owl的内容后,将其传递给所述建模单元704进行建模。
所述建模单元704为读入的内容建模,并为所述读取单元705提供访问IDL文件基本元素的接口。如可以通过连接CORBA接口库的方式,直接获取IDL信息的访问接口。
所述读取单元705以module为主线依次读出module下包含的interface、attribute、struct及其子域、union及其子域、array、sequence、enum。所述读取单元705调用建模单元704返回的一个迭代器(以存储当前基本元素包含的基本元素),用一个循环可以依次访问到每一个IDL文件中的包含的基本元素的信息(包括返回当前基本元素的关键字、简单名称、全局名称、继承关系、取值类型、元素个数、取值元素及包含的基本元素的全局名称)。如图9中的IDL文件片段经加载建模处理后,通过调用所述读取单元705读取module,即返回关键字module、全局名称TypeDemo、简单名称TypeDemo,包含的子域TypeDemo_GenderType、TypeDemo_Father、TypeDemo_Son。接着依次迭代读取TypeDemo_GenderType、TypeDemo_Father、TypeDemo_Son后,即可得到TypeDemo_GenderType的关键字enum、全局名称TypeDemo_GenderType、简单名称GenderType,数据元素Male和Female;TypeDemo_Father的关键字interface、全局名称TypeDemo_Father、简单名称Father,包含子域TypeDemo_Father_name;TypeDemo_Son的关键字interface、全局名称TypeDemo_Son、简单名称Son,继承关系Father,包含子域TypeDemo_Son_gender;再依次迭代读取TypeDemo_Father_name和TypeDemo_Son_gender,可得到TypeDemo_Father_name关键字attribute、全局名称TypeDemo_Father_name、简单名称name,取值为基本数据类型string;TypeDemo_Son_gender关键字attribute、全局名称TypeDemo_Son_gender、简单名称gender,取值为构造数据类型GenderType。
所述映射单元706针对所述读取单元705中的基本元素按照映射规则依次转换为OWL文件。此例中为module TypeDemo创建OWL文件,声明命名空间为xml:base=http://www.w3.org/TR/2004/REC-owl-guide-20040210/TypeDemo#。根据enum TypeDemo_GenderType、interface TypeDemo_Father、interfaceTypeDemo_Son的全局名称分别在命名空间为TypeDemo的OWL文件中创建OWL的类GenderType、Father、Son。对类GenderType采用构词owl:oneOf列举取值数据元素为Male和Female;对类Son,采用构词说明rdfs:subClassOf说明其父类为类Father。根据attribute TypeDemo_Father_name的全局名称和基本数据类型取值在命名空间为TypeDemo的OWL文件中创建OWL的数值属性name,定义域为类Father,值域为直接映射的OWL的类型string;根据attributeTypeDemo_Son_gender的全局名称和构造数据类型取值在命名空间为TypeDemo的OWL文件中创建OWL的对象属性gender,定义域为类Son,值域为构造数据类型GenderType创建的类GenderType。
自此,IDL文件test.idl中的信息已经转换为OWL信息文件test.owl,用户可以通过用户访问单元702来查阅生成的OWL文件信息。
本发明的有益效果在于,本发明的转换方法是无损的。在本发明中,对描述网络资源信息模型的IDL基本元素进行了转换,不仅包括IDL module、interface、attribute、struct、union、array、sequence、enum基本元素的名称、包含关系、继承关系、数据元素、数据元素长度、取值类型等的转换,还包括IDL基本数据类型到OWL数据类型的逐一映射,并且通过OWL的构词对生成的类和属性特性和约束进行了限制,保证信息模型语义的准确映射。本发明中的转换装置真正实现了IDL文件自动映射为OWL文件,即输入为IDL文件,输出是OWL文件。在本发明中的转换装置的基础上,通过友好的用户界面,用户不需要具备专业知识,就可以方便地执行信息转换和查阅功能;同时,外部系统也可以利用接口来复用OWL文件中的信息,实现数据的共享。在本发明转换方法及装置的基础上,能够解决IDL网络资源信息模型与CORBA平台紧耦合,实现复杂,代价比较大,IDL信息描述能力有限,不利于信息跨域交互共享的问题,并且发挥OWL与平台无关性、含义与语义描述能力强方面的优势,从而支持统一跨专业网络信息交互共享、统一管理的实现。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种IDL信息到OWL信息的转换方法,其特征在于该方法包括:加载IDL文件,对所述加载的IDL文件进行建模,通过所述建模生成的接口读取所述加载的IDL文件中所有基本元素,并将所述读取的基本元素转换存储为OWL信息文件。
2.根据权利要求1所述的一种IDL信息到OWL信息的转换方法,其特征在于,在读取所述IDL文件中的基本元素时,首先读取当前基本元素的关键字和名称信息,接着逐一判断当前读取的基本元素的关键字,如果所述关键字为interface,则读取所述基本元素interface的继承关系和所有子域attribute的关键字、名称信息和取值类型。如果所述关键字为struct,则读取所述基本元素struct所有子域参数的关键字、名称信息和取值类型。如果所述关键字为union,则读取所述基本元素union的鉴别器switch的取值类型和所有union子域参数的关键字、名称信息和取值类型。如果所述关键字为array,则读取所述基本元素array的元素个数。如果所述关键字为sequence,则读取所述基本元素sequence的序列个数上边界值,无上边界时标记为无上边界。如果所述关键字为enum,则读取所述基本元素enum的所有取值。
所述读取的名称信息包括基本元素的简单名称和全局名称。
所述读取的取值类型,如果为构造数据类型时读取构造数据关键字和类型名,否则读取基本数据类型关键字。
3.根据权利要求2所述的一种IDL信息到OWL信息的转换方法,其特征在于,所述读取的基本元素转换存储为OWL信息文件包括,根据所述读取的基本元素,创建OWL文件、创建OWL的类并声明类关系、创建OWL的属性并声明属性特性,对创建的OWL属性进行属性限制。
4.根据权利要3所述的一种IDL信息到OWL信息的转换方法,其特征在于,所述创建OWL文件包括,根据module全局名称创建IDL基本元素映射的OWL文件,以module的全局名称声明OWL文件的命名空间。
5.根据权利要求4所述的一种IDL信息到OWL信息的转换方法,其特征在于,所述创建OWL的类并声明类关系包括,根据所述读取的interface、struct、union、array、sequence、enum对应创建OWL的类。根据所述读取的interface的继承关系和取值为构造数据类型的sequence,采用构词rdfs:subClassOf在生成的类中进行父类声明。所述sequence生成的类的父类为所述构造数据类型对应生成的类。对enum的数据元素,采用构词owl:oneOf将所有数据元素在所述enum生成的类中一一声明。
6.根据权利要求5所述的一种IDL信息到OWL信息的转换方法,其特征在于,所述创建OWL的属性并声明属性特性包括:根据所述读取的取值类型为构造数据类型的attribute、struct子域参数和union子域参数对应创建OWL的对象属性,将所述属性的定义域声明为所述attribute所属的interface、子域参数所属的struct或union对应生成的类,值域声明为所述构造数据类型对应生成的OWL的类。
根据所述读取的取值类型为基本数据类型的array、sequence、attribute、struct子域参数和union子域参数对应创建OWL的数值属性,将所述属性的定义域声明为所述array、sequence、attribute所属interface、子域参数所属struct或union对应生成的类,值域声明为所述IDL基本数据类型对应的OWL中Xml Schema基本类型。针对所述读取的union的子域参数,还需要采用构词owl:FunctionalProperty声明属性特性,表示该属性至多有唯一值。
7.根据权利要求6所述的一种IDL信息到OWL信息的转换方法,其特征在于,所述对创建的OWL属性进行属性限制包括:针对读取的取值类型为array、sequence的所述基本元素转换存储的OWL的属性,采用构词owl:Cardinality、owl:minCardinality和owl:maxCardinality对所述OWL属性进行元素个数限制声明。
8.一种IDL信息到OWL信息的转换装置,其特征在于该装置包括,IDL文件,加载单元,建模单元,读取单元,映射单元,OWL文件;所述加载单元加载IDL文件,所述建模单元对所述IDL文件进行建模,所述读取单元通过所述建模单元生成的接口读取所述IDL文件中的所有基本元素,所述映射单元将所述基本元素无损的映射并存储于OWL文件中。
9.根据权利要求8所述的一种IDL信息到OWL信息的转换装置,其特征在于,所述读取单元在读取所述IDL文件中的基本元素时,首先读取当前基本元素的关键字和名称信息,接着逐一判断当前读取的基本元素的关键字,如果所述关键字为interface,则读取所述基本元素interface的继承关系和所有子域attribute的关键字、名称信息和取值类型。如果所述关键字为struct,则读取所述基本元素struct所有子域参数的关键字、名称信息和取值类型。如果所述关键字为union,则读取所述基本元素union的鉴别器switch的取值类型和所有union子域参数的关键字、名称信息和取值类型。如果所述关键字为array,则读取所述基本元素array的元素个数。如果所述关键字为sequence,则读取所述基本元素sequence的序列个数上边界值,无上边界时标记为无上边界。如果所述关键字为enum,则读取所述基本元素enum的所有取值。
所述读取的名称信息包括基本元素的简单名称和全局名称。
所述读取的取值类型,如果为构造数据类型时读取构造数据关键字和类型名,否则读取基本数据类型关键字。
10.根据权利要求9所述的一种IDL信息到OWL信息的转换装置,其特征在于,所述映射单元根据所述读取出的IDL文件的所有基本元素建OWL文件、创建OWL的类并声明类关系、创建OWL的属性并声明属性特性,对创建的OWL属性进行属性限制。
所述映射单元根据module全局名称创建IDL基本元素映射的OWL文件,以module的全局名称声明OWL文件的命名空间。
所述映射单元根据所述读取的interface、struct、union、array、sequence、enum对应创建OWL的类。根据所述读取的interface的继承关系和取值为构造数据类型的sequence,采用构词rdfs:subClassOf在生成的类中进行父类声明。所述sequence生成的类的父类为所述构造数据类型对应生成的类。对enum的数据元素,采用构词owl:oneOf将所有数据元素在所述enum生成的类中一一声明。
所述映射单元根据所述读取的取值类型为构造数据类型的attribute、struct子域参数和union子域参数对应创建OWL的对象属性,将所述属性的定义域声明为所述attribute所属的interface、子域参数所属的struct或union对应生成的类,值域声明为所述构造数据类型对应生成的OWL的类。
所述映射单元根据所述读取的取值类型为基本数据类型的array、sequence、attribute、struct子域参数和union子域参数对应创建OWL的数值属性,将所述属性的定义域声明为所述array、sequence、attribute所属interface、子域参数所属struct或union对应生成的类,值域声明为所述IDL基本数据类型对应的OWL中Xml Schema基本类型。针对所述读取的union的子域参数,还需要采用构词owl:FunctionalProperty声明属性特性,表示该属性至多有唯一值。
所述映射单元针对读取的取值类型为array、sequence的所述基本元素转换存储的OWL的属性,采用构词owl:Cardinality、owl:minCardinality和owl:maxCardinality对所述OWL属性进行元素个数限制声明。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101199534A CN101393554A (zh) | 2008-09-12 | 2008-09-12 | 一种idl信息到owl信息的转换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101199534A CN101393554A (zh) | 2008-09-12 | 2008-09-12 | 一种idl信息到owl信息的转换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101393554A true CN101393554A (zh) | 2009-03-25 |
Family
ID=40493850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101199534A Pending CN101393554A (zh) | 2008-09-12 | 2008-09-12 | 一种idl信息到owl信息的转换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101393554A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873335B (zh) * | 2009-04-24 | 2013-02-13 | 同济大学 | 一种跨域语义Web服务的分布式搜索方法 |
CN103036931A (zh) * | 2011-09-30 | 2013-04-10 | 富士通株式会社 | 语义网络服务文档生成设备、方法及owl概念解析方法 |
CN103164220A (zh) * | 2013-02-21 | 2013-06-19 | 北京控制工程研究所 | 一种星载计算机在轨维护所用浮点立即数的自主处理方法 |
CN103885809A (zh) * | 2012-12-24 | 2014-06-25 | 中国移动通信集团辽宁有限公司 | 一种跨平台c++corba容器及实现方法 |
CN111950239A (zh) * | 2020-08-07 | 2020-11-17 | 北京字节跳动网络技术有限公司 | Schema文档生成方法、装置、计算机设备和介质 |
-
2008
- 2008-09-12 CN CNA2008101199534A patent/CN101393554A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101873335B (zh) * | 2009-04-24 | 2013-02-13 | 同济大学 | 一种跨域语义Web服务的分布式搜索方法 |
CN103036931A (zh) * | 2011-09-30 | 2013-04-10 | 富士通株式会社 | 语义网络服务文档生成设备、方法及owl概念解析方法 |
CN103885809A (zh) * | 2012-12-24 | 2014-06-25 | 中国移动通信集团辽宁有限公司 | 一种跨平台c++corba容器及实现方法 |
CN103164220A (zh) * | 2013-02-21 | 2013-06-19 | 北京控制工程研究所 | 一种星载计算机在轨维护所用浮点立即数的自主处理方法 |
CN103164220B (zh) * | 2013-02-21 | 2016-03-02 | 北京控制工程研究所 | 一种星载计算机在轨维护所用浮点立即数的自主处理方法 |
CN111950239A (zh) * | 2020-08-07 | 2020-11-17 | 北京字节跳动网络技术有限公司 | Schema文档生成方法、装置、计算机设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Serafini et al. | Drago: Distributed reasoning architecture for the semantic web | |
Russomanno et al. | Sensor ontologies: from shallow to deep models | |
Rohjans et al. | OPC UA and CIM: Semantics for the smart grid | |
US8443374B2 (en) | Business application integration adapters management system | |
CN103390018B (zh) | 一种基于SDD的Web服务数据建模与搜索方法 | |
CN101126981A (zh) | 脚本命令注册方法、调用源程序代码的方法和装置 | |
CN109815242B (zh) | 一种数据处理方法及系统 | |
CN101393554A (zh) | 一种idl信息到owl信息的转换方法及装置 | |
CN105468793A (zh) | 一种仿真模型数据的自动化管理方法 | |
Keet et al. | Toward an ontology-driven unifying metamodel for UML class diagrams, EER, and ORM2 | |
Graube et al. | Integrating industrial middleware in linked data collaboration networks | |
Lu et al. | Research on heterogeneous data integration for smart grid | |
Athanasopoulos et al. | Service substitution revisited | |
Leonardi et al. | A flexible rule-based method for interlinking, integrating, and enriching user data | |
Li et al. | RDFAdaptor: efficient ETL plugins for RDF data process | |
Zhang et al. | Transformation of transportation data models from unified modeling language to web ontology language | |
Yu et al. | Research on knowledge storage and query technology based on general graph data processing framework | |
Offergeld et al. | cimpyorm–a queryable python CIM-Cache for smart grid applications | |
Kumar et al. | Things Data Interoperability Through Annotating oneM2M resources for NGSI-LD Entities | |
Gang | A research on semantic geospatial web service based REST | |
Zhang et al. | Improved semantic application to perception and execution for Internet of Things | |
Di Modica et al. | An OSGi middleware to enable the Sensor as a Service paradigm | |
Kumar et al. | Things Data Interoperability: Linking Annotated Entities in oneM2M | |
Zhang et al. | An ontology-based resource-oriented information supported framework towards restful service generation and invocation | |
Jung et al. | XMDR-DAI-based USN multimedia MetaData management agent for sensor networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090325 |