private ElectoralIncumbency generateIncumbency(XElement contactPointElement)
        {
            ElectoralIncumbency incumbency = null;
            string incumbencyCommand       = @"
        construct {
            ?id a parl:ParliamentaryIncumbency.
        }
        where {
            ?id parl:parliamentaryIncumbencyHasMember ?parliamentaryIncumbencyHasMember;
                parl:parliamentaryIncumbencyStartDate ?parliamentaryIncumbencyStartDate.
            ?parliamentaryIncumbencyHasMember parl:memberMnisId @memberMnisId.
        } order by desc(?parliamentaryIncumbencyStartDate) limit 1";
            Uri    incumbencyUri;

            string mnisId = contactPointElement.Element(d + "Member_Id").GetText();

            if (string.IsNullOrWhiteSpace(mnisId))
            {
                logger.Warning("No member info found");
                return(null);
            }
            SparqlParameterizedString incumbencySparql = new SparqlParameterizedString(incumbencyCommand);

            incumbencySparql.Namespaces.AddNamespace("parl", new Uri(schemaNamespace));
            incumbencySparql.SetLiteral("memberMnisId", mnisId);
            incumbencyUri = IdRetrieval.GetSubject(incumbencySparql.ToString(), false, logger);
            if (incumbencyUri != null)
            {
                incumbency = new ElectoralIncumbency()
                {
                    Id = incumbencyUri
                }
            }
            ;
            else
            {
                logger.Verbose("No contact found");
            }

            return(incumbency);
        }
        public override BaseResource[] TransformSource(XDocument doc)
        {
            MnisContactPoint contactPoint        = new MnisContactPoint();
            XElement         contactPointElement = doc.Element(atom + "entry")
                                                   .Element(atom + "content")
                                                   .Element(m + "properties");

            contactPoint.ContactPointMnisId = contactPointElement.Element(d + "MemberAddress_Id").GetText();
            contactPoint.Email       = contactPointElement.Element(d + "Email").GetText();
            contactPoint.FaxNumber   = contactPointElement.Element(d + "Fax").GetText();
            contactPoint.PhoneNumber = contactPointElement.Element(d + "Phone").GetText();
            contactPoint.ContactPointHasPostalAddress = GeneratePostalAddress(contactPointElement);
            ElectoralIncumbency incumbency = generateIncumbency(contactPointElement);

            if (incumbency != null)
            {
                contactPoint.ContactPointHasElectoralIncumbency = new ElectoralIncumbency[] { incumbency }
            }
            ;

            return(new BaseResource[] { contactPoint });
        }