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

sesame芝麻开门operrdf研究2

阅读更多
再来看个完整的读写例子:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import org.openrdf.model.Model;
import org.openrdf.model.URI;
import org.openrdf.model.util.ModelUtil;
import org.openrdf.model.vocabulary.RDFS;
import org.openrdf.rio.RDFFormat;
import org.openrdf.rio.RDFHandlerException;
import org.openrdf.rio.RDFParser;
import org.openrdf.rio.RDFWriter;
import org.openrdf.rio.Rio;
import org.openrdf.rio.UnsupportedRDFormatException;
import org.openrdf.rio.helpers.StatementCollector;
import org.openrdf.sail.memory.model.MemValueFactory;

public class Test {
	static String NS = "http://www.steeven.org/rdf#";

	public static void main(String[] args) throws Exception {
		for (RDFFormat format : RDFFormat.values()) {
			String file = "test." + format.getDefaultFileExtension();
			testWrite(format, file);
			testRead(format, file);
		}
	}

	private static void testRead(RDFFormat format, String file)
			throws Exception {
		RDFParser parser = Rio.createParser(format, MemValueFactory
				.getInstance());
		StatementCollector sc = new StatementCollector();
		parser.setRDFHandler(sc);
		parser.parse(new FileInputStream(file), NS);
		Model model = sc.getModel();
		System.out.println(model.contains(createNS("steeven"), RDFS.LABEL, null));
		System.out.println(model.filter(null, RDFS.LABEL, null));
		System.out.println(model.filter(null, createNS("desc"), null));
		System.out.println(model.filter(null, null, MemValueFactory
				.getInstance().createLiteral("steeven li")));
		System.out.println(ModelUtil.getUniqueObjectLiteral(model,
				createNS("steeven"), RDFS.LABEL));
		System.out.println(model.filter(createNS("steeven"), null, null).size());
	}

	private static URI createNS(String name) {
		return MemValueFactory.getInstance().createURI(NS, name);
	}

	private static void testWrite(RDFFormat format, String file)
			throws RDFHandlerException, UnsupportedRDFormatException,
			FileNotFoundException {
		// System.out.println("=======format: " + format + "========");
		RDFWriter w = Rio.createWriter(format,
				new FileOutputStream(file, false));
		w.setBaseURI(NS);
		w.handleNamespace("myns", NS);
		w.handleNamespace("w3", RDFS.NAMESPACE);
		w.startRDF();
		w.handleComment("my first rdf file");

		URI res = createNS("steeven");
		w.handleStatement(MemValueFactory.getInstance().createStatement(res,
				RDFS.LABEL,
				MemValueFactory.getInstance().createLiteral("steeven li")));
		w.handleStatement(MemValueFactory.getInstance().createStatement(res,
				createNS("desc"),
				MemValueFactory.getInstance().createLiteral("good blogger")));
		w.endRDF();
		System.out.println("\n");
	}
}

输出如下:
true
[(http://www.steeven.org/rdf#steeven, http://www.w3.org/2000/01/rdf-schema#label, "steeven li")]
[(http://www.steeven.org/rdf#steeven, http://www.steeven.org/rdf#desc, "good blogger")]
[(http://www.steeven.org/rdf#steeven, http://www.w3.org/2000/01/rdf-schema#label, "steeven li")]
"steeven li"
2


RDFParser/RdfWriter主要针对流来操作. 而后面要介绍的sail则基于库的概念,可以查询.类似数据库的概念.
数据库的概念过于平面化.RDf的结构复杂些,能根据主谓宾中的任意元素组合查询/遍历. 其内置的索引机制负责加速查询. 开发过程中可以省去复杂的数据建模.
0
0
分享到:
评论

相关推荐

    Sesame「芝麻」v3.6.5 for Android 一款 Android 设备上强大的通用快捷搜索应用.rar

    《Sesame「芝麻」v3.6.5:Android平台上的高效通用搜索工具》 在移动设备领域,Android操作系统以其开放性和灵活性深受用户喜爱。而在这个生态系统中,各种应用程序不断涌现,为用户提供多样化的服务。其中,Sesame...

    doorlock:Sesame Open door 芝麻开门

    门锁Oursky物联网门锁系统。 系统架构: (使用GNU Dia绘制)硬件使用此绘制。 图表另存为txt文件,您可以在File > Import From Text导入下将其File > Import From Text 。 中继板: 连接方式: 释放按钮:GPIO0 /...

    sesame-store-testsuite-2.7.0-beta2.zip

    《 Sesame Store 测试套件2.7.0-Beta2与Sesame Rio扩展解析》 Sesame Store测试套件2.7.0-Beta2是一个关键组件,它是针对开源项目Sesame的全面测试平台。Sesame是一个强大的、可扩展的开放源代码框架,专门用于存储...

    openRDF Sesame

    2. **解析与序列化**:它支持多种RDF格式,如 Turtle, N-Triples, RDF/XML, NTriples, N3, RDFa, JSON-LD 等,能够将数据在不同的格式之间转换。 3. **查询语言支持**:Sesame支持SPARQL查询语言,允许开发者以SQL...

    sesame-rio-datatypes-2.7.12.zip

    标题中的"sesame-rio-datatypes-2.7.12.zip"暗示了这是一个与 Sesame 开源项目相关的数据类型库的版本。Sesame 是一个开放源代码的语义网框架,它提供了用于存储、处理和查询 RDF(Resource Description Framework)...

    sesame源代码

    Sesame is a de-facto standard framework for processing RDF data. This includes parsing, storing, inferencing and querying of/over such data. It offers an easy-to-use API that can be connected to all ...

    Python库 | surf.sesame2-0.2.1_r280-py2.5.egg

    **Python库 | surf.sesame2-0.2.1_r280-py2.5.egg** 本文将深入探讨名为"surf.sesame2"的Python库,其版本为0.2.1,r280修订版,专为Python 2.5编译。这个库是一个强大的工具,用于后端开发,特别是在处理特定任务...

    docker-sesame:芝麻 RDF 存储的 Docker 容器

    (非官方)芝麻 Docker 镜像Docker 容器用法要创建图像“openuniversity/sesame”,请在 docker-sesame 文件夹上执行以下命令: docker build -t openuniversity/sesame .(注意:不要忘记在上面的行中包含最后的 '....

    Cobar - Alibaba Open Sesame

    ### Cobar - 阿里巴巴 Open Sesame #### 一、产品约束 - **跨库操作限制**:不支持跨库的 join、分页、排序、子查询操作。 - **SET语句处理**:执行 SET 语句时,除了事务和字符集设置外,其他都将被忽略。 - **...

    sesame:用于分析Infinium DNA甲基化BeadChip数据的R软件包

    SeSAMe-甲基化数据的明智分步分析 SeSAMe是用于处理Infinium DNA甲基化数据的R包。 SeSAMe当前支持EPIC,HM450和HM27平台并动态生成清单。 要从github安装, BiocManager :: install( " sesame " ) # # or ...

    sesameapi-1.zip

    2. **查询语言支持**:可能支持SQL或其他特定的查询语言,使用户能够根据需要检索和分析数据。 3. **数据模型**:Sesame 可能允许开发者定义复杂的数据结构和关系,适应不同类型的数据库模型,如关系型或非关系型...

    OpenSesameCompilerForUnity:Roslyn编译器,用于访问Unity的internalsprivates。 换句话说,您可以访问其他程序集中的任何内部特权,而无需进行反射。 假设“芝麻开门!”

    比方说, “芝麻开门!” <<| | >>什么是新的? 您是否要接收新版本的通知? 在GitHub上支持我!描述然后,阿里·巴巴(Ali Baba)爬下,走进隐藏在灌木丛中的门,说道:“打开,芝麻!” 它飞开了。 该...

    sesame-http-client-2.7.2.zip

    2. 优化性能:通过对网络请求的实时监控,我们可以识别性能瓶颈,进行针对性的优化。 3. 易于维护:通过详细的监控数据,我们可以更好地理解和调试代码,提高系统的可维护性。 4. 更好的容错能力:Jrugged 提供的...

    Sesame:Android体系结构组件正确无误

    芝麻 Sesame是用于Android开发的一组架构组件。 它基于包括协程和流程在内的现代技术。 芝麻简单易学且易于使用。 它非常适合MVVM和MVI体系结构。成分提供可观察的属性和一次性命令。 -允许从“视图模型”控制对话框...

    open-sesame:用于将您的公共IP地址添加到AWS安全组的入站规则的CLI工具

    芝麻开门 Open Sesame是一个CLI工具,用于将您的公共IP地址添加到AWS安全组的入站规则。 当您坐在动态IP后面(例如,您正在使用Wi-Fi加密狗)并且希望允许通过安全组访问某些AWS资源时,这非常方便。 安装 npm ...

    PyPI 官网下载 | django_sesame-2.3-py3-none-any.whl

    然而,没有具体的库介绍,我们只能推测它可能是一个用于身份验证或会话管理的插件,因为“sesame”通常与“开门”的概念关联,这在Web应用中可能代表访问权限。 4. **Python 3**:`-py3-none-any`表明这个软件包是...

    sesame-runtime-osgi-2.7.4.zip

    2. **Sesame**:Sesame 是一个开源的 RDF(Resource Description Framework)存储和查询引擎,用于处理语义网数据。RDF 是一种用于描述网络资源的标准模型,广泛应用于数据集成、知识管理系统和语义Web应用中。...

    sesame-rio-turtle-2.7.8.zip

    标题 "sesame-rio-turtle-2.7.8.zip" 暗示这是一个与 sesame 项目相关的软件发行版,具体是 Rio Turtle 模块的 2.7.8 版本。Sesame 是一个开源的语义网框架,主要用于处理、存储和查询 RDF(Resource Description ...

    sesame-http-workbench-2.7.8.zip

    【标题】"sesame-http-workbench-2.7.8.zip" 涉及的是一个名为 "Sesame HTTP Workbench" 的工具,这是一款专为HTTP协议测试和调试而设计的应用程序。Sesame工作台允许用户发送HTTP请求,查看响应,并分析交互过程中...

Global site tag (gtag.js) - Google Analytics