Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jena创建个人_Java_Rdf_Jena_Owl - Fatal编程技术网

Java 使用Jena创建个人

Java 使用Jena创建个人,java,rdf,jena,owl,Java,Rdf,Jena,Owl,我使用Jena创建了一个owl文件: 我想创建个人,这是我创建ontModel的java代码: /****************************创建新本体******************************************* ontoDiag=modelDiag.createOntology(baseURI); modelDiag.setNsPrefix(“diag”,ns); //*****************创建疾病和症状类****************

我使用Jena创建了一个owl文件:


我想创建个人,这是我创建ontModel的java代码:

/****************************创建新本体*******************************************
ontoDiag=modelDiag.createOntology(baseURI);
modelDiag.setNsPrefix(“diag”,ns);
//*****************创建疾病和症状类****************************************
desease=modelDiag.createClass(ns+“desease”);
症状=modelDiag.createClass(ns+“症状”);
//*********************为症状类创建数据类型属性标签(&id)***********************
name=modelDiag.createDatatypeProperty(ns+“SympLabel”);
名称.setDomain(症状);
name.setRange(XSD.xstring);
id=modelDiag.createDatatypeProperty(ns+“SympId”);
id.setDomain(症状);
id.setRange(XSD.xstring);
//*********************为desease类创建数据类型属性标签(&id)***********************
nameDes=modelDiag.createDatatypeProperty(ns+“DesLabel”);
nameDes.setDomain(desease);
setRange(XSD.xstring);
idDes=modelDiag.createDatatypeProperty(ns+“DesId”);
idDes.setDomain(desease);
setRange(XSD.xstring);
//*********************创建对象属性hasSymptom*******************************************
hasSymptom=modelDiag.createObjectProperty(ns+“hasSymptom”);
hasSymptom.addDomain(疾病);
hasSymptom.addRange(症状);
这是我创造个人的部分

 //***********************************Create Individual Desease****************************

        Individual IndivDes = modelDiag.createIndividual(ns + desChoosen, desease);

        //***************add the property name to desease ************************************** 
        Literal desName = modelDiag.createTypedLiteral(desChoosen, XSDDatatype.XSDstring);
        Statement desNameSt = modelDiag.createStatement(IndivDes, name, desName);
        modelDiag.add(desNameSt);

        //***************add the property id to desease ************************************** 
        Literal desId = modelDiag.createTypedLiteral(IdDes, XSDDatatype.XSDstring);
        Statement desIdSt = modelDiag.createStatement(IndivDes, id, desId);
        modelDiag.add(desIdSt);
代码工作得很好,但问题是创建的个体如下所示:


严重胸痛
DES:000001
眼眶囊肿

相反:



谢谢你的帮助谢谢你

尝试显式添加rdf:type=owl:NamedIndividual:

public static void main(String ... strings) {
    OntModel m = ModelFactory.createOntologyModel();
    m.setNsPrefix("test", "http://test#");
    Individual i = m.createIndividual("http://test#indi", m.createResource("http://test#cl"));
    i.addProperty(RDFS.comment, "something");
    i.addRDFType(OWL2.NamedIndividual);
    m.write(System.out);
}
此代码段将生成以下rdf xml:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:test="http://test#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
  <owl:NamedIndividual rdf:about="http://test#indi">
    <rdfs:comment>something</rdfs:comment>
    <rdf:type rdf:resource="http://test#cl"/>
  </owl:NamedIndividual>
</rdf:RDF>

某物
如果没有“i.addRDFType(OWL.NamedIndividual)”,则输出如下:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:test="http://test#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
  <test:cl rdf:about="http://test#indi">
    <rdfs:comment>something</rdfs:comment>
  </test:cl>
</rdf:RDF>

某物

注意:owl:NamedIndividual是OWL2声明。猫头鹰1中没有这样的东西。jena不支持OWL2,尽管它有一个词汇表类(见org.apache.jena.词汇表.OWL2)

这有什么问题?语义相同,序列化不同。任何OWL解析器都会返回相同的OWL公理集……当我使用ProtegeHow打开文件时,我遇到了错误。如何使用Jena存储模型。你在Protege中犯了什么错误?我们需要更多的信息,不是很明显吗?为什么URI中有空格?你认为这有意义吗?URI中没有空格,如果你的意思是:在#之后,这是一个字符串,我从另一个owl文件中获取它。我将模型存储在owl文件中,并由Protege打开