PREFIX vivo: <http://vivoweb.org/ontology/core#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

CONSTRUCT {
    ?person <http://purl.obolibrary.org/obo/RO_0000053> _:memberRole .
    _:memberRole <http://purl.obolibrary.org/obo/RO_0000052> ?person .
    _:memberRole a vivo:MemberRole .
    _:memberRole vivo:roleContributesTo ?org .
    ?org vivo:contributingRole _:memberRole .
} WHERE {
     {  ?person vivo:currentMemberOf ?org }
       UNION
     { ?org vivo:hasCurrentMember ?person
       FILTER NOT EXISTS { ?person vivo:currentMemberOf ?org }
     }
     FILTER NOT EXISTS {
         ?person <http://purl.obolibrary.org/obo/RO_0000053> ?memberRoleNode .
         ?memberRoleNode vivo:roleContributesTo ?org .
     }
}
