#sparql
Вопрос:
Со вчерашнего дня я не мог хотеть делать то, что я хочу, с этим запросом sparql.
Select ?poi ?takePlaceAt
WHERE {
?poi a :PointOfInterest;
:isLocatedAt ?place.
?poi dc:identifier ?dcIdentifier.
Optional {
?poi :takesPlaceAt ?takePlaceAt.
?takePlaceAt :startDate ?startDate.
?takePlaceAt :startTime ?startTime.
}
}
limit 100
takePlaceAt возвращает мне URL-адрес. Поэтому я должен перейти на уровень ниже, чтобы получить дату начала, дату окончания и т. Д.
Optional {
{ select ?poi (concat(group_concat(distinct ?takePlaceAt;SEPARATOR="#"),"##",group_concat(distinct ?startDate;SEPARATOR="#")) as ?types) where {
?poi :takesPlaceAt ?takePlaceAt.
?takePlaceAt :startDate ?startDate.
?takePlaceAt :startTime ?startTime.
} group by ?poi
}
}
}
и результат возвращается ко мне … ничего
Optional {
{ select ?poi (GROUP_CONCAT(DISTINCT ?resu< separator = " amp; ") as ?types) where {
?poi :takesPlaceAt ?takePlaceAt.
?takePlaceAt :startDate ?startDate.
?takePlaceAt :startTime ?startTime.
BIND(CONCAT(?takePlaceAt, " lives in ",?startDate) AS ?result)
} group by ?poi
}
}
}
Однако я не могу объединить.
Посмотреть, что takePlaceAt может содержать один или несколько URL-адресов, которые я хочу сделать:
url1 # startdate1 # startdate1 | url2 # startdate2 # startdate2 ..
Мне уже пришлось сделать некоторое объединение, но я не могу понять, почему я не могу сделать это с этим.
Не могли бы вы мне помочь, пожалуйста ?
большое спасибо