diff --git a/modules/bibrank/lib/bibrank_citation_searcher.py b/modules/bibrank/lib/bibrank_citation_searcher.py index 153cfba77..e0fe89963 100644 --- a/modules/bibrank/lib/bibrank_citation_searcher.py +++ b/modules/bibrank/lib/bibrank_citation_searcher.py @@ -1,106 +1,104 @@ -##document impact hit parade +## $Id$ ## This file is part of the CERN Document Server Software (CDSware). ## Copyright (C) 2002 CERN. ## ## The CDSware is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License as ## published by the Free Software Foundation; either version 2 of the ## License, or (at your option) any later version. ## ## The CDSware is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with CDSware; if not, write to the Free Software Foundation, Inc., ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. -## read config variables: koli doosto ashena dandrn ke kheili doost daradn -#include "config.wml" -#include "configbis.wml" -#include "cdswmllib.wml" -## start Python: -#! # -*- coding: utf-8 -*- ## $Id$ ## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES. -__version__ = "<: print generate_pretty_version_string('$Id$'); :>" - from marshal import loads from zlib import decompress from dbquery import run_sql def get_citing_recidrelevance(rank_method_code, citing_recids): """return a tuple of list ([recid,citation_weight],...) for all the record in citing_recids list """ result = [] - query = "select relevance_data from rnkMETHODDATA, rnkMETHOD WHERE rnkMETHOD.id = rnkMETHODDATA.id_rnkMETHOD and rnkMETHOD.name = '%s'"% rank_method_code + query = "select relevance_data from rnkMETHODDATA, rnkMETHOD WHERE rnkMETHOD.id = rnkMETHODDATA.id_rnkMETHOD and rnkMETHOD.name = '%s'" % rank_method_code compressed_citation_weight_dic = run_sql(query) if compressed_citation_weight_dic and compressed_citation_weight_dic[0]: citation_dic = loads(decompress(compressed_citation_weight_dic[0][0])) for id in citing_recids: tmp = [id, citation_dic[id]] result.append(tmp) return result + def init_cited_by_dictionary(): """return citation list dictionary from rnkCITATIONDATA """ query = "select citation_data from rnkCITATIONDATA" compressed_citation_dic = run_sql(query) citation_dic = None if compressed_citation_dic and compressed_citation_dic[0]: citation_dic = loads(decompress(compressed_citation_dic[0][0])) return citation_dic + def init_reference_list_dictionary(): """return reference list dictionary from rnkCITATIONDATA """ query = "select citation_data_reversed from rnkCITATIONDATA" compressed_ref_dic = run_sql(query) ref_dic = None if compressed_ref_dic and compressed_ref_dic[0]: ref_dic = loads(decompress(compressed_ref_dic[0][0])) return ref_dic cbd = init_cited_by_dictionary() rld = init_reference_list_dictionary() def get_cited_by_dictionary(): """return citation list dictionary from rnkCITATIONDATA """ global cbd return cbd def get_reference_list_dictionary(): """return reference list dictionary from rnkCITATIONDATA """ global rld return rld def get_cited_by_list(record_id): """return citation list dictionary of record_id """ - citation_list = None + citation_list = [] try: citation_list = get_cited_by_dictionary()[record_id] except TypeError: pass return citation_list def get_co_cited_with_list(record_id): """return a tuple of list([id,co-cited weitht],[...,....]) for record_id""" result = [] result_intermediate = {} - citation_list = get_cited_by_dictionary()[record_id] + citation_list = [] + try: + citation_list = get_cited_by_dictionary()[record_id] + except TypeError: + pass for cit_id in citation_list: reference_list = get_reference_list_dictionary()[cit_id] for ref_id in reference_list: if not result_intermediate.has_key(ref_id): result_intermediate[ref_id] = 1 else: result_intermediate[ref_id] += 1 for key, value in result_intermediate.iteritems(): if not (key==record_id): result.append([key, value]) return result diff --git a/modules/bibrank/lib/bibrank_citation_searcher.py.wml b/modules/bibrank/lib/bibrank_citation_searcher.py.wml index 153cfba77..e0fe89963 100644 --- a/modules/bibrank/lib/bibrank_citation_searcher.py.wml +++ b/modules/bibrank/lib/bibrank_citation_searcher.py.wml @@ -1,106 +1,104 @@ -##document impact hit parade +## $Id$ ## This file is part of the CERN Document Server Software (CDSware). ## Copyright (C) 2002 CERN. ## ## The CDSware is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License as ## published by the Free Software Foundation; either version 2 of the ## License, or (at your option) any later version. ## ## The CDSware is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with CDSware; if not, write to the Free Software Foundation, Inc., ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. -## read config variables: koli doosto ashena dandrn ke kheili doost daradn -#include "config.wml" -#include "configbis.wml" -#include "cdswmllib.wml" -## start Python: -#! # -*- coding: utf-8 -*- ## $Id$ ## DO NOT EDIT THIS FILE! IT WAS AUTOMATICALLY GENERATED FROM CDSware WML SOURCES. -__version__ = "<: print generate_pretty_version_string('$Id$'); :>" - from marshal import loads from zlib import decompress from dbquery import run_sql def get_citing_recidrelevance(rank_method_code, citing_recids): """return a tuple of list ([recid,citation_weight],...) for all the record in citing_recids list """ result = [] - query = "select relevance_data from rnkMETHODDATA, rnkMETHOD WHERE rnkMETHOD.id = rnkMETHODDATA.id_rnkMETHOD and rnkMETHOD.name = '%s'"% rank_method_code + query = "select relevance_data from rnkMETHODDATA, rnkMETHOD WHERE rnkMETHOD.id = rnkMETHODDATA.id_rnkMETHOD and rnkMETHOD.name = '%s'" % rank_method_code compressed_citation_weight_dic = run_sql(query) if compressed_citation_weight_dic and compressed_citation_weight_dic[0]: citation_dic = loads(decompress(compressed_citation_weight_dic[0][0])) for id in citing_recids: tmp = [id, citation_dic[id]] result.append(tmp) return result + def init_cited_by_dictionary(): """return citation list dictionary from rnkCITATIONDATA """ query = "select citation_data from rnkCITATIONDATA" compressed_citation_dic = run_sql(query) citation_dic = None if compressed_citation_dic and compressed_citation_dic[0]: citation_dic = loads(decompress(compressed_citation_dic[0][0])) return citation_dic + def init_reference_list_dictionary(): """return reference list dictionary from rnkCITATIONDATA """ query = "select citation_data_reversed from rnkCITATIONDATA" compressed_ref_dic = run_sql(query) ref_dic = None if compressed_ref_dic and compressed_ref_dic[0]: ref_dic = loads(decompress(compressed_ref_dic[0][0])) return ref_dic cbd = init_cited_by_dictionary() rld = init_reference_list_dictionary() def get_cited_by_dictionary(): """return citation list dictionary from rnkCITATIONDATA """ global cbd return cbd def get_reference_list_dictionary(): """return reference list dictionary from rnkCITATIONDATA """ global rld return rld def get_cited_by_list(record_id): """return citation list dictionary of record_id """ - citation_list = None + citation_list = [] try: citation_list = get_cited_by_dictionary()[record_id] except TypeError: pass return citation_list def get_co_cited_with_list(record_id): """return a tuple of list([id,co-cited weitht],[...,....]) for record_id""" result = [] result_intermediate = {} - citation_list = get_cited_by_dictionary()[record_id] + citation_list = [] + try: + citation_list = get_cited_by_dictionary()[record_id] + except TypeError: + pass for cit_id in citation_list: reference_list = get_reference_list_dictionary()[cit_id] for ref_id in reference_list: if not result_intermediate.has_key(ref_id): result_intermediate[ref_id] = 1 else: result_intermediate[ref_id] += 1 for key, value in result_intermediate.iteritems(): if not (key==record_id): result.append([key, value]) return result