Esempio n. 1
0
def test_sdg11(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(asjc_list, ["3103"])
    if cond1:
        return {}

    cond2, _ = does_contain(ti_abs_kw, ["sustainable cities and communities"])
    cond3, _ = does_contain_list(asjc_list, ["3322"])

    cond4_0, _ = does_contain(ti_abs_kw, [
        " city ", " city.", " city,", " city;", " city:", " cities ",
        " cities.", " cities,", " cities;", " cities:", "human settlement",
        "human settlements", "urban", "metropolitan", "metropole", "town",
        "municipal", "municipality", "municipalities"
    ])

    cond4_1, _ = does_contain_list(asjc_list, ["2311", "3305", "3313"])
    cond4 = cond4_0 and cond4_1

    cond5_0 = cond4_0
    cond5_1, _ = does_contain(ti_abs_kw, [
        "gentrification", "congestion", "habitat", "city planning",
        "transportation", "public transport", "housing", "slum",
        "sendai framework", "Disaster Risk Reduction", "DRR", "smart city",
        "smart cities", "resilient building", "resilient buildings",
        "sustainable building", "sustainable development", "green roof",
        "sustainable buildings", "sustainable construction", "building design",
        "buildings design", "urbanisation", "urbanization",
        "zero energy building", "zero energy buildings",
        "zero-energy building", "zero-energy buildings",
        "zero net energy building", "net-zero energy building",
        "net zero building", "zero-net energy building",
        "net zero energy building", "net-zero building", "green building",
        "basic service", "basic services", "governance",
        "citizen participation", "collaborative planning",
        "participatory planning", "inclusiveness", "cultural heritage",
        "natural heritage", "UNESCO", "disaster", "flood", " storm",
        "hurricane", "water-related hazard", "water related hazard",
        "ecological footprint", "environmental footprint", "waste",
        "wastewater", "pollution", "pollutant", "waste water", "water quality",
        "quality of the water", "sewage", "sewer", "water management",
        "recycling", "circular economy", "air quality", "green space",
        "green spaces", "nature inclusive", "nature inclusive building",
        "nature inclusive buildings"
    ])

    cond5 = cond5_0 and cond5_1

    if cond2 or cond3 or cond4 or cond5:
        return {
            "sdg_code": "sdg11",
            "sdg_label": "11. Sustainable cities anc communities"
        }
    return {}
Esempio n. 2
0
def test_sdg1(asjc_list, ti_abs_kw):
    cond1_0, evidence1_0 = does_contain_list(asjc_list, ["3300","3301","3302","3303","3304","3305","3306","3307","3308","3309","3310","3311","3312","3313","3314","3315","3316","3317","3318","3319","3320","3321","3322","2000","2001","2002","2003"])
    cond_1_1, evidence_1_1 = does_contain(ti_abs_kw, ["poor population","poor households","poorer households","poorest households","the poorest","the poor","poor and marginalized","poor communities","poorer communities","poorest communities","poorer countries","poor countries","poor country","poorest countries","poorer nations","poor nations","poor nation","poorest nations","poor people","poorer people","poorest people","pro-poor","propoor","low-income","the urban poor","the rural poor","urban poor area","rural poor area","poor children","poorer children","poorest children","poor women","poor and needy","poor and vulnerable","poorest and most vulnerable","help the poor","poor village","poor borrower","poor workmanship","poor worker","poor working families"])
    cond1 = cond1_0 and cond_1_1

    cond2_0, evidence2_0 = does_contain(ti_abs_kw, ["social protection","safety net","safety nets","economic resource","food security","cash transfers","food insecurity","development assistance","income inequality","labour market","health insurance","protection system","financial aid","financial development","north-south divide","financial inclusion","women empowerment"])
    cond2_1, evidence2_1 = does_contain(ti_abs_kw, ["poor population","poor households","poorer households","poorest households","the poorest","the poor","poor and marginalized","poor communities","poorer communities","poorest communities","poorer countries","poor countries","poor country","poorest countries","poorer nations","poor nations","poor nation","poorest nations","poor people","poorer people","poorest people","pro-poor","propoor","low-income","the urban poor","the rural poor","urban poor area","rural poor area","poor children","poorer children","poorest children","poor women","poor and needy","poor and vulnerable","poorest and most vulnerable","help the poor","poor village","poor borrower","poor workmanship","poor worker","poor working families"])
    cond2 = cond2_0 and cond2_1

    cond3, evidence_3 = does_contain(ti_abs_kw, ["no poverty","financial literacy","extreme poverty","poverty alleviation","alleviating poverty","alleviation of poverty","poverty alleviating","alleviation in poverty","poverty eradication","eradicating poverty","eradication of poverty","poverty rate","poverty reduction","reduction of poverty","reduction in poverty","reduction of the poverty","reduction of both poverty","reduced poverty","poverty reducing","reduce poverty","end poverty","alleviate poverty","eradicate poverty","protection against poverty","protect against poverty","poverty indice","poverty line","resilience of the poor","financial empowerment","distributional effect","distributional effects","child labor","child labour","development aid","aid the development","Aid for Development","aid in the development","social protection","welfare state","welfare states","state welfare","Social Security","social assistance","system of social protection","systems of social protection","microfinanc","micro-financ","food bank","food banks"])

    if cond1 or cond2 or cond3:
        return {"sdg_code": "sdg1", "sdg_label": "1. No poverty"}
    return {}
Esempio n. 3
0
def test_sdg3(asjc_list, ti_abs_kw):

    cond1_0, evidence1_0 = does_contain_list([asjc[0:2] for asjc in asjc_list], ["27" ,"29" ,"35" ,"36" ,"24" ,"28" ,"30" ,"32" ])
    cond1_1, evidence1_1 = does_contain_list(asjc_list, ["3306"])
    cond1 = cond1_0 or cond1_1

    cond2_0, evidence2_0 =  does_contain_list([asjc[0:2] for asjc in asjc_list], ["32"])
    cond2_1, evidence2_1 = does_contain(ti_abs_kw, ["hospital","medical staff","doctor","nurse","physician","health"])
    cond2 = cond2_0 and cond2_1

    cond3, evidence3 = does_contain_list(ti_abs_kw, 
            [
                "good health and well-being"
                ,["human", "health"]
                ,["human", "disease"]
                ,["human", "illness"]
                ,["human", "medicine"]
                ,["human", "mortality"]
                ,"battered child syndrome","cardiovascular disease","cardiovascular diseases","chagas","child abuse","child neglect","human wellbeing","human well-being","youth wellbeing","youth well-being","child wellbeing","child well-being","woman wellbeing","woman well-being","women wellbeing","women well-being","children wellbeing","children well-being","wellbeing of children","well-being of children","health of children","children health","wellbeing of women","well-being of women","health of women","women health","wellbeing of youth","well-being of youth","health of youth","youth health","young people’s health","young people health","water-borne disease","water-borne diseases","water borne disease","water borne diseases","tropical disease","tropical diseases","chronic respiratory disease","chronic respiratory diseases","infectious disease","infectious diseases","sexually-transmitted disease","sexually transmitted disease","sexually-transmitted diseases","sexually transmitted diseases","communicable disease","communicable diseases","patient with aids","people with aids","with hiv","hiv virus" ,"hiv/aids","human immunodeficiency virus","tuberculosis","malaria","hepatitis","polio","vaccin","cancer","diabet","maternal mortality","child mortality","childbirth complications","neonatal mortality","neo-natal mortality","premature mortality","infant mortality"
                ])

    cond4, evidence4 = does_contain_list(ti_abs_kw, 
            [
                "quality adjusted life year","maternal health","reproductive health","sexual health","preventable death","preventable deaths","tobacco control","substance abuse","drug abuse","tobacco use","alcohol use","substance addiction","drug addiction","tobacco addiction","alcoholism","suicid","postnatal depression","post-natal depression","zika virus","dengue","schistosomiasis","sleeping sickness","ebola","mental health","mental disorder","mental illness","mental illnesses","measles","neglected disease","neglected diseases","diarrhea","diarrhoea","cholera","dysentery","typhoid fever","traffic accident","traffic accidents","healthy lifestyle","life expectancy","life expectancies","health policy"
                ,["health system", "access"]
                ,["health system", "accessible"]
                ,"health risk","health risks","inclusive health","obesity","coronavirus","covid-19","covid 19","social determinants of health","psychological harm","psychological wellbeing","psychological well-being","psychological well being","public health","telemedecine","telecare","health reason","healthcare"
                ])

    if cond1 or cond2 or cond3 or cond4:
        return {"sdg_code": "sdg3", "sdg_label": "3. Good health and well-being"}
    return {}
Esempio n. 4
0
def test_sdg13(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(asjc_list, ["3103"])
    if cond1:
        return {}

    cond2_0, _ = does_contain_list(asjc_list, [
        "2300", "2301", "2302", "2303", "2304", "2305", "2306", "2307", "2308",
        "2309", "2310", "2311", "2312"
    ])
    cond2_1, _ = does_contain(ti_abs_kw, ["climate", "atmospher", "climatic"])
    cond2 = cond2_0 and cond2_1

    cond3, _ = does_contain_list(asjc_list, ["1902", "2306"])

    cond4, _ = does_contain(ti_abs_kw, [
        "climate action", "climate adaptation", "climate change adaptation",
        "climate change", "climate capitalism", "greenhouse gas",
        "greenhouse effect", "extreme events", "kyoto protocol",
        "permafrost thaw", "permafrost melt", "permafrost degradation",
        "thawing permafrost", "melting permafrost", " radiative forcing",
        " climate forcing", "ipcc",
        "Intergovernmental Panel on Climate Change", "climate effect",
        "climate effects", "climate equity", "climate feedback",
        "climate finance", "climate change financing", "climate forcing",
        "climate forecast", "climate-economy model",
        "climate and in environmental change", "climate governance",
        "climate impact", "climate impacts", "climate issues",
        "climate investment", "climate and energy analysis",
        "climate and energy analyses", "climate goal", "climate justice",
        "climate mitigation", "climate model", "climate models",
        "climate modeling", "climate modelling", "climate negotiation",
        "climate negotiations", "climate policy", "climate policies",
        "climate risk", "climate risks", "climate services", "climate service",
        "climate prediction", "climate predictions", "climate projection",
        "climate projections", "climate simulation", "climate simulations",
        "climate signal", "climate signals", "climate tipping point",
        "ecoclimatology", "eco-climatology", "Green Climate Fund",
        "regional climate", "regional climates", "climate smart",
        "global warming", "Global atmospheric changes", "unfccc",
        "United Nations Framework Convention on Climate Change"
    ])

    cond5, _ = does_contain(ti_abs_kw, astronomy)

    if (cond2 or cond3 or cond4) and (not cond5):
        return {"sdg_code": "sdg13", "sdg_label": "13. Climate action"}
    return {}
Esempio n. 5
0
def test_sdg5(asjc_list, ti_abs_kw):

    cond1, _ = does_contain(ti_abs_kw, [
        "gender inequality", "male-female difference",
        "male-female income difference", "gender equality", "gender equity",
        "gender inequalities", "across gender", "gender equalities",
        "employment equity", "gender wage gap",
        "female labor force participation",
        "female labour force participation", "women labor force participation",
        "women labour force participation", "womens' employment",
        "female employment", "women's unemployment", "female unemployment",
        ["access", "family planning services"
         ], "forced marriage", "spouse Abuse", "child marriage",
        "forced marriages", "child marriages", "occupational segregation",
        "women's empowerment", "empowerment of women", "women empowerment",
        "girls' empowerment", "empowerment of girls", "girls empowerment",
        "female empowerment", "female genital mutilation",
        "female genital cutting", "domestic violence", ["women", "violence"],
        ["girl", "violence"], "sexual violence",
        ["unpaid work", "gender inequality"],
        ["unpaid care work", "gender inequality"
         ], "women's political participation", "women political participation",
        "female political participation", "female managers",
        "women in leadership",
        "female leadership", "intra-household allocation",
        ["access", "reproductive healthcare"], "honour killing",
        "honor killing", "honour killings", "honor killings", "antiwomen",
        "anti-women", "feminism", "misogyny", "female infanticide",
        "female infanticides", "human trafficking", "forced prostitution",
        ["equality", "sexual rights"], "reproductive rights", "divorce rights",
        "women's rights", "women rights", "women equal rights",
        "equal rights to all", "equal rights to men and women",
        "equality for men and women", "equality for women and men",
        "gender injustice", "gender injustices", "gender discrimination",
        "discrimination against female", "discrimination against all women",
        "discrimination against all girls", "discrimination against women",
        "discrimination against girls", "gender disparities", "gender gap",
        "female exploitation", "household equity",
        "female political participation", "women's underrepresentation",
        "women underrepresentation", "female entrepreneurship",
        "female ownership", "women's economic development", "women's power",
        "women economic development", "women power", "power to women",
        "gender-responsive budgeting", "gender quota",
        ["foreign aid", "women's empowerment"],
        ["foreign aid", "women empowerment"], "gender segregation",
        "gender-based violence", "gender based violence",
        "gender participation", "female politician", "female leader",
        "contraceptive behaviour", "women's autonomy", "women autonomy",
        "autonomy of women", "agrarian feminism", "microfinance",
        "women's livelihood", "women's ownership", "women livelihood",
        "women ownership", "female smallholder", "gender mainstreaming"
    ])

    if cond1:
        return {"sdg_code": "sdg5", "sdg_label": "5. Gender equality"}
    return {}
Esempio n. 6
0
def test_sdg6(asjc_list, ti_abs_kw):
    cond1, _ = does_contain(ti_abs_kw, ["clean water and sanitation"])
    cond2, _ = does_contain_list(asjc_list, ["2312"])
    
    cond3_0, _ = does_contain(ti_abs_kw, ["water","sanitation"])
    cond3_1, _ = does_contain(ti_abs_kw, ["ecosystem","eco-system","handwashing","hand-washing","hygiene","hygienic","hygienic toilet","hygienic toilets","latrine","pollutant","pollutant removal","pollution","quality","endocrine disruptor"])
    cond3 = cond3_0 and cond3_1

    cond4, _ =  does_contain(ti_abs_kw, ["antifouling membrane","anti-fouling membrane","antifouling membranes","anti-fouling membranes","water access","access to water","urban runoff","water availability","available water","availability of water","water conservation","conservation of water","water desalination","desalination of water","water management","management of water","management of the water","water pollutant","polluted water","pollutants in water","pollutants from water","pollution of water","pollution in water","pollution water","pollution in the water","water and pollution","pollutants water","water by pollutants","water from pollutants","water purification","purification of water","water quality","quality of water","water recycling","recycling water","recycle water","water reuse","reuse of water","water reusing","water scarcity","scarcity of water","water security","security of water","water shortage","shortage of water","water source","source of water","sources of water","water supplies","supply of water","water toxicology","toxicology of water","water treatment","treatment of water","treatment of the water","treatment for water","water after treatment","waste water","waste in water","water footprint","water use","water using","use of water","using water","use the water","use of this water","water we use","use and water","water and use","use that water","use in the water","aquatic ecotoxicology","aquatic toxicology","black water","blue water","clean water","groundwater","ground-water" ,"manage water","open defecation","safe water","sanitation","sewage","sewer","toilet","wastewater","water ecotoxicology","water efficiency","water infrastructure","water resource","water resources management","water supply","drinking water","fresh water","freshwater","green water","grey water","ground water","potable water","water contamination","contaminated water","water contaminants","contaminants from water","contaminants in water","contamination of water","contaminants in the water","emissions into water","contamination in water","water and contaminants","contaminants over water","contaminants of water","water grabbing","water stressed countries","water inventory","watershed management","soil and water conservation","sanitation and water conservation","water policy","water pricing","water balance","water framework directive","river basin management" 
,["water", "biological treatment"]
,["water", "denitrification"]
,["water", "flocculation"]
,["water", "membrane bioreactor"]
,["water", "membrane filtration"]
,["water", "membrane fouling"]
,["water", "microfiltration"]
,["water", "nanofiltration"]
,["water", "nitrogen removal"]
,["water", "nutrient removal"]
,["water", "phosphorus removal"]
,["water", "reverse osmosis"]
,["water", "sequencing batch reactor"]
,["water", "ultrafiltration"]
])

    cond5_0, _ = does_contain(ti_abs_kw, astronomy)
    cond5_1, _ = does_contain(ti_abs_kw, ["graph partition","hierarchical watershed"])
    cond5 = not(cond5_0 or cond5_1)

    if (cond1 or cond2 or cond3 or cond4) and cond5:
        return {"sdg_code": "sdg6", "sdg_label": "6. Clean water and sanitation"}
    return {}
Esempio n. 7
0
def test_sdg15(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(
        asjc_list, ["2309", "1107", "1103", "1109", "1904", "1111"])
    if None in asjc_list:
        cond2_0, _ = True, 'none'
    else:
        cond2_0, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], [
            "34", "15", "16", "17", "19", "21", "22", "23", "25", "26", "31",
            "12", "14", "18", "20", "32", "33", "10", "11"
        ])

    cond2_1, _ = does_contain(ti_abs_kw, [
        "forest stewardship council", "rainforest alliance",
        "forest certification", "forest auditing", "deforestation", "deforest",
        "afforestation", "reforestation", "afforest", "reforest",
        "sea level rise", "sea-level rise", "agroforestry", "agro-forestry",
        "agro+forestry", "desertif", "land uses", "land use",
        "land degradation", "soil degradation", "LULUCF",
        "land-use change and forestry", "land use change and forestry",
        "land conservation", "wetland", "mountain", "dryland",
        "vegetation cover", "mountainous cover", "REDD",
        "Reducing Emissions from Deforestation and Degradation",
        "forest management", "silviculture", " forest.", " forest,",
        " forest;", " forest:", " forest ", " forests.", " forests,",
        " forests;", " forests:", " forests ", "prescribed fire",
        "leaf area index", "stand structure", "forestry", "timber harvest",
        "illegal logging", "slash-and-burn", "slash and burn",
        "fire-fallow cultivation", "tree cover", "soil restoration",
        "land restoration", "drought", "sustainable land management",
        "mountain vegetation", "ecotourism", "sustainable tourism"
    ])

    cond2 = cond2_0 and cond2_1

    cond3, _ = does_contain(ti_abs_kw, [
        "biodivers", "species richness", "overhunt", "bioeconom", "bio-econom",
        "biological production", "earth system", "ecological resilience",
        "ecosystem", "eco-system", "trophic cascade", "trophic level",
        "trophic web", "threatened species", "endangered species",
        "extinction risk", "extinction risks", "poach", "wildlife product",
        "wildlife products", "wildlife traffic", "wildlife market",
        "wildlife markets", "wildlife trafficking", "invasive species",
        "alien species", "protected area", "protected areas",
        "habitat restoration", "Red List species", "Red List Index",
        "extinction wave", "habitat fragmentation", "habitat loss",
        "Nagoya Protocol on Access to Genetic Resources", "genetic resources",
        "biological invasion", "biodiversity-inclusive",
        "community-based conservation", "community based conservation",
        "human-wildlife conflict", "biodiversity conservation",
        "conservation planning", "ecosystem function", "ecosystem functioning",
        "ecosystem management", "ecosystem services", "ethnobotany",
        "exotic species", "indicator species", "landscape ecology",
        "macroecology", "macroinvertebrates", "nature conservation",
        "neotropics", "phylogeography", "plant diversity", "reserve selection",
        "species diversity", "species-area relationship", "vascular plants",
        "conservation biology", "conservation of natural resources"
    ])

    cond4, _ = does_contain(ti_abs_kw, [
        "tree set", "tree set", "magnetic resonance", "wireless sensor",
        "tree graph", "stack tree", "decision tree", "poset", "operad",
        "algebra", "tree-wise", "tree wise", "tree of shapes", "mathematics",
        "tree structured data", "tree-structured data", "marine", "ocean",
        " sea.", " sea,", " sea;", " sea:", " sea ", " seas.", " seas,",
        " seas;", " seas:", " seas ", "submarine", "maritime", "delta",
        "mangrove", "estuary", "estuaries", "estuarine"
    ])

    cond5, _ = does_contain(ti_abs_kw, astronomy)

    if (cond1 or cond2 or cond3) and (not cond4) and (not cond5):
        return {"sdg_code": "sdg15", "sdg_label": "15. Life on land"}
    return {}
Esempio n. 8
0
def test_sdg10(asjc_list, ti_abs_kw):
    cond1_0, _ = does_contain_list(asjc_list, ["3312", "3317", "3320", "3305"])
    cond1_1, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], ["20"])
    cond1_2, _ = does_contain(
        ti_abs_kw, ["migration", "immigration", "emigration", "migrant"])
    cond1 = (cond1_0 or cond1_1) and cond1_2

    cond2_0, _ = does_contain(
        ti_abs_kw,
        [["equality", "economic"], ["equality", "financial"],
         ["equality", "socio-economic"], ["equality", "socioeconomic"],
         ["inequality", "economic"], ["inequality", "financial"],
         ["inequality", "socio-economic"], ["inequality", "socioeconomic"],
         ["inequalities", "economic"], ["inequalities", "financial"],
         ["inequalities", "socio-economic"], ["inequalities", "socioeconomic"]
         ])

    cond2_1, _ = does_contain(ti_abs_kw, [
        "economic reform policy", "economic reform policies",
        "inequality among countries", "inequalities among countries",
        "World Trade Organization agreements", "inequalities of outcome",
        "inequality of outcome", "outcome inequality", "outcome inequalities",
        "political inclusion", "economic inclusion", "social inclusion",
        "social protection policy", "social protection policies",
        "foreign direct investment", "development gap", "development gaps",
        "migrant remittance", "responsible migration", "migration policy",
        "migration policies", "north-south divide", "social exclusion",
        "economic marginalization", "economic marginalisation",
        "income inequality", "income inequalities", "discriminatory law",
        "discriminatory policies", "discriminatory policy", "wage inequality",
        "wage inequalities", "income inequality", "income inequalities",
        "economic empowerment", "economic transformation",
        "differential treatment for developing countries"
    ])

    cond2_2, _ = does_contain(
        ti_abs_kw,
        [["global market", "empowerment"], ["global market", "regulation"],
         ["international market", "empowerment"],
         ["international market", "regulation"]])

    cond2_3, _ = does_contain(ti_abs_kw, [
        "financial flows", "decision-making", "enhanced representation",
        "global international economy", "global economy", "global value chain",
        "financial institutions", "international economic"
    ])

    cond2_4_tmp = [
        "Africa", "least developed countries", "landlocked country",
        "developing country", "landlocked countries", "developing countries",
        "small island developing States"
    ] + dev_countries
    cond2_4, _ = does_contain(ti_abs_kw, cond2_4_tmp)

    cond2_5 = cond2_3 and cond2_4

    cond2 = cond2_1 or cond2_2 or cond2_5

    if cond1 or cond2:
        return {"sdg_code": "sdg10", "sdg_label": "10. Reduced inequalities"}
    return {}
Esempio n. 9
0
def test_sdg14(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(asjc_list, ["1910","1104"])
    cond2, _ = does_contain(ti_abs_kw, [
        "life below water" 
,"oceanic circulation model"
,"Guidelines on the Transfer of Marine Technology"
,"oceanic circulation models"
,"oceanic circulation modelling"
,"oceanic circulation modeling"
,"coral bleach"
,"coral bleaching"
,"ice-ocean" 
,"mangrove ecosystem"
,"marine protected area"
,"marine protected areas"
,"marine conservation"
,"marine land slide"
,"marine pollution"
,"marine environment"
,"United Nations Convention on the Law of the Sea"
,"unclos"
,"Law of the Sea"
,"marine quota"
,"fishing quota"
,"marine biodiversity"
,"marine economy"
,"marine policy"
,"marine resource"
,"marine debris"
,"sea-level rise"
,"sea level rise"
,"marine reserves"
,"marine reserve"
,"ocean acidification"
,"marine acidity"
,"sea acidification"
,"sustainable use of oceans"
,"sustainable use of the oceans"
,["acidification", "seawater"]
,"coastal ecosystem"
,"coastal water"
,"marine ecosystem"
,"productive ocean"
,"healthy ocean"
,"World Trade Organization fisheries"
,"World Trade Organization on fisheries"
,"oceans and seas"
        ])
    
    if None in asjc_list:
        cond3_0, _ = True, 'none'
    else:
        cond3_0, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], ["34","15","16","17","19","21","22","23","25","26","31","12","14","18","20","32","33","10","11"])


    cond3_1, _ = does_contain(ti_abs_kw, [
    "marine"
,"submarine"
,"maritime"
,"ocean"
,"oceans"
," sea."
," sea,"
," sea;"
," sea:"
," sea "
," seas."
," seas,"
," seas;"
," seas:"
," seas "
," lake "
," lake."
," lake,"
," lake;"
," lake:"
," lake:"
,"delta"
,"wetland"
,"river"
,"fluvial"
,"mangrove"  
,"estuary"  
,"estuaries"  
,"estuarine"])


    cond3_2, _ = does_contain(ti_abs_kw, [
"water cycle"
,"water cycles"
,"plastic"
,"litter"
,"anthropogenic particles"	
,"biogeochemical cycle"
,"biogeochemical cycles"
,"sustainable aquaculture"
,"eutrophicat"
,"coastal management"
,"coastal habitat"
,"coastal habitats"
,"fishery"
,"fisheries"
,"overfishing"
,"farmed acquatic animal","fish biomass","fish farming","fish stocking","mariculture" 
,"unregulated fishing"
,"unreported fishing"
,"restore fish stock"
,"illegal fishing"
,"sustainable yield"
,"ecotourism"
,"sustainable tourism"
,"community based conservation"
,"community-based conservation"
,"nutrient runoff"
,"destructive fishing"
,"species richness"
,"species diversity"
,"diversity of species"
,"diversity of the species"
,"traditional ecological knowledge"
,"small Island development states" ])
    
    cond3 = cond3_0 and cond3_1 and cond3_2
    cond4, _ = does_contain(ti_abs_kw, astronomy)

    if (cond1 or cond2 or cond3) and (not cond4):
        return {"sdg_code": "sdg14", "sdg_label": "14. Life below water"}
    return {}
Esempio n. 10
0
def test_sdg8(asjc_list, ti_abs_kw):
    cond1_0, _ = does_contain_list(asjc_list, ["1407"])
    cond1_1, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], ["20"])
    cond1_2, _ = does_contain(
        ti_abs_kw, ["sustainable", "sustainability", "ecological", "ecology"])
    cond1 = (cond1_0 or cond1_1) and cond1_2

    cond2_0, _ = does_contain_list(asjc_list, ["3303"])
    cond2_1, _ = does_contain(ti_abs_kw, [
        "worker", "workfare", "employment", "profession", "employee",
        "human resource", "work participation", "recruitment", "workplace",
        "career"
    ])
    cond2 = cond2_0 and cond2_1

    cond3, _ = does_contain(ti_abs_kw, [
        "decent work or economic growth", "economic growth",
        "economic development policy", "employment policy", "decent work",
        "fair income", "inclusive economic growth", "sustainable growth",
        "sustainable economic growth", "economic development",
        "economic globalization", "economic globalisation",
        "economic productivity", "low-carbon economy", "inclusive growth",
        "microfinanc", "micro-financ", "micro-credit", "microcredit",
        "equal income", "equal wages", "decent job", "decent jobs",
        "quality job", "quality jobs", "job creation", "full employment",
        "employment protection", "informal employment",
        "precarious employment", "unemployment", "precarious job",
        "precarious jobs", "microenterprise", "micro-enterprise",
        "small enterprise", "medium enterprise", "small enterprises",
        "medium enterprises", "small entrepreneur", "starting entrepreneur",
        "medium entrepreneur", "small entrepreneurs", "medium entrepreneurs",
        "starting entrepreneurs", "social entrepreneurship",
        "safe working environment", "labor market institution",
        "labor market institutions", "labour market institution",
        "labour market institutions", "forced labour", "forced labor",
        "child labour", "child labor", "labour right", "labor right",
        "labour rights", "labor rights", "Global Jobs Pact",
        "Enhanced Integrated Framework for Trade-Related Assistance for the Least Developed Countries",
        "modern slavery", "human trafficking", "child soldier",
        "child soldiers", "global jobs", "living wage", "minimum wage",
        "circular economy", "inclusive economy", "rural economy",
        "Foreign Development Investment", "Aid for Trade", "trade unions",
        "trade union", "working poor",
        "Not in Education, Employment, or Training", "carbon offset",
        "ecological offset", "carbon offsetting", "carbon offsets",
        "carbon price", "offset project", "offset projects",
        "environmental economic", "economic diversification",
        "material footprint", "resource efficiency",
        ["cradle to cradle", "economy"], "economic decoupling",
        "labour market disparities", "sustainable tourism", "ecotourism",
        "sustainable tourism", "community-based tourism", "tourism employment",
        "sustainable tourism policy", "financial access",
        "financial inclusion", "access to banking"
    ])

    if cond1 or cond2 or cond3:
        return {
            "sdg_code": "sdg8",
            "sdg_label": "8. Decent work and economic growth"
        }
    return {}
Esempio n. 11
0
def test_sdg9(asjc_list, ti_abs_kw):
    cond1_0, _ = does_contain_list(asjc_list, ["3303"])
    cond1_1, _ = does_contain(ti_abs_kw, [
        "innovation", "industrial", "industrialization", "industrialisation",
        "industry", "industries", "manufacturing", "infrastructure",
        "enterprise", "entrepreneur"
    ])
    cond1_2, _ = does_contain(ti_abs_kw, infra)
    cond1 = cond1_0 and (cond1_1 or cond1_2)

    cond2, _ = does_contain_list(asjc_list, ["2209", "1705", "1405"])
    cond3, _ = does_contain_list(
        asjc_list, ["2205", "1909", "2215", "2213", "2216", "3313"])

    cond4_0, _ = does_contain(ti_abs_kw, [
        "Industry, Innovation and Infrastructure", "industrial growth",
        "industrial diversification", "industrial innovation",
        "sustainable industrialization", "sustainable industrialisation",
        "inclusive industrialization", "inclusive industrialisation",
        "infrastructural development", "infrastructural investment",
        "infrastructure investment", "public infrastructure",
        "resilient infrastructure", "transborder infrastructure",
        "public infrastructures",
        "resilient infrastructures", "transborder infrastructures",
        ["industrial emissions", "mitigation"], "industrial waste management",
        "industrial waste treatment", "clean industrial processes"
    ])

    cond4_1_tmp = [
        "Africa", "least developed countries", "landlocked country",
        "developing country", "landlocked countries", "developing countries",
        "small island developing States"
    ] + dev_countries
    cond4_1, _ = does_contain(ti_abs_kw, cond4_1_tmp)

    cond4_2, _ = does_contain(ti_abs_kw, [
        "domestic technology development", "research and development",
        "access to the Internet", "security in cloud",
        "social network privacy", "cryptography", "network security",
        "network privacy", "information and communications technology",
        "transportation services", "mobile connectivity", "broadband access",
        "mobile cellular signal", "online access", "3G",
        "Internet through a third generation"
    ])

    cond4_3, _ = does_contain(ti_abs_kw, [
        "financial support", "technological support", "technical support",
        "financial services", "affordable credit"
    ])

    cond4_4, _ = does_contain(
        ti_abs_kw, ["enterprise", "entrepreneur", "small-scale industrial"])

    cond4_5 = cond4_3 and cond4_4

    cond4_6, _ = does_contain(ti_abs_kw, [
        "infrastructural Development", "microenterprise", "micro-enterprise",
        "small enterprise", "medium enterprise", "small enterprises",
        "medium enterprises", "small entrepreneur", "medium entrepreneur",
        "small entrepreneurs", "medium entrepreneurs",
        "value chain management", "manufacturing innovation",
        "sustainable production", "sustainable manufacturing",
        "manufacturing investment", "sustainable transportation",
        "accessible transportation", "hybrid and alternative drive vehicles",
        "hybrid electric vehicle", "hybrid vehicle", "light rail transit",
        "liquid nitrogen powered engine ", "sustainable mobility",
        "sustainable transport and mobility", "sustainable urban mobility",
        "transport emission reduction", "transport planning",
        "transport sustainability", "vehicle safety", "wheel-rail system"
    ])
    cond4_7, _ = does_contain(ti_abs_kw, [
        "inclusive transportation", "R&D investment", "green product",
        "green products", "sustainable manufacturing",
        ["cradle to cradle", "industry", "industries"],
        "closed loop supply chain", "process innovation", "product innovation",
        "innovation policies", "innovation policy", "inclusive innovation"
    ])

    cond4 = cond4_0 or (cond4_1 and
                        (cond4_2 or
                         (cond4_4 and cond4_3))) or cond4_6 or cond4_7

    if cond1 or cond2 or cond3 or cond4:
        return {
            "sdg_code": "sdg9",
            "sdg_label": "9. Industry, innovation and infrastructure"
        }
    return {}
Esempio n. 12
0
def test_sdg7(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(
        asjc_list, ["2100", "2101", "2102", "2103", "2104", "2105"])

    if None in asjc_list:
        cond2, evidence2_0 = True, 'none'
    else:
        cond2, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], [
            "15", "16", "17", "19", "21", "22", "23", "25", "26", "31", "12",
            "14", "18", "20", "32", "33", "10", "11"
        ])

    cond3, _ = does_contain(ti_abs_kw, [
        "renewable energy", "renewable energies", "energy efficiency",
        "energy efficient", "energy efficiencies", "efficient energy",
        "efficiency energy", "efficiency of energy", "energy self-sufficiency",
        "solar power system", "solar-generated energy",
        "solar energy management", "sustainable energy",
        "universal electrification", "rural electrification", "rooftop solar",
        "use of renewable energy", "energy use efficiency",
        "energy consumption", "energy supply", "electricity supply",
        "low-carbon energy", "nuclear power", "alternative energy",
        "alternative energies", "biodiesel", "bioenergy", "bioenergies",
        "biofuel", "biogas", "energy crops", "enhanced geothermal system",
        "geothermal heat pump", "geothermal heating", "geothermal resource",
        "geothermics", "ground source heat pump", "ground-coupled heat pump",
        "hydropower", "microbial fuel cell", "solar cell", "solar collector",
        "thermal energy storage", "water energy", "wave energy",
        "wind generator", "wind park", "CO2 geological sequestration",
        "CO2 sequestration", "carbon sequestration", "carbon storage",
        "rooftop photovoltaic", "active solar energy", "passive solar energy",
        "tidal energy", "tidal power", "geothermal power",
        "solar thermal power", "solar-thermal power", "hydroelectric power",
        "solar building", "modern energy", "nuclear energy",
        "nuclear fuel cycle", "energy mix", "home solar system",
        "fossil fuel energies", "fossil fuel energy", "solar park",
        "nonrenewable energy", "hydro-electric power", "converting biomass",
        "convert biomass", "biomass conversion", "biomass energy",
        "geothermal plants", "geothermal energy"
    ])

    cond4, _ = does_contain(ti_abs_kw, [
        "supply energy", "supplying energy", "energy conversion",
        "energy transition", "energy management", "energy access",
        "access to energy", "clean energy technology", "energy infrastructure",
        "energy equity", "energy justice", "energy poverty", "energy policy",
        "energy policies", "policy on energy", "2000 Watt society",
        "smart micro-grid", "smart grid", "smart microgrid",
        "smart micro-grids", "smart grids", "smart microgrids", "smart meter",
        "smart meters", "affordable electricity", "affordable energy",
        "electricity consumption", "electrical power consumption",
        "reliable electricity", "reliable electrical power",
        "power transmission network", "clean fuel", "access to electricity",
        "clean cooking fuel", "fuel poverty", "energiewende", "photovoltaic",
        "solar resource", "solar panel", "photocatalytic water splitting",
        "wind power", "solar energy system", "solar energy power plant",
        "wind energy", "wind turbine", "wind farm", "wind power Generation",
        "hydrogen production", "water splitting", "lithium-ion batteries",
        "lithium-ion battery", "heat network", "district heat",
        "district heating", "heating equipment",
        "residential energy consumption", "domestic energy consumption",
        "energy security", "rural electrification", "energy ladder",
        "energy conservation", "low-carbon society",
        "hybrid renewable energy system", "hybrid renewable energy systems",
        "fuel switching", "energy governance",
        ["photochemistry", "renewable energy"]
    ])
    cond5, _ = does_contain(ti_abs_kw, astronomy)
    cond6, _ = does_contain(
        ti_abs_kw, [["energy conservation", "dissipative"],
                    ["energy conservation", "dissipation"],
                    ["energy conservation", "energy variable"],
                    ["energy conservation", "energy–momentum conservation"],
                    ["energy conservation", "pseudo-energy"]])

    if cond1 or (cond2 and (cond3 or cond4)) and (not cond5) and (not cond6):
        return {
            "sdg_code": "sdg7",
            "sdg_label": "7. Affordable and clean energy"
        }
    return {}
Esempio n. 13
0
def test_sdg2(asjc_list, ti_abs_kw):
    cond1, evidence1 = does_contain_list(asjc_list, ["1102", "1106"])

    if None in asjc_list:
        cond2_0, evidence2_0 = True, 'none'
    else:
        cond2_0, evidence2_0 = does_contain_list(
            [asjc[0:2] for asjc in asjc_list], [
                "15", "16", "17", "19", "21", "22", "23", "25", "26", "31",
                "12", "14", "18", "20", "32", "33", "10", "11"
            ])

    cond2_1, evidence2_1 = does_contain(ti_abs_kw, [
        "land tenure rights", ["smallholder", "farm"], "forestry", "pastoral",
        "agriculture", "fishery", "fisheries", "food producer",
        "food producers", "malnourish", "malnutrition", "undernourish",
        "undernutrition", "agricultural production",
        "agriculture as a production", "agricultural productivity",
        "agricultural practices", "agricultural management", "food production",
        "production of food", "food productivity", "food security",
        "security and food", "security of food", "food safety",
        "food insecurity", "land right", "access to land", "land rights",
        "land reform", "land reforms", "resilient agricultural practices",
        ["agriculture", "potassium"], "fertiliser", "soil fertility",
        "soil amendment", "crop rotation", "crop production", " crops ",
        " crops.", " crops,", " crops;", " crops:", "agricultural management",
        "fertilizer", "improve land and soil quality", "improve land quality",
        "improve soil quality", "food nutrition improvement", "hidden hunger",
        "end hunger", "genetically modified food", ["gmo", "food"],
        ["genetically modified ", "food"], "agroforestry practices",
        "agroforestry management", "agricultural innovation",
        ["food security", "genetic diversity"],
        ["food security", "seed and plant banks"],
        ["food security", "seed banks"], ["food security", "plant banks"],
        ["food market", "restriction"], ["food market", "tariff"],
        ["food market", "access"], ["food market", "north south divide"],
        ["food market", "development governance"
         ], "food governance", "food price volatility", "food supply chain",
        "food value chain", "food commodity market",
        "agricultural sustainability", "agrobiodiversity", "agroecology",
        "conventional farming system", "cover crops", "farming systems",
        "grain for green", "integrated management practices",
        "organic farming", "pastoralism", "pastoralists", "precision farming",
        "rainfed cultivation", "rainwater harvesting", "shifting cultivation"
    ])

    cond2 = cond2_0 and cond2_1

    cond3, evidence3 = does_contain(ti_abs_kw, [
        "poverty and hunger", "poverty and hunger", "hunger and poverty",
        "extreme hunger", "world hunger", "hunger in the world",
        "world without hunger", "tackling poverty and hunger", "combat hunger",
        "combating hunger", "ending hunger", "end hunger", "eradicate hunger",
        "hunger alleviation", "alleviate hunger", "reduce hunger",
        "hunger reduction", "protection against hunger",
        "protect against hunger", "people affected by hunger"
    ])

    if cond1 or cond2 or cond3:
        return {"sdg_code": "sdg2", "sdg_label": "2. Zero Hunger"}
    return {}
Esempio n. 14
0
def test_sdg16(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(
        asjc_list, ["3306", "3308", "3311", "3312", "3320", "3321"])

    if None in asjc_list:
        cond2_0, _ = True, 'none'
    else:
        cond2_0, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], [
            "15", "16", "17", "19", "21", "22", "23", "25", "26", "31", "12",
            "14", "18", "20", "32", "33", "10", "11"
        ])

    cond2_1, _ = does_contain(ti_abs_kw, [
        "peace justice and strong institutions", "actual innocence",
        "false confession", "armed conflict", "armed conflicts",
        "civil conflict", "civil conflicts", "civil war", "illicit financial",
        ["war", "conflict"], ["war", "warfare"], ["war", "democracy"],
        ["war", "Geneva Convention"], ["war", "treaty"], ["war", "peace"],
        "peacekeeping", ["corruption", "institution"],
        ["corruption", "public official"], ["corruption", "government"],
        ["corruption", "bribery"], ["corruption", "conflict"], "crime",
        "crimes", "criminal", "democratic deficit"
    ])

    cond2_2, _ = does_contain(ti_abs_kw,
                              ["democratisation", "democratization"])
    cond2_3, _ = does_contain(ti_abs_kw, [
        "institutional", "conflict", "decision-making", "society", "politics",
        "financial aid"
    ])

    cond2_4, _ = does_contain(ti_abs_kw, [
        "ethnic conflict", "ethnic conflicts", "exoneration", "genocid",
        "homicide", "murder", "human trafficking", "justice system",
        "system of justice", "equal access to justice", "arbitrary justice",
        "refugee", "terroris", "violence", "torture", "effective rule of law",
        "arms flow", "transparent institution", "transparent institutions",
        "good governance", "legal identity for all", "provide legal identity",
        "freedom of information", "human rights institution",
        "human rights activists", "fundamental freedom",
        "fundamental freedoms", "violent conflict", "violent conflicts",
        "peaceful society", "effective institution", "effective institutions",
        "accountable institution", "accountable institutions",
        "inclusive institution", "inclusive institutions", "child abuse",
        "child exploitation", "child trafficking", "child torture",
        "torture of children", "children abuse", "children exploitation",
        "children trafficking", "children torture", "arbitrary detention",
        "unsentenced detention", "judicial system", "criminal tribunal",
        "inclusive society", "inclusive societies", "responsive institution",
        "responsive institutions", "fair society", "fair societies",
        "legal remedy", "legal remedies", "independence of judiciary",
        "independent judiciary", "separation of powers", "extremism",
        "war crime", "peaceful society", "organized crime", "illicit transfer",
        "illicit money", "arms trafficking", "cybercrime", "cybercriminality",
        "insurgence", "local participation", "sustainability initiative",
        "democratic institution", "political instability",
        ["decision-making", "responsive"], ["decision-making", "inclusive"],
        ["decision-making", "participatory"],
        ["decision-making", "representative"
         ], "Aarhus Convention", "press freedom", "freedom of speech"
    ])
    cond2 = (cond2_0 and (cond2_1 or (cond2_2 and cond2_3) or cond2_4))

    if cond1 or cond2:
        return {
            "sdg_code": "sdg16",
            "sdg_label": "16. Peace, justice and strong institutions"
        }
    return {}
Esempio n. 15
0
def test_sdg12(asjc_list, ti_abs_kw):
    cond1, _ = does_contain_list(asjc_list, ["2311","2304","2305"])
    
    cond2_0, _ = does_contain(ti_abs_kw, [
        "consumer behaviour" 
,"consumer behavior"
,"behavior of the consumer"
,"behaviour of the consumer"
,"behavioral economics"
,"behavioural economics"
,"supply chain"
        ])
    cond2_1, _ = does_contain_list([asjc[0:2] for asjc in asjc_list], ["23"])
    cond2 = cond2_0 and cond2_1

    cond3_0, _ = does_contain(ti_abs_kw, [
    "consumer behaviour"
,"consumer behavior"
,"behavior of the consumer"
,"behaviour of the consumer"
,"behavioral economics"
,"behavioural economics"
,"supply chain" ])
    cond3_1, _ = does_contain(ti_abs_kw, [
"environment"
,"sustainability"
,"sustainable"
,"ecological","ecology" ])
    cond3 = cond3_0 and cond3_1

    cond4, _ = does_contain(ti_abs_kw, [
    "responsible consumption and production" 
,"ethical consumerism"
,"environmental pollution"
,"environmental impact assessment"
,"clean production"
,"cleaner production"
,"hazardous waste"
,"biodegradable"
,"biocompatible"
,"radioactive waste"
,"nuclear waste"
,"consumption of plastic"
,"plastic consumption"
,"reusable bag"
,"plastic straw"
,"plastic bottle"
,"hazardous chemical"
,"pollution control"
,"responsible consumption"
,"responsible production"
,"sustainable clothing consumption"
,"responsible clothing consumption"
,"sustainable textile production"
,"responsible textile production"
,"hazardous chemicals"
,"toxic chemical"
,"toxic chemicals"
,"chemical pollution"
,"ozone depletion"
,"post-harvest loss"
,"pesticide pollution"
,"pesticide stress"
,"pesticide reduction"
,"life cycle assessment"
,"life-cycle assessment"
," life cycle of economic activities"
," life cycle of economic activity"
," life-cycle of economic activities"
," life-cycle of economic activity"
,"life cycle analysis"
,"life-cycle analysis"
,"product life cycle"
,"product life-cycle"
,"products life cycle"
,"products life-cycle"
,"material consumption"
,"material footprint"
,"material efficiency"
,"environmentally sound technologies"
,"environmentally sound technology"
,"life cycle of a service"
,"life-cycle of a service"
,"life cycle of a product"
,"life-cycle of a product"
,"life cycle of services"
,"life-cycle of services"
,"life cycle of products"
,"life-cycle of products"
,"life cycle analyses"
,"lifecycle environmental impact"
,"life-cycle analysis"
,"life-cycle analyses"
,"low carbon economy"
,"low-carbon economy"
,"low carbon economies"
,"low-carbon economies"
,"environmental footprint"
,"material footprint"
,"harvest efficiency"
,"solid waste"
,"waste generation"
,"corporate social responsibility"
,"corporate political responsibility"
,"corporate sustainability"
,"household energy behavior"
,"household energy behaviour"
,"household environmental behaviour"
,"household environmental behavior"
,"household environmental attitude"
,"waste recycling"
,"recycle waste"
,"recycle water"
,"water recycling"
,"purify water"
,"water purifying"
,"resource recycling"
,"resource reuse"
,"adaptative reuse"
,"biobased economy"
,"sustainable lifestyle"
,"zero waste"
,"sustainability label"
,"sustainability labelling"
,"global resource extraction"
,"material flow accounting"
,"societal metabolism"
,"food spill"
,"food loss"
,"food waste"
,"throw away food"
,"resource spill"
,"resource efficiency"
,"sustainable food consumption"
,"sustainable consumption"
,"sustainable production"
,"food-related energy consumption"
,"food-related energy waste"
,"food related energy consumption"
,"food related energy waste"
,"green consumption"
,"green economy"
,"green production"
,"sustainable supply chain"
,"wasteful consumption"
,"circular economy"
,"cradle to cradle"
,"sustainable procurement"
,"sustainable tourism"
,"fossil-fuel subsidies"
,"fossil-fuel expenditure"
,"fossil fuel subsidies"
,"fossil fuel expenditure"
,"sustainability label"
,"sustainability labelling"
,["consumption", "resource use"]
,["consumption", "spill"]
,["production", "resource use"]
,["production", "spill"]
,"eco-efficiency","ecoefficiency","ecological footprint" 
,"ecospace","eco-supply chain","eco supply chain" 
,"environmental management accounting","environmental product policy" 
,"fair trade","green consumerism","green core competence" 
,"green innovation","green marketing","green process innovation" 
,"green product innovation","greening of industry" 
,"industrial ecology","industrial sustainability" 
,"industrial symbiosis","integrated product policy" 
,"life cycle costing","life-cycle thinking","life-cycle costing" 
,"life cycle thinking","natural resource accounting" 
,"pollution prevention","product service system" 
,"product stewardship","rebound effect","steady-state economy" 
,"sustainable chemistry","sustainable consumption and production" 
,"sustainable production and consumption" 
,"waste management","waste minimization"
,"waste activated sludge","waste utilization","pylorysis","composting","biogasification","energy from waste","waste collection","biowaste","leachate treatment","packaging waste","source separation","source reduction","waste valorization","household waste","leaching test"  ,"waste disposal"  ,"fatigue damage"
])

    if cond1 or cond2 or cond3 or cond4:
        return {"sdg_code": "sdg12", "sdg_label": "12. Responsible consumption and production"}
    return {}
Esempio n. 16
0
def test_sdg4(asjc_list, ti_abs_kw):

    cond1_0, evidence1_0 = does_contain_list(asjc_list,
                                             ["3304", "3204", "3319", "3316"])
    cond1_1, evidence1_1 = does_contain_list(asjc_list, ["3312"])
    cond1_2, evidence1_2 = does_contain(ti_abs_kw, ["education"])

    cond1 = cond1_0 or (cond1_1 and cond1_2)

    cond2, evidence2 = does_contain(ti_abs_kw, [
        "school attendance", "attending school", "school enrollment",
        "academic achievement", "educational development", "school enrolment",
        "inclusive education", "educational inequality",
        "educational inequalities", "education quality",
        "quality of education", "educational enrolment",
        "educational enrollment", "enrolment in higher education",
        "enrollment in higher education",
        "educational environment", "educational access",
        ["development aid", "teacher training"], "early childhood education",
        "preprimary education", "tertiary education",
        "childhood education and care", "primary education", "basic education",
        "free education", "equitable education", "affordable education",
        "educational financial aid", "school safety", "safety in school",
        "educational inequality", "educational gap",
        ["poverty trap", "schooling"], "special education needs",
        "inclusive education system", "education exclusion",
        "education dropouts", "sustainable development education",
        "education for sustainable development", "environmental education",
        "education policy", "educational policies",
        "international education", "education reform",
        ["educational reform", "developing countries"
         ], "educational governance", "education expenditure",
        "education policy", "educational policies", "education policies"
    ])

    cond3_0, _ = does_contain(ti_abs_kw,
                              ["school", "education", "educational"])
    cond3_1, _ = does_contain(ti_abs_kw, [
        "Africa", "least developed countries", "landlocked country",
        "developing country", "landlocked countries", "developing countries",
        "small island developing States"
    ] + dev_countries)
    cond3_2, _ = does_contain(ti_abs_kw, [
        "vocational training", "information and communication technologies",
        "information and communication technology",
        "information communication technologies",
        "communication and information technologies"
    ])
    cond3_3 = cond3_1 and cond3_2

    cond3_4_tmp = [
        "adult literacy", "achieve literacy", "achieve numeracy",
        "numeracy rate", "literacy rate",
        ["learning opportunities", "gender disparities"],
        ["learning opportunities",
         "empowerment"], "gender disparities in education",
        ["learning opportunity", "gender disparities"],
        ["learning opportunity",
         "empowerment"], "youth empowerment", "women empowerment",
        "equal opportunities", "child labour", "child labor", "discriminatory",
        ["schooling",
         "gender disparities"], ["schooling", "ethnic disparities"],
        ["schooling", "racial disparities"], "global citizenship",
        ["developing countries", "school effects"], "foreign aid",
        ["teacher training", "Africa"],
        ["teacher training", "least developed countries"],
        ["teacher training", "landlocked country"],
        ["teacher training", "developing country"],
        ["teacher training", "landlocked countries"],
        ["teacher training", "developing countries"],
        ["teacher training",
         "small island developing States"], "teacher attrition"
    ]
    cond3_4_tmp += [["teacher training", k] for k in dev_countries]

    cond3_4 = does_contain(ti_abs_kw, cond3_4_tmp)

    cond3_5 = does_contain(ti_abs_kw, ["decent job", "with disabilities"])

    cond3 = cond3_0 and (cond3_3 or cond3_4 or cond3_5)

    if cond1 or cond2 or cond3:
        return {"sdg_code": "sdg4", "sdg_label": "4. Quality education"}
    return {}