Ich versuche, die spezifischsten Eigenschaften für eine Klasse zu holen, und ich bin fest. Ich möchte alle Eigenschaften herausnehmen, die für eine bestimmte Klasse gelten (einschließlich der von Superklassen geerbten), außer diejenigen Eigenschaften, die Untereigenschaften in der Ergebnismenge haben.SPARQL: Get "am meisten spezifische Eigenschaft"
Zum Beispiel, wenn ich eine Klasse Bevölkerung mit einem seiner Eigenschaften ist atLocation, und eine Unterklasse von Bevölkerung genannt Flüchtlinge. Flüchtlinge hat eine Eigenschaft currentLocation, die eine Untereigenschaft von atLocation ist.
Also, was ich will, ist eine generische Abfrage, die mir nuratLocation geben würde, wenn ich in setzen Bevölkerung und nurCurrent wenn ich in Flüchtlinge setzen. Was ich habe, ist dies:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix ex: <http://example.org/vocabulary#>
SELECT DISTINCT ?prop WHERE {
ex:Refugee rdfs:subClassOf* ?domain .
?prop rdfs:domain ?domain .
?subprop rdfs:domain ?domain .
FILTER NOT EXISTS { ?subprop rdfs:subPropertyOf ?prop . }
} ORDER BY ?prop
Das gibt mir sowohl atLocationundCurrent, though.
Ist dies in einer Abfrage überhaupt möglich? Irgendwelche Ideen, wie man das löst, werden geschätzt!
Gleiche Frage auch geschrieben (und beantwortet) auf W3C Sparql-dev Mailingliste, siehe http://lists.w3.org/Archives/Public/public-sparql-dev/2012JulSep/0017.html –