2016-07-11 26 views
-2

Mein Ziel: Haben Sie eine Liste der Smartphones von DBpedia mit Herstellern verbunden.

Beispiel:
Iphone 6 | Apple
Samsung Galaxy S6 | Samsung
Iphone 5 | Apple
Sony Xperia Z5 | Sony

Was ich getan habe: Ich denke, dass es eine Union Abfrage wäre. So als ersten Schritt habe ich versucht, alle Smartphone-Liste zu bekommen, und ich konnte mit dieser Abfrage:Struggling mit einer SPARQL-Abfrage über DBpedia

SELECT ?phone 
where {?phone <http://dbpedia.org/property/type> <http://dbpedia.org/resource/Smartphone>} 

Allerdings habe ich nicht erfolgreich sein bekommen die Liste herstellt. Ich habe diese Abfrage versucht, um den Hersteller des Iphone 6 zu bekommen. Aber es hat nicht funktioniert.

SELECT ?Manufacturer 
where {?Manufacturer <http://dbpedia.org/property/manufacturer> <http://dbpedia.org/resource/Smartphone>} 
+0

Dies sollte ha Unter http://stackoverflow.com/questions/38171909/a-simlpe-sparql-query-over-dbpedia-and-using-python haben Sie eine Ihrer früheren Fragen bearbeitet. –

+0

Richtig, ich dachte das gleiche, als ich das hier sah, aber irgendwie ging mein Kommentar verloren. @Amir Ladhar: Können Sie uns den Grund geben, einen neuen Account zu erstellen und eine - in gewissem Umfang - damit zusammenhängende Frage an Ihren früheren Account zu stellen? Und wäre es nicht sinnvoll, auf die Kommentare und/oder Fragen der Leute zu antworten? – AKSW

+0

Übrigens, was Sie "probiert" haben, ist etwas, was ich Ihnen gezeigt habe, also wäre es schön, darauf zu verweisen ... – AKSW

Antwort

1
?phone dbp:type dbr:Smartphone 

Diese dreifache etwa bedeutet: "die type von ?phone ist Smartphone". Das macht Sinn, also bekommst du, was du willst.

?manufacturer dbp:manufacturer dbr:Smartphone 

Diese dreifache bedeutet: "die manufacturer von ?manufacturer ist Smartphone". Das macht keinen Sinn, Smartphone ist nicht etwas, das ein Hersteller sein kann. Deshalb erhalten Sie keine Ergebnisse.

Was Sie wollen, ist:

  • die type von ?phone ist Smartphone
  • die manufacturer von ?phone ist ?manufacturer

In SPARQL:

SELECT * 
WHERE { 
    ?phone dbp:type dbr:Smartphone. 
    ?phone dbp:manufacturer ?manufacturer. 
} 
+0

Danke, das ist perfekt –