{"id":19025099,"url":"https://github.com/divefish/ppats","last_synced_at":"2025-10-13T23:41:15.015Z","repository":{"id":239597219,"uuid":"799822351","full_name":"DiveFish/PPATS","owner":"DiveFish","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-03T18:55:51.000Z","size":360,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-03T20:44:19.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DiveFish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-13T07:05:43.000Z","updated_at":"2025-08-03T18:55:54.000Z","dependencies_parsed_at":"2025-08-03T20:27:39.060Z","dependency_job_id":"b497deaf-dd0c-420f-8dcb-fe38cba82f49","html_url":"https://github.com/DiveFish/PPATS","commit_stats":null,"previous_names":["divefish/ppats"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DiveFish/PPATS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiveFish%2FPPATS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiveFish%2FPPATS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiveFish%2FPPATS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiveFish%2FPPATS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DiveFish","download_url":"https://codeload.github.com/DiveFish/PPATS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiveFish%2FPPATS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017233,"owners_count":26086016,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T20:41:44.385Z","updated_at":"2025-10-13T23:41:14.998Z","avatar_url":"https://github.com/DiveFish.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PPATS\nA **PP** **a**ttachment **t**est **s**uite for German\n\n(by [DiveFish](https://github.com/DiveFish/) and [janniss91](https://github.com/janniss91/))\n\nPP attachment is the largest source of errors in syntactic parsing. But what is it exactly that makes it difficult? And which kinds of parsers struggle less with these structures?\n\nThe PPATS test suite provides manually created sentences with prepositional phrases that exhibit specific linguistic properties:\n\n|Property | Annotation |\n|:------------- |:-------------|\n|Base case|`base`|\n|1 head candidate|`1head`|\n|2 head candidates|All sentences that are not `1head`, `3head`, `4head` or `5head`|\n|3 head candidates|`3head`|\n|4 head candidates|`4head`|\n|5 head candidates|`5head`|\n|PP = P + N|`pn`|\n|PP = P + D + N|All sentences that are not `pn`, `pdan`, `pppossnp` or `pppp`|\n|PP = P + D + A + N|`pdan`|\n|Pp = P + D + N + genitive NP|`pppossnp`|\n|PP = p + D + N + PP|`pppp`|\n|PP before head|`ppfronted`|\n|Prepositional object|`objp`|\n|Noun-headed PP|`nounheadedpp`|\n|PP in idiom|`idm`|\n\nThe properties are accessible through the annotations. Parsers can be evaluated against the full test suite or particular properties in order to test their abilities of solving various kinds of PP attachment ambiguities.\n\nThe base case consists of a verb-headed PP that has two attachment head candidates which is the most frequent kind of PP attachment ambiguity. The base PP consists of a preposition, a determiner and a noun. This configuration has been selected based on frequencies in the TüBa-D/Z UD corpus (version 11).\n\n## Convert Test Suite to Conll\n\nTo convert the test suite to a Conll-X file, use the following command (exchange filenames):\n\n    python3 tools/convert_testsuite_to_conll.py material/pp-test-suite.tsv pp-test-suite.conll\n\n\nTo convert the test suite to a Conll-U file, use the following command (exchange filenames):\n\n    python3 tools/convert_testsuite_to_conll.py material/pp-test-suite.tsv pp-test-suite_u.conll -t u\n  \n**Note:** The basename of the file must end in \"_u\" (`filename_u.conll`).\n\n## Convert Conll Formats Between Each Other\n\nTo convert a conll-X file to a conll-U file, use the following command:\n\n    python3 tools/change-conll-format.py material/test.conll -u\n\nTo convert a conll-U file to a conll-X file, use the following command:\n\n    python3 tools/change-conll-format.py material/test.conll -x\n\n## Searching prepositions and meanings\n\nYou can make use of the `search_examples.py` script to search for specific prepositions and meanings. If you specify the filename (optional) it must be in the same JSON format as `meaning_examples.json`.\n\nUse the script in the following way:\n\nLook for example with specific meaning and preposition:\n\n    python3 tools/search_examples.py -m Spatial -p in\n\nLook for all examples for one specific meaning:\n\n    python3 tools/search_examples.py -m Spatial\n\nLook for all examples for one specific preposition:\n\n    python3 tools/search_examples.py -p in\n\nChange the filename (if necessary):\n\n    python3 tools/search_examples.py Spatial -p in -f other_file.json\n\n## Obtaining Preposition-Meaning Frequency Statistics\n\nThere are statistics stating the frequencies of prepositions and meanings and their combinations.\nThese have been obtained from PrepSensNZZ, a licensed corpus of meaning-annotated PPs (Kiss et al. 2016).\n\nTo regenerate these statistics, the following must be run:\n\n    python3 tools/number_prep_meaning.py ../prepsensNZZ/ material/prep-meanings/num_prep2meaning.csv material/prep-meanings/top_meanings_per_prep.csv material/prep-meanings/top_preps_per_meaning.csv \n\nNote: The file names are those that are already present in the repository. For regeneration it might be desirable to change them.\n\nHere is a list of what the 4 arguments to the script must contain:\n\n1. The directory with the files containing the original frequency (PrepSensNZZ) named above.\n2. The TSV file that contains a table mapping all prepositions to meanings and stating their combined frequencies.\n3. The table that lists the top meanings per preposition (and the overall frequency of the prepositions).\n4. The table that lists the top prepositions per meaning (and the overall frequency of the meanings).\n\n## Sources\n\nFor data collection the following resources have been used.\n\n### Idioms\n\n- https://www.pinterest.com/goranamucic/deutsche-idiome/\n- https://www.schreiben.net/artikel/70-redewendungen-bedeutung-herkunft-1635/\n- https://de.wikiquote.org/wiki/Deutsche_Sprichw%C3%B6rter\n- https://de.wikipedia.org/wiki/Liste_deutscher_Redewendungen\n\n## References\nPrepSensNZZ: Tibor Kiss, Antje Müller, Claudia Roch, Tobias Stadtfeld, Alicia Katharina Börner and Monika Duzy. 2016. Ein Handbuch für die Bestimmung und Annotation von Präpositionsbedeutungen im Deutschen. Bochum, 1-440. Available here: /media/pages/publikationen/Kiss2016Handbuch/kiss2016handbuch.pdf\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivefish%2Fppats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdivefish%2Fppats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdivefish%2Fppats/lists"}