< 서론 >
1. 리컨사일링(Reconciling)이 뭐여.
그래프에 관한 지식이 있다면 이해하기 쉬울겁니다.
간단히 말하자면, 리컨사일링은 데이터를 외부 resource와 매칭하는 과정을 의미합니다.
무슨 말인지 모르시겠다면. 어... 유감입니다.
다음에 여유가 생기면 그래프 관련 글도 올려볼게요.
2. 리컨사일링 도구?
저는 아래 도구들을 썼고, JAVA는 필수로 깔려있어야 구동 가능합니다.
-
OpenRefine: 데이터 정제 툴, RDF 제작
-
BlazeGraph: 그래프 저장소
환경은 아래 표와 같습니다.
version | |
JAVA | 17.0.11 |
OpenRefine | 3.8.1 |
rdf-extention | v1.5.0 |
BlazeGraph | 2.1.6 |
OS | Window10 |
다운로드 링크입니다.
https://openrefine.org/download
https://github.com/stkenny/grefine-rdf-extension
https://github.com/blazegraph/database/releases/tag/BLAZEGRAPH_2_1_6_RC
실습을 위한 예제 파일입니다.
간단하게, 대한민국 최상위 행정구역 17건 데이터를 리컨사일링할 겁니다.
< OpenRefine >
1. rdf-extetion 설치
사진 위치에 압축 해제한 다음에 컴퓨터 껐다키면 됩니다.
2. OpenRefine.exe 실행 후, 파일 업로드
3. 대상 칼럼>Reconcile>Start reconciling
기본적으로 wikidata reconcile link가 있을 거에요. 그거 선택해주고,
리컨사일링 데이터 카테고리를 잘 골라줍니다. 예시 데이터에서는 최상위 행정구역이니까, big city를 선택해주면 됩니다.
4. wikidata 선정
3번 과정을 거치면, 데이터가 하나의 하이퍼링크로 변해있을 텐데. 몇 개는 하이퍼링크가 여러 개일 겁니다. 일일이 보면서 적절한 것으로 선택해줍니다.
5. RDF Schema Alignment
다음은 RDF 트리플을 만드는 방법입니다. openrefine 상단에 Edit RDF skeleton 클릭합니다.
여기서는 트리플을 만들어줍니다.
유의할 점 2가지 알려드리겠습니다.
5.1 URI 이상
RDF preview에 들어가면 URI가 제대로 안 나오죠?
따로 설정을 해주지 않으면, {Base URI} + {선택한 칼럼의 인스턴스 값}으로 URI가 생성되기 때문입니다.
그래서, 메인 화면에서 주소 칼럼>Edit colun>Add column based on this column
새로운 칼럼의 이름을 설정하고, GREL 수식을 넣어서, 주소 칼럼의 URI 값의 key를 가져옵니다.
*GREL 수식을 잘 모르겠다면, ChatGPT 사용해보세요.
그리고 다시 rdf schema alignment에 돌아가서, 해당 노드의 칼럼을 바꿔주고 나면 URI가 제대로 나옵니다.
국.
5.2 BaseURI 무시
주어에 해당하는 값들은 단순히 idx가 들어갔습니다. 당연히 저 링크는 없는 URI입니다.
(의미없는 인덱스(데이터)를 트리플을 넣는 건 RDF가 지향하는 바와 다르지만. 예시를 위해 그냥 썼습니다.)
다른 예시로는, 어휘 사전을 기존에 없던 것 혹은 특정 데이터만 다른 사전을 쓰고 싶을 때가 있습니다.
그럴 때는 트리플에서 URI 를 수정할 노드에 들어갑니다.
6. RDF 내보내기
보통 .ttl로 내보낸다고 하더라고요.
< blaze graph>
1. blzaegraph 실행
power shell에서, blazegraph를 설치한 위치까지 가서 아래 명령어를 실행합니다.
java -server -Xmx4g -jar blazegraph.jar
그러면 URI 하나가 나올건데, 저걸 웹에 검색하면 됩니다. 보통 http://localhost:9999/blazegraph인 거 같아요.
2. ttl 파일 업로드
update 바에서 파일을 업로드 해줍니다.
3. 데이터 업로드 확인
query 바에서 SPARQL를 날려줍니다.
끗
'짜투리' 카테고리의 다른 글
[linux, python] /home 주인님 집에 들어가서 식솔들 집 구경하기 (0) | 2025.01.08 |
---|---|
[데이터 처리] 도로명주소x상세주소 처단 일지 (0) | 2025.01.02 |
[Oepn API] 공공데이터포탈- 나를 기만하는 SERVICE KEY IS NOT REGISTERED ERROR 해결 수기 (0) | 2024.07.06 |
[ELK Stack] elastic인지 fantastic인지 설치 좀 해봐라 (0) | 2024.06.21 |
[Mermaid] vscode에서 어케 쓰는데!!! 3단계로 아주 쉽게 알려줄게! (0) | 2023.03.13 |