当前位置:编程学习 > JAVA >>

Jena存储本体时的错误

小弟用jena创建本体,创建完成后要输出到本地文件中,但是出现错误,错误代码57,具体如下:
Exception in thread "main" com.hp.hpl.jena.shared.BadURIException: Only well-formed absolute URIrefs can be included in RDF/XML output: <name="organization"> Code: 57/REQUIRED_COMPONENT_MISSING in SCHEME: A component that is required by the scheme is missing.
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.checkURI(BaseXMLWriter.java:829)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.relativize(BaseXMLWriter.java:806)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeResourceReference(Basic.java:148)
at com.hp.hpl.jena.xmloutput.impl.Basic.writePredicate(Basic.java:101)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:77)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:66)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:40)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:500)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:472)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:458)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.write(ModelCom.java:277)
at com.hp.hpl.jena.ontology.impl.OntModelImpl.write(OntModelImpl.java:2554)
at bs.Ont.BuildOntology.main(BuildOntology.java:89)
小弟不知道错误在哪里,请各位大神帮忙解决一下,非常感谢!此为小弟毕业设计,现在遇到困难,全靠大家啦!以下是部分代码,出错部分应该在其中:
ArrayList NormalElement = new ArrayList();  
    ArrayList Complexelement = new ArrayList(); 
    ArrayList ComplexElement = new ArrayList(); 
    ComplexElement = XMLSchema.DoTheSearch(NormalElement,Complexelement);
    String NS = "http://www.w3.org/2001/XMLSchema";
    String NaS = "http://www.w3.org/2001/XMLSchema/";
    //创建本体模型
    OntModel ontModel = ModelFactory.createOntologyModel();
    //设定本体命名空间  
    ontModel.setNsPrefix("Ontology", NS+"#");   
    System.out.println("\n"+"\n"+"正在生成本体……");
     //复杂类型元素创建成相应概念
    for(int i=0;i<ComplexElement.size();i+=2){  
     String tagname = ComplexElement.get(i+1).toString();
     //字符串处理函数
     tagname = Resolve(tagname);
     OntClass newClass = ontModel.createClass(NaS+tagname);
     Resource R1 = newClass;
     System.out.println(R1);
     newClass.addComment(ComplexElement.get(i+1).toString(), null);
    }
    //简单类型元素创建成为概念的属性
    for(int j=0;j<ComplexElement.size();j+=2){
     ArrayList temp = XMLSchema.getChildElementofComplex((Element)ComplexElement.get(j));
        //判断复杂类型数据下的子类型数据是否是复杂类型
        //若是复杂类型则创建成概念间的关系
    
     for(int p = 0;p<temp.size();p+=2){ 
     //简单类型创建成为概念的属性
     if (!XMLSchema.isComplexElement((Element)temp.get(p))){
     DatatypeProperty newPro = ontModel.createDatatypeProperty(NS+temp.get(p+1));
     //构建资源变量用于之后设置定义域和值域
     Resource Domainname =  ResourceFactory.createResource(ComplexElement.get(j+1).toString());
     //设置定义域为概念
     newPro.setDomain(Domainname);
     //设置值域为字符型
     newPro.setRange(ontModel.createResource("http://www.w3.org/2001/XMLSchema#String"));
     //存储映射关系
     newPro.addComment(temp.get(p+1).toString(), null);
     }
     else{
     ObjectProperty property = ontModel.createObjectProperty(null);
     //构建资源变量用于之后设置定义域和值域
     Resource Domainname =  ResourceFactory.createResource(ComplexElement.get(j+1).toString());
     Resource Rangename =  ResourceFactory.createResource(temp.get(p+1).toString());
     //设置定义域为发生关系的一个概念
     property.setDomain(Domainname);
     //设置值域为发生关系的另一个概念
     property.setRange(Rangename);
     }
     }
    File newFile = new File("D:/workspace/毕业设计/paper.owl");
    try {
             FileOutputStream output = new FileOutputStream(newFile);
     89行        ontModel.write(output);  //以ontModel.write(output,"N-TRIPLE");输出没有错误
             output.close();
        } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
              e.printStackTrace();
        } catch (IOException e) {
              // TODO Auto-generated catch block
                e.printStackTrace();
        }
  } --------------------编程问答-------------------- 请问问题解决了么?? --------------------编程问答-------------------- 首先说明一下这东西我没用过,
只是单纯的看报的异常,
说有需求的一个元素不存在。

另外,楼主有没有什么配置文件什么的?
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,