온톨로지 설계 스크립트 사용법

Vaquita Wiki

온톨로지 설계 스크립트는 네트워크 그래프로 표현할 대상의 유형과 관계를 정의하고, 각각의 개체와 그 사이의 관계를 구조적으로 기술하기 위한 스크립트입니다. 위키에서는 이를 LST 형식의 문서로 작성하여 네트워크 그래프로 시각화할 수 있습니다.

온톨로지 설계 스크립트의 작성과 네트워크 그래프 표시는 다음과 같은 순서로 이루어집니다.

  1. 시맨틱 데이터 준비: 네트워크 그래프로 표현하고자 하는 대상 세계의 지식정보를 시맨틱 데이터로 편찬하여 준비합니다.
  2. LST 문서 생성: 제목이 .lst로 끝나는 위키 문서를 생성합니다.
  3. 스크립트 기술: 준비한 시맨틱 데이터를 아래의 작성 방법에 따라 <pre> ... </pre> 영역에 기술합니다.
  4. 네트워크 그래프 표시: 원하는 문서에서 NetworkGraph 틀을 불러와 작성한 데이터를 네트워크 그래프로 표시합니다.


온톨로지 설계 스크립트의 기본 구조[편집]

  • 온톨로지 설계 스크립트는 #Project, #Class, #Relation, #Nodes, #Links의 필수 영역과 다국어 표기를 위한 #Translation 선택 영역으로 구성됩니다.
  • 스크립트의 마지막에는 #End를 입력하여 스크립트의 끝을 표시합니다.
  • 각 섹션은 네트워크 그래프를 구성하는 서로 다른 종류의 정보를 기술합니다.
  • 가장 기본적인 형태의 온톨로지 설계 스크립트는 다음과 같습니다

🕸️ 그래프 예시 보기   가장 단순한 형태의 스크립트 ☞ 그래프예시-001.lst

<pre>
#Project
"삼보사찰 네트워크"

#Class
Concept
Temple

#Relation
includes
knownAs

#Nodes
삼보사찰, Concept, 삼보사찰(三寶寺刹), Null, Null, Null
승보사찰, Concept, 승보사찰(僧寶寺刹), Null, Null, Null
법보사찰, Concept, 법보사찰(法寶寺刹), Null, Null, Null
불보사찰, Concept, 불보사찰(佛寶寺刹), Null, Null, Null
순천_송광사, Temple, 송광사, Null, Null, Null

#Links
삼보사찰, 승보사찰, includes
삼보사찰, 법보사찰, includes
삼보사찰, 불보사찰, includes
순천_송광사, 승보사찰, knownAs

#End
</pre>

== Visualize ==
{{ NetworkGraph | title={{PAGENAME}} }}
섹션 구분 내용
<pre> ... </pre> 필수 온톨로지 설계 스크립트의 시작과 끝을 감싸는 태그입니다.
#Project부터 #End까지의 스크립트를 이 태그 안에 입력합니다.
#Project 필수 네트워크 그래프의 제목이나 주제를 입력합니다.
#Class 필수 네트워크에 포함되는 대상의 범주(Class)를 정의합니다.
#Relation 필수 대상과 대상 사이에 사용할 관계(Relation)를 정의합니다.
#Nodes 필수 네트워크에 포함되는 각각의 개체(Node)를 입력합니다.
#Links 필수 노드와 노드 사이의 관계(Link)를 입력합니다.
#Translation 선택 노드의 다른 언어 번역 또는 표기 정보를 입력합니다. 번역 정보는 네트워크 그래프에 별도로 표시되지 않습니다.
#End 필수 온톨로지 설계 스크립트의 끝을 표시합니다.
Visualize 선택 작성한 온톨로지 설계 스크립트를 위키 문서에서 네트워크 그래프로 표시합니다.

기본 표기 규칙[편집]

필드 구분자: 쉼표(,)[편집]

  • 쉼표(,): 하나의 행을 구성하는 각각의 필드를 구분하는 구분자
  • 각 섹션에서 정해진 필드의 순서에 따라 값을 입력하고, 각각의 값 사이를 쉼표로 구분합니다.
#Nodes
순천_송광사, Temple, 송광사   
☞ #Nodes에서 쉼표(,)로 id, class, label의 필드를 구분합니다.
#Links
삼보사찰, 승보사찰, includes 
☞ #Links에서 쉼표(,)로 source, target, relation의 필드를 구분합니다.
#Translation
순천_송광사, Songgwangsa, hasEnglishTranslation
☞ #Translation에서 쉼표(,)로 id, translation, relation 필드를 구분합니다.

쉼표가 포함된 값의 표시: 큰따옴표("")[편집]

  • 큰따옴표(" "): 하나의 필드 값 안에 쉼표(,)가 포함된 경우 해당 값 전체를 하나의 필드로 인식시키기 위해 사용하는 기호입니다.
  • 쉼표는 기본적으로 필드를 구분하는 구분자로 사용되므로, 데이터 값 자체에 쉼표가 포함되어 있을 때에는 해당 값 전체를 큰따옴표로 감쌉니다.
삼보사찰, Concept, 삼보사찰, Null, Null, "송광사, 해인사, 통도사를 함께 이르는 말"    (O)
삼보사찰, Concept, 삼보사찰, Null, Null, 송광사, 해인사, 통도사를 함께 이르는 말      (X)

☞ remark의 쉼표가 필드 구분자로 인식되지 않도록 remark 전체를 큰따옴표(" ")로 감쌉니다.

미사용 필드의 표시: Null[편집]

  • Null: 선택 필드 가운데 사용하지 않는 필드의 위치를 유지하기 위해 입력하는 값
  • 뒤쪽의 선택 필드를 사용하기 위해 앞쪽의 선택 필드를 비워 두어야 하는 경우 해당 위치에 Null을 입력합니다.
#Nodes
순천_송광사, Temple, 송광사, Null, https://example.org/songgwangsa.jpg, Null
☞ #Nodes에서 infoUrl과 remark는 사용하지 않고 iconUrl만 입력한 경우입니다.
#Links
순천_송광사, 승보사찰, knownAs, Null, "송광사는 삼보사찰 가운데 승보사찰로 알려져 있다."
☞ #Links에서 attribute는 사용하지 않고 remark만 입력한 경우입니다.

섹션별 작성 방법[편집]

#Project[편집]

  • #Project에는 네트워크 그래프의 제목이나 주제를 입력합니다.
  • 하나의 스크립트가 어떠한 대상이나 주제를 다루는지 식별할 수 있는 이름을 사용합니다.
  • 프로젝트 이름은 전체를 큰따옴표(" ")로 감쌉니다.
#Project
"삼보사찰 네트워크"

#Class[편집]

  • #Class에는 네트워크 그래프로 표현하고자 하는 대상 세계의 범주(Class)를 정의합니다.
  • #Nodes에서 사용하는 클래스는 #Class에 먼저 정의되어 있어야 합니다.
#Class
Temple
Concept
Object

#Relation[편집]

  • #Relation에는 노드와 노드 사이에 사용할 관계(Relation)를 정의합니다.
  • #Links에서 사용하는 관계는 #Relation에 먼저 정의되어 있어야 합니다.
#Relation
knownAs
includes
visited

#Nodes[편집]

  • #Nodes에는 네트워크에서 하나의 개체로 식별하고자 하는 대상을 정의합니다.
  • 하나의 노드는 최대 6개의 필드로 구성할 수 있습니다.
    • 필수 필드: id, class, label
    • 선택 필드: infoUrl, iconUrl, remark
  • 각 필드는 정해진 순서에 따라 입력합니다.
순서 필드 구분 내용
1 id 필수
  • 노드를 고유하게 식별하기 위한 이름입니다.
  • [참고] ID 부여시 유의사항
    • ID는 유일해야 하며 중복해서 사용할 수 없습니다.
    • ID에는 공백(white space)을 사용하지 않습니다. 필요한 경우 공백 문자 대신 언더바(_)를 사용합니다.
      • 예: 순천_송광사, 송광사의_3대명물
2 class 필수
  • 노드가 속하는 범주입니다.
  • 반드시 #Class에 정의된 값을 사용합니다.
3 label 필수
  • 네트워크 그래프에서 노드의 이름으로 표시되는 값입니다.
4 infoUrl 선택
  • 노드에 관한 정보를 제공하는 웹 문서의 주소입니다.
  • 노드를 선택했을 때 웹 문서로 연결됩니다.
5 iconUrl 선택
  • 네트워크 그래프에서 노드를 표시할 때 사용할 아이콘 이미지의 주소입니다.
  • iconUrl이 지정된 노드는 해당 클래스에 색상과 모양이 지정되어 있더라도 아이콘 이미지로 표시됩니다.
  • 아이콘 이미지 참조 ☞ Icons
6 remark 선택
  • 노드에 관한 부가설명입니다.
  • (예시1) 기본적인 노드 입력
순천_송광사, Temple, 송광사
  • (예시2) infoUrl을 추가한 경우
순천_송광사, Temple, 송광사, https://example.org/songgwangsa
  • (예시3) infoUrl을 사용하지 않고, iconUrl을 추가한 경우
순천_송광사, Temple, 송광사, Null, https://example.org/songgwangsa.jpg
  • (예시4) infoUrl과 iconUrl을 사용하지 않고, remark를 추가한 경우
삼보사찰, Concept, 삼보사찰, Null, Null, "삼보사찰은 불교의 신행과 귀의의 대상인 불(佛), 법(法), 승(僧)을 각각 상징하는 통도사, 해인사, 송광사를 함께 이르는 말이다."

#Links[편집]

  • #Links에는 노드와 노드 사이의 관계를 입력합니다.
  • 하나의 링크는 최대 5개의 필드로 구성할 수 있습니다.
    • 필수 필드: source, target, relation
    • 선택 필드: attribute, remark
  • 각 필드는 정해진 순서에 따라 입력합니다.
순서 필드 구분 내용
1 source 필수
  • 관계가 출발하는 노드의 id입니다.
2 target 필수
  • 관계가 향하는 노드의 id입니다.
3 relation 필수
  • 두 노드 사이의 관계입니다.
  • 반드시 #Relation에 정의된 값을 사용합니다.
4 attribute 선택
  • 관계에 덧붙이는 속성 정보입니다.
  • 관계가 성립한 시기나 관계의 성격 등 링크 자체에 관한 정보를 attribute로 표현할 수 있습니다.
5 remark 선택
  • 관계에 관한 부가설명입니다.
  • (예시1) 기본적인 링크 입력
순천_송광사, 승보사찰, knownAs
  • (예시2) attribute를 입력한 경우
서소리, 순천_송광사, visited, 2025년 8월

☞ 2025년 8월은 노드(서소리)와 노드(순천_송광사) 사이의 관계(visited)에 부가된 속성 정보입니다. 
  • (예시3) remark만 입력한 경우
승보사찰, 순천_송광사, knownAs, Null, "송광사는 삼보사찰 가운데 승보사찰로 알려져 있다."

🕸️ 그래프 예시 보기   여러 유형의 노드·링크를 포함하는 스크립트 ☞ 그래프예시-002.lst

<pre>
#Project
"삼보사찰과 나의 방문 기록"

#Class
Place
Concept
Person

#Relation
includes
knownAs
visited

#Nodes
삼보사찰, Concept, 삼보사찰(三寶寺刹), https://buddhaland.dongguk.edu/bulVoca/view?dataId=KBDI0001418, https://kstoryhub.visualasia.com/classics/wiki/images/2/22/Sambosachal.png, 삼보사찰은 불교의 삼보인 불(佛)·법(法)·승(僧)을 각각 상징하는 통도사·해인사·송광사를 함께 이르는 말이다.
승보사찰, Concept, 승보사찰(僧寶寺刹), Null, https://kstoryhub.visualasia.com/classics/wiki/images/2/27/Seungbosachal.png, "승보사찰은 불교의 삼보 가운데 승(僧)을 상징하는 사찰로, 많은 고승을 배출한 송광사를 이르는 말이다."
법보사찰, Concept, 법보사찰(法寶寺刹), Null, https://kstoryhub.visualasia.com/classics/wiki/images/2/20/Beopbosachal.png, "법보사찰은 불교의 삼보 가운데 법(法)을 상징하는 사찰로, 팔만대장경을 봉안한 해인사를 이르는 말이다."
불보사찰, Concept, 불보사찰(佛寶寺刹), Null, https://kstoryhub.visualasia.com/classics/wiki/images/3/3d/Bulbosachal.png, "불보사찰은 불교의 삼보 가운데 불(佛)을 상징하는 사찰로, 석가모니의 진신사리를 봉안한 통도사를 이르는 말이다."
순천_송광사, Place, 송광사, Null, Null, Null
양산_통도사, Place, 통도사, Null, Null, Null
합천_해인사, Place, 해인사, Null, Null, Null
김정만, Person, 김정만, Null, https://kstoryhub.visualasia.com/classics/wiki/images/4/4e/S2602105_프로필.jpg, Null

#Links
삼보사찰, 승보사찰, includes, Null, Null
삼보사찰, 법보사찰, includes, Null, Null
삼보사찰, 불보사찰, includes, Null, Null
순천_송광사, 승보사찰, knownAs, Null, Null
합천_해인사, 법보사찰, knownAs, Null, Null
양산_통도사, 불보사찰, knownAs, Null, Null
김정만, 순천_송광사, visited, 2025년 8월, Null
김정만, 합천_해인사, visited, 2016년 4월, Null
김정만, 양산_통도사, visited, 2026년 8월, Null

#Translation

#End
</pre>

== Visualize ==
{{ NetworkGraph | title={{PAGENAME}} }}

#Translation[편집]

  • #Translation에는 #Nodes에 정의한 노드의 다른 언어 번역 또는 표기 정보를 입력합니다.
  • #Translation에 입력한 번역 정보는 네트워크 그래프에 별도로 표시되지 않습니다. 네트워크 그래프의 시각적 표현을 위한 정보가 아니라, 시맨틱 데이터를 AI와 함께 활용할 때 각 노드의 정확한 다국어 명칭을 제공하기 위한 정보입니다.
  • 예를 들어 시맨틱 데이터를 바탕으로 AI를 활용하여 스토리텔링 콘텐츠를 생성하거나 다국어 콘텐츠를 작성할 때, #Translation에 입력된 정보를 활용하여 노드의 명칭을 정확하게 번역·표기할 수 있습니다.
  • #Translation은 선택 영역이므로 다국어 정보가 필요하지 않은 경우에는 작성하지 않아도 됩니다.
  • 하나의 번역 정보는 3개의 필드로 구성하며, 세 필드는 모두 필수입니다.
    • 필수 필드: id, translation, relation
  • 하나의 노드에 여러 언어의 번역 정보를 각각 연결할 수 있습니다.
  • 각 필드는 정해진 순서에 따라 입력합니다.
순서 필드 구분 내용
1 id 필수
  • 번역 정보를 부여할 노드의 id입니다.
  • 반드시 #Nodes에 정의된 id를 사용합니다.
2 translation 필수
  • 해당 노드의 다른 언어 번역어 또는 표기입니다.
  • 번역어에 쉼표가 포함된 경우에는 translation 전체를 큰따옴표(" ")로 감쌉니다.
3 relation 필수
  • 번역어의 언어를 식별하는 번역 관계입니다.
  • 번역 언어에 따라 다음과 같은 값을 사용할 수 있습니다.
    • hasEnglishTranslation: 영어 번역
    • hasChineseTranslation: 중국어 번역
    • hasJapaneseTranslation: 일본어 번역
    • hasGermanTranslation: 독일어 번역
  • (예시1) 영어 번역 정보
#Translation
순천_송광사, "Songgwangsa, Suncheon", hasEnglishTranslation
  • (예시2) 하나의 노드에 여러 언어의 번역 정보를 입력한 경우
#Translation
순천_송광사, Songgwangsa, hasEnglishTranslation
순천_송광사, 松廣寺, hasChineseTranslation
순천_송광사, 松広寺, hasJapaneseTranslation

#End[편집]

  • #End는 온톨로지 설계 스크립트의 끝을 나타내는 표시자입니다.
  • 모든 클래스, 관계, 노드, 링크의 기술이 끝난 뒤 마지막에 입력합니다.
#End

네트워크 그래프의 스타일 지정[편집]

  • 온톨로지 설계 스크립트에 표시 정보를 추가하여 네트워크 그래프의 시각적 표현 방식을 지정할 수 있습니다.

노드의 색상과 모양 지정[편집]

  • #Class 섹션에서 클래스 이름 뒤에 색상과 모양 정보를 추가하여 해당 클래스에 속하는 노드의 기본 표시 방식을 지정할 수 있습니다.
  • 클래스 이름은 기본적으로 입력하는 필수 필드이며, 색상과 모양은 필요에 따라 추가하는 선택 필드입니다.
  • 색상과 모양을 지정하면 같은 클래스에 속하는 노드는 네트워크 그래프에서 동일한 색상과 모양을 기본적으로 적용받습니다.
  • 단, 개별 노드의 iconUrl에 아이콘 이미지가 지정되어 있는 경우에는 해당 노드에 아이콘 이미지가 표시됩니다.
  • 각 필드는 다음과 같은 순서로 입력합니다.
순서 필드 구분 내용
1 class 필수
  • 클래스 이름을 입력합니다.
  • #Class에서 기본적으로 정의하는 값입니다.
2 color 선택
  • 해당 클래스에 속하는 노드의 색상을 지정합니다.
  • HTML에서 사용할 수 있는 색상 이름 또는 색상 코드를 사용할 수 있습니다.
    • 색상 이름 예: blue, red, green, orange, gray
    • 색상 코드 예: #ff0033, #0000ff
    • 색상 이름과 코드는 ColorHexa에서 확인할 수 있습니다.
3 shape 선택
  • 해당 클래스에 속하는 노드의 모양을 지정합니다.
  • 다음과 같은 값을 사용할 수 있습니다.
    • box : 사각형 / circle : 원 / ellipse : 타원 / star : 별
    • triangle : 삼각형 / square : 정사각형 / dot : 점 / text : 문자열


  • (예시1) 색상과 모양을 모두 지정한 경우
#Class
Temple, green, circle
Concept, orange, box
Object, gray, ellipse

☞ Temple 클래스의 노드는 초록색 원으로 표시됩니다.
☞ Concept 클래스의 노드는 주황색 사각형으로 표시됩니다.
☞ Object 클래스의 노드는 회색 타원으로 표시됩니다.
  • (예시2) 색상 코드를 사용한 경우
#Class
Temple, #2E8B57, circle
Concept, #F4A460, box
Object, #808080, ellipse

네트워크 그래프 표시[편집]

  • 작성한 온톨로지 설계 스크립트를 위키에서 네트워크 그래프로 확인하려면 NetworkGraph 틀을 사용합니다.
  • NetworkGraph 틀의 title에 네트워크 그래프로 표시할 .lst 문서의 제목을 지정합니다.
  • 온톨로지 설계 스크립트의 내용을 수정하고 문서를 저장하면 변경된 데이터가 네트워크 그래프에 반영됩니다.

온톨로지 설계 스크립트 문서(.lst)에서 네트워크 그래프 불러오기[편집]

  • 온톨로지 설계 스크립트를 작성한 .lst 문서 자체에서 네트워크 그래프를 함께 표시하려면 다음과 같이 Visualize 문단을 두고 NetworkGraph 틀을 사용합니다.
== Visualize ==
{{ NetworkGraph | title={{PAGENAME}} }}
  • {{PAGENAME}}은 현재 위키 문서의 제목을 가져오는 Magic Words입니다. 따라서 위와 같이 작성하면 현재 .lst 문서의 제목이 NetworkGraph 틀의 title에 자동으로 입력되어, 해당 문서에 작성된 온톨로지 설계 스크립트를 네트워크 그래프로 표시할 수 있습니다.
  • Visualize 문단은 온톨로지 설계 스크립트의 필수 구성 요소가 아닙니다. <pre> ... </pre> 영역에 온톨로지 설계 스크립트가 작성되어 있다면, Visualize 문단이 없어도 다른 위키 문서에서 해당 .lst 문서를 불러와 네트워크 그래프로 표시할 수 있습니다.
  • 다만 해당 .lst 문서에 작성된 데이터가 어떤 네트워크 그래프로 표현되는지 누구나 쉽게 확인할 수 있도록, 온톨로지 설계 스크립트 문서에는 위와 같이 Visualize 문단을 함께 작성하는 것을 기본으로 합니다.

다른 문서에서 네트워크 그래프 불러오기[편집]

  • 온톨로지 설계 스크립트가 작성된 .lst 문서와 별개의 위키 문서에서도 해당 네트워크 그래프를 불러와 표시할 수 있습니다.
  • 이 경우 NetworkGraph 틀의 title에 불러올 .lst 문서의 제목을 직접 입력합니다.
  • 동일한 .lst 문서를 여러 위키 문서에서 불러와 각각 네트워크 그래프로 표시할 수 있습니다.
  • 기본 형식:
{{ NetworkGraph | title=lst문서이름 }}
  • 예를 들어 온톨로지 설계 스크립트가 작성된 문서의 제목이 송광사.lst라면 다음과 같이 입력합니다.
{{ NetworkGraph | title=송광사.lst }}