`
Goro
  • 浏览: 173469 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用Jena通过SPARQL读取RDF内容

    博客分类:
  • Java
阅读更多
package sh.pl;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.ModelFactory;

public class TestJena {

	public static void main(String args[]) throws IOException {

		OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);

		URL url = new URL("http://jvn.jp/rss/jvn.rdf");		

		HttpURLConnection connect = (HttpURLConnection) url.openConnection();
		InputStream in = url.openStream();
		ontModel.read(in, "");
		String queryString = "PREFIX rss:   <http://purl.org/rss/1.0/> SELECT ?item_title ?item_link"
				+
				" WHERE " + "{ ?item rss:title ?item_title " +

				"FILTER regex(?item_title, \"MAC\", \"i\" ) ." +

				"?item rss:link ?item_link }";

		Query query = QueryFactory.create(queryString);
		QueryExecution qe = QueryExecutionFactory.create(query, ontModel);
		ResultSet results = qe.execSelect();
		
		while (results.hasNext()) {
			QuerySolution qs = results.next();
			System.out.println(qs.get("item_title"));
			System.out.println(qs.get("item_link"));
		}

		// ResultSetFormatter.out(System.out, results, query);
		qe.close();
	}

}
分享到:
评论

相关推荐

    使用 Jena API 处理 RDF

    通过使用Jena API,我们可以有效地处理和查询RDF数据,无论是从文件中读取数据,还是在内存中构建和操作RDF图。Jena的强大之处在于它的灵活性和丰富的功能集,使得开发者能够轻松地在Java应用程序中集成语义网和知识...

    《An Introduction to RDF and the Jena RDF API》的译文

    通过本文,读者可以了解到RFA的基本概念、如何使用Jena API处理RDF数据,以及相关的示例代码。 ### 1. RDF 概述 RDF是一种用于描述网络资源的标准模型,由W3C组织推荐。它采用一种类似图的形式来表示数据,其中的...

    An Introduction to RDF and the Jena RDF API

    - **读取RDF数据**:通过`Model.read(String)`方法可以从文件或URL读取RDF数据。 - **查询模型**:利用SPARQL查询语言,通过`QueryExecution`类执行查询并获取结果。 ##### 3. Jena API示例 为了帮助理解Jena API...

    Jena_RDF_API的译文

    Jena RDF API 是一个用于处理资源描述框架(RDF)数据的Java库,它提供了丰富的功能,使得开发者能够创建、读取和操作RDF模型。RDF是一种标准的数据模型,用于描述网络上的资源,它使用URI(统一资源标识符)作为...

    sparql-generate:通过Apache Jena的SPARQL-Generate实现

    **SPARQL Generate** 是一种基于...通过Apache Jena提供的API,你可以将SPARQL Generate 整合到Java应用中,实现强大的数据处理和转换功能。在实际项目中,记得参考官方文档和示例,以便更好地理解和应用这个工具。

    Jena本体操纵类(1)——本体文件读取

    1. **加载本体文件**:使用Jena,我们可以使用`OntModelSpec`来定义模型的配置,然后用`ModelFactory.createOntologyModel()`方法加载本体文件。例如,如果我们有一个名为"food.owl"的OWL文件,我们可以这样做: ``...

    An Introduction to RDF and the Jena RDF API(英文版)

    Jena支持从不同的源读取RDF数据,包括文件、URL或字符串等。读取后的数据可以存储在一个`Model`对象中,以便进一步处理或查询。 ```java InputStream in = FileManager.get().open("path/to/file.rdf"); if (in == ...

    Jena-2.4.rar

    通过使用Jena,开发者可以方便地创建、读取、更新和删除RDF数据,使得数据的管理和交换变得更加简单。RDF允许我们将网络上的信息表示为一系列的三元组,即(subject, predicate, object),这种结构化表示方式是语义网...

    jena-3.0.1.zip

    Jena 提供了完整的RDF API,可以创建、读取和修改RDF数据。通过RDF,开发者能够以URI标识资源,并用属性(或称三元组)来描述这些资源。 2. **RDFS(RDF Schema)**:RDFS是RDF的扩展,用于定义类和属性的关系,...

    jena实例实现

    3. **读取RDF数据** - 从文件加载模型:`Model model = ModelFactory.createDefaultModel().read("file.rdf", "TURTLE");`,这里指定了文件路径和数据格式。 - 解析RDF数据:Jena支持多种格式(如N-Triples, ...

    jena语义框架3.7.0

    Jena是一个用Java编写的库,主要用于处理RDF(Resource Description Framework)、RDFS(RDF Schema)和OWL(Web Ontology Language)等语义网标准。它支持SPARQL查询语言,允许开发者查询和操作语义数据,同时提供...

    jena扩展包

    Jena提供了RDFAPI,使得开发者能够方便地创建、读取、修改和查询RDF数据。 **RDFS:RDF模式** RDFS是RDF的扩展,允许定义类和属性的关系,如类的子类关系、属性的域和范围等。RDFS增加了对RDF数据的推理能力,使得...

    jena-2.12.1-source-release.zip

    这些示例涵盖了从基本的RDF操作到复杂SPARQL查询,甚至包括推理和链接数据服务的实现,通过运行和调试这些示例,开发者可以快速上手并熟悉Jena的各种功能。 四、Jena在实际应用中的场景 1. 数据集成:Jena可以帮助...

    apache-jena-4.1.0.zip

    Apache Jena提供了RDF API,使得开发者可以方便地创建、读取、修改和保存RDF数据。 **2. SPARQL查询** SPARQL是W3C推荐的用于查询RDF数据的标准查询语言。Jena支持SPARQL 1.1标准,包括SELECT、CONSTRUCT、ASK、...

    用jena写的一个家庭族谱例子

    7. **实践应用**:这个项目作为一个练手实例,有助于学习者掌握如何使用Jena进行实际的知识图谱编程,包括数据的读取、存储、查询和推理。 通过这个项目,学习者不仅可以深入了解Jena框架及其在实际问题中的应用,...

    Jena 语义网框架源码

    Jena 提供了对RDF的全面支持,包括创建、读取、更新和查询RDF数据。RDF是一种用于描述网络资源的标准,通过URI(Uniform Resource Identifier)表示实体,并使用三元组来描述实体之间的关系。Jena的`Model`接口是...

    jena-arq2.9

    通过使用ARQ,开发者可以轻松地处理RDF三元组,进行数据的增删改查,并进行复杂的查询操作。 三、SPARQL查询引擎 ARQ的亮点在于其强大的SPARQL查询引擎。它支持完整的SPARQL 1.1规范,包括SELECT、CONSTRUCT、ASK...

    用jena做的语义检索系统

    例如,可能有一个`QueryProcessor`类,用于构造SPARQL查询(SPARQL是RDF数据的标准查询语言),并处理Jena的查询结果。 `data`文件夹可能包含了预处理后的语义数据,这些数据可能来自不同的数据源,如RDF文件、...

    Jena使用介绍

    这一步骤通过读取RDF文件或数据库中的数据完成,如示例代码所示,使用`ModelFactory.createOntologyModel()`创建模型,然后调用`model.read()`方法加载数据。 2. **创建推理模型**:接着,基于装载的数据创建推理...

Global site tag (gtag.js) - Google Analytics