Analyze the following user command and extract the intent, entity, and parameters. User Command: "erstelle einen neuen parzelleneintrag mit diesen informationen: ID:AA4198 Nummer:AA4198 Name:AA4198 EGRID:CH879177719964 IdentND:ZH0200000261 Adresse:Steinmühleplatz 3, 8001 Zürich Kanton:ZH Gemeinde:Zürich Gemeinde-Code:261 Fläche:1972.83 m² Zentrum (LV95):2682910.35, 1247566.80" Available intents: - CREATE: User wants to create a new entity - READ: User wants to read/query entities - UPDATE: User wants to update an existing entity - DELETE: User wants to delete an entity - QUERY: User wants to execute a database query (SQL statements) Available entities and their fields: **Projekt** (Real estate project): - id: string (primary key) - mandateId: string (mandate ID) - label: string (project designation/name) - statusProzess: string enum (Eingang, Analyse, Studie, Planung, Baurechtsverfahren, Umsetzung, Archiv) - perimeter: GeoPolylinie (geographic boundary, JSONB) - baulinie: GeoPolylinie (building line, JSONB) - parzellen: List[Parzelle] (plots belonging to project, JSONB) - dokumente: List[Dokument] (documents, JSONB) - kontextInformationen: List[Kontext] (context info, JSONB) **Parzelle** (Plot/parcel): - id: string (primary key) - mandateId: string (mandate ID) - label: string (plot designation) - strasseNr: string (street and house number) - plz: string (postal code) - kontextGemeinde: string (municipality ID, Foreign Key to Gemeinde table) - bauzone: string (building zone, e.g. W3, WG2) - az: float (Ausnützungsziffer) - bz: float (Bebauungsziffer) - vollgeschossZahl: int (number of allowed full floors) - gebaeudehoeheMax: float (maximum building height in meters) - laermschutzzone: string (noise protection zone) - hochwasserschutzzone: string (flood protection zone) - grundwasserschutzzone: string (groundwater protection zone) - parzelleBebaut: JaNein enum (is plot built) - parzelleErschlossen: JaNein enum (is plot developed) - parzelleHanglage: JaNein enum (is plot on slope) **Important relationships:** - Projekte contain Parzellen (projects have plots) - Parzelle links to Gemeinde (via kontextGemeinde) - Gemeinde links to Kanton (via id_kanton) - Kanton links to Land (via id_land) - Location queries (city, postal code) should use Parzelle.kontextGemeinde (municipality name will be resolved to ID) - Projekt does NOT have location fields directly - location is stored in associated Parzellen Return a JSON object with the following structure: { "intent": "CREATE|READ|UPDATE|DELETE|QUERY", "entity": "Projekt|Parzelle|Dokument|Kanton|Gemeinde|null", "parameters": { // Extracted parameters from user input // For CREATE/UPDATE: include all relevant fields using EXACT field names from above // For READ: include filter criteria using EXACT field names (id, label, plz, kontextGemeinde, etc.) // For DELETE: include entity ID if mentioned // For QUERY: include queryText if SQL is detected // IMPORTANT: Use only field names that exist in the entity definition above }, "confidence": 0.0-1.0 // Confidence score for the analysis } Examples: - Input: "Erstelle ein neues Projekt namens 'Hauptstrasse 42'" Output: {"intent": "CREATE", "entity": "Projekt", "parameters": {"label": "Hauptstrasse 42"}, "confidence": 0.95} - Input: "Erstelle eine Parzelle mit Label 123, PLZ 8000, Gemeinde Zürich, Bauzone W3" Output: {"intent": "CREATE", "entity": "Parzelle", "parameters": {"label": "123", "plz": "8000", "kontextGemeinde": "Zürich", "bauzone": "W3"}, "confidence": 0.95} - Input: "Parzellen-Informationen: ID:AA1704, Nummer:AA1704, EGRID:CH887199917793, Kanton:ZH, Gemeinde:Zürich, Gemeinde-Code:261, Fläche:6514.99 m², Zentrum:2682951.44,1247622.91" Output: { "intent": "CREATE", "entity": "Parzelle", "parameters": { "label": "AA1704", "parzellenAliasTags": ["AA1704"], "kontextGemeinde": "Zürich", "kontextInformationen": [ {"kategorie": "Swiss Topo", "schluessel": "EGRID", "wert": "CH887199917793"}, {"kategorie": "Kanton", "schluessel": "Abkürzung", "wert": "ZH"}, {"kategorie": "Gemeinde", "schluessel": "BFS-Nummer", "wert": "261"}, {"kategorie": "Parzelle", "schluessel": "Fläche", "wert": "6514.99", "einheit": "m²"}, {"kategorie": "Parzelle", "schluessel": "Zentrum_X", "wert": "2682951.44", "crs": "EPSG:2056"}, {"kategorie": "Parzelle", "schluessel": "Zentrum_Y", "wert": "1247622.91", "crs": "EPSG:2056"} ] }, "confidence": 0.9 } Note: Extract structured data from detailed input. Use kontextInformationen for metadata like EGRID, coordinates, area, etc. - Input: "Zeige mir alle Projekte" Output: {"intent": "READ", "entity": "Projekt", "parameters": {}, "confidence": 0.9} - Input: "Zeige mir Projekte in Zürich" or "Wie viele Projekte in Zürich" Output: {"intent": "READ", "entity": "Projekt", "parameters": {"location_filter": "Zürich"}, "confidence": 0.9} Note: For project location queries, use Projekt entity with location_filter parameter - Input: "Zeige mir Parzellen mit PLZ 8000" Output: {"intent": "READ", "entity": "Parzelle", "parameters": {"plz": "8000"}, "confidence": 0.95} - Input: "Aktualisiere Projekt XYZ mit Status 'Planung'" Output: {"intent": "UPDATE", "entity": "Projekt", "parameters": {"id": "XYZ", "statusProzess": "Planung"}, "confidence": 0.85} - Input: "SELECT * FROM Projekt WHERE label = 'Test'" Output: {"intent": "QUERY", "entity": null, "parameters": {"queryText": "SELECT * FROM Projekt WHERE label = 'Test'", "queryType": "sql"}, "confidence": 1.0} - Input: "Lösche Parzelle ABC" Output: {"intent": "DELETE", "entity": "Parzelle", "parameters": {"id": "ABC"}, "confidence": 0.9} IMPORTANT EXTRACTION RULES: 1. For CREATE operations, extract ALL mentioned data fields from the user input 2. Use kontextInformationen array for metadata that doesn't have dedicated fields (EGRID, BFS numbers, area, coordinates, etc.) 3. Match field names EXACTLY to the entity definition above 4. Convert data types correctly (strings for text, numbers for numeric values) 5. Extract coordinates, areas, and other numeric values from text 6. When multiple values are mentioned for the same concept (ID, Nummer, Name), use the most relevant one for 'label' and put alternatives in parzellenAliasTags