Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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 按日期排序SPARQL结果_Sorting_Date_Sparql_Creation - Fatal编程技术网

Sorting 按日期排序SPARQL结果

Sorting 按日期排序SPARQL结果,sorting,date,sparql,creation,Sorting,Date,Sparql,Creation,有没有办法按创建日期对结果进行排序 必须进行分拣的查询示例: SELECT * WHERE {?s ?p ?o} limit 200 可以像在SQL中一样使用子句。请注意,根据SPARQL规范,orderby仅适用于SELECT查询。您需要为要用于排序的属性创建绑定 SELECT ?s ?p ?o WHERE {?s ?p ?o . ?s <creationDatePredicate> ?date . } ORDER BY DESC(?date) LIMIT 200

有没有办法按创建日期对结果进行排序

必须进行分拣的查询示例:

SELECT * WHERE {?s ?p ?o} limit 200
可以像在SQL中一样使用子句。请注意,根据SPARQL规范,
orderby
仅适用于
SELECT
查询。您需要为要用于排序的属性创建绑定

SELECT ?s ?p ?o
WHERE {?s ?p ?o .
       ?s <creationDatePredicate> ?date . }
ORDER BY DESC(?date)
LIMIT 200
选择s?p?o
哪里{s?p?o。
?s?日期。}
按描述订购(?日期)
限制200
更新:如果尚未存储创建日期,则需要自己存储元数据。至于如何做到这一点,您有几个选择:

  • 在默认图形中存储一个三元组,其中包含每个主题的创建日期。如果要存储多个图形,这将很快变得非常笨拙,并且可能不是您想要的

  • 将每个图作为命名图存储在RDF三元组存储中。然后,您可以将每个图的元数据存储在默认图或一个“共享”命名图中,用于创建时间

  • 将数据存储在命名图中,并使用命名图存储创建时元数据

  • 选项2的SPARQL查询示例如下:

    SELECT ?s ?p ?o
    WHERE {
            GRAPH ?g { ?s ?p ?o . }
            ?g <creationDatePredicate> ?date . }
    ORDER BY DESC(?date)
    LIMIT 200
    
    选择s?p?o
    在哪里{
    图g{s?p?o.}
    ?g?日期。}
    按描述订购(?日期)
    限制200
    
    既然您已经说过您实际上没有在RDF中存储创建日期,那么任何可能的机制都会特定于您使用的SPARQL实现和支持RDF存储或其他。很可能这是不可能的。

    没有这样的谓词:(@Sirakov-Right,您必须填写适合您的数据集的任何谓词。我的意思是,我的数据集中没有包含日期的对象……没有这样的谓词:)