DCAT를 이용한 데이터셋 연관 어플리케이션(3) - 매핑

 

3. 매핑

3.1 메타데이터 구조

매핑 하기 전 수집한 메타데이터들의 구조를 파악하는 과정이 필요했다. 메타데이터들의 한 예는 다음과 같다.

"1": {
        "publicDataPk": "15009946",
        "publicDataSj": "경상남도 밀양시_상수도수질검사",
        "infoSysNm": "홈페이지",
        "publicDataDc": "밀양시 상수도 수질검사 안내",
        "provdTrgetSe": "PROV01",
        "publicDataURL": "my.go.kr",
        "kwrd": "상수도@수질@상수도수질",
        "registerId": "kjpark79",
        "registDt": "2015-09-30 10:39:12",
        "updusrId": "dkdlfltm2",
        "updtDt": "2015-10-02 10:05:20",
        "jrsdMiryfcCode": "5360000",
        "brmCode": "BR1502",
        "inqireCo": 40,
        "registTy": "RETY02",
        "deleteAt": "N",
        "confmDate": "2015-10-02 10:05:20",
        "provdReqstRegistAt": "N",
        "mgahaDataYn": "N",
        "coreDataAt": "N",
        "indictAt": "N",
        "sendmailCo": 0,
        "totalCount": 0,
        "totalDownloadCount": 0,
        "provdChargerNm": "-",
        "encReprsntchargerTelno": "055-359-5618",
        "details": [
            {
                "publicDataDetailPk": "uddi:6cf8ec59-7857-4fc5-b075-959d26fca20f",
                "publicDataPk": "15009946",
                "publicDataTyCode": "PR0051",
                "publicDataTyDetailCode": "DAT001",
                "insttCode": "5360000",
                "publicDataVer": "1.0",
                "pblonsipScopeCode": "PBDE07",
                "useAt": "Y",
                "processSttusCode": "PRCO01",
                "registerId": "nadirzenith",
                "registDt": "2017-05-31 10:03:52",
                "updusrId": "jjw6462",
                "updtDt": "2017-06-01 10:29:23",
                "processResultCode": "PRCO04",
                "useLmttAt": "N",
                "verChangePosblAt": "Y",
                "pchrgAt": "N",
                "langCode": "LADE01",
                "useScopeCode": "COEX07",
                "usePrmisnEnnc": "N",
                "rsrchPblictnAt": "N",
                "provdReqstDetailRegistAt": "N",
                "downloadCnt": 58,
                "provedData": {
                    "publicDataDetailPk": "uddi:6cf8ec59-7857-4fc5-b075-959d26fca20f",
                    "dataCpyrhtensureAt": "N",
                    "dataAtmcconfmAt": "Y",
                    "dataRdcnt": 0,
                    "dataNm": "경상남도 밀양시_상수도수질검사_20170524",
                    "dataDc": "경상남도 밀양시에서 관리하는 상수도수질검사 시설 현황입니다",
                    "infoPrcuseAmount": 0,
                    "dataRegistCycle": "RECY07",
                    "dataRegistTy": "DATY03",
                    "nextRegistPrarnde": "2018-05-30 00:00:00",
                    "ctLevyUnitCode": "      ",
                    "nextRegistPrearngeEnnc": "N",
                    "mediaTy": "DAT001",
                    "atchFileExtsn": "CSV",
                    "atchFileCo": 1,
                    "etcMediaTy": "",
                    "ctLevyUnitNm": "",
                    "originlSetLangCode": "LADE01",
                    "registerId": "nadirzenith",
                    "registDt": "2017-05-31 10:03:52",
                    "updusrId": "jjw6462",
                    "updtDt": "2017-06-01 00:00:00",
                    "mgahaDataYn": "Y",
                    "gridPublicDataPk": "15013114",
                    "gridPublicDataKoreanNm": "전국상수도수질검사표준데이터",
                    "fileKeySize": "1496190902552_1061",
                    "commonDetailCode": {
                        "codeId": "PR0051",
                        "code": "DAT001",
                        "cmmnClCode": "PBR",
                        "codeNm": "텍스트",
                        "codeDc": "텍스트",
                        "useAt": "Y",
                        "frstRegisterId": "potaladmin",
                        "frstRegistDt": "2011-02-12 13:52:30",
                        "lastUpdtDt": "2011-02-12 13:52:30",
                        "codeNmEn": "Text"
                    },
                    "offerType": "download",
                    "dataNmEn": "Milyang-si, Gyeongsangnam-do _ Water quality inspection of waterworks _20170524",
                    "dataDcEn": "Status of Water Quality Inspection Facility Managed by Miryang City in Gyeongsangnam-do"
                },
                "insttCodeInfo": {
                    "registInsttCode": "5360000",
                    "trgetInsttNm": "경상남도 밀양시",
                    "postNo": "627701",
                    "telno": "0527-355-3011",
                    "faxNo": "0527-355-6566",
                    "frstRegisterId": "SYSTEM",
                    "frstRegistDt": "2010-11-08 19:40:24",
                    "useAt": "Y",
                    "insttSe": "02",
                    "tyClNm": "자치행정기관",
                    "bestInsttCode": "6480000",
                    "reprsntInsttCode": "5360000",
                    "manageInsttCode": "5360000",
                    "upperInsttCode": "6480000",
                    "insttOdr": "2",
                    "tyClLrge": "02",
                    "tyClMiddl": "02",
                    "beforeTyClLrge": "2",
                    "beforeTyClMiddl": "2",
                    "beforeTyClSmall": "2",
                    "ord": "529",
                    "statsInsttCode": "6480000",
                    "rns": 0,
                    "trgetInsttNmEn": "Gyeongsangnam-do Milyang City"
                },
                "fileManagers": [
                    {
                        "publicDataDetailPk": "uddi:6cf8ec59-7857-4fc5-b075-959d26fca20f",
                        "seqNo": 1,
                        "atchFileTyCode": "DATD01",
                        "atchFileId": "FILE_000000001376884",
                        "atchFileUseAt": "Y",
                        "fileInfos": [
                            {
                                "atchFileId": "FILE_000000001376884",
                                "creatDt": "2017-05-31 00:00:00",
                                "useAt": "Y",
                                "detailInfos": [
                                    {
                                        "atchFileId": "FILE_000000001376884",
                                        "fileDetailSn": "1",
                                        "fileStreCours": "/comm/201705/31",
                                        "streFileNm": "1496192626203.csv",
                                        "orginlFileNm": "경상남도 밀양시_상수도수질검사_20170524.csv",
                                        "fileExtsn": ".csv",
                                        "fileMg": 1061,
                                        "dwldCo": 0,
                                        "fileCn": "",
                                        "ext": "csv",
                                        "downloadUrl": "/dataset/fileDownload.do?atchFileId=FILE_000000001376884&fileDetailSn=1"
                                    },
                                    {
                                        "atchFileId": "FILE_000000001376884",
                                        "fileDetailSn": "2",
                                        "fileStreCours": "/comm/201705/31",
                                        "streFileNm": "1496192626203.xml",
                                        "orginlFileNm": "경상남도 밀양시_상수도수질검사_20170524.xml",
                                        "fileExtsn": ".xml",
                                        "fileMg": 1061,
                                        "dwldCo": 0,
                                        "fileCn": "",
                                        "ext": "xml",
                                        "downloadUrl": "/dataset/fileDownload.do?atchFileId=FILE_000000001376884&fileDetailSn=2"
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "oprtins": [],
                "firstFileDetailInfo": {
                    "atchFileId": "FILE_000000001376884",
                    "fileDetailSn": "1",
                    "fileStreCours": "/comm/201705/31",
                    "streFileNm": "1496192626203.csv",
                    "orginlFileNm": "경상남도 밀양시_상수도수질검사_20170524.csv",
                    "fileExtsn": ".csv",
                    "fileMg": 1061,
                    "dwldCo": 0,
                    "fileCn": "",
                    "ext": "csv",
                    "downloadUrl": "/dataset/fileDownload.do?atchFileId=FILE_000000001376884&fileDetailSn=1"
                },
                "detailEvaluations": [],
                "evalTotalPoints": 0,
                "evalAveragePoint": 0,
                "intrstAt": "N",
                "deptExistAt": "N"
            }
        ],
        "kwrdEn": "The waterwork @ quality of water @ quality of water at waterworks",
        "dataHoldBasisEn": "",
        "publicDataSjEn": "Gyeongsangnam-do Milyang City quality of water at waterworks inspection",
        "publicDataDcEn": "Milyang City constant the examination of water conduct"
    }

매우 길어 보이지만 이 데이터가 데이터셋 하나의 메타데이터이다. 이곳에서 필요한 정보만을 뽑아내 dcat와 매핑하는 과정을 진행해야 하는 것이다. 모든 메타데이터들은 details라는 list 변수를 가지고 있는데 이는 이전에 말한 동적 웹페이지를 사용해야 하는 이유와 관련이 있다. 대부분의 데이터셋은 하나의 데이터셋 당 하나의 데이터를 가지고 있는데 그렇지 않은 경우에는 여러개의 데이터를 가지고 있고 이 여러개의 데이터들이 details에 들어가 있는 구조로 되어 있다. dcat에서는 이 데이터들을 dcat:Distribution으로 표현한다. 이를 통해 필요한 정보들만 dcat 어휘와 매핑해 보았다.

3.2 매핑

metadata dcat vocabulary
publicDataSj dct:title
publicDataEngsj dct:title/@en
publicDataSjEn dct:title/@en
publicDataDc dct:description
publicDataDcEn dct:description/@en
kwrd dcat:keyword
kwrdEn dcat:keyword/@en
registDt dct:issued
updtDt dct:modified
registerId dct:creator
jrsdMiryfcCode dct:spatial
DataNm dct:title
DataNmEn dct:title/@en
DataDc dct:description
DataDcEn dct:description/@en
atchFileExtsn dct:format
downloadUrl dcat:downloadURL

수집한 메타데이터들이 일반적으로 사용자에게 제공되지 않는 정보이기 때문에 알아보기 힘든 단어로 작성되어 있는 것도 있고 dcat와 rdf 파일에 대한 이해도가 부족한 것도 있어서 17개의 메타데이터만을 매핑할 수 있었다. 나중에 더욱 많은 정보들을 매핑하는 것이 목표이다. 이것들은 기본적으로 모든 데이터셋들이 가지고 있는 메타데이터들이고 다양한 예외들이 있었다. 그렇기 때문에 이것들만을 json 파일로 저장해 나중에 rdf 파일로 변환할 때 mapping 데이터로 사용하였다.

이제 공공 데이터 포털의 데이터셋들의 메타데이터를 dcat 어휘와 매핑하는 과정이 끝났다. 이제 다음 할 일은 이 메타데이터 json 파일을 rdf 파일로 변환하는 작업이다.