def calculate_musicbrainz_works_and_recordings_by_id(id, author, output_file):

    try:
#        query_work = MUSICBRAINZ_API_URL + 'artist/' + id + '?inc=aliases%20works%20recordings&fmt=json'
        query_work = MUSICBRAINZ_API_URL + 'work?artist=' + id + '&inc=aliases&fmt=json'
        print 'query compositions:', query_work
        work_response = common.process_http_query(query_work)
        print 'musicbrainz composition:', work_response
        musicbrainz_composition_response_json = json.loads(work_response.content)
#        works_count = len(musicbrainz_composition_response_json[common.WORKS_JSON])
        compositions_count = str(musicbrainz_composition_response_json[common.WORK_COUNT_JSON])
        #recordings_count = len(musicbrainz_composition_response_json[common.RECORDINGS_JSON])
        #compositions_count = works_count + recordings_count
        print 'musicbrainz #composition:', compositions_count
        values = [
            id
            , common.toByteStr(author)
            , str(compositions_count)
        ]

        entry = dict(zip(common.musicbrainz_compositions_count_fieldnames, values))
        with open(output_file, 'ab') as csvfile:
            writer = csv.DictWriter(csvfile, delimiter=';', fieldnames=common.musicbrainz_compositions_count_fieldnames, lineterminator='\n')
            writer.writerow(entry)
    except ValueError as ve:
        print 'Could not find JSON for given Musicbrainz composition.', id, ve.message
    except Exception as e:
        print 'Could not find Musicbrainz composition.', id, e.message

    return work_response
Example #2
0
def retrieve_wikidata_author_id(gnd):

    query = WIKIDATA_API_URL + 'string[' + str(GND_ID_PROP) + ':' + gnd + ']'
    print 'query:', query
    wikidata_author_id_response = common.process_http_query(query)
    print 'response content:', wikidata_author_id_response.content
    return wikidata_author_id_response
Example #3
0
def retrieve_wikidata_author_id(gnd):

    query = TMP_WIKIDATA_API_URL + 'string[' + str(GND_ID_PROP) + ':' + gnd + ']'
    print 'query:', query
    wikidata_author_id_response = common.process_http_query(query)
    print 'response content:', wikidata_author_id_response.content
    return wikidata_author_id_response
Example #4
0
def retrieve_wikidata_property(property_id):

    query_property = WIKIDATA_API_ACTION + 'wbgetentities&ids=P' + str(property_id) + FORMAT_JSON
    print 'query property:', query_property
    response_json = common.process_http_query(query_property)
    print 'json data:', response_json
    return response_json
Example #5
0
def retrieve_wikidata_occupation(wikidata_occupation_id):

    query_occupation = WIKIDATA_API_URL + str(wikidata_occupation_id) + LANGUAGE_EN + FORMAT_JSON
    print 'query occupation:', query_occupation
    occupation_response_json = common.process_http_query(query_occupation)
    print 'occupation json data:', occupation_response_json
    return occupation_response_json
Example #6
0
def retrieve_wikidata_author_data(wikidata_author_id):

    query_author = WIKIDATA_API_URL + str(wikidata_author_id) + LANGUAGE_EN + FORMAT_JSON
    print 'query author:', query_author
    author_response_json = common.process_http_query(query_author)
    print 'author json data:', author_response_json
    return author_response_json
Example #7
0
def retrieve_wikidata_object_by_internet_archive_id(internet_archive_id):

    query = WIKIDATA_API_URL + 'string[' + str(
        INTERNET_ARCHIVE_ID_PROP) + ':' + internet_archive_id + ']'
    print 'query wikidata object:', query
    wikidata_object_response = common.process_http_query(query)
    print 'response wikidata object content:', wikidata_object_response.content
    return wikidata_object_response
Example #8
0
def retrieve_wikidata_composition_by_freebase_id(freebase_id):

    query = WIKIDATA_API_URL + 'string[' + str(
        FREEBASE_ID_PROP) + ':' + freebase_id + ']'
    print 'query wikidata composition:', query
    wikidata_composition_response = common.process_http_query(query)
    print 'response wikidata composition content:', wikidata_composition_response.content
    return wikidata_composition_response
Example #9
0
def retrieve_wikidata_author_data(wikidata_author_id):

    query_author = WIKIDATA_API_URL + str(
        wikidata_author_id) + LANGUAGE_EN + FORMAT_JSON
    print 'query author:', query_author
    author_response_json = common.process_http_query(query_author)
    print 'author json data:', author_response_json
    return author_response_json
Example #10
0
def search_europeana_facets():

    europeana_response = common.process_http_query(EUROPEANA_COLLECTION_URL)
    print 'response content:', europeana_response.content
    europeana_response_json = europeana_response.json()
    # facets -> fields -> label
    labels = extract_and_save_label_data(europeana_response_json)
    print 'labels len', len(labels)
Example #11
0
def retrieve_wikidata_occupation(wikidata_occupation_id):

    query_occupation = WIKIDATA_API_URL + ITEMS_JSON + '[' + str(wikidata_occupation_id) + ']&' + \
                   PROPS_JSON + '=' + str(COMMONS_CATEGORY_PROP)
    print 'query occupation:', query_occupation
    occupation_response_json = common.process_http_query(query_occupation)
    print 'occupation json data:', occupation_response_json
    return occupation_response_json
Example #12
0
def retrieve_wikidata_author_data(wikidata_author_id):

    query_author = WIKIDATA_API_URL + ITEMS_JSON + '[' + str(wikidata_author_id) + ']&' + \
                   PROPS_JSON + '=' + ", ".join(str(e) for e in properties)
    print 'query author:', query_author
    author_response_json = common.process_http_query(query_author)
    print 'author json data:', author_response_json
    return author_response_json
Example #13
0
def retrieve_wikidata_band_data(wikidata_band_id):

    query_band = WIKIDATA_API_URL + ITEMS_JSON + '[' + str(wikidata_band_id) + ']&' + \
                   PROPS_JSON + '=*'
    print 'query band:', query_band
    band_response_json = common.process_http_query(query_band)
    print 'band json data:', band_response_json
    return band_response_json
Example #14
0
def retrieve_wikidata_property(property_id):

    query_property = WIKIDATA_API_ACTION + 'wbgetentities&ids=P' + str(
        property_id) + FORMAT_JSON
    print 'query property:', query_property
    response_json = common.process_http_query(query_property)
    print 'json data:', response_json
    return response_json
Example #15
0
def retrieve_wikidata_occupation(wikidata_occupation_id):

    query_occupation = WIKIDATA_API_URL + str(
        wikidata_occupation_id) + LANGUAGE_EN + FORMAT_JSON
    print 'query occupation:', query_occupation
    occupation_response_json = common.process_http_query(query_occupation)
    print 'occupation json data:', occupation_response_json
    return occupation_response_json
Example #16
0
def retrieve_wikidata_composition_by_musicbrainz_id(musicbrainz_id):

    query = WIKIDATA_API_URL + 'string[' + str(
        MUSICBRAINZ_COMPOSITION_ID_PROP) + ':' + musicbrainz_id + ']'
    print 'query wikidata composition:', query
    wikidata_composition_response = common.process_http_query(query)
    print 'response wikidata composition content:', wikidata_composition_response.content
    return wikidata_composition_response
Example #17
0
def retrieve_viaf_compositions_by_id(viaf_id):

    query_composition = VIAF_API_URL + str(viaf_id) + '/viaf.xml'
    print 'query composition:', query_composition
    composition_response = common.process_http_query(query_composition)
    print 'viaf composition:', composition_response
    if composition_response.content:
        common.write_xml_file(VIAF_COMPOSITION_DIR, str(viaf_id), composition_response.content)
    return composition_response
Example #18
0
def retrieve_viaf_compositions_by_author_id(author_name, viaf_id, outputfile):

    query_author = VIAF_API_URL + str(viaf_id) + '/viaf.xml'
    print 'query author:', query_author
    author_response = common.process_http_query(query_author)
    print 'viaf author:', author_response
    if author_response.content:
        root = ET.fromstring(author_response.content)
        parse_response(author_name, viaf_id, root, outputfile)
        common.write_xml_file(VIAF_AUTHOR_DIR, str(viaf_id), author_response.content)
    return author_response
Example #19
0
def retrieve_wikidata_composition_viaf_id_by_wikidata_id(
        wikidata_composition_id):

    composition_response_json = None
    try:
        query_composition = WIKIDATA_API_URL + ITEMS_JSON + '[' + str(wikidata_composition_id) + ']&' + \
                       PROPS_JSON + '=' + str(VIAF_ID_PROP)
        print 'query composition:', query_composition
        composition_response_json = common.process_http_query(
            query_composition)
    except:
        print 'No VIAF id found for composition ID:', wikidata_composition_id
    print 'composition json data:', composition_response_json
    return composition_response_json
def retrieve_musicbrainz_works_and_recordings_by_id(id, author, output_works, output_recordings):

    try:
        query_work = MUSICBRAINZ_API_URL + 'artist/' + id + '?inc=aliases%20works%20recordings&fmt=json'
#        query_work = MUSICBRAINZ_API_URL + 'artist/' + id + '?inc=aliases%20works%20recordings&client=apikey&fmt=json'
#http://api.acoustid.org/v2/lookup?client=ULjKruIg&meta=recordings+releasegroups+compress&duration=641&fingerprint=AQABz0qUkZK4oOfhL-CPc4e5C_wW2H2QH9uDL4cvoT8UNQ-eHtsE8cceeFJx-LiiHT-aPzhxoc-Opj_eI5d2hOFyMJRzfDk-QSsu7fBxqZDMHcfxPfDIoPWxv9C1o3y
        query_work = MUSICBRAINZ_API_URL + 'artist/' + id + '?inc=aliases%20works%20recordings&client=apikey&fmt=json'
        print 'query work:', query_work
        work_response = common.process_http_query(query_work)
        print 'musicbrainz composition:', work_response
        musicbrainz_composition_response_json = json.loads(work_response.content)
        retrieve_compositions(musicbrainz_composition_response_json[common.WORKS_JSON], author, output_works, MUSICBRAINZ_WORKS_DIR)
        retrieve_compositions(musicbrainz_composition_response_json[common.RECORDINGS_JSON], author, output_recordings, MUSICBRAINZ_RECORDINGS_DIR)
    except ValueError as ve:
        print 'Could not find JSON for given Musicbrainz composition.', id, ve.message
    except Exception as e:
        print 'Could not find Musicbrainz composition.', id, e.message

    return work_response
def retrieve_musicbrainz_compositions_by_title(composition_title, viaf_id):

    try:
        query_work = MUSICBRAINZ_API_URL + 'work/?query=' + composition_title + '&fmt=json'
        print 'query work:', query_work
        work_response = common.process_http_query(query_work)
        print 'musicbrainz composition:', work_response
        musicbrainz_composition_response_json = json.loads(work_response.content)
        works = musicbrainz_composition_response_json[common.WORKS_JSON]
        if len(works) > 0:
            json_data = works[0]
            musicbrainz_composition_id = json_data[common.ID_JSON]
            if str(musicbrainz_composition_id) + common.JSON_EXT not in os.listdir(MUSICBRAINZ_COMPOSITION_DIR):
                print 'musicbrainz_composition_id:', musicbrainz_composition_id
                store_musicbrainz_composition_data(musicbrainz_composition_id, json_data, MUSICBRAINZ_COMPOSITION_DIR)
                store_mapping_composition_viafid_musicbranzid(viaf_id, musicbrainz_composition_id)
    except ValueError as ve:
        print 'Could not find JSON for given Musicbrainz composition.', composition_title, ve.message
    except Exception as e:
        print 'Could not find Musicbrainz composition.', composition_title, e.message

    return work_response
Example #22
0
def search_europeana_facets(url):

    print 'search Europeana facets - url:', url
    europeana_response = common.process_http_query(url)
    print 'response content:', europeana_response.content
    return europeana_response