【问题标题】:Reading RDF data using Jena failing使用 Jena 读取 RDF 数据失败
【发布时间】:2015-11-02 11:35:23
【问题描述】:

下面的代码是读取一个schema和一个数据文件来找到colin和Person的rdf.type。但是,我收到了错误:

线程“main”中的异常 org.apache.jena.riot.RiotException: [line: 1, col: 1 ] prolog 中不允许有内容。代码如下:

public void reason(){
    String NS = "urn:x-hp:eg/";

    String fnameschema = "D://Work//EclipseWorkspace//Jena//data//rdfsDemoSchema.rdf";
    String fnameinstance = "D://Work//EclipseWorkspace//Jena//data//rdfsDemoData.rdf";

Model schema = FileManager.get().loadModel(fnameschema);
Model data = FileManager.get().loadModel(fnameinstance);

InfModel infmodel = ModelFactory.createRDFSModel(schema, data);

Resource colin = infmodel.getResource(NS+"colin");

System.out.println("Colin has types");

for (StmtIterator i = infmodel.listStatements(colin, RDF.type, (RDFNode)null); i.hasNext(); ) {
       Statement s = i.nextStatement();
       System.out.println(s); 
} 

Resource Person = infmodel.getResource(NS+"Person");
System.out.println("\nPerson has types:");
for (StmtIterator i = infmodel.listStatements(Person, RDF.type, (RDFNode)null); i.hasNext(); ) {
    Statement s = i.nextStatement(); 
    System.out.println(s);
} 

}

文件 rdfsDemoData.rdf

@prefix eg: <urn:x-hp:eg/> .
<Teenager rdf:about="&eg;colin">
  <mum rdf:resource="&eg;rosy" />
  <age>13</age>
</Teenager>

文件 rdfsDemoSchema.rdf

@prefix eg: <urn:x-hp:eg/> .

<rdf:Description rdf:about="&eg;mum">
  <rdfs:subPropertyOf rdf:resource="&eg;parent"/>
</rdf:Description>

<rdf:Description rdf:about="&eg;parent">
  <rdfs:range  rdf:resource="&eg;Person"/>
  <rdfs:domain rdf:resource="&eg;Person"/>
</rdf:Description>

<rdf:Description rdf:about="&eg;age">
  <rdfs:range rdf:resource="&xsd;integer" />
</rdf:Description>

【问题讨论】:

  • 不清楚为什么这个问题被否决了。澄清会在未来有所帮助。

标签: java rdf jena


【解决方案1】:

您的数据语法错误。您正在混合 Turtle 和 RDF/XML。 RDF/XML 没有@prefix - 它使用 XML 的命名空间。看起来您想要一个 XML 实体声明,如:

<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
    <!ENTITY eg "urn:x-hp:eg/" >
]>
...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多