Muszę uzyskać wartość własności od osoby w ontologii.
Jak mogę to zrobić?
Mam ten kod, ale muszę filtrować, ponieważ potrzebuję konkretnej osoby.
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.
}
Odpowiedzi:
1 dla odpowiedzi № 1Twoje zapytanie powinno działać idealnie. Dam ci przykład, w jaki sposób możesz wyodrębnić konkretną osobę w ontologia drzewa genealogicznego.
Wyobraź sobie, że chcesz uzyskać wszystkie informacje o konkretnej osobie, powiedzmy herbert_vincent_jessop_1871
. Istnieją dwa sposoby, aby najpierw pobrać wszystkie informacje, a następnie przefiltrować je w oparciu o Twoją osobę:
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)
}
Lub po prostu zdefiniuj instancję w zapytaniu:
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.
}
Oba przyniosą ten sam rezultat.