i made sparql query using official dbpedia endpoint.
i'll take example main question:
select ?museum ?englishabstract ?russianabstract { ?museum dbpedia-owl:abstract ?englishabstract. ?museum dbpedia-owl:museum. filter(lang(?englishabstract)='en') optional{ ?museum dbpedia-owl:abstract ?russianabstract. ?museum dbpedia-owl:museum. filter(lang(?russianabstract)='ru') }} group ?museum with query (that works good), find every row (museum) bunch of abstract in 2 languages: english , russian. russian abstracts present if available because use "optional". lot of empty attributes.
i replace blank attribute english abstract (always present).
reading w3c sparql page, found there particular testing value true when variable set: bound
i write this:
if bound (?russianabstract), "?russianabstract", "?englishabstract" --> if russianabstract present, hold it; else, put englishabstract instead of it.
does know how can make work?
one way use coalesce:
select ?museum (coalesce(?russianabstract, ?englishabstract) ?abstract)
Comments
Post a Comment