-
Notifications
You must be signed in to change notification settings - Fork 4
ontTool 说明文档
Junchao Wu edited this page May 16, 2022
·
2 revisions
ontTool中封装了owl本体文件操作过程中常涉及的方法函数
初始化一个空的本体资源 initial a new owlFile
>>> from autoprotege import ontTool, ontModel
>>> DOMAIN_NAME = 'TestKG'
>>> owl = ontTool.initial_owl(DOMAIN_NAME)
>>> print(owl)
# <?xml version="1.0"?>
<rdf:RDF xmlns="http://www.owl-ontologies.com/TestKG#"
xml:base="http://www.owl-ontologies.com/TestKG"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:TestKG="http://www.owl-ontologies.com/TestKG#">
<owl:Ontology rdf:about="http://www.owl-ontologies.com/TestKG"/>
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Annotation properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Object Properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Data properties
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Classes
//
///////////////////////////////////////////////////////////////////////////////////////
-->
<!--
///////////////////////////////////////////////////////////////////////////////////////
//
// Individuals
//
///////////////////////////////////////////////////////////////////////////////////////
-->
</rdf:RDF>
读取一个已存在的owl本体资源 read a old owl
>>> from autoprotege import ontTool, ontModel
>>> DOMAIN_NAME = 'TestKG'
>>> owl = ontTool.read_owl('Personage.owl')
>>> print(owl)
# <?xml version="1.0"?>
<rdf:RDF xmlns="http://www.owl-ontologies.com/Personage.owl#"
xml:base="http://www.owl-ontologies.com/Personage.owl"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:Event="http://www.owl-ontologies.com/Event.owl#"
xmlns:GuangzhouRevolution="http://www.owl-ontologies.com/Personage.owl#">
<owl:Ontology rdf:about="http://www.owl-ontologies.com/Personage.owl">
<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/TestKG#丈夫">
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/TestKG#下属">
</owl:ObjectProperty>
...
<owl:DatatypeProperty rdf:about="http://www.owl-ontologies.com/Personage.owl#军衔">
<rdfs:domain rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.owl-ontologies.com/Personage.owl#出生地">
<rdfs:domain rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:DatatypeProperty>
...
<owl:Class rdf:about="http://www.owl-ontologies.com/Personage.owl#共产党人物">
<rdfs:subClassOf rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:Class>
<owl:Class rdf:about="http://www.owl-ontologies.com/Personage.owl#农工党人物">
<rdfs:subClassOf rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:Class>
...
<owl:NamedIndividual rdf:about="http://www.owl-ontologies.com/Personage.owl#虞洽卿">
<rdf:type rdf:resource="http://www.owl-ontologies.com/Personage.owl#无党派人物"/>
<主要成就 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">曾任上海总商会会长</主要成就>
<出生地 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">浙江宁波慈溪龙山</出生地>
<出生日期 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1867年</出生日期>
<职业 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">银行家</职业>
<逝世日期 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1945年</逝世日期>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">虞洽卿,浙江慈溪人,中国近代爱国民族资本家、航运业巨子。1881年到上海商行当学徒。1892年起历任德商鲁麟洋行、华俄道胜银行、荷兰银行买办。1898年起,在四明公所事件中参与同法租界公董局的交涉。1906年发起组织万国商团中华队,1908年开办四明银行,后又组织南洋劝业会,任副会长。曾先后创办宁绍、三北、鸿安轮船公司,3家公司有船30余艘,总吨位9.1万余吨,为当时国内民营航运之冠。辛亥革命中支持上海光复。1920年合伙创办上海证券物品交易所,任理事长。又任全国工商协会会长、上海总商会会长等。五卅运动中,以上海总商会五卅事件委员会名义,擅自修改向帝国主义者提出的交涉条件,提出停止罢市。1927年以财力支持蒋介石发动“四·一二”反革命政变。后任上海特别市参议会董事、中央银行监事、国民党政府全国经委委员、公共租界工商局华董。抗日战争时期,在上海组织中意轮船公司,并任上海难民救济会会长,办理平粜米获取利润。1941年去重庆,先后组织三民、三北运输公司,转运物资,支持抗战。1945年4月26日,病逝于重庆。翌年11月归葬于故乡宁波慈溪的龙山。</rdfs:comment>
</owl:NamedIndividual>
...
</rdf:RDF>
拆解本体资源 split the owl
>>> from autoprotege import ontTool, ontModel
>>> DOMAIN_NAME = 'TestKG'
>>> owl = ontTool.read_owl('Personage.owl')
>>> owl_dic = ontTool.split_owl(owl,DOMAIN_NAME)
>>> print(owl_dic)
# {'header': ['<?xml version="1.0"?>',
'<rdf:RDF xmlns="http://www.owl-ontologies.com/Personage.owl#"',
'xml:base="http://www.owl-ontologies.com/Personage.owl"',
'xmlns:owl="http://www.w3.org/2002/07/owl#"',
'xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"',
'xmlns:xml="http://www.w3.org/XML/1998/namespace"',
'xmlns:xsd="http://www.w3.org/2001/XMLSchema#"',
'xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"',
'xmlns:Event="http://www.owl-ontologies.com/Event.owl#"',
'xmlns:GuangzhouRevolution="http://www.owl-ontologies.com/Personage.owl#">',
'<owl:Ontology rdf:about="http://www.owl-ontologies.com/Personage.owl">'],
'opList': [<autoprotege.ontModel.objectProperty.OP object at 0x0000015A93C6F908>,
<autoprotege.ontModel.objectProperty.OP object at 0x0000015A93C6FA48>,...] ,
'dpList': [<autoprotege.ontModel.dataProperty.DP object at 0x0000015A93E58E48>,
<autoprotege.ontModel.dataProperty.DP object at 0x0000015A93E58EC8>,...] ,
'classesList': [<autoprotege.ontModel.oneClass.OneClass object at 0x0000015A93E5C2C8>,
<autoprotege.ontModel.oneClass.OneClass object at 0x0000015A93E5C348>,...] ,
'indsList': [<autoprotege.ontModel.individual.Individual object at 0x0000015A93E5C7C8>,
<autoprotege.ontModel.individual.Individual object at 0x0000015A93E5C848>,...] ,
'footer': ['</rdf:RDF>']}
将操作后的各个本体资源部分聚合为一个完整的owl merge the owl_dic
>>> from autoprotege import ontTool, ontModel
>>> DOMAIN_NAME = 'TestKG'
>>> owl = ontTool.read_owl('Personage.owl')
>>> owl_dic = ontTool.split_owl(owl,DOMAIN_NAME)
>>> owl_dic = ontTool.merge_owl(owl_dic)
>>> print(owl_dic)
# <?xml version="1.0"?>
<rdf:RDF xmlns="http://www.owl-ontologies.com/Personage.owl#"
xml:base="http://www.owl-ontologies.com/Personage.owl"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:Event="http://www.owl-ontologies.com/Event.owl#"
xmlns:GuangzhouRevolution="http://www.owl-ontologies.com/Personage.owl#">
<owl:Ontology rdf:about="http://www.owl-ontologies.com/Personage.owl">
<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/TestKG#丈夫">
</owl:ObjectProperty>
<owl:ObjectProperty rdf:about="http://www.owl-ontologies.com/TestKG#下属">
</owl:ObjectProperty>
...
<owl:DatatypeProperty rdf:about="http://www.owl-ontologies.com/Personage.owl#军衔">
<rdfs:domain rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="http://www.owl-ontologies.com/Personage.owl#出生地">
<rdfs:domain rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:DatatypeProperty>
...
<owl:Class rdf:about="http://www.owl-ontologies.com/Personage.owl#共产党人物">
<rdfs:subClassOf rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:Class>
<owl:Class rdf:about="http://www.owl-ontologies.com/Personage.owl#农工党人物">
<rdfs:subClassOf rdf:resource="http://www.owl-ontologies.com/Personage.owl#人物"/>
</owl:Class>
...
<owl:NamedIndividual rdf:about="http://www.owl-ontologies.com/Personage.owl#虞洽卿">
<rdf:type rdf:resource="http://www.owl-ontologies.com/Personage.owl#无党派人物"/>
<主要成就 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">曾任上海总商会会长</主要成就>
<出生地 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">浙江宁波慈溪龙山</出生地>
<出生日期 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1867年</出生日期>
<职业 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">银行家</职业>
<逝世日期 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1945年</逝世日期>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">虞洽卿,浙江慈溪人,中国近代爱国民族资本家、航运业巨子。1881年到上海商行当学徒。1892年起历任德商鲁麟洋行、华俄道胜银行、荷兰银行买办。1898年起,在四明公所事件中参与同法租界公董局的交涉。1906年发起组织万国商团中华队,1908年开办四明银行,后又组织南洋劝业会,任副会长。曾先后创办宁绍、三北、鸿安轮船公司,3家公司有船30余艘,总吨位9.1万余吨,为当时国内民营航运之冠。辛亥革命中支持上海光复。1920年合伙创办上海证券物品交易所,任理事长。又任全国工商协会会长、上海总商会会长等。五卅运动中,以上海总商会五卅事件委员会名义,擅自修改向帝国主义者提出的交涉条件,提出停止罢市。1927年以财力支持蒋介石发动“四·一二”反革命政变。后任上海特别市参议会董事、中央银行监事、国民党政府全国经委委员、公共租界工商局华董。抗日战争时期,在上海组织中意轮船公司,并任上海难民救济会会长,办理平粜米获取利润。1941年去重庆,先后组织三民、三北运输公司,转运物资,支持抗战。1945年4月26日,病逝于重庆。翌年11月归葬于故乡宁波慈溪的龙山。</rdfs:comment>
</owl:NamedIndividual>
...
</rdf:RDF>
将整合后的owl更新到owl文件中 update the owl file
>>> from autoprotege import ontTool, ontModel
>>> DOMAIN_NAME = 'TestKG'
>>> owl = ontTool.read_owl('Personage.owl')
>>> owl_dic = ontTool.split_owl(owl,DOMAIN_NAME)
>>> owl_dic = ontTool.merge_owl(owl_dic)
>>> ontTool.write_owl(owl,'Personage.owl')
# "successfully updated in Personage.owl"