Объединение свойств ресурса, если они существуют в SPARQL - PullRequest
0 голосов
/ 31 января 2019

Предполагая, что у меня есть тройное хранилище, где некоторые ресурсы представляют людей таким образом:

<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).
  }

1 Ответ

0 голосов
/ 31 января 2019

Да.У вас нет запроса здесь, поэтому его сложно настроить.Базовым было бы что-то вроде -

SELECT DISTINCT ?firstName 
                ?family_name
                ( CONCAT ( ?firstName, " ", ?family_name ) AS ?fullname ) 
WHERE
  {            ?person  a                 foaf:Person  ;
                        foaf:firstName    ?firstName   .
    OPTIONAL { ?person  foaf:family_name  ?family_name . } 
  }

- которое вы можете увидеть в режиме реального времени через Virtuoso, на URIBurner.com ( ссылка на запрос и прямая ссылка на результаты).

...