private Element convertURL(GKInstance publication,
                               BioPAXOWLIDGenerator idGenerator,
                               String id,
                               Namespace bpNS,
                               Namespace rdfNS,
                               Element rootElm) throws Exception {
        if (id == null) {
            id = idGenerator.generateOWLID(PublicationXref);
        }
        Element pubXrefIndividual = ReactomeToBioPAXUtilities.createIndividualElm(PublicationXref,
                                                                                  id,
                                                                                  bpNS,
                                                                                  rdfNS,
                                                                                  rootElm);
        String url = (String) publication.getAttributeValue(ReactomeJavaConstants.uniformResourceLocator);
        if (url != null) {
            // ID is a String in BioPAX. Need to convert to String.
            ReactomeToBioPAXUtilities.createDataPropElm(pubXrefIndividual,
                                                        this.url,
                                                        this.XSD_STRING,
                                                        url,
                                                        bpNS,
                                                        rdfNS);
        }
        // Title
        String title = (String) publication.getAttributeValue(ReactomeJavaConstants.title);
        if (title != null) {
            ReactomeToBioPAXUtilities.createDataPropElm(pubXrefIndividual,
                                                        this.title,
                                                        this.XSD_STRING,
                                                        title,
                                                        bpNS,
                                                        rdfNS);
        }
        // Authors
        List<?> authors = publication.getAttributeValuesList(ReactomeJavaConstants.author);
        if (authors != null && authors.size() > 0) {
            // Two persons might have the same display name. E.g. pmid: 15070733.
            List<String> names = new ArrayList<String>();
            for (Iterator<?> it = authors.iterator(); it.hasNext();) {
                GKInstance person = (GKInstance) it.next();
                String displayName = person.getDisplayName();
                if (displayName == null)
                    displayName = person.toString();
                //if (person.getDisplayName() == null) {
                //    System.out.println("Person has null displayName: " + person.toString());
                //    continue;
                //}
                names.add(displayName);
            }
            ReactomeToBioPAXUtilities.createDataPropElm(pubXrefIndividual,
                                                        this.author,
                                                        this.XSD_STRING,
                                                        names,
                                                        bpNS,
                                                        rdfNS);
        }
        return pubXrefIndividual;
    }