Auswählen einiger eindeutiger und einiger nicht unterschiedlicher Tags in SPARQL

8

Ich versuche DBPedia nach einer Liste von Eigenschaften zu fragen, die sich auf eine bestimmte Klasse in der Ontologie beziehen, aber da die lesbaren "Etiketten" nicht immer klar sind, möchte ich auch ein Beispiel aus der Datenbank. Das Problem ist, dass, während ich alle verschiedenen Eigenschaften auswählen möchte, ich nur ein einzelnes Beispiel für jede Eigenschaft möchte. Hier ist , wie meine Abfrage aussieht, ohne das Beispiel zu erfassen:

%Vor%

Wenn ich es in Auf diese Weise bekomme ich doppelte Werte für? Prop:

%Vor%

Ich bin sehr neu im Umgang mit SPARQL und Datenbankabfragen, daher ist es für mich überhaupt nicht klar, wie das geht. Idealerweise hätte ich etwas wie DISTINCT (? Prop)? Title? Beispiel, das jeden eindeutigen Wert für prop auswählt und seinen Titel und ein Beispiel zurückgibt.

    
Paul 22.03.2011, 18:29
quelle

2 Antworten

6

In Ihren zweiten Abfragen gilt das distinct für die Kombination der Werte von ?prop ?title und ?example . Daher erhalten Sie keine Duplikate, beispielsweise für die folgenden zwei Zeilen, die in der zweiten Abfrage erhalten wurden:

%Vor%

Sie sind keine Duplikate, weil die dritte Zeile ?example zwei verschiedene Werte "cent"@en und "centavo"@en

hat

Ein möglicher Weg, dies zu lösen, ist die Verwendung von GROUP BY und MIN , um nur den niedrigsten Wert für ?label und ?example zu erhalten, d. h .:

%Vor%     
Manuel Salvadores 22.03.2011, 21:15
quelle
4

Hier ist ein alternativer Weg, um das zu erreichen, was Sie mit Unterabfragen erreichen wollen:

%Vor%

Dies hat den Vorteil, dass es SPARQL 1.1-konform ist, da ich in meinem Kommentar angegeben habe, dass die Anordnung eines Aggregats vom Standard nicht erlaubt ist. Sie verwenden also eine herstellerspezifische Erweiterung, die die Portabilität Ihrer Anfrage einschränkt. p>

Wenn Sie nach einem aggregierten Wert auf eine Weise sortieren möchten, die über SPARQL 1.1-Implementierungen hinweg portierbar ist, müssen Sie es zuerst wie folgt projizieren:

%Vor%     
RobV 23.03.2011 08:55
quelle

Tags und Links