After the recent incident, we have restored access to the website from outside the CERN network, however access from certain worldwide locations is still being blocked.

CERN Accelerating science

BibKnowledge API


Adding/deleting knowledge bases:

def add_kb(kb_name="Untitled", kb_type=None):
    """
    Adds a new kb in database, and returns its id
    The name of the kb will be 'Untitled#' such that it is unique.
    @param kb_name the name of the kb
    @param kb_type the type of the kb, incl 'taxonomy' and 'dynamic'.
                   None for typical (leftside-rightside).
    @return the id of the newly created kb
    """

def delete_kb(kb_name):
    """
    Deletes given kb from database
    @param kb_name knowledge base name
    """

Mappings:

def get_kb_mappings(kb_name="", key="", value="", match_type="s"):
    """Get mappings from kb kb_name. If key given, give only those with
       left side (mapFrom) = key. If value given, give only those with
       right side (mapTo) = value.
       @param kb_name the name of the kb
       @param key include only lines matching this on left side in the results
       @param value include only lines matching this on right side in the results
       @param match_type s = substring match, e = exact match
    """

def add_kb_mapping(kb_name, key, value=""):
    """
    Adds a new mapping to given kb

    @param kb_name the name of the kb where to insert the new value
    @param key the key of the mapping
    @param value the value of the mapping
    """

Using:

def get_kba_values(kb_name, searchname="", searchtype="s"):
    """
    Returns an array of values "authority file" type = just values.
    @param kb_name name of kb
    @param searchname get these values, according to searchtype
    @param searchtype s=substring, e=exact
    """
    return bibknowledge_dblayer.get_kba_values(kb_name, searchname, searchtype)

def get_kbr_keys(kb_name, searchkey="", searchvalue="", searchtype='s'):
    """
    Returns an array of keys.
    @param kb_name the name of the knowledge base
    @param searchkey search using this key
    @param searchvalue search using this value
    @param searchtype s = substring, e=exact
    """


def get_kbr_values(kb_name, searchkey="", searchvalue="", searchtype='s'):
    """
    Returns an array of keys.
       @param kb_name the name of the knowledge base
       @param searchkey search using this key
       @param searchvalue search using this value
       @param searchtype s = substring, e=exact
   """

def get_kbr_items(kb_name, searchkey="", searchvalue="", searchtype='s'):
    """
    Returns a list of dictionaries that match the search.
    @param kb_name the name of the knowledge base
    @param searchkey search using this key
    @param searchvalue search using this value
    @param searchtype s = substring, e=exact
    @return a list of dictionaries [{'key'=>x, 'value'=>y},..]
    """

def get_kbd_values(kbname, searchwith=""):
    """
    To be used by bibedit. Returns a list of values based on a dynamic kb.
    @param kbname name of the knowledge base
    @param searchwith a term to search with
    """

def get_kbd_values_for_bibedit(tag, collection="", searchwith=""):
    """
    A specific convenience method: based on a tag and collection, create a temporary dynamic knowledge base
    a return its values.
    Note: the performace of this function is ok compared to a plain
    perform req search / get most popular fields -pair. The overhead is about 5% with large record sets.
    @param tag the tag like 100__a
    @param collection collection id
    @param searchwith the string to search. If empty, match all.
    """


def get_kbt_items(taxonomyfilename, templatefilename, searchwith=""):
    """
    Get items from taxonomy file using a templatefile. If searchwith is defined,
    return only items that match with it.
    @param taxonomyfilename full path+name of the RDF file
    @param templatefile full path+name of the XSLT file
    @param searchwith a term to search with
    """