def tag_predicate(p):
    """
    Given a full URI predicate, return a tagged predicate.
    So, for example, given

        http://www.w3.org/1999/02/22-rdf-syntax-ns#type

    return

        rdf:type
    """
    ns = {
        "http://www.w3.org/1999/02/22-rdf-syntax-ns#":"rdf:",
        "http://www.w3.org/2000/01/rdf-schema#":"rdfs:",
        "http://www.w3.org/2001/XMLSchema#":"xsd:",
        "http://www.w3.org/2002/07/owl#":"owl:",
        "http://www.w3.org/2003/11/swrl#":"swrl:",
        "http://www.w3.org/2003/11/swrlb#":"swrlb:",
        "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#":"vitro:",
        "http://purl.org/ontology/bibo/":"bibo:",
        "http://purl.org/spar/c4o/":"c4o:",
        "http://purl.org/spar/cito/":"cito:",
        "http://purl.org/dc/terms/":"dcterms:",
        "http://purl.org/NET/c4dm/event.owl#":"event:",
        "http://purl.org/spar/fabio/":"fabio:",
        "http://xmlns.com/foaf/0.1/":"foaf:",
        "http://aims.fao.org/aos/geopolitical.owl#":"geo:",
        "http://purl.obolibrary.org/obo/":"obo:",
        "http://purl.org/net/OCRe/research.owl#":"ocrer:",
        "http://purl.org/net/OCRe/study_design.owl#":"ocresd:",
        "http://www.w3.org/2004/02/skos/core#":"skos:",
        "http://vivo.ufl.edu/ontology/vivo-ufl/":"ufVivo:",
        "http://www.w3.org/2006/vcard/ns#":"vcard:",
        "http://vitro.mannlib.cornell.edu/ns/vitro/public#":"vitro-public:",
        "http://vivoweb.org/ontology/core#":"vivo:",
        "http://vivoweb.org/ontology/scientific-research#":"scires:"
    }
    for uri, tag in ns.items():
        if p.find(uri) > -1:
            newp = p.replace(uri, tag)
            return newp
    return None