@prefix nam1: <https://lseun135.github.io/NAontology_study/m1-record#> .
@prefix nam2: <https://lseun135.github.io/NAontology_study/m2-person#> .
@prefix nam3: <https://lseun135.github.io/NAontology_study/m3-content#> .
@prefix nadat1: <https://lseun135.github.io/NAontology_study/resource/d1-record#> .
@prefix nadat2: <https://lseun135.github.io/NAontology_study/resource/d2-person#> .
@prefix nadat3: <https://lseun135.github.io/NAontology_study/resource/d3-content#> .

@prefix adms: <http://www.w3.org/ns/adms#> .
@prefix bf: <https://id.loc.gov/ontologies/bibframe/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix gn:     <https://www.geonames.org/ontology#> .
@prefix opengov: <http://www.w3.org/ns/opengov#> .
@prefix org: <http://www.w3.org/ns/org#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rico: <https://www.ica.org/standards/RiC/ontology#> .
@prefix schema: <https://schema.org/> .
@prefix skos: <https://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .


@base    <https://lseun135.github.io/NAontology_study/m3-content#> .


<https://lseun135.github.io/NAontology_study/m3-content.ttl> rdf:type owl:Ontology ;
                owl:imports <https://schema.org/version/latest/schemaorg-current-https.ttl> .



# Classes


nam3:ContentUnit rdf:type owl:Class ;
                rdfs:subClassOf schema:CreativeWork ;
                skos:prefLabel "내용단위"@ko, "content unit"@en ;
                rdfs:comment "회의록 이외의 기록물 내용을 포괄하기 위해 추가한 클래스"@ko .

nam3:Speech rdf:type owl:Class ;
        rdfs:subClassOf nam3:ContentUnit ;
        skos:prefLabel "발언"@ko, "speech content"@en ;
        rdfs:comment "A speech, a scene, a narrative, or another part of a transcript"@en ,
                     "연설, 장면, 서술 또는 기록물(transcript)의 다른 일부  (Popolo 참조) →schema:Speech와 다른 개념"@ko .


#nam3:Bill rdf:type owl:Class ;    m1의 Record클래스 사용할 것
#                rdfs:subClassOf schema:Legislation ;
#                skos:prefLabel "의안"@ko, "bill"@en .

nam3:AgendaItem rdf:type owl:Class ;
                rdfs:subClassOf schema:ListItem ;
                skos:prefLabel "안건"@ko , "agenda item"@en .


nam3:VoteEvent rdf:type owl:Class ;
                owl:equivalentClass opengov:VoteEvent ;
                rdfs:subClassOf schema:Event, rico:Activity ;
                skos:prefLabel "표결"@ko .

### 사건(회의) → 안건
nam3:hasAgendaItem a owl:ObjectProperty ;
  rdfs:label "has agenda item"@en ;
  rdfs:label "안건을 포함한다"@ko ;
  rdfs:domain rico:Event ;
  rdfs:range  nam3:AgendaItem .


# Object Properties
nam3:hasSpeech a owl:ObjectProperty ;
        rdfs:label "has speech"@en, "발언을 가지다"@ko ;
        rdfs:subPropertyOf nam1:hasContentUnit ; 
        rdfs:domain rico:RecordResource ;
        rdfs:range  nam3:Speech .

rico:hasOrHadParticipant
        owl:propertyChainAxiom ( [ owl:inverseOf rico:documents ] nam3:hasSpeech schema:creator ) ;
        rdfs:comment "어떤 회의가 문서화한 기록이 발언을 포함하고, 그 발언자가 어떤 행위자라면, 그 행위자는 그 회의의 참가자이다."@ko .


schema:creator rdf:type owl:ObjectProperty ; 
                rdfs:comment "발화(speech)를 한 사람 / 의안을 제안한 사람"@ko .

schema:video rdf:type owl:ObjectProperty .    # 발언의 비디오 기록. range: schema:VideoObject / URL  (추후 삭제)

schema:audio rdf:type owl:ObjectProperty .    # 발언의 오디오 기록. range: AudioObject / URL (추후 삭제)

schema:publisher rdf:type owl:ObjectProperty ;
                rdfs:comment "발의안(motion)이 제안된 조직(organization)"@ko .

schema:superEvent rdf:type owl:ObjectProperty . 

dcterms:source rdf:type rdf:Property .        # 발언과 기록 연결 (엄밀히 말하면 ObjectProperty는 아니지만, 실무적으로는 ObjectProperty 사용)

dcterms:subject rdfs:subPropertyOf schema:about .


# Data properties

nam3:recordRole rdf:type owl:DatatypeProperty ;
                rdfs:comment "Popolo: The speaker's role while speaking"@en ,
                             """• 발화 당시 발화자의 역할  (Popolo 참조) 
   값: 구현에서는 ‘chair(의장)’, ‘speaker(발언자)’ 외의 값을 사용할 수도 있음
• Popolo에선 :role을 사용하지만 org:role과 혼동 우려로 인해 이름 변경. 
   발화 상황에 국한하지 않고 해당 기록에서 그 인물이 수행한 역할명(직책)을 구현하도록 임의 설정"""@ko .


schema:text rdf:type owl:DatatypeProperty ;        # 회의록의 경우, 발언의 원문 또는 기록 텍스트
                rdfs:domain schema:CreativeWork ;
                rdfs:comment "원문 또는 기록 텍스트"@ko .

schema:position rdf:type owl:DatatypeProperty ;
                rdfs:comment "전체 기록물 내에서 해당 내용의 위치(순서)"@ko .  # (혼동주의) 기록최소단위 내에서의 위치는 식별코드로

dcterms:date rdf:type owl:DatatypeProperty ;       # 발언이 이루어진 시점
                rdfs:comment "해당 내용이 작성되거나 발언이 이루어진 시점"@ko .




nam3:yesCount a owl:DatatypeProperty ;
    rdfs:domain nam3:VoteEvent ; 
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:label "찬성 수"@ko .

nam3:noCount a owl:DatatypeProperty ;
    rdfs:domain nam3:VoteEvent ; 
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:label "반대 수"@ko .

nam3:abstainCount a owl:DatatypeProperty ;
    rdfs:domain nam3:VoteEvent ; 
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:label "기권 수"@ko .

nam3:totalVotes a owl:DatatypeProperty ;
    rdfs:domain nam3:VoteEvent ; 
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:label "총투표 수"@ko .

nam3:eligibleMemberCount a owl:DatatypeProperty ;
    rdfs:domain nam3:VoteEvent ;
    rdfs:range xsd:nonNegativeInteger ;
    rdfs:label "재적 의원 수"@ko .



nam3:DiscourseActScheme a skos:ConceptScheme ;  # 본 연구에선 사용하지 않음
  skos:prefLabel "의회 담화의 의사소통 전략 스키마"@ko ,
                 "Communicative Strategies in Parliamentary Discourse (Scheme)"@en ;
  skos:altLabel "담화행위 분류"@ko ;
  dcterms:source "Kondratenko, N. V., Kiselova, A. V., & Zavalska, O. V. (2020). Strategies and Tactics of Communication in Parliamentary Discourse. Studies about Languages, 36, 17–29. doi:10.5755/j01.sal.0.36.23401"@en ;
  skos:hasTopConcept nam3:CooperativeStrategy, nam3:ConflictStrategy ;
  rdfs:comment "하위 어휘들은 dcterms:type 또는 schema:additionalType를 속성으로 사용"@ko .

nam3:CooperativeStrategy a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:topConceptOf nam3:DiscourseActScheme ;
  skos:prefLabel "협력적 의사소통 전략"@ko,
                 "Cooperative Strategy"@en ;
  skos:definition "공동 목표 달성을 지향하는 상호작용 방식. 회의 절차 준수·정보 공유·연대 형성이 핵심."@ko .

nam3:ConflictStrategy a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:topConceptOf nam3:DiscourseActScheme ;
  skos:prefLabel "갈등적 의사소통 전략"@ko ,
                 "Conflict Strategy"@en ;
  skos:definition "대립·비판을 동반하는 상호작용 방식. 비난·거부·논증적 비판이 핵심."@ko .

nam3:Regulatory a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:CooperativeStrategy ;
  skos:prefLabel "규제 전략"@ko , "Regulatory Strategy"@en ;
  skos:altLabel "회의 운영"@ko , "절차 관리"@ko , "Procedural Control"@en ;
  skos:definition "회의 절차를 관리·집행하고 발언권을 조정하는 발언(의장·사회자 중심)."@ko .

nam3:Informative a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:CooperativeStrategy ;
  skos:prefLabel "정보 전략"@ko , "Informative Strategy"@en ;
  skos:altLabel "보고·설명"@ko , "Reporting"@en ;
  skos:definition "정책·법안의 사실·현황·결과를 보고·설명하는 발언(통계·근거 제시 포함)."@ko .

nam3:Consolidating a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:CooperativeStrategy ;
  skos:prefLabel "통합 전략"@ko , "Consolidating Strategy"@en ;
  skos:altLabel "연대·지지"@ko , "Support/Unification"@en ;
  skos:definition "정치적 단결 호소 또는 특정 법안·인물·정당에 대한 지지 표명."@ko .

nam3:Declarative a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:ConflictStrategy ;
  skos:prefLabel "선언 전략"@ko , "Declarative Strategy"@en ;
  skos:altLabel "자기표상·이념 호소"@ko , "Self-representation"@en ;
  skos:definition "자기표상·도덕/이념적 호소 등 수사적·포퓰리즘적 선언 중심의 발언."@ko .

nam3:Confrontational a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:ConflictStrategy ;
  skos:prefLabel "대립 전략"@ko , "Confrontational Strategy"@en ;
  skos:altLabel "비난·공격"@ko , "Accusative/Attack"@en ;
  skos:definition "상대에 대한 비난·공격·부정 평가를 드러내는 발언(직접 또는 익명적 지시 포함)."@ko .

nam3:ArgumentativeCritical a skos:Concept ;
  skos:inScheme nam3:DiscourseActScheme ;
  skos:broader nam3:ConflictStrategy ;
  skos:prefLabel "논증·비판 전략"@ko , "Argumentative-Critical Strategy"@en ;
  skos:altLabel "합리적 비판"@ko , "Reasoned Critique"@en ;
  skos:definition "논리적 근거 제시를 통해 비판·반박하는 발언(권위·역사 사례 인용 등 포함)."@ko .




nam3:StanceScheme a skos:ConceptScheme ;
  skos:prefLabel "입장 스키마"@ko ,
                 "Stance Vocabulary (Scheme)"@en ;
  dcterms:created "2025-10-13"^^xsd:date ;
  skos:hasTopConcept nam3:Support , nam3:Oppose , nam3:Neutral ;
  dcterms:description "의회 발언의 안건/의견에 대한 입장(찬성·반대·중립)을 표현하기 위한 통제어 목록."@ko .

nam3:Support a skos:Concept ;
  skos:inScheme nam3:StanceScheme ;
  skos:topConceptOf nam3:StanceScheme ;
  skos:prefLabel "찬성(지지)"@ko , "Support"@en ;
  skos:altLabel "지지"@ko , "찬성"@ko ;
  skos:definition "특정 안건·의견·행동을 긍정하거나 동의하는 입장. 예: \"원안에 찬성합니다.\" "@ko .

nam3:Oppose a skos:Concept ;
  skos:inScheme nam3:StanceScheme ;
  skos:topConceptOf nam3:StanceScheme ;
  skos:prefLabel "반대(거부)"@ko , "Oppose"@en ;
  skos:altLabel "반대"@ko , "거부"@ko ;
  skos:definition "특정 안건·의견·행동에 부정적인 태도를 표명하는 입장. 예: \"이 법안은 부적절합니다.\" "@ko .

nam3:Neutral a skos:Concept ;
  skos:inScheme nam3:StanceScheme ;
  skos:topConceptOf nam3:StanceScheme ;
  skos:prefLabel "중립(유보)"@ko , "Neutral"@en ;
  skos:altLabel "유보"@ko , "중립"@ko ;
  skos:definition "명시적 찬반이 없거나 판단을 보류하는 입장. 예: \"검토가 필요합니다.\", \"입장을 보류하겠습니다.\" "@ko .


nam3:stance a rdf:Property ;                  # 필요할 경우 owl:ObjectProperty로
  rdfs:label "입장"@ko , "stance"@en ;
  rdfs:domain nam3:Speech ; 
  rdfs:range skos:Concept ; 
  rdfs:comment "발언이 표현하는 입장(찬성·반대·중립)을 연결한다. 값은 nam3:StanceScheme의 개념을 사용한다(nam3:Support/nam3:Oppose/nam3:Neutral)."@ko ;
  rdfs:seeAlso nam3:StanceScheme .

nam3:stanceTarget a rdf:Property ;            # 필요할 경우 owl:ObjectProperty로
  rdfs:label "입장 대상"@ko , "stance target"@en ;
  rdfs:domain nam3:Speech ; 
  rdfs:range rdfs:Resource ; 
  rdfs:comment "입장이 향하는 대상 개체를 지정한다(예: 의안, 안건, 법률, 위원회, 인물 등). 대상 타입을 한정하지 않기 위해 rdfs:Resource를 사용한다."@ko ;
  rdfs:seeAlso nam3:StanceScheme .




# nam3:ResultScheme: 결과 
nam3:ResultScheme a skos:ConceptScheme ;
                skos:prefLabel "결과 스키마"@ko , "Result Scheme"@en ;
                skos:hasTopConcept nam3:pass , nam3:fail , nam3:procedural .

nam3:pass a skos:Concept ;
                skos:topConceptOf nam3:ResultScheme ;
                skos:inScheme nam3:ResultScheme ;
                skos:prefLabel "가결/채택 계열"@ko ;
                skos:altLabel  "통과"@ko , "Pass"@en ;
                skos:notation  "pass" .

nam3:fail a skos:Concept ;
                skos:topConceptOf nam3:ResultScheme ;
                skos:inScheme nam3:ResultScheme ;
                skos:prefLabel "부결/폐기 계열"@ko ;
                skos:altLabel  "불채택"@ko , "Fail"@en ;
                skos:notation  "fail" .

nam3:procedural a skos:Concept ;
                skos:topConceptOf nam3:ResultScheme ;
                skos:inScheme nam3:ResultScheme ;
                skos:prefLabel "절차/중간결정"@ko ;
                skos:notation  "procedural" .

### Pass
nam3:resultAdopted a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:pass ;
                skos:prefLabel "가결"@ko ;
                skos:altLabel  "채택"@ko , "Adopted"@en ;
                skos:notation  "adopted" .

nam3:resultAdoptedOriginal a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:resultAdopted ;
                skos:prefLabel "원안가결"@ko ;
                skos:altLabel  "Adopted (as introduced)"@en ;
                skos:notation  "adopted_original" .

nam3:resultAdoptedAmended a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:resultAdopted ;
                skos:prefLabel "수정가결"@ko ;
                skos:altLabel  "Adopted (as amended)"@en ;
                skos:notation  "adopted_amended" .


### Procedural
nam3:resultCommitteeReviewReportAdopted a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:procedural ;
                skos:prefLabel "심사보고서채택"@ko ;
                skos:altLabel  "심사보고 채택"@ko , "review report adopted"@en ;
                skos:notation  "committee_review_report_adopted" .

nam3:resultCommitteeProgressReportAdopted a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:procedural ;
                skos:prefLabel "경과보고서채택"@ko ;
                skos:altLabel  "경과보고 채택"@ko , "progress report adopted"@en ;
                skos:notation  "committee_progress_report_adopted" .

nam3:resultAmended a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:procedural ;
                skos:prefLabel "수정"@ko ;
                skos:altLabel  "amended"@en ;
                skos:notation  "amended" .

nam3:resultAmendmentResolution a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:procedural ;
                skos:prefLabel "수정의결"@ko ;
                skos:altLabel  "amendment resolution adopted"@en ;
                skos:notation  "amendment_resolution" .

### Fail
nam3:resultRejected a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:fail ;
                skos:prefLabel "부결"@ko ;
                skos:notation  "Rejected" .

nam3:resultWithdrawn a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:fail ;
                skos:prefLabel "철회"@ko ;
                skos:altLabel  "withdrawn"@en ;
                skos:notation  "withdrawn" .

nam3:resultDisposed a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:fail ;
                skos:prefLabel "폐기"@ko ;
                skos:altLabel  "discarded"@en ;
                skos:notation  "disposed" .


nam3:resultDisposedIncorporatedIntoAlternative a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:resultDisposed ;
                skos:prefLabel "대안반영폐기"@ko ;
                skos:altLabel  "대안 반영 폐기"@ko , "disposed (incorporated into alternative bill)"@en ;
                skos:notation  "disposed_alt_incorporated" .

nam3:resultDisposedIncorporatedByAmendment a skos:Concept ;
                skos:inScheme nam3:ResultScheme ;
                skos:broader  nam3:resultDisposed ;
                skos:prefLabel "수정안반영폐기"@ko ;
                skos:altLabel  "수정안 반영 폐기"@ko , "disposed (incorporated by amendment)"@en ;
                skos:notation  "disposed_amendment_incorporated" .



