一、jena解析关于基因的go.owl文件(正在学习中)

来源:互联网 发布:mac maven .m2文件夹 编辑:程序博客网 时间:2024/06/07 12:50

1.了解到可以使用jena的jar包

下载链接:http://jena.apache.org/download/index.cgi

2.阅读下载包内的源码,发现有一个奇怪的sql语句,经过查询是sparql语言。学习sparql语言中。

3.发现一个正规讲述sparql语言的网站,不过他是英文的,正在阅读。链接:http://www.ontobee.org/tutorial/sparql

4.sparql一些实际的例子。

链接:http://rdf.myexperiment.org/howtosparql?page=SELECT

链接:http://rdf.myexperiment.org/howtosparql?page=WHERE#

在where中

有时,同一主题有多次重复,也可能有相同的谓词。在这种情况下,可以使用逗号(,)分隔每个对象。另一种节省时间写查询的方法是使用“A”而不是RDF类型来指定特定实体的类型。

5.新增class

go文件中的实例<owl:Class rdf:about="http://purl.obolibrary.org/obo/GO_0045019">        <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">negative regulation of nitric oxide biosynthetic process</rdfs:label>        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/GO_0031327"/>        <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/GO_0045428"/>            <owl:Restriction>                <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0002212"/>                <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/GO_0006809"/>            </owl:Restriction>        </rdfs:subClassOf>    </owl:Class>

实例代码:

package test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import org.apache.jena.rdf.model.*;import org.apache.jena.ontology.OntClass;import org.apache.jena.ontology.OntModel;import org.apache.jena.ontology.OntModelSpec;import org.apache.jena.ontology.OntProperty;import org.apache.jena.ontology.SomeValuesFromRestriction;public class Insert {    public static void main(String args[]) throws FileNotFoundException{        final OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);        ontModel.read(new FileInputStream("f://go-minus.owl"), "");        String exNs = "http://purl.obolibrary.org/obo/";        //创建class        OntClass ontclass = ontModel.createClass(exNs+"GO_0045019");        //创建ontclass的父类        OntClass ontclassDad1 = ontModel.createClass(exNs+"GO_0031327");            OntProperty p1 = ontModel.createOntProperty(exNs+"RO_0002212");        Resource r1 = ontModel.createResource(exNs+"GO_0006809");        SomeValuesFromRestriction hr1 = ontModel.createSomeValuesFromRestriction("owl:", p1, r1);        ontclass.addSuperClass(hr1);        ontclass.addSuperClass(ontclassDad1);        //创建标签        ontclass.addLabel("negative regulation of nitric oxide biosynthetic process", "");        ontModel.write(new FileOutputStream("f://go-minus1.owl"));    }}

实际结果:

</owl:Class>  <owl:Class rdf:about="http://purl.obolibrary.org/obo/GO_0045019">    <rdfs:label>negative regulation of nitric oxide biosynthetic process</rdfs:label>    <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/GO_0031327"/>    <rdfs:subClassOf>      <owl:Restriction rdf:about="owl:">        <owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/GO_0006809"/>        <owl:onProperty>          <rdf:Property rdf:about="http://purl.obolibrary.org/obo/RO_0002212"/>        </owl:onProperty>      </owl:Restriction>    </rdfs:subClassOf>  </owl:Class>
阅读全文
0 0