{"_id": {"$oid": "6a8456c1ef0a19c343227d8c"}, "test_id": "T1635", "benchmark": "library_cards", "date": "2026-08-18", "tags": {"document-type": ["index-card"], "writing": ["typed", "printed", "handwritten"], "century": [20, 19], "language": ["de", "fr", "en", "la", "el", "fi", "sv", "pl"], "layout": ["index"], "entry-type": ["bibliographic"], "task": ["information-extraction"]}, "contributors": ["gabriel_muller", "maximilian_hindermann"], "hidden": false, "config": {"provider": "openrouter", "model": "z-ai/glm-5v-turbo", "dataclass": "Document", "temperature": 0.0, "role_description": "You are a historian with keyword knowledge", "prompt_file": "prompt.txt", "legacy_test": false}, "prompt": "Extract the bibliographic information about a historical dissertation from this index card and return it as a structured JSON object with the following exact format:\n\n```json\n{\n  \"type\": {\n    \"type\": \"Dissertation or thesis\" OR \"Reference\"\n  },\n  \"author\": {\n    \"last_name\": \"string\",\n    \"first_name\": \"string\"\n  },\n  \"publication\": {\n    \"title\": \"string\",\n    \"year\": integer,\n    \"place\": \"string or empty string\",\n    \"pages\": \"string or empty string\",\n    \"publisher\": \"string or empty string\",\n    \"format\": \"string or empty string\"\n  },\n  \"library_reference\": {\n    \"shelfmark\": \"string or empty string\",\n    \"subjects\": \"string or empty string\"\n  }\n}\n```\n\nEXTRACTION RULES:\n1. **Card Type**: If a card contains the note \"s.\" on a separate line, it is a \"Reference\". Otherwise, it is a \"Dissertation or thesis\".\n\n2. **Author**: Extract last_name and first_name. If only one name is given, put it in last_name and leave first_name empty.\n\n3. **Publication**:\n   - title: The main title of the work\n   - year: Publication year as integer\n   - place: Publication place\n   - pages: Page count (remove \" S.\" suffix if present)\n   - publisher: Publishing house/institution\n   - format: Usually \"8\u00b0\", \"8'\", or \"4\u00b0\" - single value only\n\n4. **Library Reference**:\n   - shelfmark: Often begins with \"Diss.\" or \"AT\", may be marked with \"Standort:\"\n   - subjects: Subject classifications or keywords\n\n5. **Missing Information**: Use empty string \"\" for missing text fields, omit year fields entirely if not present.\n\n6. **Ignore**: Disregard any information that doesn't fit into these categories.\n\nReturn ONLY the JSON object, no additional text or explanation.", "results": {"text": "{\n  \"type\": {\n    \"type\": \"Dissertation or thesis\"\n  },\n  \"author\": {\n    \"last_name\": \"Opitz\",\n    \"first_name\": \"Hermann\"\n  },\n  \"publication\": {\n    \"title\": \"Synthesen in der Imidazolreihe.\",\n    \"year\": 1912,\n    \"place\": \"Freiburg i. B.\",\n    \"pages\": \"34\",\n    \"publisher\": \"Wagner\",\n    \"format\": \"8\u00b0\"\n  },\n  \"library_reference\": {\n    \"shelfmark\": \"[U 12. 1261\",\n    \"subjects\": \"Naturw.-math. Diss.\"\n  }\n}\n", "model": "z-ai/glm-5v-turbo", "provider": "openrouter", "finish_reason": "stop", "usage": {"input_tokens": 1958, "output_tokens": 1406, "total_tokens": 3364, "cached_tokens": 486, "estimated_cost_usd": 0.007973599999999999, "input_cost_usd": 0.0023496, "output_cost_usd": 0.005624}, "duration": 40.435904026031494, "timestamp": "2026-08-18T11:38:55.986194", "parsed": {"type": {"type": "Dissertation or thesis"}, "author": {"last_name": "Opitz", "first_name": "Hermann"}, "publication": {"title": "Synthesen in der Imidazolreihe.", "year": 1912, "place": "Freiburg i. B.", "pages": "34", "publisher": "Wagner", "format": "8\u00b0"}, "library_reference": {"shelfmark": "[U 12. 1261", "subjects": "Naturw.-math. Diss."}}, "conversation_id": "c40ba46b-de87-4c8d-b735-e04293dd175a", "score": {"f1_score": 0.95, "precision": 0.9090909090909091, "recall": 1.0, "true_positives": 10, "false_positives": 1, "false_negatives": 0, "field_scores": {"author.last_name": {"response": "Opitz", "ground_truth": "Opitz", "score": 1.0}, "publication.year": {"response": 1912, "ground_truth": 1912, "score": 1.0}, "library_reference.shelfmark": {"response": "[U 12. 1261", "ground_truth": "U 12. 1261", "score": 0.9523809523809522}, "library_reference.subjects": {"response": "Naturw.-math. Diss.", "ground_truth": null, "score": 0.0}, "publication.format": {"response": "8\u00b0", "ground_truth": "8\u00b0", "score": 1.0}, "publication.place": {"response": "Freiburg i. B.", "ground_truth": "Freiburg i. B.", "score": 1.0}, "publication.pages": {"response": "34", "ground_truth": "34", "score": 1.0}, "publication.publisher": {"response": "Wagner", "ground_truth": "Wagner", "score": 1.0}, "author.first_name": {"response": "Hermann", "ground_truth": "Hermann", "score": 1.0}, "publication.editor": {"response": null, "ground_truth": null, "score": 1.0}, "type.type": {"response": "Dissertation or thesis", "ground_truth": "Dissertation or thesis", "score": 1.0}, "publication.title": {"response": "Synthesen in der Imidazolreihe.", "ground_truth": "Synthesen in der Imidazolreihe", "score": 0.9836065573770492}}, "total_fields": 12}, "raw_response": "{\"id\":\"gen-1787045914-FtRu4y8Nq1BITsMyuLJX\",\"choices\":[{\"finish_reason\":\"stop\",\"index\":0,\"logprobs\":null,\"message\":{\"content\":\"{\\n  \\\"type\\\": {\\n    \\\"type\\\": \\\"Dissertation or thesis\\\"\\n  },\\n  \\\"author\\\": {\\n    \\\"last_name\\\": \\\"Opitz\\\",\\n    \\\"first_name\\\": \\\"Hermann\\\"\\n  },\\n  \\\"publication\\\": {\\n    \\\"title\\\": \\\"Synthesen in der Imidazolreihe.\\\",\\n    \\\"year\\\": 1912,\\n    \\\"place\\\": \\\"Freiburg i. B.\\\",\\n    \\\"pages\\\": \\\"34\\\",\\n    \\\"publisher\\\": \\\"Wagner\\\",\\n    \\\"format\\\": \\\"8\u00b0\\\"\\n  },\\n  \\\"library_reference\\\": {\\n    \\\"shelfmark\\\": \\\"[U 12. 1261\\\",\\n    \\\"subjects\\\": \\\"Naturw.-math. Diss.\\\"\\n  }\\n}\\n\",\"refusal\":null,\"role\":\"assistant\",\"annotations\":null,\"audio\":null,\"function_call\":null,\"tool_calls\":null,\"reasoning\":\"The user wants me to extract bibliographic information from an image of a library index card and format it as a JSON object.\\n\\n**1. Analyze the input image:**\\n- The card contains text about a dissertation.\\n- Text content:\\n  - \\\"Opitz, Hermann, a. Rinteln: Synthesen in der Imidazolreihe.\\\"\\n  - \\\"Freiburg i. B. 1912: Wagner. 34 S. 8\u00b0\\\"\\n  - \\\"Freiburg i. B., Naturw.-math. Diss. v. 1912, Ref. Gattermann\\\"\\n  - \\\"[Geb. 17. Jan. 87 Arten; Wohnort: Freiburg i. B.; Staatsangeh.: Preu\u00dfen; Vorbildung: Gymn. Rinteln Reife O. 07; Studium: Lausanne 1, G\u00f6ttingen 1, Freiburg i. B. 7 S.; Rig. 24. Nov. 11.]\\\"\\n  - \\\"[U 12. 1261\\\"\\n\\n**2. Apply the extraction rules:**\\n\\n*   **Rule 1: Card Type**\\n    *   Does the card contain \\\"s.\\\" on a separate line? No.\\n    *   Therefore, `type` is \\\"Dissertation or thesis\\\".\\n\\n*   **Rule 2: Author**\\n    *   Name on card: \\\"Opitz, Hermann\\\"\\n    *   `last_name`: \\\"Opitz\\\"\\n    *   `first_name`: \\\"Hermann\\\"\\n\\n*   **Rule 3: Publication**\\n    *   `title`: \\\"Synthesen in der Imidazolreihe.\\\"\\n    *   `year`: 1912 (integer)\\n    *   `place`: \\\"Freiburg i. B.\\\" (or just \\\"Freiburg i. B\\\")\\n    *   `pages`: \\\"34\\\" (remove \\\"S.\\\")\\n    *   `publisher`: \\\"Wagner\\\"\\n    *   `format`: \\\"8\u00b0\\\"\\n\\n*   **Rule 4: Library Reference**\\n    *   `shelfmark`: \\\"[U 12. 1261\\\" (or similar, usually the code at the end)\\n    *   `subjects`: The text mentions \\\"Naturw.-math. Diss.\\\", but often subjects are keywords. Looking at the schema, it asks for subject classifications. The line \\\"Freiburg i. B., Naturw.-math. Diss. v. 1912...\\\" provides context. Let's look for a specific subjects field. The prompt says \\\"Subject classifications or keywords\\\". I'll use \\\"Naturw.-math. Diss.\\\" or leave it empty if not clear. Actually, looking at the structure, maybe the whole second line is part of publication, and the third line is extra info. Let's re-read the rules.\\n    *   shelfmark: Often begins with \\\"Diss.\\\" or \\\"AT\\\", may be marked with \\\"Standort:\\\". Here we have \\\"[U 12. 1261\\\".\\n    *   subjects: \\\"Naturw.-math. Diss.\\\" seems like a good candidate for subjects/classification.\\n\\n*   **Rule 5: Missing Information**\\n    *   Use empty strings for missing.\\n\\n*   **Refining the extraction:**\\n    *   **Type**: Dissertation or thesis\\n    *   **Author**: Opitz, Hermann\\n    *   **Publication**:\\n        *   Title: Synthesen in der Imidazolreihe.\\n        *   Year: 1912\\n        *   Place: Freiburg i. B.\\n        *   Pages: 34\\n        *   Publisher: Wagner\\n        *   Format: 8\u00b0\\n    *   **Library Reference**:\\n        *   Shelfmark: [U 12. 1261\\n        *   Subjects: Naturw.-math. Diss.\\n\\nLet's double check the \\\"subjects\\\" field. Usually, these cards have specific subject headings. Here, \\\"Naturw.-math. Diss.\\\" (Natural sciences-mathematical Dissertation) acts as a classification.\\n\\nLet's construct the JSON.\\n\\n```json\\n{\\n  \\\"type\\\": {\\n    \\\"type\\\": \\\"Dissertation or thesis\\\"\\n  },\\n  \\\"author\\\": {\\n    \\\"last_name\\\": \\\"Opitz\\\",\\n    \\\"first_name\\\": \\\"Hermann\\\"\\n  },\\n  \\\"publication\\\": {\\n    \\\"title\\\": \\\"Synthesen in der Imidazolreihe.\\\",\\n    \\\"year\\\": 1912,\\n    \\\"place\\\": \\\"Freiburg i. B.\\\",\\n    \\\"pages\\\": \\\"34\\\",\\n    \\\"publisher\\\": \\\"Wagner\\\",\\n    \\\"format\\\": \\\"8\u00b0\\\"\\n  },\\n  \\\"library_reference\\\": {\\n    \\\"shelfmark\\\": \\\"[U 12. 1261\\\",\\n    \\\"subjects\\\": \\\"Naturw.-math. Diss.\\\"\\n  }\\n}\\n```\\n\\nWait, looking at the image again:\\n\\\"Opitz, Hermann, a. Rinteln: Synthesen in der Imidazolreihe.\\\"\\n\\\"Freiburg i. B. 1912: Wagner. 34 S. 8\u00b0\\\"\\n\\\"Freiburg i. B., Naturw.-math. Diss. v. 1912, Ref. Gattermann\\\"\\n\\\"[Geb...]\\\"\\n\\\"[U 12. 1261]\\\"\\n\\nThe shelfmark is definitely \\\"[U 12. 1261\\\".\\nThe subjects could be \\\"Naturw.-math. Diss.\\\".\\n\\nOne detail: \\\"a. Rinteln\\\" means \\\"aus Rinteln\\\" (from Rinteln), which is biographical info, not part of the name or title.\\nTitle: \\\"Synthesen in der Imidazolreihe.\\\"\\n\\nFinal check of the schema requirements:\\n- type: \\\"Dissertation or thesis\\\"\\n- author: last_name, first_name\\n- publication: title, year (int), place, pages (string), publisher, format\\n- library_reference: shelfmark, subjects\\n\\nEverything looks correct.\",\"reasoning_details\":[{\"type\":\"reasoning.text\",\"text\":\"The user wants me to extract bibliographic information from an image of a library index card and format it as a JSON object.\\n\\n**1. Analyze the input image:**\\n- The card contains text about a dissertation.\\n- Text content:\\n  - \\\"Opitz, Hermann, a. Rinteln: Synthesen in der Imidazolreihe.\\\"\\n  - \\\"Freiburg i. B. 1912: Wagner. 34 S. 8\u00b0\\\"\\n  - \\\"Freiburg i. B., Naturw.-math. Diss. v. 1912, Ref. Gattermann\\\"\\n  - \\\"[Geb. 17. Jan. 87 Arten; Wohnort: Freiburg i. B.; Staatsangeh.: Preu\u00dfen; Vorbildung: Gymn. Rinteln Reife O. 07; Studium: Lausanne 1, G\u00f6ttingen 1, Freiburg i. B. 7 S.; Rig. 24. Nov. 11.]\\\"\\n  - \\\"[U 12. 1261\\\"\\n\\n**2. Apply the extraction rules:**\\n\\n*   **Rule 1: Card Type**\\n    *   Does the card contain \\\"s.\\\" on a separate line? No.\\n    *   Therefore, `type` is \\\"Dissertation or thesis\\\".\\n\\n*   **Rule 2: Author**\\n    *   Name on card: \\\"Opitz, Hermann\\\"\\n    *   `last_name`: \\\"Opitz\\\"\\n    *   `first_name`: \\\"Hermann\\\"\\n\\n*   **Rule 3: Publication**\\n    *   `title`: \\\"Synthesen in der Imidazolreihe.\\\"\\n    *   `year`: 1912 (integer)\\n    *   `place`: \\\"Freiburg i. B.\\\" (or just \\\"Freiburg i. B\\\")\\n    *   `pages`: \\\"34\\\" (remove \\\"S.\\\")\\n    *   `publisher`: \\\"Wagner\\\"\\n    *   `format`: \\\"8\u00b0\\\"\\n\\n*   **Rule 4: Library Reference**\\n    *   `shelfmark`: \\\"[U 12. 1261\\\" (or similar, usually the code at the end)\\n    *   `subjects`: The text mentions \\\"Naturw.-math. Diss.\\\", but often subjects are keywords. Looking at the schema, it asks for subject classifications. The line \\\"Freiburg i. B., Naturw.-math. Diss. v. 1912...\\\" provides context. Let's look for a specific subjects field. The prompt says \\\"Subject classifications or keywords\\\". I'll use \\\"Naturw.-math. Diss.\\\" or leave it empty if not clear. Actually, looking at the structure, maybe the whole second line is part of publication, and the third line is extra info. Let's re-read the rules.\\n    *   shelfmark: Often begins with \\\"Diss.\\\" or \\\"AT\\\", may be marked with \\\"Standort:\\\". Here we have \\\"[U 12. 1261\\\".\\n    *   subjects: \\\"Naturw.-math. Diss.\\\" seems like a good candidate for subjects/classification.\\n\\n*   **Rule 5: Missing Information**\\n    *   Use empty strings for missing.\\n\\n*   **Refining the extraction:**\\n    *   **Type**: Dissertation or thesis\\n    *   **Author**: Opitz, Hermann\\n    *   **Publication**:\\n        *   Title: Synthesen in der Imidazolreihe.\\n        *   Year: 1912\\n        *   Place: Freiburg i. B.\\n        *   Pages: 34\\n        *   Publisher: Wagner\\n        *   Format: 8\u00b0\\n    *   **Library Reference**:\\n        *   Shelfmark: [U 12. 1261\\n        *   Subjects: Naturw.-math. Diss.\\n\\nLet's double check the \\\"subjects\\\" field. Usually, these cards have specific subject headings. Here, \\\"Naturw.-math. Diss.\\\" (Natural sciences-mathematical Dissertation) acts as a classification.\\n\\nLet's construct the JSON.\\n\\n```json\\n{\\n  \\\"type\\\": {\\n    \\\"type\\\": \\\"Dissertation or thesis\\\"\\n  },\\n  \\\"author\\\": {\\n    \\\"last_name\\\": \\\"Opitz\\\",\\n    \\\"first_name\\\": \\\"Hermann\\\"\\n  },\\n  \\\"publication\\\": {\\n    \\\"title\\\": \\\"Synthesen in der Imidazolreihe.\\\",\\n    \\\"year\\\": 1912,\\n    \\\"place\\\": \\\"Freiburg i. B.\\\",\\n    \\\"pages\\\": \\\"34\\\",\\n    \\\"publisher\\\": \\\"Wagner\\\",\\n    \\\"format\\\": \\\"8\u00b0\\\"\\n  },\\n  \\\"library_reference\\\": {\\n    \\\"shelfmark\\\": \\\"[U 12. 1261\\\",\\n    \\\"subjects\\\": \\\"Naturw.-math. Diss.\\\"\\n  }\\n}\\n```\\n\\nWait, looking at the image again:\\n\\\"Opitz, Hermann, a. Rinteln: Synthesen in der Imidazolreihe.\\\"\\n\\\"Freiburg i. B. 1912: Wagner. 34 S. 8\u00b0\\\"\\n\\\"Freiburg i. B., Naturw.-math. Diss. v. 1912, Ref. Gattermann\\\"\\n\\\"[Geb...]\\\"\\n\\\"[U 12. 1261]\\\"\\n\\nThe shelfmark is definitely \\\"[U 12. 1261\\\".\\nThe subjects could be \\\"Naturw.-math. Diss.\\\".\\n\\nOne detail: \\\"a. Rinteln\\\" means \\\"aus Rinteln\\\" (from Rinteln), which is biographical info, not part of the name or title.\\nTitle: \\\"Synthesen in der Imidazolreihe.\\\"\\n\\nFinal check of the schema requirements:\\n- type: \\\"Dissertation or thesis\\\"\\n- author: last_name, first_name\\n- publication: title, year (int), place, pages (string), publisher, format\\n- library_reference: shelfmark, subjects\\n\\nEverything looks correct.\",\"format\":\"unknown\",\"index\":0}]},\"native_finish_reason\":\"stop\"}],\"created\":1787045914,\"model\":\"z-ai/glm-5v-turbo\",\"object\":\"chat.completion\",\"service_tier\":null,\"system_fingerprint\":null,\"usage\":{\"completion_tokens\":1406,\"prompt_tokens\":1958,\"total_tokens\":3364,\"completion_tokens_details\":{\"accepted_prediction_tokens\":null,\"audio_tokens\":0,\"reasoning_tokens\":1252,\"rejected_prediction_tokens\":null,\"image_tokens\":0},\"prompt_tokens_details\":{\"audio_tokens\":0,\"cached_tokens\":486,\"cache_write_tokens\":0,\"video_tokens\":0},\"cost\":0.00750704,\"is_byok\":false,\"cost_details\":{\"upstream_inference_cost\":0.00750704,\"upstream_inference_prompt_cost\":0.00188304,\"upstream_inference_completions_cost\":0.005624}},\"provider\":\"Z.AI\"}"}, "scoring": {"f1_micro": 0.8480522129308586, "f1_macro": 0.8422222222222222, "micro_precision": 0.8292780215396889, "micro_recall": 0.8676961602671118, "total_instances": 261, "total_tp": 2079, "total_fp": 428, "total_fn": 317, "cost_summary": {"total_input_tokens": 519562, "total_output_tokens": 324382, "total_tokens": 843944, "input_cost_usd": 0.6234743999999984, "output_cost_usd": 1.297527999999999, "total_cost_usd": 1.9210023999999999}}, "normalized_score": 84.22222222222221}