【发布时间】:2014-06-10 10:44:30
【问题描述】:
我想要一个这样的文件:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://stackoverflow.com/q/24084473/1281433/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:j.0="http://stackoverflow.com/q/24084473/1281433/relations/">
<rdf:Property rdf:about="http://stackoverflow.com/q/24084473/1281433/Regione">
<rdfs:label>Regione</rdfs:label>
</rdf:Property>
<rdf:Property rdf:about="http://stackoverflow.com/q/24084473/1281433/Nome">
<rdfs:label>Nome</rdfs:label>
</rdf:Property>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/soggetto">
<j.0:Nome>Vercelli</j.0:Nome>
<j.0:Regione>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Piemonte">
<rdfs:label>Piemonte</rdfs:label>
</rdf:Description>
</j.0:Regione>
</rdf:Description>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Vercelli">
<rdfs:label>Vercelli</rdfs:label>
</rdf:Description>
</rdf:RDF>
我特别想知道如何用 Java 代码(使用 Jena 库)编写以下部分:
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/soggetto">
<j.0:Nome>Vercelli</j.0:Nome>
<j.0:Regione>
<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Piemonte">
<rdfs:label>Piemonte</rdfs:label>
</rdf:Description>
</j.0:Regione>
</rdf:Description>
我在文献中看到,<rdf:Description rdf:about="http://stackoverflow.com/q/24084473/1281433/Piemonte"> 对象(或资源?)是一个空白节点,但我不知道怎么写。我尝试使用以下代码:
public Model BlankNodeCode (Model model){
Model model1 = model;
StmtIterator stmt = model.listStatements();
while (stmt.hasNext()){
Statement statement = stmt.next();
Resource subject = statement.getSubject();
Property pred = statement.getPredicate();
RDFNode object = statement.getObject();
Object res = null;
@SuppressWarnings("unchecked")
Resource resource = object.as((Class<Resource>) res);
model1.createResource(subject).addProperty(pred,model1.createResource(resource));
}
return model1;
}
但我得到一个例外:
Exception in thread "main" java.lang.NullPointerException
at com.hp.hpl.jena.enhanced.Polymorphic.findExistingView(Polymorphic.java:75)
at com.hp.hpl.jena.enhanced.Polymorphic.asInternal(Polymorphic.java:61)
at com.hp.hpl.jena.enhanced.EnhNode.as(EnhNode.java:107)
我在这里做错了什么?
【问题讨论】:
标签: java rdf jena semantic-web rdfs