Java 如何使用ApacheJena搜索RDF对象?
我的程序如下所示读取一个外部RDF文件Java 如何使用ApacheJena搜索RDF对象?,java,rdf,jena,Java,Rdf,Jena,我的程序如下所示读取一个外部RDF文件 Model model = ModelFactory.createDefaultModel(); InputStream in = FileManager.get().open(fileName); model.read(in, "RDF/XML"); NodeIterator iter = model.listObjects(); while (iter.hasNext()) { System.o
Model model = ModelFactory.createDefaultModel();
InputStream in = FileManager.get().open(fileName);
model.read(in, "RDF/XML");
NodeIterator iter = model.listObjects();
while (iter.hasNext()) {
System.out.println(" " + iter.next().toString());
}
我想进一步实施的是
返回是否存在RDF:resource为的RDF对象在本例中,返回true
提取rdf:about的值在本例中,返回../descriptor/14066-0
示例RDF
我可以使用哪些方法?这个问题写得没有意义。在您提供的数据中,有一个三元组
<../descriptor/14066-0> skos:closeMatch <http://dbpedia.org/resource/Coconut>
使用SPARQL查询最容易做到这一点,但也可以通过编程实现。这里有一个例子。请注意,主题也可以是空白节点,在这种情况下,它们将没有URI
导入java.io.ByteArrayInputStream;
导入java.io.IOException;
导入org.apache.jena.riot.Lang;
导入org.apache.jena.riot.RDFDataMgr;
导入com.hp.hpl.jena.query.QueryExecutionFactory;
导入com.hp.hpl.jena.query.ResultSetFormatter;
导入com.hp.hpl.jena.rdf.model.model;
导入com.hp.hpl.jena.rdf.model.ModelFactory;
导入com.hp.hpl.jena.rdf.model.Property;
导入com.hp.hpl.jena.rdf.model.Resource;
导入com.hp.hpl.jena.rdf.model.stmtilerator;
公营椰子{
公共静态无效主字符串[]args引发IOException{
最终字符串数据=+
@前缀skos:。\n+
@前缀dbpedia:。\n+
@前缀:。\n+
\n+
:lovelyBunch skos:closeMatch dbpedia:couch。\n+
:uglyBunch skos:closeMatch dbpedia:Banana。\n+
_:blankBunch skos:closeMatch dbpedia:couch。\n;
模型模型=ModelFactory.createDefaultModel;
try ByteArrayInputStream in=new ByteArrayInputStream data.getBytes{
model.read-in,null,TTL;
}
//展示模型
System.out.println==模型==;
RDFDataMgr.write System.out,model,Lang.RDFXML;
//以编程方式请求三元组
属性closeMatch=model.createPropertyhttp://skos.com/closeMatch ;
Resource=model.createResourcehttp://dbpedia.org/resource/Coconut ;
System.out.println\n==主题==;
对于StmtIterator s=model.listStatements null,closeMatch,cocoy;s.hasNext{
System.out.println*+s.next.getSubject;
}
//使用SPARQL查询询问
字符串查询=选择?x{?x};
System.out.println\n==SPARQL结果==;
ResultSetFormatter.out QueryExecutionFactory.create查询,model.execSelect;
}
}
*62a8a69f5ee83a9106ee42859f6c60fc
* http://stackoverflow.com/q/24247503/1281433lovelyBunch
------------------------------
|x|
============================================================
|_u0:b0|
| |
------------------------------
这个问题似乎离题了,因为它是基于对数据的误解。资源没有rdf:resource或rdf:about的值。
?resource skos:closeMatch dbpedia:Coconut