Предполагая, что у меня есть тройное хранилище, где некоторые ресурсы представляют людей таким образом:
<http://natarchives.com.mt/person/person8755>
a foaf:Person ;
foaf:family_name "Calleja"@mt , "Calleya"@la ;
foaf:firstName "Nardus" .
<http://natarchives.com.mt/person/person3939>
a foaf:Person ;
foaf:firstName "Martinj" .
Как можно видеть, иногда у человека есть имя, но не фамилия.Можно ли получить одно полное имя столбца запроса SPARQL, которое состоит из имени и фамилии, если оно существует или только имя?
Просто на будущее я исправил это так:
SELECT DISTINCT ?firstName
?family_name
?name
WHERE
{ ?person a foaf:Person ;
foaf:firstName ?firstName .
OPTIONAL { ?person foaf:family_name ?family_name . }
bind ( COALESCE(?firstName, "") As ?firstName1).
bind ( COALESCE(?family_name, "") As ?family_name1).
bind (concat(str(?firstName1),str(?family_name1)) as ?name).
}