2009-07-20 9 views

Répondre

13

Vous pouvez utiliser une clause order by tout comme vous pouvez dans SQL. Notez que selon la spécification SPARQL, le ORDER BY s'applique uniquement aux requêtes SELECT. Vous devrez créer une liaison pour la propriété que vous souhaitez utiliser pour la commande.

SELECT ?s ?p ?o 
WHERE {?s ?p ?o . 
     ?s <creationDatePredicate> ?date . } 
ORDER BY DESC(?date) 
LIMIT 200 

Mise à jour: Si vous n'êtes pas déjà stocker la date de création, vous aurez besoin de stocker les métadonnées vous-même. Quant à savoir comment faire pour ce faire, vous avez quelques options:

  1. un magasin triple dans votre graphique par défaut qui a la date de création pour chaque sujet. Si vous stockez plus d'un graphique, cela deviendra très lourd et ne sera probablement pas ce que vous voulez.

  2. Stockez chaque graphique en tant que graphique nommé dans votre magasin triple RDF. Vous pouvez ensuite stocker des métadonnées sur chaque graphique dans le graphique par défaut ou dans un graphique nommé "partagé" pour les heures de création.

  3. Stockez vos données dans le graphique nommé et utilisez un graphique nommé pour stocker les métadonnées de temps de création.

Un exemple de l'option # 2 la requête de SPARQL serait:

SELECT ?s ?p ?o 
WHERE { 
     GRAPH ?g { ?s ?p ?o . } 
     ?g <creationDatePredicate> ?date . } 
ORDER BY DESC(?date) 
LIMIT 200 
+0

il n'y a pas un tel prédicat :( – cupakob

+0

@Sirakov À droite, vous devrez remplir n'importe quel prédicat est approprié à votre jeu de données –

+0

je veux dire, il n'y a pas un objet dans mon ensemble de données, qui contient la date .. .respective il n'y a pas un tel prédicat :) – cupakob

3

Puisque vous avez dit que vous ne stocke pas la date de création dans votre RDF alors un mécanisme possible pour faire cela soyez spécifique à l'implémentation de SPARQL que vous utilisiez et au magasin RDF de support, ou autre. Il est fort probable que ce n'est tout simplement pas possible.

Questions connexes