2017-05-08 10 views
-1

Was bedeutet der Stern in dieser SPARQL-Abfrage?Was bedeutet der Stern in dieser SPARQL-Abfrage?

SELECT ?uri ?type 
WHERE{ 
    ?uri a ?type. 
    ?type rdfs:subClassOf* example:Device. 
} 

Bedeutet es "Unterklasse einer Unterklasse"? Kann ich es mit anderen Prädikaten verwenden?

+1

Ehm, eine Frage von meiner Seite: Haben Sie meine Antwort auf Ihre erste Frage gelesen: http://stackoverflow.com/questions/43827050/what-does-a-mean-in-this-sparql-query. Dort habe ich Ihnen einen Link zu SPARQL 1.1 Property Paths gezeigt (https://www.w3.org/TR/sparql11-query/#propertypaths), oder? – AKSW

+0

Ja. Diese Referenz ist sehr gut. Darauf basierend denke ich, dass die Bedeutung "Unterklasse einer Unterklasse" ist. Ich versuche nur zu bestätigen. – Juan

+0

Nein, 'p *' ist die transitive Schließung der Eigenschaft 'p', in Ihrem Fall' p = rdfs: subClassOf' – AKSW

Antwort

1

Das Sternchen nach einem Vergleichselement bedeutet, dass Sie einem Eigenschaftenpfad mit null oder mehr Vorkommen von rdfs folgen möchten: subClassOf.

Ihr Ausdruck "Unterklasse einer Unterklasse" ist richtig, obwohl ich "Unterklassen von Unterklassen" sagen würde, weil der * Eigenschaftsweg rekursiv ist. Wie Sie aus dem technischen Dokument in AKSWs Kommentar entnehmen können, gibt es mehrere andere Property-Pfadoperatoren, die in beide Richtungen gehen, mit oder ohne Begrenzung der Anzahl (oder Tiefe).

Hier ist ein ziemlich gutes Beispiel von Marklogic ... Ich denke, das sollte innerhalb eines 1.1 Endpunktes funktionieren.

https://developer.marklogic.com/features/semantics/path-examples

Ja, das Eigentum Pfade gelten für alle Prädikat/Objekt, nicht nur rdfs: subClassOf.

1

Ein Stern (*) nach einem Pfadelement bedeutet "null oder mehr von diesem Element".

Wenn es keine anderen Elemente im Pfad gibt, bedeutet "etwas"? B, dass? B auch direkt "a" sein kann und keine Pfadelemente dazwischen enthalten.

?item wdt:P31/wdt:P279* ?class. 
# means: 
?item wdt:P31 ?class 
# or 
?item wdt:P31/wdt:P279 ?class 
# or 
?item wdt:P31/wdt:P279/wdt:P279 ?class 
# or 
?item wdt:P31/wdt:P279/wdt:P279/wdt:P279 ?class 

Wenn es keine anderen Elemente auf dem Weg sind,? Ein etwas? * B bedeutet das? B könnten Dich auch nur? Ein direkt, ohne Pfadelemente zwischen ihnen allen. Eine genauere Antwort finden Sie unter here.