{
  "service": {
    "id": "tuotantorakenne",
    "metadataVersion": "1.0",
    "name": {
      "fi": "Maatalouden Tuotantorakenne",
      "sv": "Produktionsstruktur",
      "en": "Production Structure"
    },
    "metadataFramework": {
      "name": "EconomyDoctors Semantic Discovery Framework",
      "author": "Jussi Iltanen",
      "organization": "Luke",
      "year": 2026
    },    
    "description": {
      "fi": "Reaaliaikainen tilastotaulukkopalvelu AI-agenteille",
      "sv": "Statistisk tabelltjänst i realtid för AI-agenter",
      "en": "Real-time statistical table service for AI agents"
    },
"dataPolicy": {
  "realizedDataOnly": true,
  "fi": "Rajapinta julkaisee vain toteutuneita, lopullisia kirjanpitotuloksia. Ennakkotietoja (ennakko) ja ennusteita (E) ei julkaista rajapinnassa.",
  "en": "This interface publishes only realized, final accounting results. Preliminary data and forecasts (E) are never published here.",
  "agentInstructions": [
    "Viimeisin rajapinnassa oleva vuosi on viimeisin toteutunut vuosi, ei ennakkotieto.",
    "Älä esitä rajapinnan tietojen perusteella laskettuja trendejä tai ekstrapolaatioita Luken lukuina.",
    "Jos käyttäjä pyytää ennusteita, kerro, ettei rajapinta sisällä niitä. Ohjaa käyttäjä Taloustohtorin aikasarjasivuille, joilla ennusteita julkaistaan valikoiduille suureille.",
    "Jos yhdistät rajapinnan tietoja aikasarjasivujen ennusteisiin, merkitse ennusteosuus selvästi ja kerro kummankin lähde."
  ]
},    
    "queryModel": "dimension-based",
    "generated": "2026-11-09T12:45:27Z"
  },

  "endpoints": {
    "query": {
      "url": {
        "fi": "https://taloustohtori.luke.fi/tuotantorakenne/omat-valinnat/",
        "sv": "https://taloustohtori.luke.fi/sv/produktionsstruktur/egna-val/",
        "en": "https://taloustohtori.luke.fi/en/production-structure/own-criteria/"
      },
      "methods": [
        "GET"
      ]
    }
  },

  "queryStructure": {
    "type": "flexible-dimension-order",

"languageSelection": {
  "type": "endpoint-based",
  "supportedLanguages": [
    "fi",
    "sv",
    "en"
  ]
},
    
    "unusedDimensionValue": 0,
	
    "dimensionParameters": [
      {
        "main": "dim1paataso",
        "mainType": "integer",
        "sub": "dim1alataso",
        "subType": "string"
      },
      {
        "main": "dim2paataso",
        "mainType": "integer",
        "sub": "dim2alataso",
        "subType": "string"
      },
      {
        "main": "dim3paataso",
        "mainType": "integer",
        "sub": "dim3alataso",
        "subType": "string"
      },
      {
        "main": "dim4paataso",
        "mainType": "integer",
        "sub": "dim4alataso",
        "subType": "string"
      }                 
    ],

    "rules": {
      "fi": [
    	"Raportti on valittava",
    	"Vähintään kaksi dimensiota on valittava",
    	"Vuosi-dimension on aina oltava yksi valituista dimensioista",
    	"Dimensioiden järjestys on joustava",
    	"Mikä tahansa dimensio voi esiintyä missä tahansa kyselypositiossa",
    	"AI-agenttien tulee kartoittaa dimensio-ID:t dynaamisesti"
      ],
      "sv": [
    	"En rapport måste väljas",
    	"Minst två dimensioner måste väljas",
    	"Årsdimensionen måste alltid vara en av de valda dimensionerna",
    	"Dimensionernas ordning är flexibel",
    	"Vilken dimension som helst kan förekomma i vilken frågeposition som helst",
    	"AI-agenter ska mappa dimensions-ID dynamiskt"
      ],
      "en": [
    	"A report must be selected",
    	"At least two dimensions must be selected",
    	"The year dimension must always be one of the selected dimensions",
    	"Dimension order is flexible",
    	"Any dimension may appear in any query position",
    	"AI agents should map dimension IDs dynamically"
      ]
    }
  },

  "dimensionValueEncoding": {
    "type": "comma-separated-string",
    
    "description": {
      "fi": "dimNalataso sisältää yhden tai useamman pilkuilla erotetun arvo-ID:n",
      "sv": "dimNalataso innehåller ett eller flera värde-ID:n separerade med kommatecken",
      "en": "dimNalataso contains one or more value IDs separated by commas"
      },
      
    "examples": [
      "27",
      "1,2",
      "1,2,3,4"
      ]
    },

  "queryRules": {
  	"dimensionSelection": {
    	"minimumSelected": 2,
    	"maximumSelected": 4,
    	"requiredDimensionIds": [1]
  		},    
    "requiredDimensions": [
      {
        "dimensionId": 1,
        "name": {
          "fi": "Vuosi",
          "sv": "År",
          "en": "Year"
        }
      }
    ],

    "rules": {
      "fi": [
      	"Raportti on valittava",
      	"Vähintään kaksi dimensiota on valittava",
      	"Vuosi-dimension on aina oltava yksi valituista dimensioista",
      	"Dimensioiden järjestys on joustava",
      	"Dimensiovalinnat validoidaan palvelinpuolella"
    ],
    "sv": [
      	"En rapport måste väljas",
      	"Minst två dimensioner måste väljas",
      	"Årsdimensionen måste alltid vara en av de valda dimensionerna",
      	"Dimensionernas ordning är flexibel",
      	"Dimensionsval valideras på serversidan"
    ],
    "en": [
      	"A report must be selected",
      	"At least two dimensions must be selected",
      	"The year dimension must always be one of the selected dimensions",
      	"Dimension order is flexible",
      	"Dimension selections are validated server-side"
      ]
    }
  },

  "response": {
    "contentType": "text/html",
    "primaryDataFormat": "html-table",
    "format": "html",
    "structure": "statistical-table",
    "resultLimits": { "maxColumns": 400, "enforcement": "server-side" },    
    "description": {
      "fi": "HTML-sivu joka sisältää tilastotaulukon ja siihen liittyvät metatiedot",
      "sv": "HTML-sida som innehåller en statistisk tabell och tillhörande metadata",
      "en": "HTML page containing a statistical table and related metadata"
      }    
    },   

  "queryParameters": {
    "omarapo": {
      "type": "integer",
      "semanticRole": "report-type",
      "required": true,

	"allowedValues": [{ 
		"id": 30, 
		"label": { "fi": "Tilamäärä", "sv": "Antal företag", "en": "Number of farms"},
		"description": "Number of agricultural and horticultural farms. The report provides farm counts that can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "number of farms","farm count","agricultural farms","horticultural farms","farm structure","production structure" ] },
		{ 
		"id": 50, 
		"label": { "fi": "Peltoala yhteensä (hehtaaria)", "sv": "Antal hektar", "en": "Total hectares"},
		"description": "Total agricultural land area in hectares. The report provides the total area of agricultural land that can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "total agricultural area","agricultural land","agricultural land area","total hectares","hectares","farmland area","production structure" ] },
		{ 
		"id": 51, 
		"label": { "fi": "Eläinyksiköt yhteensä", "sv": "Antal djurenheter", "en": "Total livestock units"},
		"description": "Total number of livestock units in agricultural production. The report provides total livestock units that can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "total livestock units","livestock units","livestock production","animal production","livestock structure","production structure" ] },
		{ 
		"id": 52, 
		"label": { "fi": "Tuotanto yhteensä (SO-euroa)", "sv": "Antal SO-euro", "en": "Total standard output (SO-euro)"},
		"description": "Total agricultural production measured as Standard Output (SO) in euros. The report provides total standard output that can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "total standard output","standard output","SO","SO euros","agricultural production","total agricultural production","economic output","production structure" ] },
		{ 
		"id": 37, 
		"label": { "fi": "Yritysten keskikoko (hehtaaria/yritys)", "sv": "Medelstorlek (hektar/företag)", "en": "Average hectare per farm"},
		"description": "Average agricultural land area per farm in hectares. The report provides average farm size based on agricultural land area and can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "average farm size","hectares per farm","average agricultural area","agricultural land per farm","farm size","agricultural land","production structure" ] },
		{ 
		"id": 48, 
		"label": { "fi": "Yritysten keskikoko (eläinyksikköä/yritys)", "sv": "Medelstorlek (djurenheter/företag)", "en": "Average livestock units per farm"},
		"description": "Average number of livestock units per farm. The report provides average livestock units per agricultural farm and can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "average livestock units","livestock units per farm","average farm size","livestock farm size","livestock units","livestock production","production structure" ] },
		{ 
		"id": 49, 
		"label": { "fi": "Yritysten keskikoko (SO-euroa/yritys)", "sv": "Medelstorlek (SO-euro/företag)", "en": "Average standard output (SO-euro) per farm"},
		"description": "Average Standard Output (SO) per farm in euros. The report provides the average economic size of farms measured as Standard Output and can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "average standard output","standard output per farm","SO per farm","SO euros","average economic size","farm economic size","standard output","production structure" ] },
		{ 
		"id": 74, 
		"label": { "fi": "Eläinyksiköiden suhde hehtaarimäärään", "sv": "Antal djurenheter per hektar", "en": "Livestock units per hectare"},
		"description": "Livestock units per hectare of agricultural land. The report provides livestock density relative to agricultural land area and can be classified by selected dimensions such as year, production type and region.", 
		"tags": [ "livestock units per hectare","livestock density","livestock units","agricultural land","animal density","livestock intensity","production structure" ] }]
    },

    "nayta": {
      "type": "string",
      "required": true,
      "allowedValues": [
        "laheta"
      ]
    }
  },

  "dimensions": [
    {
	"id": 1, "name": {
		"fi": "Vuosi", 
		"sv": "År", 
		"en": "Accounting year" }, 
		
		"note": "Vain toteutuneet vuodet. Ennakko- ja ennustevuosia ei ole. / Realized years only; no preliminary or forecast years.", 
		"values": [{
		  "id": 28, "label": "2025" },{
		  "id": 27, "label": "2024" },{
		  "id": 26, "label": "2023" },{
		  "id": 25, "label": "2022" },{
		  "id": 24, "label": "2021" },{
		  "id": 23, "label": "2020" },{
		  "id": 22, "label": "2019" },{
		  "id": 21, "label": "2018" },{
		  "id": 20, "label": "2017" },{
		  "id": 19, "label": "2016" },{
		  "id": 18, "label": "2015" },{
		  "id": 17, "label": "2014" },{
		  "id": 16, "label": "2013" },{
		  "id": 15, "label": "2012" },{
		  "id": 14, "label": "2011" },{
		  "id": 13, "label": "2010" },{
		  "id": 12, "label": "2009" },{
		  "id": 11, "label": "2008" },{
		  "id": 10, "label": "2007" },{
		  "id": 9, "label": "2006" },{
		  "id": 8, "label": "2005" },{
		  "id": 7, "label": "2004" },{
		  "id": 6, "label": "2003" },{
		  "id": 5, "label": "2002" },{
		  "id": 4, "label": "2001" },{
		  "id": 3, "label": "2000" }]
    },    
    {
    "id": 2, "name": {
		"fi": "Tukialue", 
		"sv": "Stödområde", 
		"en": "Subsidy Region" }, 
		
		"values": [{
		  "id": 1, "label":  { "fi": "A", "sv": "A", "en": "Subsidy Region A"} },{
		  "id": 2, "label":  { "fi": "B", "sv": "B", "en": "Subsidy Region B"} },{
		  "id": 3, "label":  { "fi": "C1", "sv": "C1", "en": "Subsidy Region C1"} },{
		  "id": 4, "label":  { "fi": "C2", "sv": "C2", "en": "Subsidy Region C2"} },{
		  "id": 5, "label":  { "fi": "C2p", "sv": "C2p", "en": "Subsidy Region C2p"} },{
		  "id": 6, "label":  { "fi": "C3", "sv": "C3", "en": "Subsidy Region C3"} },{
		  "id": 7, "label":  { "fi": "C4", "sv": "C4", "en": "Subsidy Region C4"} }]
    },
    {
    "id": 13, "name": {
		"fi": "Maakunta", 
		"sv": "Landskap", 
		"en": "Province" }, 
		
		"values": [{
		  "id": 1, "label":  { "fi": "Uusimaa", "sv": "Nyland", "en": "Uusimaa"} },{
		  "id": 2, "label":  { "fi": "Varsinais-Suomi", "sv": "Egentliga Finland", "en": "Varsinais-Suomi"} },{
		  "id": 4, "label":  { "fi": "Satakunta", "sv": "Satakunda", "en": "Satakunta"} },{
		  "id": 5, "label":  { "fi": "Kanta-Häme", "sv": "Tavastland", "en": "Kanta-Häme"} },{
		  "id": 6, "label":  { "fi": "Pirkanmaa", "sv": "Birkaland", "en": "Pirkanmaa"} },{
		  "id": 7, "label":  { "fi": "Päijät-Häme", "sv": "Päijänne-Tavastland", "en": "Päijät-Häme"} },{
		  "id": 8, "label":  { "fi": "Kymenlaakso", "sv": "Kymmenedalen", "en": "Kymenlaakso"} },{
		  "id": 9, "label":  { "fi": "Etelä-Karjala", "sv": "Södra Karelen", "en": "Etelä-Karjala"} },{
		  "id": 10, "label":  { "fi": "Etelä-Savo", "sv": "Södra Savolax", "en": "Etelä-Savo"} },{
		  "id": 11, "label":  { "fi": "Pohjois-Savo", "sv": "Norra Savolax", "en": "Pohjois-Savo"} },{
		  "id": 12, "label":  { "fi": "Pohjois-Karjala", "sv": "Norra Karelen", "en": "Pohjois-Karjala"} },{
		  "id": 13, "label":  { "fi": "Keski-Suomi", "sv": "Mellersta Finland", "en": "Keski-Suomi"} },{
		  "id": 14, "label":  { "fi": "Etelä-Pohjanmaa", "sv": "Södra Österbotten", "en": "Etelä-Pohjanmaa"} },{
		  "id": 15, "label":  { "fi": "Pohjanmaa", "sv": "Österbotten", "en": "Pohjanmaa"} },{
		  "id": 16, "label":  { "fi": "Keski-Pohjanmaa", "sv": "Mellersta Österbotten", "en": "Keski-Pohjanmaa"} },{
		  "id": 17, "label":  { "fi": "Pohjois-Pohjanmaa", "sv": "Norra Österbotten", "en": "Pohjois-Pohjanmaa"} },{
		  "id": 18, "label":  { "fi": "Kainuu", "sv": "Kajanaland", "en": "Kainuu"} },{
		  "id": 19, "label":  { "fi": "Lappi", "sv": "Lapland", "en": "Lappi"} },{
		  "id": 20, "label":  { "fi": "Itä-Uusimaa", "sv": "Östra Nyland", "en": "Itä-Uusimaa"} },{
		  "id": 21, "label":  { "fi": "Ahvenanmaa", "sv": "Åland", "en": "Ahvenanmaa"} }]
    },    
    {
	"id": 39, "name": {
		"fi": "Tuotantosuunta", 
		"sv": "Produktionsinriktning", 
		"en": "Production type" }, 
		
		"values": [{
		  "id": 1, "label": { "fi": "Viljatilat", "sv": "Spannmålsgårdar", "en": "Cereal Farms"} },{
		  "id": 2, "label": { "fi": "Muut kasvinviljelytilat", "sv": "Övriga växtodlingsgårdar", "en": "Other Crop Farms"} },{
		  "id": 3, "label": { "fi": "Kasvihuoneyritykset", "sv": "Växthusföretag", "en": "Horticulture indoor"} },{
		  "id": 4, "label": { "fi": "Avomaapuutarhatilat", "sv": "Gårdar med frilandsodling av trädgårdsväxter", "en": "Horticulture outdoor"} },{
		  "id": 5, "label": { "fi": "Lypsykarjatilat", "sv": "Mjölkgårdar", "en": "Dairy Farms"} },{
		  "id": 6, "label": { "fi": "Muut nautakarjatilat", "sv": "Övriga nötboskapsgårdar", "en": "Cattle Farms"} },{
		  "id": 7, "label": { "fi": "Lammas ja vuohitilat", "sv": "Får- och getgårdar", "en": "Sheep goats and other grazing livestock"} },{
		  "id": 8, "label": { "fi": "Sikatilat", "sv": "Svingårdar", "en": "Pig farms"} },{
		  "id": 9, "label": { "fi": "Siipikarjatilat", "sv": "Fjäderfägårdar", "en": "Poultry farms"} },{
		  "id": 10, "label": { "fi": "Sekatilat", "sv": "Gårdar med blandad produktion", "en": "Mixed production"} },{
		  "id": 11, "label": { "fi": "Luokittelemattomat", "sv": "Oklassificerade", "en": "Non classified"} }]
    },
    {
	"id": 40, "name": {
		"fi": "Taloudellinen koko", 
		"sv": "Ekonomisk storlek", 
		"en": "Economic size" }, 
		
		"values": [{
		  "id": 5, "label": "15 000 - 25 000" },{
		  "id": 6, "label": "25 000 - 50 000" },{
		  "id": 7, "label": "50 000 - 100 000" },{
		  "id": 8, "label": "100 000 - 250 000" },{
		  "id": 9, "label": "250 000 - 500 000" },{
		  "id": 10, "label": "500 000 - 750 000" },{
		  "id": 11, "label": "750 000 - 1 000 000" },{
		  "id": 12, "label": "1 000 000 - 1 500 000" },{
		  "id": 13, "label": "1 500 000 - 3 000 000" },{
		  "id": 14, "label": "> 3 000 000" }]
    }    
  ],

  "examples": [
    {
	"description": {
	"fi": "Mikä oli maatalouden kokonaistuotanto tukialueilla A ja B vuonna 2022?",
	"sv": "Hur stor var jordbrukets totalproduktion i stödområdena A och B år 2022?",
	"en": "What was the total agricultural production in subsidy regions A and B in 2022?"
	},

      "request": {
        "method": "GET",

        "url": {
          "fi": "https://taloustohtori.luke.fi/tuotantorakenne/omat-valinnat/?omarapo=52&nayta=laheta&dim1paataso=2&dim1alataso=1,2&dim2paataso=1&dim2alataso=25&dim3paataso=0&dim3alataso=0&dim4paataso=0&dim4alataso=0",

          "sv": "https://taloustohtori.luke.fi/sv/produktionsstruktur/egna-val/?omarapo=52&nayta=laheta&dim1paataso=2&dim1alataso=1,2&dim2paataso=1&dim2alataso=25&dim3paataso=0&dim3alataso=0&dim4paataso=0&dim4alataso=0",

          "en": "https://taloustohtori.luke.fi/en/production-structure/own-criteria/?omarapo=52&nayta=laheta&dim1paataso=2&dim1alataso=1,2&dim2paataso=1&dim2alataso=25&dim3paataso=0&dim3alataso=0&dim4paataso=0&dim4alataso=0"
        }
      }
    }
  ],
  
  "dimensionCoverage": {
    "fi": "Tämä metadata voi sisältää vain osajoukon palvelun käytettävissä olevista dimensioista.",
    "sv": "Denna metadata kan innehålla endast en delmängd av tillgängliga dimensioner.",
    "en": "This metadata may contain only a subset of the dimensions available in the service."
    },
    
  "agentGuidance": {
"fi": [
  "Käytä vain dokumentoituja parametreja",
  "GET on suositeltava indeksointiin",
  "Tulokset generoidaan reaaliajassa",
  "Dimensioiden arvot voivat muuttua automaattisesti Oracle-tietokannan mukaan",
  "AI-agentit voivat muodostaa omia aikasarjojaan valitsemalla yhden tai useamman vuoden.",
  "Taulukon leveys kasvaa valittujen dimensioarvojen yhdistelmien mukaan. AI-agenttien tulee välttää tarpeettoman laajoja valintajoukkoja.",
  "Kaikkia dimensioita ei voi yhdistää vapaasti.",
  "Alueelliset luokitukset perustuvat kuntiin.",
  "Maakunta-, tukialue- ja muut aluejaot muodostuvat kuntaryhmistä.",
  "AI-agenttien tulee varmistaa, että aluevalinnat kuuluvat samaan maantieteelliseen kokonaisuuteen.",
  "Yhteensopimattomien aluevalintojen yhdistäminen voi johtaa tyhjään tulokseen."
],

"sv": [
  "Använd endast dokumenterade parametrar",
  "GET rekommenderas för indexering",
  "Resultaten genereras i realtid",
  "Dimensionsvärden kan ändras automatiskt baserat på Oracle-databasen.",
  "AI-agenter kan skapa egna tidsserier genom att välja ett eller flera år.",
  "Antalet kolumner ökar enligt kombinationerna av valda dimensionsvärden. AI-agenter bör undvika onödigt omfattande urval.",
  "Alla dimensioner kan inte kombineras fritt.",
  "Regionala klassificeringar baseras på kommuner.",
  "Landskap, stödområden och andra regionala indelningar bildas av grupper av kommuner.",
  "AI-agenter bör säkerställa att regionala urval tillhör samma geografiska område.",
  "Kombination av inkompatibla regionala urval kan resultera i tomma resultat."
],

"en": [
  "Use only documented parameters",
  "GET is recommended for indexing",
  "Results are generated in real time",
  "Dimension values may change automatically according to the Oracle database",
  "AI agents may construct custom time series by selecting one or more years.",
  "Table width increases according to the combinations of selected dimension values. AI agents should avoid unnecessarily large selections.",
  "Not all dimensions can be combined with each other.",
  "Regional classifications are municipality-based.",
  "Provinces, support areas and other regional classifications are derived from groups of municipalities.",
  "AI agents should ensure that regional selections belong to the same geographic area.",
  "Queries that combine incompatible regional classifications may return no results."
]
  }
}
