Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 在本体模型中,根据时间对插入的数据进行排序_Sorting_Sparql_Ontology_Protege - Fatal编程技术网

Sorting 在本体模型中,根据时间对插入的数据进行排序

Sorting 在本体模型中,根据时间对插入的数据进行排序,sorting,sparql,ontology,protege,Sorting,Sparql,Ontology,Protege,我有一个本体模型。我通过Sparql更新在一个类实例中插入整数数据。该模型随机存储数据,没有任何顺序。现在,当我想通过Sparql查询提取这个数据时,我希望它按照插入时间的顺序进行。我怎样才能做到这一点?有什么想法吗 我的本体模型是用Protege软件制作的。 我对插入数据的查询低于1 前缀测试: 插入{ ?KPI变量测试:hasValue\u ROB1 10 }在哪里{ ?KPI_变量测试:hasValue_ROB1?Newvalue 过滤器(?KPI_变量=测试:实际生产时间) } 为了获

我有一个本体模型。我通过Sparql更新在一个类实例中插入整数数据。该模型随机存储数据,没有任何顺序。现在,当我想通过Sparql查询提取这个数据时,我希望它按照插入时间的顺序进行。我怎样才能做到这一点?有什么想法吗

我的本体模型是用Protege软件制作的。 我对插入数据的查询低于1

前缀测试:
插入{
?KPI变量测试:hasValue\u ROB1 10
}在哪里{
?KPI_变量测试:hasValue_ROB1?Newvalue
过滤器(?KPI_变量=测试:实际生产时间)
}
为了获取数据,我使用以下查询:

前缀测试:
选择?KPI_变量?新值,其中{
?KPI_变量测试:hasValue_ROB1?Newvalue
过滤器(?KPI_变量=测试:实际生产时间)
}限制25

RDF中的数据是简单的三元组。不知道何时将三元组添加到图形中。如果需要此类信息,则需要在数据模型中显式显示。SPARQL确实包含一个now函数,可以让您在运行查询时获取时间戳。这意味着你可以这样做:

前缀:
插入{
[]:hasubject?s;
:hasp;
:hasObject?o;
我?现在。
}
在哪里{
#--假三倍
数值(?s?p?o){
(:a:p:b)
(:c:q:d)
}
#--获取当前时间
绑定(now()为?now)
}
现在,图形包含如下数据:

@前缀:。
[:hasObject:d;
:hasspredicate:q;
:hasSubject:c;
:黑斯廷姆“2017-04-28813:32:11.482+00:00”^^
] .
[:hasObject:b;
:hasp;
:hasSubject:a;
:黑斯廷姆“2017-04-28813:32:11.482+00:00”^^
] .
您可以像这样查询:

前缀:
选择s?p?o?时间{
[]:hasubject?s;
:hasp;
:hasObject?o;
:我?时间到了
}
按时间点菜
s,p,o,time
urn:ex:c,urn:ex:q,urn:ex:d,2017-04-28813:32:11.482+00:00
urn:ex:a,urn:ex:p,urn:ex:b,2017-04-28813:32:11.482+00:00

一旦你在不同的时间插入了一些东西,你就会有不同的时间值,所以排序是有意义的。我建议你不要像我那样具体化三元组(如果你打算直接具体化,你可能应该使用标准词汇表),而是要有一些有意义的结构,实际上有时间戳作为它的一部分。

RDF中的数据就是简单的三元组。不知道何时将三元组添加到图形中。如果需要此类信息,则需要在数据模型中显式显示。SPARQL确实包含一个now函数,可以让您在运行查询时获取时间戳。这意味着你可以这样做:

前缀:
插入{
[]:hasubject?s;
:hasp;
:hasObject?o;
我?现在。
}
在哪里{
#--假三倍
数值(?s?p?o){
(:a:p:b)
(:c:q:d)
}
#--获取当前时间
绑定(now()为?now)
}
现在,图形包含如下数据:

@前缀:。
[:hasObject:d;
:hasspredicate:q;
:hasSubject:c;
:黑斯廷姆“2017-04-28813:32:11.482+00:00”^^
] .
[:hasObject:b;
:hasp;
:hasSubject:a;
:黑斯廷姆“2017-04-28813:32:11.482+00:00”^^
] .
您可以像这样查询:

前缀:
选择s?p?o?时间{
[]:hasubject?s;
:hasp;
:hasObject?o;
:我?时间到了
}
按时间点菜
s,p,o,time
urn:ex:c,urn:ex:q,urn:ex:d,2017-04-28813:32:11.482+00:00
urn:ex:a,urn:ex:p,urn:ex:b,2017-04-28813:32:11.482+00:00

一旦你在不同的时间插入了一些东西,你就会有不同的时间值,所以排序是有意义的。我建议你不要像我一样把三元组具体化(如果你打算直接具体化,你可能应该使用标准词汇表),而是要有一些有意义的结构,实际上有时间戳作为它的一部分。

你能把你的问题放在查询中编辑吗?这样人们可以看到你的努力并帮助你。问题编辑。查询添加如何运行插入查询?学生?如果是的话,哪个插件?插入时间不是SPARQL特定的。它只是将三元组添加到现有三元组的集合中。可能有一些特定于三重存储的支持,但它不是通用的。显然,对于您的情况,需要一个带有插入时间戳的加法三元组,这必须通过RDF具体化来完成,因为您想要对一个语句进行声明(分别是RDF三元组)我正在使用apacha jena fuseki服务器对我的本体模型运行查询和更新。您可以通过放置查询来编辑您的问题吗?这样人们可以看到你的努力并帮助你。问题编辑。查询添加如何运行插入查询?学生?如果是的话,哪个插件?插入时间不是SPARQL特定的。它只是将三元组添加到现有三元组的集合中。可能有一些特定于三重存储的支持,但它不是通用的。显然,对于您的情况,有必要添加一个带有插入时间戳的三元组-这必须通过RDF具体化来完成,因为您想要对一个语句(分别为RDF三元组)进行声明。我正在使用apacha jena fuseki服务器对我的本体模型运行查询和更新。