# SHACL shapes, rendered from the LinkML model.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<https://smartdatamodels.org/SummaryGroup>
  a sh:PropertyGroup ;
  sh:order 0 ;
  rdfs:label "Základné"@sk, "Summary"@en .

<https://smartdatamodels.org/DetailGroup>
  a sh:PropertyGroup ;
  sh:order 1 ;
  rdfs:label "Detail"@sk, "Detail"@en .

<https://smartdatamodels.org/BudgetLineShape>
  a sh:NodeShape ;
  sh:targetClass <https://joinedcontext.com/models/BudgetLine> ;
  sh:closed false ;
  sh:property [
    sh:path <https://smartdatamodels.org/dataModel.CPSV-AP/identifier> ;
    sh:name "identifier" ;
    sh:order 0 ;
    sh:group <https://smartdatamodels.org/SummaryGroup> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The budget line's own key, the year and its codes of area, function, item and purpose (`mhmp-2026-00-612100-5011-000000000`), the identifier the BudgetLine extension requires."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/fiscalYear> ;
    sh:name "fiscalYear" ;
    sh:order 1 ;
    sh:group <https://smartdatamodels.org/SummaryGroup> ;
    sh:datatype xsd:integer ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The budget year."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/budgetArea> ;
    sh:name "budgetArea" ;
    sh:order 2 ;
    sh:group <https://smartdatamodels.org/SummaryGroup> ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    rdfs:comment "The city's own area of the line (oblast), its code and name joined, such as 09 Školství; absent on a correction line the city files under none."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/budgetFunction> ;
    sh:name "budgetFunction" ;
    sh:order 3 ;
    sh:group <https://smartdatamodels.org/SummaryGroup> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The section of the national budget classification (paragraf, ODPA), code and name."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/budgetItem> ;
    sh:name "budgetItem" ;
    sh:order 4 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:string ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The item of the national budget classification (položka), code and name. Items 1xxx to 4xxx are revenue, 5xxx and 6xxx expenditure, 8xxx financing."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/budgetPurpose> ;
    sh:name "budgetPurpose" ;
    sh:order 5 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    rdfs:comment "The earmark of the line (účelový znak), code and name."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/approvedAmount> ;
    sh:name "approvedAmount" ;
    sh:order 6 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:float ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The amount the council approved, as the city publishes it. The city's documentation names no unit; the 2026 expenditure lines add up to 119 054 085, which is the size of Prague's budget in thousands of CZK."
  ] ;
  sh:property [
    sh:path <https://joinedcontext.com/models/adjustedAmount> ;
    sh:name "adjustedAmount" ;
    sh:order 7 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:float ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    rdfs:comment "The amount after the year's budget changes so far, in the same unit as the approved one."
  ] ;
  sh:property [
    sh:path <https://smartdatamodels.org/dataProvider> ;
    sh:name "dataProvider" ;
    sh:order 8 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    rdfs:comment "Who publishes the data the entity was read from, with the credit its licence asks for, as an application shows it beside the data."
  ] ;
  sh:property [
    sh:path <https://smartdatamodels.org/source> ;
    sh:name "source" ;
    sh:order 9 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:datatype xsd:anyURI ;
    sh:maxCount 1 ;
    rdfs:comment "The open-data service the entity was read from."
  ] ;
  sh:property [
    sh:path <https://purl.org/geojson/vocab#geometry> ;
    sh:name "location" ;
    sh:order 10 ;
    sh:group <https://smartdatamodels.org/DetailGroup> ;
    sh:maxCount 1 ;
    rdfs:comment "Where the entity is, as GeoJSON geometry."
  ] .
