ist ich geschrieben habe, die folgende Abfrage:Nach Sprache filtern nur, wenn das Objekt eine wörtliche
SELECT DISTINCT
?predicate
?object
?label
WHERE {
VALUES ?subject { <http://dbpedia.org/resource/Hercules_(1997_film)> }
?subject ?predicate ?object .
?predicate rdfs:label ?label .
FILTER(langMatches(lang(?object), "EN"))
}
LIMIT 100
Wenn ich die FILTER
Linie auf diese Weise zu schreiben, habe ich im Wesentlichen alle Nicht-Literalen herausgefiltert (Seite Frage: sind Literale der einzige Typ, der eine Sprach-Tag haben kann)
Also, wie halte ich alle meine Ergebnisse und auszufiltern nicht-Englisch-Literale nur?
Im Allgemeinen funktioniert das, obwohl ich am Ende eine zweite Zeile 'FILTER' hinzufüge: eine Zeile bezieht sich auf'? Object' und eine andere bezieht sich auf '? Label'. – Kristian
@Kristian: Sie können das Schlüsselwort '' OPTIONAL' '(http://www.w3.org/TR/sparql11-query/#OptionalMatching) in Betracht ziehen, um alles zu überprüfen, was mit dem Label zu tun hat, wie in einigen Datasets, nicht Alle Ressourcen sind mit einem Label versehen. –
Ich werde, danke für den Vorschlag – Kristian