※참고 : XML 파서 진행 상황(?)은 무작정 파싱해가는것까지 코드로 구현 되었고, element에서 원하는 내용을 뽑아내는 내용이 담긴 코드를 분석하고 있었고, SAX2 driver를 찾지 못하는 오류 수정 방법 찾는 중이었습니다.
● dblp_last2
이 파일을 찬찬히 살펴보면,
- 함수라고 해야 되는것 같은게 하나 있는데 이것은 char를 int로 변환 시켜서 return하는 함수인것 같습니다. 이름이 chartoint.
- 테이블은 article, t, t1, t10, t11, t2 이렇게 여섯가지가 있습니다. DROP TABLE 이렇게 쓰여있는데 DROP이 찾아보니 테이블을 삭제하는 명령어네요?
- 밑의 코드가 stdin 으로 부터 테이블들로 값들을 copy하라는 것입니다. stdin이 파싱된 텍스트 파일에서 읽어 오는 데이터인것 같습니다.
- CREATE INDEX로 필드에 대한 index를 만들고 DROP INDEX로 index를 삭제하고 있습니다.
- 테이블들의 속성들을 살펴보면 하나를 제외하고 똑같습니다.
author
title
pages
year
volume
journal
number
ee
url
cdrom
cite
publisher
part_num bigint <- 이건 part_num이 값의 이름이고 bigint가 data type인듯 합니다.
textsearchable_index_col tsvector <- 이건 article, t1, t10 테이블만 가지고 있는 값입니다.
-
파싱된 데이터들을 살펴봅시다.
값이 없을때는 '\N' 이렇게 들어갑니다.
저자가 여러명일때는 ':::'로 구분하고 있습니다.
그 다음 값이 title인데 마지막에 ' . '을 찍어 주고 있습니다.
그다음에 page, year, volume, journal, number, ee가 연달아 공백들로 구분되면서 나오고, (ee가 없으면 그냥 \N<-이거도 없이 생략되어 있는게 보입니다.)
마지막에 url(dblp내에서의 주소)이 오는데 앞에 모두가'db/'가 더 붙어 있습니다.
다음에는 publisher, part_num이 오고 항상 '\N'으로 끝나는데 이것이 개행문자인지 어떤 값인지는 알 수 없습니다.
journal이 있을 수도 있고 booktitle이 있을 수도 있는데 booktitle값이 있으면 journal자리에 booktitle값이 들어오게 됩니다.
part_num은 record종류를 구분해주는 것 같습니다.
part_num은 1번이 article 2번이 book 3번이 incollection 4번이 inproceedings 5번이 proceedings
파싱된 데이터들 밑에 CREATE TABLE과 같은 코드들이 보입니다.
왠지 part_num에 따라서 저장되는 패턴이 다른것 같은데 요건 내일 알아보기로 하죠.
1 : author , title, page, year, volume, journal, number, ee, url, publisher, part_num , \N
2 : author, title(dblp에서는 title로 나오는데 구두점이 없는것으로보아 booktitle일듯), year, volume, ee, publisher, part_num \n
3 : author, title, year, volume, booktitle, ee, url, part_num \N
4 : author, title, page, year, volume, booktitle, ee, url, part_num \n
5 :
밑부분 짤려서 열리는데 왜이러지-_-
이 글은 스프링노트에서 작성되었습니다.
'IT 이야기 > 데이터베이스' 카테고리의 다른 글
자료모으기 (0) | 2011.01.12 |
---|---|
스크랩 (0) | 2011.01.12 |
dblp.xml (0) | 2011.01.12 |
DBLP - parsing (0) | 2011.01.12 |
XML Parser (0) | 2011.01.12 |