def stanbol_enhancements_view_core(enhancer_id = None, enhancer_setup = None, 
                             parent_id = None, form_id=None, parent_field=None):             
    meta=stanbol.contenthub_retrieve(parent_id, media_type="rdf", subresource="metadata")
    
    js=stanbolmod.rdf_to_json(meta)
    
    selectedFields = dict(
                    titlep = "http://purl.uniprot.org/core/title",
                    title = "http://purl.org/dc/terms/title",
                    comment = str(RDFS.term("comment")),
                    label = str(RDFS.term("label")),
                    mnemonic = "http://purl.uniprot.org/core/mnemonic",
                    type = str(RDF.term("type")), 
                    )                          
                    
    def __getField(r,fieldList,default="id"):        
        for f in fieldList:
            try: 
                return r[selectedFields[f]][0]["value"]
            except:
                pass        
        return r[default]
    
    
    enh = []                
    try:                
        res = json.loads(qry)
        for r in res["results"]:
            enh.append( dict(id =r["id"],
                                title =  __getField(r,["title","titlep","label","mnemonic","type"]),
                                description=__getField(r,["comment","type"]) ) )
    except Exception as e:        
        enh.append( dict(id=qry, title="There was an error:", description=str(e))  )
                    
    #[ 
    # for (k,v) in js.iteritems() if not k.startswith("urn:enhancement")]
        
    #fields = [Field("E%d"%i,"string",default=url,writable=False) for (i,url) in enumerate(md)]
    
    #def_tab_args=[form_id]+fields+[parent_field]    
    #form = SQLFORM(SQLDB(None).define_table(*def_tab_args),
    #                submit_button='Review&Accept')
    return form
def stanbol_contenthub_retrieve(parent_id, media_type="rdf", subresource="edit"):
    return cache.memcache('stanbol_contenthub_retrieve_%s_%s_%s'%(str(parent_id),media_type,subresource),
               lambda : stanbol.contenthub_retrieve(parent_id, media_type=media_type, subresource=subresource),
               time_expire=30)