一种基于语义网的安全数据语义分析方法及系统与流程

文档序号:11155420阅读:435来源:国知局
一种基于语义网的安全数据语义分析方法及系统与制造工艺

本发明涉及计算机技术领域,尤其涉及一种基于语义网的安全数据语义分析方法及系统。



背景技术:

智能设备的普及,让更多的用户通过设备中的浏览器或者应用程序接入移动互联网使得传统互联网的数据与信息呈现爆发性增长的趋势,海量的数据一方面为用户查阅、检索。利用信息更为便捷,结果更为准确。却也给机器对信息的直接处理提供了很大的压力。对于人们可读易理解的现实中的很多信息,机器却难以进行直接处理。为了将现实中的大量异构信息转化为机器易理解的信息,以提高机器的数据分析及信息处理效率。我们基于信息的特征属性以及语义属性将属于同一领域或不同领域的数据进行关联,通过数据个体以及信息间的关联关系能使机器更好理解数据的语义以及内在关联,让系统可以更好地全局层面对信息进行分析。语义网技术正是为网络数据语义化及知识关联提供解决方案。

T.Beerners-Lee在1998初次提出的一个概念,相较于数据分离的传统互联网,语义网是一种不仅能够理解数据词语和概念,还能获取数据间内在联系逻辑关系的智能网络,通过给万维网的文档添加可被及其识别理解的数据描述性语言“元数据”,是整个互联网构成一个基于关系网络的更有效率以及价值的信息交换中心。语义网技术最大的价值在于用户或计算机能利用语义网构建的智能软件接口,在海量的Web信息资源中获取更多的更有关联关系的检索结果,使得网络中的一个个信息孤岛进行关联成为更为整体的数据库。

然而,现在的语义网技术具有以下问题:缺乏形式化本体建模的流程,对本体模型建模过程描述模糊,难以建立基础的领域本体模型从而构建语义网应用;语义网应用缺少整合内置模型搜索子系统(关键词搜索与特定检索语言搜索),难以对已建立本体模型进行信息检索;语义网应用缺少对Jena推理机子系统的应用,难以对知识进行再挖掘与发现;大多数安全环境评估软件收集信息来源单一,数据之间彼此独立,不能讲安全信息有效整合从而在总体上对环境进行评估;现有很多应用内置搜索引擎停留在关键词搜索阶段,难以发现系统内部数据语义含义及联系,搜索结果准确度欠佳;大多数语义网应用构建的本体模型采用RDF/XML进行描述,虽然此种描述形式对机器友好,可是用户难以读懂,无法总体把握应用数据处理结果。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种方便对知识二次发现,且构建过程直观的一种基于语义网的安全数据语义分析方法及系统。

本发明所采取的技术方案是:

一种基于语义网的安全数据语义分析方法,包括以下步骤:

对设定的目标系统进行监控和数据采集,获取系统分析所需的安全数据;

对采集获得的安全数据进行预处理,得到预处理数据;

根据预处理数据,对其进行语义化处理,并生成得到数据语义图;

根据数据语义图,对其进行数据分析操作,得出数据分析结果;

根据数据分析结果,对其进行可视化展示。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的安全数据包括半结构化异构源数据和非结构化异构源数据。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的对采集获得的安全数据进行预处理,得到预处理数据,这一步骤具体包括:

对采集获得的安全数据进行特征属性提取;

构建基础的本体模型;

对安全数据进行分类,得到安全概念类数据和数值属性类数据,即预处理数据。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的根据预处理数据,对其进行语义化处理,并生成得到数据语义图,这一步骤包括:

对预处理数据进行概念实例化处理,完成本体模型的建立;

通过Notation3语言和RDF框架对安全本体原始模型进行描述,生成得到数据语义图。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的概念实例化处理包括安全概念类实例化处理和数值属性类实例化处理。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的安全概念类实例化处理包括:

初始化本体模型的实例集为空;

判断本体模型是否还有未实例化的安全概念类数据,若是,则获得待实例化的安全概念类数据并执行下一步骤;

初始化每个待实例化的安全概念类数据的实例集为空;

从安全数据库中获得待实例化的安全概念类数据对应的源数据集;

若安全数据库中存有待实例化的安全概念类数据的集合,则对待实例化的安全概念类数据进行实例化,获取待实例化的安全概念类数据中每个实例化个体的名称Name和标识ID,然后将Name和ID作为参数调用实例化函数,创建安全概念类的一个实例化个体,并将每个实例化个体添加到安全概念类的实例集中;

将每个概念类实例集添加到模型数据集以及本体模型中。

作为所述的一种基于语义网的安全数据语义分析方法的进一步改进,所述的数值属性类实例化处理包括:

判断安全概念类对应的实例集是否有下一个数值属性类数据中未实例化的实例个体,若是,则获取对应安全概念类关联的数值属性集,初始化实例个体待实例化的数值属性集,并执行下一步骤;

当实例个体的数值属性集中还有未被实例化的数值属性,则从本体模型中获得指定名称的数值属性类,然后从数据库中的概念类数据表中,获得数值属性对应列的数据值,并以实例个体为主体,实例属性为谓词,属性值为客体创建新的数据描述语句,最后将新建语句加入本体模型以及描述语句集。

本发明所采用的另一技术方案是:

一种基于语义网的安全数据语义分析系统,包括:

采集模块,用于对设定的目标系统进行监控和数据采集,获取系统分析所需的安全数据;

预处理模块,用于对采集获得的安全数据进行预处理,得到预处理数据;

语义化模块,用于根据预处理数据,对其进行语义化处理,并生成得到数据语义图;

数据分析模块,用于根据数据语义图,对其进行数据分析操作,得出数据分析结果;

展示模块,用于根据数据分析结果,对其进行可视化展示。

作为所述的一种基于语义网的安全数据语义分析系统的进一步改进,所述预处理模块包括:

特征提取模块,用于对采集获得的安全数据进行特征属性提取;

模型构建模块,用于构建基础的本体模型;

数据分类模块,用于对安全数据进行分类,得到安全概念类数据和数值属性类数据,即预处理数据。

作为所述的一种基于语义网的安全数据语义分析系统的进一步改进,所述语义化模块包括:

实例化模块,用于对预处理数据进行概念实例化处理,完成本体模型的建立;

语义图生成模块,用于通过Notation3语言和RDF框架对安全本体原始模型进行描述,生成得到数据语义图。

本发明的有益效果是:

本发明一种基于语义网的安全数据语义分析方法及系统将本体模型建模过程进行形式化定义与说明,使得语义网应用构建本体模型的过程更为直观,为语义网应用的构建提供参考。而且本发明能通过语义化的方法对数据进行关联分析,使得信息资产相同的实体相关联,可以实现边数据分析边去数据冗余。进一步,本发明将数据语义化获得的结果以数据图的形式呈现而不是像XML描述以树的形式呈现,数据语义图更易于数据节点的拼接,易于拓展并且更直观地揭示数据之间的关联关系。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明一种基于语义网的安全数据语义分析方法的步骤流程图;

图2是本发明一种基于语义网的安全数据语义分析方法中预处理的步骤流程图;

图3是本发明一种基于语义网的安全数据语义分析方法中语义化的步骤流程图;

图4是本发明一种基于语义网的安全数据语义分析方系统的模块方框图。

具体实施方式

参考图1,本发明一种基于语义网的安全数据语义分析方法,包括以下步骤:

对设定的目标系统进行监控和数据采集,获取系统分析所需的安全数据;

对采集获得的安全数据进行预处理,得到预处理数据;

根据预处理数据,对其进行语义化处理,并生成得到数据语义图;

根据数据语义图,对其进行数据分析操作,得出数据分析结果;

根据数据分析结果,对其进行可视化展示。

其中,所述的安全数据包括安全日志,漏洞信息,服务信息,资产状况等,还可以包括设定数据采集任务的一些参数,比如频率,目标,环境等。

进一步,所述数据分析操作包括进行实例个体数据语义融合操作、模型推理以及本体搜索等操作。

进一步作为优选的实施方式,所述的安全数据包括半结构化异构源数据和非结构化异构源数据。

参考图2,进一步作为优选的实施方式,所述的对采集获得的安全数据进行预处理,得到预处理数据,这一步骤具体包括:

对采集获得的安全数据进行特征属性提取;

构建基础的本体模型;

对安全数据进行分类,得到安全概念类数据和数值属性类数据,即预处理数据。

参考图3,进一步作为优选的实施方式,所述的根据预处理数据,对其进行语义化处理,并生成得到数据语义图,这一步骤包括:

对预处理数据进行概念实例化处理,完成本体模型的建立;

通过Notation3语言和RDF框架对安全本体原始模型进行描述,生成得到数据语义图。

进一步作为优选的实施方式,所述的概念实例化处理包括安全概念类实例化处理和数值属性类实例化处理。

进一步作为优选的实施方式,所述的安全概念类实例化处理包括:

初始化本体模型的实例集为空;

判断本体模型是否还有未实例化的安全概念类数据,若是,则获得待实例化的安全概念类数据并执行下一步骤;

初始化每个待实例化的安全概念类数据的实例集为空;

从安全数据库中获得待实例化的安全概念类数据对应的源数据集;

若安全数据库中存有待实例化的安全概念类数据的集合,则对待实例化的安全概念类数据进行实例化,获取待实例化的安全概念类数据中每个实例化个体的名称Name和标识ID,然后将Name和ID作为参数调用实例化函数,创建安全概念类的一个实例化个体,并将每个实例化个体添加到安全概念类的实例集中;

将每个概念类实例集添加到模型数据集以及本体模型中。

进一步作为优选的实施方式,所述的数值属性类实例化处理包括:

判断安全概念类对应的实例集是否有下一个数值属性类数据中未实例化的实例个体,若是,则获取对应安全概念类关联的数值属性集,初始化实例个体待实例化的数值属性集,并执行下一步骤;

当实例个体的数值属性集中还有未被实例化的数值属性,则从本体模型中获得指定名称的数值属性类,然后从数据库中的概念类数据表中,获得数值属性对应列的数据值,并以实例个体为主体,实例属性为谓词,属性值为客体创建新的数据描述语句,最后将新建语句加入本体模型以及描述语句集。

优选的,所述本体模型每个数据集的每条数据描述语句属性与属性值以{<p,v>|p DP,v Range(p)}.p为个实例个体的一个实例化属性,v则是与该实例化属性关联的属性集,每个实例个体正是以这样的形式对数据进行多维度描述的。其中,实例个体的数值属性实例化总是在实例个体创建后进行,因此,不需要每次再判断实例个体所属的概念类,默认就是当前实例化当前安全概念类相关联的数值属性。

参考图4,本发明一种基于语义网的安全数据语义分析系统,包括:

采集模块,用于对设定的目标系统进行监控和数据采集,获取系统分析所需的安全数据;

预处理模块,用于对采集获得的安全数据进行预处理,得到预处理数据;

语义化模块,用于根据预处理数据,对其进行语义化处理,并生成得到数据语义图;

数据分析模块,用于根据数据语义图,对其进行数据分析操作,得出数据分析结果;

展示模块,用于根据数据分析结果,对其进行可视化展示。

进一步作为优选的实施方式,所述预处理模块包括:

特征提取模块,用于对采集获得的安全数据进行特征属性提取;

模型构建模块,用于构建基础的本体模型;

数据分类模块,用于对安全数据进行分类,得到安全概念类数据和数值属性类数据,即预处理数据。

进一步作为优选的实施方式,所述语义化模块包括:

实例化模块,用于对预处理数据进行概念实例化处理,完成本体模型的建立;

语义图生成模块,用于通过Notation3语言和RDF框架对安全本体原始模型进行描述,生成得到数据语义图。

本发明实施例中,所述本体模型主要由模型概念类以及属性组成,属性又可分为属性赋值的数值属性(DatatypeProperty)以及表达类以及对于实体之间关系的对象属性(ObjectProperty),而概念类,本发明中设定了Asset(资产)、Host(主机)、Network(网络)、Service(服务)、Software(软件)、Vulnerability(漏洞)六个概念类。

为便于我们对安全本体模型进行理解与管理,本发明以模型结构为基础,对构建的安全本体模型做了具体的形式化定义,主要包括了本体模型定义、概念类集合定义、属性集合定义以及关联关系定义等内容。

定义1:本体模型ITSecurityModel,基于收集到的安全数据并提取属性特征后构建的本体模型;

ITSecurityModel={C,P,R,I,F};

C——本体模型中的概念类集合,包含自定义领域类;

P——本体模型中的概念类或实例的属性构成的集合,用以描述数据的特征;

R——模型的关系集合,包含了描述数据信息之间关联关系的所有边的集合;

I——实例集合,模型中概念类的实例对象,是类的具体化数据,每个个体均是对应类赋予命名、属性、属性值、关系等描述信息后的详细个体;

F——推理规则集合,为模型构建后的逻辑推理提供支持的规则构成的集合,对模型进行推理能挖掘模型潜藏的信息与关系,而推理都是基于指定的规则进行的。

定义2: 模型属性集合P,属性是用以描述模型中数据的特征或者数据之间的关联关系的,其构成了任一描述信息三元组中的谓词部分;

P={DP,OP};

DP——本体模型的数值属性集合,数值属性用以描述类或实例与数据的关系;

OP——本体模型的对象属性集合,描述本体模型中两个实例资源之间关系的那一部分属性集合。

定义3:实例是模型中任一概念类的具体化个体,是类命名与指定属性和赋值后的产物;

I=InstantiateBy(C);

其中C是特定领域本体模型中已定义的概念。

定义4: 关联关系集合是模型中不同实例之间因为信息相关而构造的有向边的集合,当模型中概念类A、B之间或者实例a、b之间存在信息关联,则以三元组形式可描述为:

<A/a,R,B/b>;

其中,A/a标识三元组语句主体资源、R是谓词,通常是模型属性、B/b代表了三元组中的客体。

定义5:在模型推导时,除了概念之间直接关系我们还希望获取不同感念之间的间接关系,概念的间接关系可定义为模型对应图中结点a、b之间的无环路径,三元组可以描述为:

<A/a,R’,B/b>;

三元组谓词R’表示两结点组成路径的所有中间关联关系的集合,在RDF图中对应边集。

除了以上描述模型必须的基本定义以外,还要为模型推导与潜在信息获取做出部分基础预定义:

定义6:概念类或属性的继承属性,类与属性都能定义继承关系,其中之类能继承父类的所有属性及相关特性,子属性可继承父属性的所有定义域、值域等限制。

A=hasParent(B),B=hasChidl(A),则P(A) ⊆ P(B);

其中,P()表示取相应资源的所有属性的集合。

定义7:实例之间的继承关系,当某个类是另一个类的子类时,其任一实例个体也对应是其父类的实例,包含父类的属性信息:

A=hasParent(B),B=hasChidl(A),则InstantiateBy(A) ⊆ InstantiateBy(B);

其中,A是B的子类,A、B之间具有继承与被继承关系。

定义8:属性关联之间的继承关系,当概念A与B存在关联时,其双方的父类,以及每个子类与另一个父类之间也存在相应的关系:

当<A,R,B>时,有<C,R,D>,<A,R,D>,<C,R,B>;

其中,A,B是存在关联的原始概念,而C、D则是他们对应的父类。

定义9:当任两个概念类之间通过属性P存在关联,则它们也能通过属性P的子属性集合构造关联关系:

<A,P,B>,则<A,P’,B>;

其中,P’为属性P的所有子属性构成的集合。

定义10:当两个异名概念类所有属性以及属性值对应相等,则可将两个异名概念类看做描述同一信息的等价概念类:

A=DescribedBy(P);

B=DescribedBy(P);

ValueOfProperty(A)= ValueOfProperty(B)-> A=equivalentWith(B)。

本体模型在获取从目标系统收集而来的各类安全数据后,首先进行抽象化,提取系统安全数据的特征后获得系统环境划分的概念类,模型通过属性集合来区分每个不同特征的概念类,利用数值属性(DatatypeProperty)来描述概念个体的数值与内容特征,利用对象属性(ObjectProperty)来描述概念个体之间的关系特征。独立的资产设备信息只能从单维度来描述系统环境情况,而通过模型,可以从全局不同维度反映系统环境的状态,从整体反映环境安全态势以及得出系统安全威胁。

本体模型构建涉及概念类、数值属性、对象属性三类关键定义,本系统本体模型涉及的概念类即资产、漏洞、设备软件、网络、设备服务、主机六类,而数值属性以及对象属性分别用于描述每个实例的特征以及实例之间的关联关系。

本发明实施例中,将系统安全本体模型实例化过程主要放在Data_Semantization类中实现,由于在实例化中涉及本体模型的读写、获取数据、更新等操作,因此需要包含Jena数据包中的部分功能类。完成操作后,还需要将结果传输到可视化窗口ShowWindow类中对应区域中显示,对类及包的部分介绍如下:

Jena包:提供本体模型创建、读写、修改、读取、搜索等接口,语义实例化模块主要用到Jena包的Ontology API中相关的Ont本体模型操作函数,实现实例化之前本体模型的创建、读取与初始化等操作。

Data_Semantizatio类:本体模型实例化模块的核心类,主要实现初始化本体模型、数据库连接与获取数据,以及最为核心的语义实例化操作,每一个本体模型中的安全概念类实例化对应于类当中一个语句块,每一个语句块实现从本体模型获取对应概念类,利用数据库结果集实例化概念类,以及实例化实例化个体对应特征数值属性,将属性与对应属性值关联。

当将安全本体模型包含所有概念类实例化后,系统就获得对应的实例个体数据集,将各个类的实例个体集作为输入数据,输入到安全数据语义融合模块,通过实例化模型定义的对象属性,从而可以在同类实例个体以及不同类实例个体之间建立基本的语义关联关系。通过基于模型属性的规则推理方式,关联实例个体,也能构建个体的语义关联关系。因此,将对象属性实例化过程以及本体模型推理模块都归作本发明子系统语义关联构建功能模块。通过语义关联建立的安全键联数据,所述本体模型的推理模块包括:

Jena包:导入了Jena模型推理相关的Inference API对应的推理类,用于推理模型的创建、推理规则的创建与导入、模型推理的执行以及结果的存取等操作。

JenaInference包:实现系统基于规则推理的功能,包括导入OWL Reasoner规则集或者自定义My Reasoner规则集、关联规则集词汇、创建本发明安全推理模型以及对规则集规则进行简单测试等功能,用于管理本发明安全推理莫并实现具体推理操作。

本发明中基于系统设定的信息检索与匹配规则,可进行两种本体模型信息搜索:一是基于模型资源名、属性名、概念类名的语句或实例搜索,二是基于特定本体模型搜索语句SparSQL的检索语句搜索。

本发明的搜索模块设计了两个类来实现,并且引用了Jena包中的ARQ类用于实现本体模型搜索语句SparSQL的执行,两个类具体介绍如下:

SearchFunction:本发明系统所有模型搜索功能的核心类,实现本体模型的基于命名关键词的搜索以及基于SparSQL的模型信息检索。其中,SparSQL_Execution()负责解析用户输入SparSQL语句信息,调用Jena的ARQ模块,执行对应语句,并获取搜索结果集,实时显示在可视化窗口的显示域。而命名关键词搜索功能对应其他的函数,list_class()负责列举搜索输入的安全概念类的实例集;Search_Property()则输出模型中包含输入属性名的所有语句;Search_Resource_Subject()输出模型中包含输入主体资源名的所有语句;而Search_Resource_Object()则输出模型红包含输入客体资源名的所有语句,具体实现过程如下:

1)用户通过系统系统搜索接口键入模型查询命令,系统可接受符合语法规则的SparQL语句或模型词汇;

2)系统获取用户键入查询命令,对命令进行解析获得包含的变量、常量、模式等生产查询命令所需成分;

3)初始化查询引擎配置,将部分配置信息与查询生成器进行绑定,查询生成器获取查询命令解析后结果,生成可被查询器识别以及操作的命令集;

4)执行用户查询语句对应的查询计划,对查询语句进行优化后,在关联的安全本体模型以及安全本体推理模型执行查询语句,基于匹配规则获得查询结果;

5)将查询结果在系统可视化界面进行展示,并存储到用户指定文档。

进一步,本发明系统可视化窗口主要提供给用户一个图形化操作接口,用户通过窗口功能以及单选项直接调用系统提供的数据语义本体模型建模、本体推理模型建立、模型信息搜索、操作结果输出、文件存取等操作,使得系统控制、功能操作、实验以及结果查看更为简便、直观。

本发明实施例中的可视化窗口模块包含了一个ShowWindow类,在类中定义了顶层框架并基于框架,定义了多个功能组件用于实现操作、读写、结果显示等功能,为在Java中开发出开始后窗口,还需要包含Java相应的可视化窗口开发包,以便在开发中创建组件,可视化类与每个组件功能介绍如下:

ShowWindow类:系统可视化窗口的核心类,定义了顶层框架并在框架中依据需要添加所需组件,从而构造成系统提供给用户的交互接口。

结果显示组件:定义了可视化窗口所有文本域组件,文本域主要用于展示操作结果、提示信息以及获取用户输入信息等,依据实验要求定义了Result_TextArea、OntResult_TextArea、OntModel_TextArea、MyInf_TextArea、OWLInf_Textarea以及Input_TextArea,分别用于展示搜索结果、安全本体模型信息、基于自定义规则集与OWL规则集推理信息以及获取用户输入等功能

窗口按钮组件:定义可视化窗口所有功能性按钮,是用户与系统进行交互的重要组件。可视化窗口包含Start_Button、Inference_Button、Save_Button、Search_Button、Clear_Button等按钮,按钮需要设置相应的监听器才是相应用户的操作,实现相应的功能,如开始本体建模、开始模型推理、保存信息、检索模型信息以及清空文本区域信息等功能。

功能按钮监听器:定义窗口包含的所有功能按钮组件关联监听器,当用户点选某一按钮时,就会触发监听器中的时间响应函数,窗口执行类似本体建模、信息检索、结果显示等操作用于响应用户事件请求。

菜单栏:可视化窗口的菜单栏选项,菜单栏(MenuBar)包含了很多菜单栏选项(Item),如Start_Item、Save_Item、Inference_Item、Search_Item等。让用户可以通过点选菜单栏对应选项实现开始本体建模、保存信息、开始语义推理以及模型信息检索等功能。

窗口初始化:初始化可视化窗口的配置,包括Layout、UI_Set、以及Configuration_Set等语句块,用于定义框架的布局形式、样式设计以及包括尺寸、默认关闭操作等窗口初始化配置信息。

从上述内容可知,本发明的优点如下:

(1)利用Notation3语言对RDF框架进行描述,使得数据语义化获得的结果以数据图的形式呈现而不是像XML描述以树的形式呈现,N3图更易于数据节点的拼接,易于拓展并且更直观地揭示数据之间的关联关系;

(2)本发明将本体模型建模过程进行形式化定义与说明,使得语义网应用构建本体模型的过程更为直观,为语义网应用的构建提供参考;

(3)能通过语义化的方法对数据进行关联分析,使得信息资产相同的实体相关联,可以实现边数据分析边去数据冗余;

(4)系统内置模型规则推理子系统,并且在内置规则集基础上自定义一部分规则集,可以在原始数据输入并完成本体建模后,依据所需完成知识发现过程;

(5)系统内置本体模型关键词检索以及SparQL搜索子系统,可在子系统内完成SparQL语言编辑以及执行,对已有本体模型进行检索,也内部支持输入关键词后自动转化为相应SparQL语言进行检索,方便非专业用户对模型信息进行检索。

本发明在输入原始数据进行领域本体模型构建以及概念类实例化后,内置了模型规则推理子系统,并且整合了内置OWL规则集以及自定义规则集,可以直接对本体模型知识进行二次发现;此外内置了模型检索模块,可以对本体模型、推理模型等进行信息搜索,并且同时显示原始模型以及推理模型的结果,方便用户进行结果对比;本方案将本体模型构建过程进行形式化定义,将概念类以及属性集形式化后方便本体模型构建流程的推进,给予语义网应用构建特别是本体模型的构建一个很好的参照。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1