아래의 쿼리는 필터에 CONTAINS를 사용하지만 LCASE 값이 "donald trump"와 같은지 확인하는 경우 실패합니다).WikiData SPARQL 쿼리가 실패하고 CONTAINS가 작동해야합니다.
사용이 줄을, 그리고 그것을 작동합니다
필터 (? (LCASE (idLabel)를 포함, "도널드 트럼프")).
사용이 줄을, 그리고 실패
필터 (LCASE (idLabel) = "도널드 트럼프?").
가 작동하는 쿼리의 출력 idLabel = "도널드 트럼프"
SPARQL 쿼리 :
SELECT DISTINCT ?id ?idLabel ?PV WHERE {
?id wdt:P106 ?V0. VALUES ?V0 { wd:Q39631 } .
OPTIONAL {
?id rdfs:label ?idLabel .
FILTER(LANG(?idLabel) = 'en') .
} .
# Filter on Label
# WORKS:
FILTER(CONTAINS(LCASE(?idLabel), "donald trump")).
# DOES NOT WORK
#FILTER(LCASE(?idLabel) = "donald trump") .
# subselect on instance type
{
SELECT ?id WHERE {
?id wdt:P31/wdt:P279* ?PV . VALUES(?PV) {(wd:Q5) } .
}
} .
}
두 번째 옵션이 작동하지 않습니다 왜 내 질문은?
(그리고 그래, 나는 외과 의사 도널드 트럼프가 아닌 다른 사람을 찾고 있어요)
당신은 내 프리 킹의 영웅! – Andy