죄송합니다. 영어가 좋지 않지만, 모국어로이 질문을 할 수있는 곳이 없습니다. 를 들어,Wikidata 쿼리 중복
SELECT DISTINCT ?item ?itemLabel ?author ?name ?creation ?picture
WHERE
{
?item wdt:P136 wd:Q193606 . # book
?item wdt:P50 ?author . # author
?item wdt:P577 ?creation .
?item wdt:P577 ?end .
?author rdfs:label ?name .
OPTIONAL{ ?item wdt:P18 ?picture }
FILTER (?creation >= "1925-01-01T00:00:00Z"^^xsd:dateTime) .
FILTER (?end <= "1950-12-31T23:59:59Z"^^xsd:dateTime) .
SERVICE wikibase:label
{
bd:serviceParam wikibase:language "en" .
}
}
그러나 : 가능한 경우 나는 사진, 1,925-1,950년에서 만든 모든 공포 소설, 저자의 이름 목록을 작성해야 위키 데이터에 대한 SPARQL 쿼리를 만들려고하고 있었어요 어떤 이유로이 쿼리가 목록에 중복을 배치합니다. DISTINCT는별로하지 않습니다. 잠시 후 그 이유는 "? item rdfs : label? name."입니다. 이 줄이 제거되면 중복 된 항목이 나열되지 않습니다. 하지만 목록에 저자명을 표시하려면이 줄이 필요합니다! 문제를 해결하는 방법에 대한 아이디어가 있으십니까?
어 - 오, 내 실수. 이 줄은'? author rdfs : label? name .'이어야합니다. 저자의 이름이 없어도 그냥 링크 만 있습니다. 제대로 작동하려면 어떻게해야합니까? – Dusk
그러면 'SELECT? authorLabel'도 필요합니다. – maxlath
이 작동했습니다. 너무 단순하지만 아직 혼자 생각하지 못했을 것입니다. 고마워요! – Dusk