2009-07-20 10 views

Antwort

13

können Sie verwenden, um eine order by Klausel genau wie können Sie in SQL. Beachten Sie, dass gemäß der SPARQL-Spezifikation die ORDER BY nur für SELECT Abfragen gilt. Sie müssen eine Bindung für die Eigenschaft erstellen, die Sie für die Bestellung verwenden möchten.

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

Update: Wenn Sie nicht bereits das Erstellungsdatum zu speichern, müssen Sie die Metadaten selbst speichern. Wie tun, das zu tun, haben Sie ein paar Optionen:

  1. Shop eine dreifache in Ihrem Standard-Diagramm, das das Erstellungsdatum für jedes Thema hat. Wenn Sie mehr als eine Grafik speichern, wird dies sehr schnell unhandlich und ist wahrscheinlich nicht das, was Sie wollen.

  2. Speichern Sie jeden Graphen als benannten Graphen in Ihrem RDF-Tripelspeicher. Sie können dann Metadaten für jedes Diagramm im Standarddiagramm oder in einem "gemeinsamen" benannten Diagramm für die Erstellungszeiten speichern.

  3. Speichern Sie Ihre Daten im benannten Diagramm und verwenden Sie ein benanntes Diagramm, um die Metadaten für die Erstellung zu speichern.

Ein Beispiel wäre SPARQL Abfrage Option # 2 sein:

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

gibt es kein solches Prädikat :( – cupakob

+0

@Sirakov Richtig, Sie müssen füllen, was auch immer Prädikat für Ihr Dataset geeignet ist. –

+0

Ich meine, es gibt kein Objekt in meinem Dataset, das das Datum enthält. .jedoch gibt es kein solches Prädikat :) – cupakob

3

Da Sie Sie das Erstellungsdatum in Ihrem RDF dann einen möglichen Mechanismus, dies zu tun nicht wirklich speichern Sie gesagt haben würde Spezifisch für die von Ihnen verwendete SPARQL-Implementierung und den unterstützenden RDF-Speicher oder was auch immer. Es ist sehr wahrscheinlich, dass es einfach nicht möglich ist.

Verwandte Themen