@prefix fdic: <http://example.com/fdic#> .
@prefix geo1: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema1: <http://schema.org/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

schema1:Organization a sh:NodeShape ;
    sh:closed true ;
    sh:description "A record describing an FDIC insured bank, including classification, location, identifiers, and structured address." ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description "Description of the banking service type." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 25 ;
            sh:path fdic:serviceTypeDescription ],
        [ sh:datatype xsd:string ;
            sh:description "Numeric branch number identifying the branch within the institution." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 23 ;
            sh:path fdic:branchNumber ],
        [ sh:datatype xsd:date ;
            sh:description "Date of acquisition for the bank asset, facility, or branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 3 ;
            sh:path schema1:dateAcquired ],
        [ sh:datatype xsd:integer ;
            sh:description "Flag indicating whether the metro area is present within CBSA (1) or not (0)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 11 ;
            sh:path fdic:cbsaMetroFlag ],
        [ sh:datatype xsd:integer ;
            sh:description "Flag indicating whether the area is part of a CSA (1) or not (0)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 17 ;
            sh:path fdic:csaFlag ],
        [ sh:datatype xsd:integer ;
            sh:description "Flag indicating whether the area is classified as a micro area within CBSA (1) or not (0)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 13 ;
            sh:path fdic:cbsaMicroFlag ],
        [ sh:datatype xsd:decimal ;
            sh:description "GIS X coordinate, likely in state plane or local projection (not WGS84)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path fdic:coordinateX ],
        [ sh:class geo1:SpatialThing ;
            sh:description "Geographic location of the bank branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:order 32 ;
            sh:path schema1:geo ],
        [ sh:datatype xsd:string ;
            sh:description "State and County FIPS code identifying the county within the state." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 27 ;
            sh:path fdic:hasCountyFIPS ],
        [ sh:datatype xsd:string ;
            sh:description "FDIC Bank Class Code indicating the type of bank, e.g., NM for State Nonmember Bank." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 5 ;
            sh:path fdic:hasBankClassification ],
        [ sh:datatype xsd:string ;
            sh:description "Core-Based Statistical Area (CBSA) name for census region classification." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 6 ;
            sh:path fdic:hasCBSARegion ],
        [ sh:datatype xsd:string ;
            sh:description "Two-letter state abbreviation where the bank is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 26 ;
            sh:path fdic:stateAbbreviation ],
        [ sh:datatype xsd:decimal ;
            sh:description "GIS Y coordinate, likely in state plane or local projection (not WGS84)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path fdic:coordinateY ],
        [ sh:datatype xsd:string ;
            sh:description "Secondary address line providing additional address details." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 4 ;
            sh:path fdic:addressLine2 ],
        [ sh:datatype xsd:string ;
            sh:description "Postal ZIP code of the branch location." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 30 ;
            sh:path schema1:postalCode ],
        [ sh:datatype xsd:string ;
            sh:description "Name of the metro area within the CBSA." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 12 ;
            sh:path fdic:cbsaMetroName ],
        [ sh:datatype xsd:string ;
            sh:description "Name of the bank branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 22 ;
            sh:path schema1:name ],
        [ sh:datatype xsd:string ;
            sh:description "Combined Statistical Area (CSA) name for broader census region classification." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 16 ;
            sh:path fdic:hasCSARegion ],
        [ sh:datatype xsd:string ;
            sh:description "Numeric CBSA code for the area." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 14 ;
            sh:path fdic:cbsaCode ],
        [ sh:datatype xsd:string ;
            sh:description "Numeric code of the CBSA division." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 9 ;
            sh:path fdic:cbsaDivisionCode ],
        [ sh:datatype xsd:string ;
            sh:description "Code indicating the metro area within the CBSA classification." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 10 ;
            sh:path fdic:cbsaMetroCode ],
        [ sh:datatype xsd:string ;
            sh:description "Minority Depository Institution (MDI) status code indicating MDI status." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 20 ;
            sh:path fdic:hasMDIStatus ],
        [ sh:class schema1:PropertyValue ;
            sh:description "List of identifiers associated with the bank." ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:order 33 ;
            sh:path schema1:identifier ],
        [ sh:datatype xsd:string ;
            sh:description "Unique FDIC-assigned number identifying the branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 29 ;
            sh:path fdic:uniqueBranchNumber ],
        [ sh:datatype xsd:string ;
            sh:description "Textual description of the MDI status." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 21 ;
            sh:path fdic:mdiStatusDescription ],
        [ sh:datatype xsd:string ;
            sh:description "Name of the CBSA division for census region classification." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 7 ;
            sh:path fdic:cbsaDivisionName ],
        [ sh:datatype xsd:string ;
            sh:description "Numeric CSA code for the area." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 18 ;
            sh:path fdic:csaCode ],
        [ sh:datatype xsd:integer ;
            sh:description "Flag indicating whether a CBSA division is present (1) or not (0)." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 8 ;
            sh:path fdic:cbsaDivisionFlag ],
        [ sh:datatype xsd:string ;
            sh:description "Name of the county in which the bank is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 15 ;
            sh:path fdic:countyName ],
        [ sh:class schema1:PostalAddress ;
            sh:description "Structured postal address of the bank branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:BlankNodeOrIRI ;
            sh:order 31 ;
            sh:path schema1:address ],
        [ sh:datatype xsd:integer ;
            sh:description "Technical GIS object ID for row identification from shapefile exports." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path fdic:gisObjectID ],
        [ sh:datatype xsd:date ;
            sh:description "Date the bank was established, with precision to the day." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 19 ;
            sh:path schema1:foundingDate ],
        [ sh:datatype xsd:string ;
            sh:description "Service type code indicating the kind of banking service, e.g., 11 for Full Service." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 24 ;
            sh:path fdic:hasServiceType ],
        [ sh:datatype xsd:string ;
            sh:description "Full name of the state where the bank is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 28 ;
            sh:path fdic:stateName ] ;
    sh:targetClass schema1:Organization .

schema1:PostalAddress a sh:NodeShape ;
    sh:closed true ;
    sh:description "Structured postal address of an FDIC insured bank branch." ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description "Country where the bank branch is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 4 ;
            sh:path schema1:addressCountry ],
        [ sh:datatype xsd:string ;
            sh:description "Postal ZIP code of the branch location." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 3 ;
            sh:path schema1:postalCode ],
        [ sh:datatype xsd:string ;
            sh:description "State or region where the bank branch is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path schema1:addressRegion ],
        [ sh:datatype xsd:string ;
            sh:description "City or locality where the bank branch is located." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path schema1:addressLocality ],
        [ sh:datatype xsd:string ;
            sh:description "Street address of the bank branch." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path schema1:streetAddress ] ;
    sh:targetClass schema1:PostalAddress .

schema1:PropertyValue a sh:NodeShape ;
    sh:closed true ;
    sh:description "An identifier for the FDIC insured bank, capturing its type and value." ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description "The actual identifier value." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path schema1:value ],
        [ sh:datatype xsd:string ;
            sh:description "Type of identifier, e.g., FDIC Certificate Number, FI_UNINUM." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path schema1:propertyID ] ;
    sh:targetClass schema1:PropertyValue .

geo1:SpatialThing a sh:NodeShape ;
    sh:closed true ;
    sh:description "Geographic location (latitude and longitude) of the bank branch." ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:decimal ;
            sh:description "Latitude of the bank branch location in WGS84." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path geo1:lat ],
        [ sh:datatype xsd:decimal ;
            sh:description "Longitude of the bank branch location in WGS84." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path geo1:long ] ;
    sh:targetClass geo1:SpatialThing .


