2015-05-05 52 views
0

我需要從本體中的個人獲取屬性值。從個人SPARQL中選擇屬性

我該怎麼辦?

我有這段代碼,但我必須過濾,因爲我需要某個人。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
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 oc: <http://localhost:8080/OntoSakaiWS/OntoCompetence.owl#> 
SELECT distinct ?x ?value 
    WHERE { 
    ?x a oc:Asignatura. 
    ?x oc:nombre ?value. 

} 
+0

你是什麼意思的財產價值?數據屬性的值? – Artemis

+0

是的,在這種情況下,oc:nombre的值。 – LokiNkc

+0

該查詢應該會產生一個結果。有什麼問題,你不想過濾? – Artemis

回答

1

您的查詢應該完美地工作。我會舉例說明如何從family tree ontology中提取某個人。

想象一下,您希望獲得關於特定人員的所有信息,比如說herbert_vincent_jessop_1871。有兩種方法,第一,以獲取所有信息,然後將其過濾根據您的個人:

prefix : <http://www.co-ode.org/roberts/family-tree.owl#> 
SELECT distinct * 
WHERE { 
?s a ?o. 
?s ?p ?x. 
filter (?s=:herbert_vincent_jessop_1871) 
} 

或者,只是在查詢定義實例:

prefix : <http://www.co-ode.org/roberts/family-tree.owl#> 
SELECT distinct * 
WHERE { 
:herbert_vincent_jessop_1871 a ?o. 
:herbert_vincent_jessop_1871 ?p ?x. 
} 

他們都將產生相同的結果。

+0

謝謝,你救了我的一天。這正是我需要的。 – LokiNkc