@prefix sh: <http://www.w3.org/ns/shacl#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix rico: <https://www.ica.org/standards/RiC/ontology#>.
@prefix ric: <http://archives.nanet.go.kr/id/>.
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix schema: <https://schema.org/>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix prov: <http://www.w3.org/ns/prov#>.
@prefix oa: <http://www.w3.org/ns/oa#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix nara: <http://archives.nanet.go.kr/voca#>.

<http://archives.nanet.go.kr/id/ap/shape/33> a sh:NodeShape;
    sh:targetClass nara:Constituency;
    rdfs:label "선거구"@ko;
    rdfs:comment "의원을 선출하는 제도적 공간 단위 — 대장 유형은 장소(place)에 근사로 앉힌다"@ko;
    sh:property _:p1.
_:p1 sh:path rico:name;
    sh:name "명칭"@ko;
    sh:minCount 1;
    sh:maxCount 1;
    sh:nodeKind sh:Literal;
    sh:description "예: 무진장, 종로"@ko.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p2.
_:p2 sh:path rico:identifier;
    sh:name "식별자"@ko;
    sh:minCount 0;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p3.
_:p3 sh:path nara:coversArea;
    sh:name "관할 행정구역"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Place;
    sh:description "예: 무진장 → 무주·진안·장수"@ko.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p4.
_:p4 sh:path nara:activeInTerm;
    sh:name "해당 대수"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class nara:AssemblyTerm;
    sh:description "예: 임실 — 제17·18대"@ko.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p5.
_:p5 sh:path nara:representedBy;
    sh:name "당선 의원"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Person.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p6.
_:p6 sh:path nara:redefinedIn;
    sh:name "획정·개편"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Event;
    sh:description "예: 2004년 선거구 획정"@ko.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p7.
_:p7 sh:path rico:isAssociatedWithPlace;
    sh:name "관련 장소"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Place.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p8.
_:p8 sh:path owl:sameAs;
    sh:name "동일 개체(외부 URI)"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p9.
_:p9 sh:path rdfs:label;
    sh:name "라벨"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p10.
_:p10 sh:path rdfs:comment;
    sh:name "주석"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p11.
_:p11 sh:path rico:generalDescription;
    sh:name "설명"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p12.
_:p12 sh:path foaf:depiction;
    sh:name "대표 이미지"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p13.
_:p13 sh:path geo:lat;
    sh:name "위도"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.
<http://archives.nanet.go.kr/id/ap/shape/33> sh:property _:p14.
_:p14 sh:path geo:long;
    sh:name "경도"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal.

# --- 위 규칙이 쓰는 커스텀 어휘 정의 (동봉 — LLM·검증기가 용어 뜻을 이 파일 안에서 찾는다) ---

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
@prefix rico: <https://www.ica.org/standards/RiC/ontology#>.
@prefix ric: <http://archives.nanet.go.kr/id/>.
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix schema: <https://schema.org/>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix prov: <http://www.w3.org/ns/prov#>.
@prefix oa: <http://www.w3.org/ns/oa#>.
@prefix nara: <http://archives.nanet.go.kr/voca#>.

nara:AssemblyTerm a rdfs:Class;
    rdfs:label "국회 대수"@ko;
    rdfs:comment "총선으로 구성되어 4년 임기 동안 존속하는 국회의 회기 단위(제1대~). 의원들의 집합체이므로 rico:Group 의 하위 클래스 — 재임은 rico:hasOrHadMember(대수→인물)로 적는다."@ko;
    rdfs:subClassOf rico:Group.
nara:Constituency a rdfs:Class;
    rdfs:label "선거구"@ko;
    rdfs:comment "국회의원을 선출하는 제도적 공간 단위. 행정구역과 달리 획정에 따라 경계와 이름이 바뀐다(예: 무진장 = 무주·진안·장수). rico:Place 의 하위 클래스."@ko;
    rdfs:subClassOf rico:Place.
nara:activeInTerm a rdf:Property;
    rdfs:label "해당 대수"@ko;
    rdfs:comment "이 선거구가 존재·운용된 국회 대수(예: 임실 — 제17·18대). 설명문에 갇힌 대수 표기를 구조화한다."@ko;
    rdfs:domain nara:Constituency;
    rdfs:range nara:AssemblyTerm.
nara:coversArea a rdf:Property;
    rdfs:label "관할 행정구역"@ko;
    rdfs:comment "선거구가 포괄하는 행정구역(예: 무진장 → 무주·진안·장수)."@ko;
    rdfs:domain nara:Constituency;
    rdfs:range rico:Place.
nara:redefinedIn a rdf:Property;
    rdfs:label "획정·개편"@ko;
    rdfs:comment "이 선거구를 신설·조정한 선거구 획정 사건(예: 2004년 선거구 획정)."@ko;
    rdfs:domain nara:Constituency;
    rdfs:range rico:Event.
nara:representedBy a rdf:Property;
    rdfs:label "당선 의원"@ko;
    rdfs:comment "이 선거구에서 당선된 국회의원. representsConstituency 의 역관계."@ko;
    rdfs:domain nara:Constituency;
    rdfs:range rico:Person;
    owl:inverseOf nara:representsConstituency.
