Integrated Curation Data Model: Category Data
Digerati
목차
Database Schema
※ 분류 색인 서비스를 위한 Category Data는 Factual Data Node의 속성 정보에서 기계적으로 추출합니다.
Node Table Schema: xxxSchema
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
create view xxxNodes as select * from concertData union select * from concertSchema
Edge Table Schema: xxxCategory
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 ) )
Object Properties
* hasCategory * hasMember
SQL Script
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
Data Service Tools
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=common&project=concert&key=Movie