我的RDF数据表示存在问题。该表包含数百万行和数千个subject_id
个。这是一个表格样本。
row_id subject_id DateTime
34951953 144 14/07/2016 22:00
34952051 145 14/07/2016 22:00
34951954 146 14/07/2016 22:00
34951976 144 15/07/2016 3:00
34952105 146 15/07/2016 3:00
34952004 144 15/07/2016 20:00
我使用jena完成了简单的1:1 rdf映射转换。
<foo/data/row_id=34951953> <foo/data/subject_id> "144"
<foo/data/row_id=34951954> <foo/data/subject_id> "146"
<foo/data/row_id=34951954> <foo/data/subject_id> "146"
<foo/data/row_id=34952051> <foo/data/subject_id> "145"
<foo/data/row_id=34951976> <foo/data/subject_id> "144"
<foo/data/row_id=34952105> <foo/data/subject_id> "146"
<foo/data/row_id=34952004> <foo/data/subject_id> "144"
<foo/data/row_id=34951953> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34952051> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34952054> <foo/data/DateTime> "14/07/2016 22:00:00"
<foo/data/row_id=34951976> <foo/data/DateTime> "15/07/2016 3:00:00"
<foo/data/row_id=34952105> <foo/data/DateTime> "15/07/2016 3:00:00"
<foo/data/row_id=34952004> <foo/data/DateTime> "15/07/2016 20:00:00"
现在,我想为所有<time:before>
添加一些时间属性,例如subject_id
,即顺序信息。以下是我想要的例子:
对于subject_id = 144;
<foo/data/row_id=34951953> <time:before> <foo/data/row_id=34951976>
<foo/data/row_id=34951976> <time:before> <foo/data/row_id=34952004>
for subject_id = 146;
<foo/data/row_id=34951954> <time:before> <foo/data/row_id=34952105>
我可以明确添加时间关系<time:before>
吗?有没有更好的方法来解决这类问题?
答案 0 :(得分:1)
<强>什么强>
显然,您可以使用rdf:Seq
或rdf:List
。但是,查询这些结构是painful。
我建议您为这种时间序列找到合适的本体或词汇,或者使用自己的轻量级词汇表。请注意time:
保留foo:before
前缀。
我们假设您使用名为INSERT
{
?row_1 foo:before ?row_2 .
}
WHERE {
?row_1 foo:subject ?subject .
?row_2 foo:subject ?subject .
?row_1 foo:time ?time_1 .
?row_2 foo:time ?time_2 .
FILTER (?time_1 > ?time_2)
FILTER NOT EXISTS {
?row_3 foo:subject ?subject .
?row_3 foo:time ?time_3 .
FILTER ((?time_1 < ?time_3) && (?time_3 < ?time_2))
}
}
的属性。
如何强>
您可以使用SPARQL在RDF数据中添加具有此属性的三元组:
sed
<强>性能强>
Time ontology查询在我的终端上执行大约1分钟,其中包含3000多个“主题”和60000多个“行”。
您的CSV表可能是从RDBMS导出的,您可以在其中对所有这些数据进行规范化。然后,您可以使用相邻的“行”对创建SQL视图,然后使用Analogous工具将其导出或生成RDF三元组。
另一种选择是以某种方式对RDF文件进行排序/转换,并使用python
,xsd:dateTime
等生成所需的三元组。
<强>更新强>
当然,您的日期应为def pre_processing(img_list, zero_mean=True, unit_var=True):
with tf.device('/cpu:0'):
tn_img0 = img_list[0][1]
tn_img1 = img_list[1][1]
t_img = tn_img0
# t_img = tf.concat([tn_img0, tn_img1], axis=0)
rgb_mean, rgb_var = tf.nn.moments(t_img, [0, 1])
if zero_mean:
tn_img0 = tf.subtract(img_list[0][1], rgb_mean)
tn_img1 = tf.subtract(img_list[1][1], rgb_mean)
if unit_var:
tn_img0 = tf.divide(tn_img0, rgb_var)
tn_img1 = tf.divide(tn_img1, rgb_var)
类型,或至少应以自然方式进行比较。