Rdf Protege Reasoner在使用Jena写入dataTypeProperties后弹出错误

Rdf Protege Reasoner在使用Jena写入dataTypeProperties后弹出错误,rdf,jena,owl,ontology,protege,Rdf,Jena,Owl,Ontology,Protege,我在protege中创建了本体论。我有一些dataTypeProperties,其范围设置为integer、dateTime和string 在我的java应用程序中,我使用Jena api写入owl文件,我使用这个方法处理dataTypeProperties: public void setDataTypeProperty(String resourceURI, String propertyName, String propertyValue) { if (resourceURI==

我在protege中创建了本体论。我有一些dataTypeProperties,其范围设置为integer、dateTime和string

在我的java应用程序中,我使用Jena api写入owl文件,我使用这个方法处理dataTypeProperties:

public void setDataTypeProperty(String resourceURI, String propertyName, String propertyValue) 
{
    if (resourceURI==null)
    return;

    Model model = ModelFactory.createDefaultModel();

    //read model from file
    InputStream in = FileManager.get().open(inputFileName);

     if (in == null) 
     {
         throw new IllegalArgumentException( "File: " + inputFileName + " not found");
     }       
     model.read(in, "");
     try {
        in.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


     // Add property to Model
     Resource resource = model.createResource(resourceURI);
     resource.addProperty(model.createProperty(baseURI+propertyName), model.createLiteral(propertyValue));


     //Writing model to file
        try {
            FileWriter out = new FileWriter( inputFileName );
            model.write( out, "RDF/XML-ABBREV" );
            out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
}
写入owl文件后,如下所示:

....
<File rdf:about="http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#677f5c75-7527-45e2-8430-829466027034"> 
    <filePeakLocation>ismaila swabi</filePeakLocation> //String Datatype
    <filePeakDay>6</filePeakDay> //Integer Datatype 
    <fileLastAccessed>2014-07-26T13:17:49</fileLastAccessed> //dateTime
    <created>2014-07-26T13:17:27</created> //dateTime
    <hasPath>/examples/run.sh</hasPath>  //String Datatype
    <fileAccessedLocation>ismaila swabi_atTime_2014-07-26T13:17:49</fileAccessedLocation>
    <filePeakHour>13</filePeakHour> //Integer
</File>
....
。。。。
ismaila swabi//字符串数据类型
6//整数数据类型
2014-07-26T13:17:49//dateTime
2014-07-26T13:17:27//dateTime
/示例/run.sh//String数据类型
ismaila swabi_atTime_2014-07-26T13:17:49
13//整数
....
问题是,现在如果我在protege中打开我的owl文件并运行reasoner(Fact++),它会弹出如下错误:

reasoner显示的所有错误都是具有整数或数据时间数据类型范围的属性。具有范围的属性不会给出错误


有人能指出错误的原因吗?

我很确定问题在于您正在使用这个函数
public void setDataTypeProperty()
来编写字符串、整数和日期时间。函数将所有值写入纯文本。你应该检查一下


在jena中,请尝试使用
model.createTypedLiteral(arg0)

我确信问题在于,您正在使用这个函数
public void setDataTypeProperty()
来编写字符串、整数和日期时间。函数将所有值写入纯文本。你应该检查一下


在jena尝试
model.createTypedLiteral(arg0)

我使用了
model.createTypedLiteral()
,但现在的问题是日期是用java格式编写的,而不是
XMLSchema\dateTime
格式。现在看起来是这样的:
Sat Jul 26 16:03:42 PKT 2014/无标题文档
错误的数据类型。它不是java:java.util.Date,它是。此外,2014年7月26日星期六16:03:42 PKT不是合法的XSD日期时间。请尝试使用日历(而不是java日期),或者,bertter,通过另一个createTypedLiteral调用控制并命名所需的数据类型。@AndyS我尝试了日历,但它也写错了
Sat Jul 26 17:37:27 PKT 2014
请有人指导如何通过
model.createTypedLiteral(日期)存储xml日期
如果您得到了数据类型
java:java.util.Date
,听起来您并没有实际使用日历。@SyedRahmanMashwani Calendar#getTime()返回一个日期,因此您仍然在传递一个日期,而不是日历。如果像Andy建议的那样执行
resource.addProperty(…,model.createTypedLiteral(cal))
,您会得到什么?我使用了
model.createTypedLiteral()
,但现在的问题是日期是用java格式编写的,而不是
XMLSchema\dateTime
格式。现在看起来是这样的:
Sat Jul 26 16:03:42 PKT 2014/无标题文档
错误的数据类型。它不是java:java.util.Date,它是。此外,2014年7月26日星期六16:03:42 PKT不是合法的XSD日期时间。请尝试使用日历(而不是java日期),或者,bertter,通过另一个createTypedLiteral调用控制并命名所需的数据类型。@AndyS我尝试了日历,但它也写错了
Sat Jul 26 17:37:27 PKT 2014
请有人指导如何通过
model.createTypedLiteral(日期)存储xml日期
如果您得到了数据类型
java:java.util.Date
,听起来您并没有实际使用日历。@SyedRahmanMashwani Calendar#getTime()返回一个日期,因此您仍然在传递一个日期,而不是日历。如果像Andy建议的那样执行
resource.addProperty(…,model.createTypedLiteral(cal))
,您会得到什么?