2017-03-10 13 views
1

Übersetzen Ich lerne Datenbank-Management. Eine Aufgabe besteht darin, SPARQL-Abfragen manuell konvertieren zu können. Ich war verwirrt über die FROM Klausel in Abfragen und wie man sie identifiziert.SPARQL-Abfrage in SQL-Abfrage

In der Abfrage unten SELECT ist einfach, aber was bestimmt die FROM und WHERE Klausel.

Database Format: Triples(s text, p text, o text)

PREFIX dbr: <http://dbpedia.org/resource/> PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT ?place 
WHERE { 

    dbr:Lionel_Messi dbo:birthPlace ?place 
} 

Mein Verständnis:

SELECT dbo:birthPlace 
FROM dbr:Lionel_Messi 

Danke

Antwort

1

, die an das Datenbankschema hängt ein für die Tripel (s p o) speichern entscheidet. Die häufigsten und am einfachsten diejenigen sind

  1. eine einzige Tabelle mit Spalten für s, p und o.
  2. Eigenschaftstabellen, dh eine Tabelle für jede Eigenschaft p mit Spalten s und o

Für Option 1, die Abfrage wie

SELECT T.o 
FROM triples T 
WHERE T.s = "dbr:Lionel_Messi" AND T.p = "dbo:birthPlace" 

Für Option 2 aussehen könnte, könnte es etwas sein, wie

SELECT T.o 
FROM dbo:birthPlace T 
WHERE T.s = "dbr:Lionel_Messi" 

Beachten Sie, dass ich Show bin eine Benennungskonvention von Tabellen und eine Präfixauflösung würde durchgeführt werden müssen, wenn die Tabellen erzeugt und die Daten geladen werden (z.B. Speichern voller URIs)