├── .coveragerc ├── .github ├── stale.yml └── workflows │ └── tests.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── MANIFEST.in ├── README.md ├── RELEASE_NOTES.md ├── docs ├── .gitignore ├── Makefile ├── _static │ └── .gitignore ├── _templates │ └── autosummary │ │ ├── class.rst │ │ └── module.rst ├── conf.py ├── fileformats.rst ├── index.rst └── make.bat ├── examples └── quantities.py ├── kindred ├── CandidateBuilder.py ├── CandidateRelation.py ├── Corpus.py ├── Document.py ├── Entity.py ├── EntityRecognizer.py ├── LogisticRegressionWithThreshold.py ├── MultiLabelClassifier.py ├── Parser.py ├── Relation.py ├── RelationClassifier.py ├── Sentence.py ├── Token.py ├── Vectorizer.py ├── __init__.py ├── bionlpst.py ├── bionlpst_files.txt ├── datageneration.py ├── defunctFileWarning.py ├── evalFunctions.py ├── loadFunctions.py ├── manualAnnotation.py ├── pubannotation.py ├── pubtator.py ├── saveFunctions.py └── utils.py ├── requirements.txt ├── results ├── featureBuilder.txt ├── final.BB3.zip ├── final.SeeDev.zip ├── thresholds.txt ├── thresholds2.txt └── trainAndDev.txt ├── setup.py ├── tests ├── .gitignore ├── __init__.py ├── createBiocFile.py ├── data │ ├── example.a1 │ ├── example.a2 │ ├── example.bioc.xml │ ├── example.json │ ├── example.simple │ ├── example.txt │ └── terms.wordlist ├── data_extraLines │ ├── example.a1 │ ├── example.a2 │ └── example.txt ├── data_missingA2 │ ├── example.a1 │ └── example.txt ├── data_multiplePassages │ └── example.bioc.xml ├── data_triple │ ├── example.a1 │ ├── example.a2 │ └── example.txt ├── installSpacyLanguages.sh ├── test_bionlpst.py ├── test_candidatebuilder.py ├── test_candidaterelation.py ├── test_checkREADME.py ├── test_corpus.py ├── test_datatypes.py ├── test_defunctFileWarning.py ├── test_docs.py ├── test_docstrings.py ├── test_document.py ├── test_entity.py ├── test_entityrecognizer.py ├── test_evaluate.py ├── test_examples.py ├── test_featurebuilding.py ├── test_load.py ├── test_longparse.py ├── test_manualAnnotation.py ├── test_multilabelclassifier.py ├── test_paperfigures.py ├── test_parsing.py ├── test_pickle.py ├── test_pubannotation.py ├── test_pubtator.py ├── test_relation.py ├── test_relationclassifier.py ├── test_save.py ├── test_sentence.py ├── test_thresholding.py ├── test_token.py ├── test_trainAndDev.py ├── test_utils.py └── test_vectorizer.py └── tutorial ├── README.md ├── annotate.py ├── annotations.tar.gz ├── buildAndUseClassifier.py ├── city.txt ├── corpus.txt └── country.txt /.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | source = kindred 3 | 4 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/MANIFEST.in -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/README.md -------------------------------------------------------------------------------- /RELEASE_NOTES.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/RELEASE_NOTES.md -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | _build/ 2 | _autosummary/ 3 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/_static/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/_templates/autosummary/class.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/_templates/autosummary/class.rst -------------------------------------------------------------------------------- /docs/_templates/autosummary/module.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/_templates/autosummary/module.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/fileformats.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/fileformats.rst -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/docs/make.bat -------------------------------------------------------------------------------- /examples/quantities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/examples/quantities.py -------------------------------------------------------------------------------- /kindred/CandidateBuilder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/CandidateBuilder.py -------------------------------------------------------------------------------- /kindred/CandidateRelation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/CandidateRelation.py -------------------------------------------------------------------------------- /kindred/Corpus.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Corpus.py -------------------------------------------------------------------------------- /kindred/Document.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Document.py -------------------------------------------------------------------------------- /kindred/Entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Entity.py -------------------------------------------------------------------------------- /kindred/EntityRecognizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/EntityRecognizer.py -------------------------------------------------------------------------------- /kindred/LogisticRegressionWithThreshold.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/LogisticRegressionWithThreshold.py -------------------------------------------------------------------------------- /kindred/MultiLabelClassifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/MultiLabelClassifier.py -------------------------------------------------------------------------------- /kindred/Parser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Parser.py -------------------------------------------------------------------------------- /kindred/Relation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Relation.py -------------------------------------------------------------------------------- /kindred/RelationClassifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/RelationClassifier.py -------------------------------------------------------------------------------- /kindred/Sentence.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Sentence.py -------------------------------------------------------------------------------- /kindred/Token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Token.py -------------------------------------------------------------------------------- /kindred/Vectorizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/Vectorizer.py -------------------------------------------------------------------------------- /kindred/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/__init__.py -------------------------------------------------------------------------------- /kindred/bionlpst.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/bionlpst.py -------------------------------------------------------------------------------- /kindred/bionlpst_files.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/bionlpst_files.txt -------------------------------------------------------------------------------- /kindred/datageneration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/datageneration.py -------------------------------------------------------------------------------- /kindred/defunctFileWarning.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/defunctFileWarning.py -------------------------------------------------------------------------------- /kindred/evalFunctions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/evalFunctions.py -------------------------------------------------------------------------------- /kindred/loadFunctions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/loadFunctions.py -------------------------------------------------------------------------------- /kindred/manualAnnotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/manualAnnotation.py -------------------------------------------------------------------------------- /kindred/pubannotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/pubannotation.py -------------------------------------------------------------------------------- /kindred/pubtator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/pubtator.py -------------------------------------------------------------------------------- /kindred/saveFunctions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/saveFunctions.py -------------------------------------------------------------------------------- /kindred/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/kindred/utils.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/requirements.txt -------------------------------------------------------------------------------- /results/featureBuilder.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/featureBuilder.txt -------------------------------------------------------------------------------- /results/final.BB3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/final.BB3.zip -------------------------------------------------------------------------------- /results/final.SeeDev.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/final.SeeDev.zip -------------------------------------------------------------------------------- /results/thresholds.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/thresholds.txt -------------------------------------------------------------------------------- /results/thresholds2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/thresholds2.txt -------------------------------------------------------------------------------- /results/trainAndDev.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/results/trainAndDev.txt -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/setup.py -------------------------------------------------------------------------------- /tests/.gitignore: -------------------------------------------------------------------------------- 1 | README.py 2 | -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/createBiocFile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/createBiocFile.py -------------------------------------------------------------------------------- /tests/data/example.a1: -------------------------------------------------------------------------------- 1 | T1 disease 4 21 colorectal cancer 2 | T2 gene 49 52 APC 3 | 4 | -------------------------------------------------------------------------------- /tests/data/example.a2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data/example.a2 -------------------------------------------------------------------------------- /tests/data/example.bioc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data/example.bioc.xml -------------------------------------------------------------------------------- /tests/data/example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data/example.json -------------------------------------------------------------------------------- /tests/data/example.simple: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data/example.simple -------------------------------------------------------------------------------- /tests/data/example.txt: -------------------------------------------------------------------------------- 1 | The colorectal cancer was caused by mutations in APC 2 | -------------------------------------------------------------------------------- /tests/data/terms.wordlist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data/terms.wordlist -------------------------------------------------------------------------------- /tests/data_extraLines/example.a1: -------------------------------------------------------------------------------- 1 | T1 disease 4 21 colorectal cancer 2 | T2 gene 49 52 APC 3 | 4 | -------------------------------------------------------------------------------- /tests/data_extraLines/example.a2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data_extraLines/example.a2 -------------------------------------------------------------------------------- /tests/data_extraLines/example.txt: -------------------------------------------------------------------------------- 1 | The colorectal cancer was caused by mutations in APC 2 | -------------------------------------------------------------------------------- /tests/data_missingA2/example.a1: -------------------------------------------------------------------------------- 1 | T1 disease 4 21 colorectal cancer 2 | T2 gene 49 52 APC 3 | 4 | -------------------------------------------------------------------------------- /tests/data_missingA2/example.txt: -------------------------------------------------------------------------------- 1 | The colorectal cancer was caused by mutations in APC 2 | -------------------------------------------------------------------------------- /tests/data_multiplePassages/example.bioc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data_multiplePassages/example.bioc.xml -------------------------------------------------------------------------------- /tests/data_triple/example.a1: -------------------------------------------------------------------------------- 1 | T1 drug 0 9 Erlotinib 2 | T2 gene 13 17 EGFR 3 | T3 disease 49 54 NSCLC 4 | -------------------------------------------------------------------------------- /tests/data_triple/example.a2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/data_triple/example.a2 -------------------------------------------------------------------------------- /tests/data_triple/example.txt: -------------------------------------------------------------------------------- 1 | Erlotinib, a EGFR inhibitor is commonly used for NSCLC patients. -------------------------------------------------------------------------------- /tests/installSpacyLanguages.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/installSpacyLanguages.sh -------------------------------------------------------------------------------- /tests/test_bionlpst.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_bionlpst.py -------------------------------------------------------------------------------- /tests/test_candidatebuilder.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_candidatebuilder.py -------------------------------------------------------------------------------- /tests/test_candidaterelation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_candidaterelation.py -------------------------------------------------------------------------------- /tests/test_checkREADME.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_checkREADME.py -------------------------------------------------------------------------------- /tests/test_corpus.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_corpus.py -------------------------------------------------------------------------------- /tests/test_datatypes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_datatypes.py -------------------------------------------------------------------------------- /tests/test_defunctFileWarning.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_defunctFileWarning.py -------------------------------------------------------------------------------- /tests/test_docs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_docs.py -------------------------------------------------------------------------------- /tests/test_docstrings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_docstrings.py -------------------------------------------------------------------------------- /tests/test_document.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_document.py -------------------------------------------------------------------------------- /tests/test_entity.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_entity.py -------------------------------------------------------------------------------- /tests/test_entityrecognizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_entityrecognizer.py -------------------------------------------------------------------------------- /tests/test_evaluate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_evaluate.py -------------------------------------------------------------------------------- /tests/test_examples.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_examples.py -------------------------------------------------------------------------------- /tests/test_featurebuilding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_featurebuilding.py -------------------------------------------------------------------------------- /tests/test_load.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_load.py -------------------------------------------------------------------------------- /tests/test_longparse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_longparse.py -------------------------------------------------------------------------------- /tests/test_manualAnnotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_manualAnnotation.py -------------------------------------------------------------------------------- /tests/test_multilabelclassifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_multilabelclassifier.py -------------------------------------------------------------------------------- /tests/test_paperfigures.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_paperfigures.py -------------------------------------------------------------------------------- /tests/test_parsing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_parsing.py -------------------------------------------------------------------------------- /tests/test_pickle.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_pickle.py -------------------------------------------------------------------------------- /tests/test_pubannotation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_pubannotation.py -------------------------------------------------------------------------------- /tests/test_pubtator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_pubtator.py -------------------------------------------------------------------------------- /tests/test_relation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_relation.py -------------------------------------------------------------------------------- /tests/test_relationclassifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_relationclassifier.py -------------------------------------------------------------------------------- /tests/test_save.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_save.py -------------------------------------------------------------------------------- /tests/test_sentence.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_sentence.py -------------------------------------------------------------------------------- /tests/test_thresholding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_thresholding.py -------------------------------------------------------------------------------- /tests/test_token.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_token.py -------------------------------------------------------------------------------- /tests/test_trainAndDev.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_trainAndDev.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /tests/test_vectorizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tests/test_vectorizer.py -------------------------------------------------------------------------------- /tutorial/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/README.md -------------------------------------------------------------------------------- /tutorial/annotate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/annotate.py -------------------------------------------------------------------------------- /tutorial/annotations.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/annotations.tar.gz -------------------------------------------------------------------------------- /tutorial/buildAndUseClassifier.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/buildAndUseClassifier.py -------------------------------------------------------------------------------- /tutorial/city.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/city.txt -------------------------------------------------------------------------------- /tutorial/corpus.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/corpus.txt -------------------------------------------------------------------------------- /tutorial/country.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jakelever/kindred/HEAD/tutorial/country.txt --------------------------------------------------------------------------------