@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/32> a sh:NodeShape;
    sh:targetClass nara:AssemblyTerm;
    rdfs:label "국회 대수"@ko;
    rdfs:comment "총선으로 구성되는 국회의 회기 단위 — 대장 유형은 단체(corporate)에 근사로 앉히고, 정확한 유형은 클래스가 말한다"@ko;
    sh:property _:p1.
_:p1 sh:path rico:name;
    sh:name "명칭"@ko;
    sh:minCount 1;
    sh:maxCount 1;
    sh:nodeKind sh:Literal;
    sh:description "예: 제15대 국회"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> 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/32> sh:property _:p3.
_:p3 sh:path rico:beginningDate;
    sh:name "개원일"@ko;
    sh:minCount 1;
    sh:maxCount 1;
    sh:nodeKind sh:Literal;
    sh:description "공리: 시작일 없는 대수는 없다"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p4.
_:p4 sh:path rico:endDate;
    sh:name "폐회일"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal;
    sh:description "진행 중 대수는 비워 둔다"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p5.
_:p5 sh:path nara:constitutedBy;
    sh:name "선출 총선"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:IRI;
    sh:class rico:Event;
    sh:description "한 대수를 구성하는 총선은 하나 — 재보궐은 대상이 아니다"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p6.
_:p6 sh:path nara:speaker;
    sh:name "국회의장"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Person;
    sh:description "전·후반기 교체·보궐로 복수"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p7.
_:p7 sh:path nara:majorityParty;
    sh:name "제1당(다수당)"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:CorporateBody;
    sh:description "개원 시점 기준 — 합당·분당으로 임기 중 변동 가능"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p8.
_:p8 sh:path nara:rulingParty;
    sh:name "여당"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:CorporateBody;
    sh:description "시기 의존 — 제15대처럼 임기 중 정권교체(1997)로 바뀐다"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p9.
_:p9 sh:path nara:totalSeats;
    sh:name "의석수"@ko;
    sh:minCount 0;
    sh:maxCount 1;
    sh:nodeKind sh:Literal;
    sh:description "총 의석만 — 정당별 의석은 3항 관계라 v0.1 범위 밖"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p10.
_:p10 sh:path rico:hasOrHadMember;
    sh:name "소속 의원"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:class rico:Person;
    sh:description "rico:Group 하위라서 쓸 수 있다 — 재임 관계의 정석"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p11.
_:p11 sh:path owl:sameAs;
    sh:name "동일 개체(외부 URI)"@ko;
    sh:minCount 0;
    sh:nodeKind sh:IRI;
    sh:description "위키데이터에 대수별 항목이 실재한다 — 외부 전거와 잇는 자리"@ko.
<http://archives.nanet.go.kr/id/ap/shape/32> sh:property _:p12.
_:p12 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/32> sh:property _:p13.
_:p13 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/32> sh:property _:p14.
_:p14 sh:path foaf:depiction;
    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:constitutedBy a rdf:Property;
    rdfs:label "선출 총선"@ko;
    rdfs:comment "이 대수를 구성한 국회의원 총선거(예: 제15대 국회 ← 제15대 국회의원선거). 재보궐선거는 대수를 구성하지 않으므로 대상이 아니다."@ko;
    rdfs:domain nara:AssemblyTerm;
    rdfs:range rico:Event.
nara:majorityParty a rdf:Property;
    rdfs:label "제1당(다수당)"@ko;
    rdfs:comment "개원 시점의 원내 제1당. 합당·분당으로 임기 중 바뀔 수 있어 복수를 허용한다."@ko;
    rdfs:domain nara:AssemblyTerm;
    rdfs:range rico:CorporateBody.
nara:rulingParty a rdf:Property;
    rdfs:label "여당"@ko;
    rdfs:comment "대통령 소속 정당. 대수의 고유 속성이 아니라 시기 의존적 — 제15대처럼 임기 중 정권교체(1997)로 바뀔 수 있어 복수를 허용하고, 시기는 비고로 밝힌다."@ko;
    rdfs:domain nara:AssemblyTerm;
    rdfs:range rico:CorporateBody.
nara:speaker a rdf:Property;
    rdfs:label "국회의장"@ko;
    rdfs:comment "해당 대수의 국회의장. 전·후반기 교체와 보궐로 한 대수에 여럿일 수 있다."@ko;
    rdfs:domain nara:AssemblyTerm;
    rdfs:range rico:Person.
nara:totalSeats a rdf:Property;
    rdfs:label "의석수"@ko;
    rdfs:comment "해당 대수의 총 의석수. 정당별 의석은 (대수×정당×수)의 3항 관계라 v0.1 범위 밖이다."@ko;
    rdfs:domain nara:AssemblyTerm;
    rdfs:range xsd:integer.
