2016-07-28 12 views
1

Ich versuche, nur englische Werte und wahrscheinlich ganze Zahlen aus dbpedia abzurufen. Zum Beispiel die folgende SPARQL-AbfrageErhalte nur englische Werte und ganze Zahlen von dbpedia

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
PREFIX dc: <http://purl.org/dc/elements/1.1/> 
PREFIX dbr: <http://dbpedia.org/resource/> 
PREFIX dbpedia2: <http://dbpedia.org/property/> 
PREFIX dbpedia: <http://dbpedia.org/> 
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
select distinct ?p ?o where { 
dbr:Cristiano_Ronaldo ?p ?o 
filter(langMatches(lang(?o),'en'))} 
} 

Es gibt die englischen Werte korrekt zurück. Es wurden jedoch wichtige Details wie Geburtsdatum, Höhe, Anzahl der Obergrenzen usw. verpasst, da es sich um eine Ganzzahl handelt. Wie kann man eine RDF-Ergebnismenge erstellen, die aus einer richtigen Menge von Informationen über Cristiano Ronaldo besteht?

Antwort

2
PREFIX dbr: <http://dbpedia.org/resource/> 
SELECT DISTINCT ?p ?o where { 
    dbr:Cristiano_Ronaldo ?p ?o 
    BIND(datatype(?o) as ?dt) 
    FILTER(IF(isliteral(?o) && !bound(?dt), langMatches(lang(?o),'en'), true)) 
} 
+0

Dies gibt mir die gesamte RDF. Nichts wird herausgefiltert. – starry

+0

Ah, Entschuldigung. Besser jetzt? Es gibt alles zurück, aber für String-Literale nur englische. – AKSW

Verwandte Themen