如何将四边形写入耶拿图然后归档

问题描述 投票:0回答:2

我想创建一个像PersonA isIn RoomA atTime 12:00的四元组。我想将System.current.TimeStamp()用于atTime。

我尝试通过以下方式创建一个四边形:

Node roomA_Node = NodeFactory.createURI(((Resource) roomA).getURI());
Node person1_Node = NodeFactory.createURI(((Resource) person1).getURI());
Node isin_node = NodeFactory.createURI(((Resource) ROOM_STREAM.isIn).getURI());
Node timestamp = NodeFactory.createLiteral("2001-10-26T21:32:52",
        XSDDatatype.XSDdateTime);

Quad q = new Quad(timestamp, person1_Node, isin_node, roomA_Node);

但是,现在我被卡住了,因为我想将其写入TTL(或其他类似文件)?

任何建议如何做?

感谢您的回答!

rdf jena semantic-web
2个回答
3
投票

分别编写三元组或四元组非常不寻常。耶拿(Jena)的api通常处理此类项目的集合,例如Graph,或者更具体地针对您的案例DatasetGraph,甚至处理java集合。

Jena的输出通常通过DatasetGraph处理。这里有两个选项:

  1. 非常简单的RDFDataMgr,只写N-Quad。
  2. 更通用的RDFDataMgr,它支持多种格式。

前者是如此简单地调用(在这种情况下,以目标标准为准:

RDFDataMgr.writeQuads(OutputStream out, Iterator<Quad> iterator)

后者涉及更多:

RDFDataMgr.writeQuads(OutputStream out, Iterator<Quad> iterator)

0
投票

我相信代表时间序列时无法避免空白节点::特定度量或传感器的(时间戳,值)列表。当然,RDF最初并不是为了表示时间序列而设计的,但是它为每个度量带来了空白节点的额外费用。

AhasTimeStamp ts1,hasValue v1hasTimeStamp ts2,hasValue v2

@@ mrquad,我不确定您是否能够代表自己想要的东西。

© www.soinside.com 2019 - 2024. All rights reserved.