def _create_authored(publication_element, researcher_object):
    """
    Takes an XML publication element lifted from a Symplectic User file
    (which does not contain as much info about each
    publication/biblio-record as a proper publication XML file)

    extracts the minimum info (key-fields: guid) about publication, and
    links publication to researcher extracts the minimum info (key-fields:
    data-source) about indicated favourite biblio-record for that
    publication and links biblio-record to researcher extracts full
    preferences (visible, favourite, sort-order) that researcher has for
    that publication

    NOTE: an attempt is made to load an existing publication/biblio-record
    based on the key-fields extracted if that fails then a new one is
    created with only the key-fields populated and is then saved
    """
    #++++++PUBLICATION LITE++++++
    #check publication Element
    if publication_element is None:
        return
    #publication guid
    if publication_element is not None:
        guid = publication_element.get('id', '')
    if guid == '':
        return

    # load Publication from db or create (flagged as needing refetch from
    # symplectic) if doesnt exist
    publication_object = Publication.getOrCreatePublication(guid)

    # ++++++BIBLIOGRAPHICRECORD LITE++++++
    # bibliographic-record element -> publication sub element (used to
    # read XML)
    if publication_element is not None:
    # only ONE biblio element per publication will be returned when querying
    # by User_id this is in contrast to the multiple biblios elements per
    # publication returned when querying by a Publication_guid
        biblio_element = publication_element.find(
            SYMPLECTIC_NAMESPACE + 'bibliographic-record'
            )
    #biblio data-source
    if biblio_element is not None:
        data_source = biblio_element.get('data-source', '')

    # load BibliographicRecord from db or create if doesnt exist (NB
    # links biblio & publication)

    # print "        going to get or create a BibliographicRecord"
    biblio_object = BibliographicRecord.getOrCreateBibliographicRecord(
        publication_object, data_source
        )

    # ++++++AUTHORED++++++
    # authored preferences -> publication sub-elements (used to read XML)
    if publication_element is not None:
        preferences_element = publication_element.find(
            SYMPLECTIC_NAMESPACE + 'preferences-for-this-publication'
            )
    # load Authored from db or create if doesnt exist (NB links authored
    # & publication & researcher & bibliographic-record)
    authored_object = Authored.getOrCreateAuthored(
        publication_object, researcher_object, biblio_object
        )
    # preferences
    if preferences_element is not None:
        # Show this publication
        if preferences_element.get('visible', 'false') == 'true':
            authored_object.visible = True
        else:
            authored_object.visible = False
        # Favourite publication
        if preferences_element.get('is-a-favourite', 'false') == 'true':
            authored_object.is_a_favourite = True
        else:
            authored_object.is_a_favourite = False
        # Display order
        authored_object.reverse_sort_cue = preferences_element.get(
            'reverse-sort-cue', ''
            )

    authored_object.save()