PREFIX arg: PREFIX foaf: PREFIX v: PREFIX vivo: CONSTRUCT { ?vcard v:hasName _:name . _:name a v:Name . _:name v:givenName ?firstName . _:name vivo:middleName ?middleName . _:name v:familyName ?lastName . } WHERE { ?s arg:ARG_2000028 ?vcard . OPTIONAL { ?s foaf:firstName ?firstName . BIND("yes" as ?test) } OPTIONAL { ?s foaf:lastName ?lastName . BIND("yes" as ?test) } OPTIONAL { ?s vivo:middleName ?middleName BIND("yes" as ?test) } FILTER(bound(?test)) }