Java 如何使用ApacheJena搜索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

我的程序如下所示读取一个外部RDF文件

    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