PREFIX arg: PREFIX foaf: PREFIX v: PREFIX vivo: PREFIX bibo: CONSTRUCT { ?vcard v:hasName _:name . _:name a v:Name . _:name v:givenName ?firstName . _:name vivo:middleName ?middleName . _:name v:familyName ?lastName . _:name v:honorificPrefix ?prefix . _:name v:honorificSuffix ?suffix . } 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) } OPTIONAL { ?s bibo:prefixName ?prefix } OPTIONAL { ?s bibo:suffixName ?suffix } FILTER(bound(?test)) }