|
|
(같은 사용자의 중간 판 7개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
− | ==Database Schema== | + | ==Concept of Integrated Curation== |
| + | [[파일: IntegratedCuration.jpg|600px|center]] |
| | | |
− | ===Factual Data=== | + | ==Integrated Curation Data Model== |
| | | |
− | ====Node Tabel Schema: xxxData ==== | + | ===사실과 문맥 (Factual Data)=== |
− | <pre>
| |
− | create table concertData (
| |
− | id nvarchar(40) not null,
| |
− | class nvarchar(16) null,
| |
− | groupName nvarchar(16) null,
| |
− | partName nvarchar(40) null,
| |
− | label nvarchar(80) null,
| |
− | infoUrl nvarchar(256) null,
| |
− | iconUrl nvarchar(256) null,
| |
− | primary key(id)
| |
− | )
| |
− | </pre>
| |
| | | |
− | ====Edge Table Schema: xxxLinks ====
| + | [[파일: FactualData.jpg|100px]] [[Integrated Curation Data Model: Factual Data]] |
− | <pre>
| |
− | create table concertLinks (
| |
− | source nvarchar(40) not null,
| |
− | target nvarchar(40) not null,
| |
− | relation nvarchar(40) not null,
| |
− | attribute nvarchar(40) null,
| |
− | primary key (source, target, relation )
| |
− | )
| |
− | </pre>
| |
| | | |
− | ===Category Data=== | + | ===정보의 분류 (Category Data)=== |
| | | |
− | ※ 분류 색인 서비스를 위한 Category Data는 Factual Data Node의 속성 정보에서 기계적으로 추출합니다.
| + | [[파일: CategoryData.jpg|100px]] [[Integrated Curation Data Model: Category Data]] |
| | | |
− | ====Node Table Schema: xxxSchema==== | + | ===나의 이야기 (Storyline Data)=== |
− | <pre>
| |
− | create table xxxSchema (
| |
− | id nvarchar(40) not null,
| |
− | class nvarchar(16) null,
| |
− | groupName nvarchar(16) null,
| |
− | partName nvarchar(40) null,
| |
− | label nvarchar(80) null,
| |
− | infoUrl nvarchar(256) null,
| |
− | iconUrl nvarchar(256) null,
| |
− | primary key(id)
| |
− | )
| |
| | | |
− | /* Virtual View: xxxNodes */
| + | [[파일: Storyline.jpg|100px]] [[Integrated Curation Data Model: Storyline Data]] |
| | | |
− | create view xxxNodes as
| + | ==시맨틱 데이터 서비스 도구 (Semantic Data Service Tools)== |
− | select * from concertData
| |
− | union
| |
− | select * from concertSchema
| |
− | </pre>
| |
| | | |
− | ====Edge Table Schema: xxxCategory====
| + | [[파일: ontology.png|100px]] [[Integrated Curation Data Model: Semantic Data Service Tools]] |
− | <pre>
| |
− | create table xxxCategory (
| |
− | source nvarchar(40) not null,
| |
− | target nvarchar(40) not null,
| |
− | relation nvarchar(40) not null,
| |
− | attribute nvarchar(40) null,
| |
− | primary key (source, target, relation )
| |
− | )
| |
− | </pre>
| |
− | | |
− | ====Object Properties====
| |
− | <pre>
| |
− | * hasCategory
| |
− | * hasMember
| |
− | </pre>
| |
− | | |
− | ===Storyline Data===
| |
− | | |
− | ※ Storyline Data는 Factcual Data와 다른 이름을 갖는 독립적 Data Set입니다. Storyline Data의 Edge Table은 Node Table로부터 자동 변환합니다.
| |
− | | |
− | ====Node Table Schema====
| |
− | <pre>
| |
− | create table yyyData (
| |
− | id nvarchar(40) not null,
| |
− | class nvarchar(16) null,
| |
− | upperNode nvarchar(40) null,
| |
− | nextNode nvarchar(40) null,
| |
− | label nvarchar(80) null,
| |
− | infoUrl nvarchar(256) null,
| |
− | iconUrl nvarchar(256) null,
| |
− | primary key(id)
| |
− | )
| |
− | </pre>
| |
− | | |
− | ====Edge Table Schema====
| |
− | <pre>
| |
− | create table yyyLinks (
| |
− | source nvarchar(40) not null,
| |
− | target nvarchar(40) not null,
| |
− | relation nvarchar(40) not null,
| |
− | attribute nvarchar(40) null,
| |
− | primary key (source, target, relation )
| |
− | )
| |
− | </pre>
| |
− | | |
− | ====Object Properties====
| |
− | <pre>
| |
− | * hasTopic
| |
− | * hasEpisode
| |
− | * hasFactualComponent
| |
− | * isPreviousInSequence
| |
− | * isNextInSequence
| |
− | </pre>
| |
− | | |
− | ==SQL Script==
| |
− | | |
− | | |
− | ===Factual Data 처리===
| |
− | <pre>
| |
− | /* insert node data */
| |
− | | |
− | insert into xxxData (id, class, groupName, partName, label, infoUrl, iconUrl )
| |
− | select id, class, groupName, partName, label, infoUrl, iconUrl
| |
− | from xxxData$
| |
− | | |
− | /* insert link data */
| |
− | | |
− | insert into xxxLinks (source, target, relation)
| |
− | select source, target, relation from xxxLinks$
| |
− | | |
− | </pre>
| |
− | | |
− | ===Category Data 처리===
| |
− | <pre>
| |
− | /* xxxSchema 데이터 처리 자동화 Script */
| |
− | | |
− | insert into xxxSchema (id, class, groupName, label)
| |
− | values ('Thing', 'Category', 'Top', 'Thing' )
| |
− | | |
− | insert into xxxSchema (id, class, groupName, label)
| |
− | select class as id, 'Category' as class, 'Thing' groupName, class as label
| |
− | from concertData
| |
− | group by class
| |
− | | |
− | insert into xxxSchema (id, class, groupName, label)
| |
− | select groupName as id, 'Category' as class, class as groupName, groupName as label
| |
− | from concertData
| |
− | where groupName is not NULL
| |
− | group by class, groupName
| |
− | | |
− | insert into xxxSchema (id, class, groupName, label)
| |
− | select partName as id, 'Category' as class, groupName, partName as label
| |
− | from concertData
| |
− | where partName is not NULL
| |
− | group by groupName, partName
| |
− | | |
− | /* xxxCategory 데이터 처리 자동화 Script */
| |
− | | |
− | -- hasCategory (top->1st)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select 'Thing' as source, class as target, 'hasCategory' as 'relation' from concertData
| |
− | group by class
| |
− | | |
− | -- hasCategory (1st->2nd)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select class as source, groupName as target, 'hasCategory' as 'relation' from concertData
| |
− | where groupName is not NULL
| |
− | group by class, groupName
| |
− | | |
− | -- hasCategory (2nd->3rd)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select groupName as source, partName as target, 'hasCategory' as 'relation' from concertData
| |
− | where partName is not NULL
| |
− | group by class, groupName, partName
| |
− | | |
− | -- hasMember (Major Category)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select class as source, id as target, 'hasMember' as 'relation' from concertData
| |
− | where groupName is NULL
| |
− | order by class, id
| |
− | | |
− | -- hasMember (2nd Category)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select groupName as source, id as target, 'hasMember' as 'relation' from concertData
| |
− | where groupName is not NULL and partName is NULL
| |
− | order by groupName, id
| |
− | | |
− | -- hasMember (3rd Category)
| |
− | insert into concertCategory (source, target, relation )
| |
− | select partName as source, id as target, 'hasMember' as 'relation' from concertData
| |
− | where partName is not NULL
| |
− | order by partName, id
| |
− | </pre>
| |
− | | |
− | ===Storyline Data 처리===
| |
− | <pre>
| |
− | /* insert storyline node data */
| |
− | | |
− | insert into yyyData (id, class, upperNode, nextNode, label, infoUrl, iconUrl )
| |
− | select id, class, upperNode, nextNode, label, infoUrl, iconUrl from yyyData$
| |
− | | |
− | /* generate storyline link data */
| |
− | | |
− | -- hasTopic
| |
− | insert into yyyLinks (source, target, relation )
| |
− | select upperNode, id, 'hasTopic' from yyyData$
| |
− | where class='Topic' and upperNode is Not Null
| |
− | | |
− | -- hasEpisode
| |
− | insert into yyyLinks (source, target, relation )
| |
− | select upperNode, id, 'hasEpisode' from yyyData$
| |
− | where class='Episode' and upperNode is Not Null
| |
− | | |
− | -- isPeviousInSequence
| |
− | insert into yyyLinks (source, target, relation )
| |
− | select id, nextNode, 'isPreviousInSequence' from yyyData$
| |
− | where nextNode is Not Null
| |
− | </pre>
| |
− | | |
− | ==시맨틱 데이터베이스 관리 도구 (Python Program)==
| |
− | | |
− | ===Factual Data 서비스===
| |
− | | |
− | ====Story01.py====
| |
− | | |
− | * URL: <nowiki>http://dh.aks.ac.kr/cgi-bin/encyves/Story01.py</nowiki>
| |
− | * 매개 변수: db = Database Name, project = Data Table Prefix, key = Factual Data Node Identifier
| |
− | * 기능: Core Node를 중심으로 하는 1 Hop 네트워크 그래프 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/Story01.py?db=concert&project=concert&key=Handel
| |
− | | |
− | ====Story02.py====
| |
− | | |
− | * URL: http://dh.aks.ac.kr/cgi-bin/encyves/Story02.py
| |
− | * 매개 변수: db = Database Name, project = Data Table Prefix, key = Factual Data Node Identifier
| |
− | * 기능: Core Node를 중심으로 하는 2 Hop 네트워크 그래프 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/Story02.py?db=concert&project=concert&key=Handel
| |
− | | |
− | ====Query.py====
| |
− | | |
− | * URL: http://dh.aks.ac.kr/cgi-bin/encyves/Query.py
| |
− | * 매개 변수: db = Database Name, project = Data Table Prefix, key = String
| |
− | * 기능: 주어진 문자열을 포함하는 데이터의 노드 리스트 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/Query.py?db=concert&project=concert&key=Paganini
| |
− | | |
− | ===Catelog Data 서비스===
| |
− | | |
− | ====Category.py====
| |
− | | |
− | * URL: http://dh.aks.ac.kr/cgi-bin/encyves/Category.py
| |
− | * 매개 변수: db = Database Name, project = Data Table Prefix, key = Category Name
| |
− | * 기능: 주어진 카테고리에 속하는 Factual Data 노드 또는 하위 카테고리 목록 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/Category.py?db=tutor&project=concert&key=Movie
| |
− | | |
− | ===Storyline Data 서비스===
| |
− | | |
− | ====StoryMenu.py====
| |
− | | |
− | * URL: http://dh.aks.ac.kr/cgi-bin/encyves/StoryMenu.py
| |
− | * 매개 변수: db = Database Name, project = Storyline Table Prefix
| |
− | * 기능: 스토리텔링 데이터 풀에 등록된 이야기외 최상위 노드 목록 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/StoryMenu.py?db=tutor&project=narrative
| |
− | ====Storyline.py====
| |
− | | |
− | * URL: http://dh.aks.ac.kr/cgi-bin/encyves/StoryLine.py
| |
− | * 매개 변수: db = Database Name, project = Storyline Table Prefix, key = Storyline Node Identifier
| |
− | * 기능: 지정 노드를 중심으로 상, 하, 전, 후의 이야기 문맥 노드 반환
| |
− | * 예시: http://dh.aks.ac.kr/cgi-bin/encyves/StoryLine.py?db=tutor&project=narrative&key=T190429K-D
| |