2025-11-23T02:07:17.015845

Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML

García-González
Nowadays, software is one of the cornerstones when conducting research in several scientific fields which employ computer-based methodologies to answer new research questions. However, for these experiments to be completely reproducible, research software should comply with the FAIR principles, yet its metadata can be represented following different data models and spread across different locations. In order to bring some cohesion to the field, CodeMeta was proposed as a vocabulary to represent research software metadata in a unified and standardised manner. While existing tools can help users to generate CodeMeta files for some specific use cases, they fall short on flexibility and adaptability. Hence, in this work, I propose the use of declarative mapping rules to generate CodeMeta files, illustrated through the implementation of three crosswalks in ShExML which are then expanded and merged to cover the generation of CodeMeta files for two existing research software artefacts. Moreover, the outputs are validated using SHACL and ShEx and the whole generation workflow is automated requiring minimal user intervention upon a new version release. This work can, therefore, be used as an example upon which other developers can include a CodeMeta generation workflow in their repositories, facilitating the adoption of CodeMeta and, ultimately, increasing research software FAIRness.
academic

ShExML을 사용한 선언적 매핑 규칙으로 CodeMeta 생성: 개방형 접근 방식

기본 정보

  • 논문ID: 2510.09172
  • 제목: Generating CodeMeta using declarative mapping rules: An open-ended approach using ShExML
  • 저자: Herminio García-González (Kazerne Dossin, Mechelen, Belgium)
  • 분류: cs.DL (디지털 라이브러리), cs.SE (소프트웨어 공학)
  • 발표 시간: 2025년 10월 10일 (arXiv 사전인쇄본)
  • 논문 링크: https://arxiv.org/abs/2510.09172v1

초록

현재 소프트웨어는 컴퓨터 기반 방법론을 채택하는 여러 과학 분야의 연구 기초 중 하나이다. 그러나 이러한 실험의 완전한 재현성을 보장하기 위해서는 연구 소프트웨어가 FAIR 원칙을 준수해야 하지만, 그 메타데이터는 서로 다른 데이터 모델을 따르며 다양한 위치에 분산되어 있다. 이 분야에 응집력을 가져오기 위해 CodeMeta는 연구 소프트웨어 메타데이터를 통일되고 표준화된 방식으로 표현하기 위한 어휘로 제안되었다. 기존 도구들이 특정 사용 사례에 대해 CodeMeta 파일 생성을 지원할 수 있지만, 유연성과 적응성 측면에서 부족하다. 따라서 본 논문은 선언적 매핑 규칙을 사용하여 CodeMeta 파일을 생성하는 방법을 제안하며, ShExML에서 세 가지 교차 매핑을 구현하여 이를 설명한 후, 이러한 매핑을 확장하고 병합하여 두 개의 기존 연구 소프트웨어 아티팩트의 CodeMeta 파일 생성을 포함한다. 또한 SHACL과 ShEx를 사용하여 출력을 검증하고, 전체 생성 워크플로우를 자동화하여 새 버전 출시 시 최소한의 사용자 개입만 필요하다.

연구 배경 및 동기

문제 정의

  1. 연구 소프트웨어 FAIR 준수 문제: 연구 소프트웨어는 과학 연구의 중요한 지원이지만, 그 메타데이터는 GitHub, Zenodo, Maven 등 다양한 플랫폼에 분산되어 있으며, 서로 다른 데이터 모델을 사용하여 통일성이 부족하다.
  2. 기존 도구의 한계:
    • 대부분의 도구는 일대일 변환만 지원 (단일 메타데이터 소스에서 CodeMeta로)
    • 유연성과 적응성 부족
    • 데이터 조정을 위한 수동 사용자 개입 필요
    • 자동화 능력 부족
  3. CodeMeta 채택 장애: CodeMeta가 통일된 연구 소프트웨어 메타데이터 표현 표준을 제공하지만, 기존 도구의 한계가 광범위한 채택을 방해한다.

연구의 중요성

  • 개방 과학 추진: FAIR 원칙을 준수하는 연구 소프트웨어는 개방 과학 실현에 필수적이다.
  • 재현성 보장: 통일된 메타데이터 표준은 연구 결과의 재현성을 돕는다.
  • 교차 플랫폼 상호운용성: 다양한 플랫폼 간 메타데이터 형식 비호환성 문제 해결

핵심 기여

  1. 선언적 매핑 규칙 방법 제안: ShExML 언어를 사용하여 유연하고 유지보수 가능한 CodeMeta 생성 규칙 생성
  2. 세 가지 주요 교차 매핑 구현: GitHub, Maven, Zenodo 플랫폼을 위한 완전한 ShExML 매핑 구현 개발
  3. 통일된 매핑 프레임워크 구축: 여러 이질적 메타데이터 소스를 병합하여 단일 CodeMeta 파일을 생성하는 방법 시연
  4. 완전한 자동화 워크플로우 개발: JSON-LD 프레이밍, SHACL/ShEx 검증, GitHub Actions 통합 포함
  5. 실제 적용 사례 제공: ShExML 엔진 및 DMAOG 두 개의 오픈소스 프로젝트에서 성공적으로 배포

방법론 상세 설명

작업 정의

입력: 여러 이질적 메타데이터 제공자의 데이터 (GitHub API, Maven POM 파일, Zenodo 레코드 등) 출력: CodeMeta 3.0 사양을 준수하는 표준화된 JSON-LD 파일 제약 조건: 데이터 의미론적 무결성 유지, 자동화된 업데이트 지원, 출력 검증 통과 보장

핵심 방법론 아키텍처

1. ShExML 선언적 매핑 언어

ShExML은 두 가지 주요 구성 요소를 포함한다:

  • 선언 부분:
    • 접두사 정의 (IRI 단축키)
    • 데이터 소스 정의 (입력 파일 위치)
    • 함수 정의 (기본 기능 확장)
    • 반복자 정의 (데이터 추출 방식)
    • 표현식 정의 (다양한 소스의 데이터 병합)
  • 생성 부분:
    • 형태 정의 (RDF 그래프 생성 규칙)
    • 주어-술어-목적어 삼중항 구성

2. 세 가지 핵심 교차 매핑 구현

GitHub 매핑 (예제 코드):

PREFIX codemeta: <https://w3id.org/codemeta/3.0/>
PREFIX schema: <http://schema.org/>
SOURCE repo_info <https://api.github.com/repos/herminiogg/ShExML>
ITERATOR gh <jsonpath: $> {
    FIELD id <id>
    FIELD name <name>
    FIELD description <description>
    // ... 추가 필드
}
schema:SoftwareSourceCode ex:[md.name] {
    a schema:SoftwareSourceCode ;
    schema:identifier [md.id] ;
    schema:name [md.name] ;
    // ... 추가 속성 매핑
}

Maven 매핑: XPath 쿼리를 사용하여 XML 형식의 POM 파일을 처리하며, 네임스페이스 및 의존성 관계 매핑을 처리한다.

Zenodo 매핑: 저자, 기관 등 다층 엔티티 관계를 포함한 중첩된 JSON 구조를 처리한다.

3. 통일된 매핑 전략

  • 지능형 소스 선택: 여러 소스가 동일한 속성을 포함할 때, 의미론적 관련성 및 유지보수 편의성을 기반으로 최적의 소스 선택
  • 하드코딩된 값 보충: 외부 소스에서 얻을 수 없는 데이터의 경우, 매핑 파일에서 직접 정의 허용
  • 데이터 변환 함수: 날짜 형식 변환, URL 표준화 등 데이터 정제 작업 처리

기술 혁신 포인트

  1. 다중 소스 데이터 융합: 기존 도구의 일대일 변환과 달리, 임의 개수의 이질적 소스의 유연한 병합 지원
  2. 선언적 규칙: 프로그래밍 방식과 비교하여 더 나은 가독성, 유지보수성 및 공유 가능성 제공
  3. 세밀한 제어: 단순 우선순위 덮어쓰기가 아닌 속성 수준의 정확한 매핑 제어 허용
  4. 자동화 통합: 버전 출시 시 자동 업데이트를 지원하는 완전한 CI/CD 워크플로우 통합

실험 설정

테스트 프로젝트

  1. ShExML 엔진: Scala로 작성된 이질적 데이터 매핑 도구
  2. DMAOG 라이브러리: 데이터 매핑 관련 Scala 라이브러리

데이터 소스

  • GitHub API: 저장소 기본 정보, 릴리스 기록, 이슈 추적 등
  • Maven Central: POM 파일의 프로젝트 메타데이터 및 의존성 정보
  • Zenodo: DOI, 자금 정보, 저자 상세 정보 등

검증 방법

  • SHACL 검증: W3C 권장 표준을 사용한 구조 검증
  • ShEx 검증: Shape Expressions를 사용한 패턴 검증
  • CodeMeta Generator: 공식 검증 도구를 사용한 최종 확인

자동화 도구 체인

  • GitHub Actions: CI/CD 파이프라인
  • Groovy 스크립트: JSON-LD 프레이밍 처리
  • Bash 스크립트: 워크플로우 오케스트레이션

실험 결과

주요 성과

1. 매핑 커버리지

플랫폼지원 속성 수CodeMeta 클래스 커버리지
GitHub12개 핵심 속성SoftwareSourceCode, Person
Maven8개 핵심 속성SoftwareSourceCode, 의존성 관계
Zenodo15개 핵심 속성SoftwareSourceCode, Person, Organization

2. 자동화 효과

  • 유지보수 비용: 각 버전 업데이트 시 2줄의 코드만 수정 필요 (입력 소스 URL)
  • 처리 시간: 완전한 워크플로우 실행 시간 < 2분
  • 성공률: 테스트된 두 프로젝트 모두에서 유효한 CodeMeta 파일 생성 성공

3. 적응성 검증

ShExML 엔진에서 DMAOG 프로젝트로의 적응:

  • 6줄의 코드만 수정 필요 (4줄의 API 호출, 1명의 기여자 제거)
  • 동일한 기술 스택 지원 유지 (Scala + SBT + Maven Central)
  • 생성된 CodeMeta 파일이 모든 검증 테스트 통과

출력 품질 분석

생성된 CodeMeta 파일에 포함된 내용:

  • 기본 메타데이터: 이름, 설명, 버전, 라이선스 등
  • 개발 정보: 프로그래밍 언어, 실행 플랫폼, 지속적 통합 등
  • 인원 정보: 저자, 기여자, 기관 관계 등
  • 관련 리소스: 코드 저장소, 다운로드 링크, 참고 문헌 등
  • 의존성 관계: 소프트웨어 요구사항 및 버전 정보

검증 결과

생성된 모든 CodeMeta 파일이 다음을 통과:

  • SHACL 구조 검증
  • ShEx 패턴 검증
  • CodeMeta Generator 공식 검증

관련 연구

기존 CodeMeta 도구 분류

1. 변환 도구

  • Bolognese: Ruby 라이브러리, 다양한 DOI 메타데이터 형식 변환 지원
  • codemetar: R 패키지 전용 CodeMeta 생성 도구
  • codemetapy: Python 구현, 다양한 패키지 관리자 지원
  • cffconvert: Citation File Format 변환 도구

2. 관리 도구

  • codemeta-server: CodeMeta 기반 도구 디렉토리 서비스
  • HERMES: CI/CD 통합 연구 소프트웨어 발행 플랫폼

3. 보조 도구

  • CodeMeta Generator: 웹 기반 대화형 생성기
  • SMECS: 소프트웨어 메타데이터 추출 및 큐레이션 시스템

본 논문의 장점

  1. 유연성: 임의 개수 및 유형의 메타데이터 소스 지원
  2. 세밀한 제어: 단순 우선순위가 아닌 속성 수준의 정확한 매핑
  3. 선언적 방법: 프로그래밍 방식 구현보다 이해하고 유지보수하기 쉬움
  4. 완전한 자동화: 생성에서 검증까지의 엔드-투-엔드 자동화 프로세스

결론 및 논의

주요 결론

  1. 선언적 매핑 규칙의 실행 가능성: ShExML을 사용한 CodeMeta 생성의 기술적 실행 가능성 입증
  2. 다중 소스 융합의 장점: 이질적 메타데이터 소스 통합의 가치 및 효과 시연
  3. 자동화 배포 성공: 실제 프로젝트에서 낮은 유지보수 비용의 자동화 워크플로우 구현
  4. 확장성 검증: 두 프로젝트의 성공적인 적응을 통해 방법의 일반성 입증

한계

  1. 기술 스택 의존성: 현재 구현은 주로 Scala/JVM 생태계를 대상으로 함
  2. 학습 곡선: 사용자가 ShExML 구문 및 개념을 학습해야 함
  3. 플랫폼 커버리지: 세 가지 주요 플랫폼의 교차 매핑만 구현됨
  4. 복잡한 프로젝트 적응: 다양한 기술 스택을 사용하는 복잡한 프로젝트의 경우 추가 커스터마이징 필요 가능

향후 방향

  1. 교차 매핑 확장: CodeMeta 공식 지원 플랫폼의 모든 매핑 구현
  2. 시각화 인터페이스: 그래픽 매핑 규칙 편집기 개발
  3. AI 보조 생성: 대규모 언어 모델을 활용한 자동 매핑 규칙 생성
  4. 템플릿 라이브러리 구축: 다양한 기술 스택 및 프로젝트 유형을 위한 사전 정의된 템플릿 제공

심층 평가

장점

  1. 방법론 혁신성 강함: 선언적 매핑 규칙을 CodeMeta 생성에 처음 적용하여 새로운 기술 경로 제공
  2. 실용적 가치 높음: 실제 존재하는 연구 소프트웨어 메타데이터 관리 문제점 해결
  3. 구현 완전성: 개념에서 배포까지 완전한 솔루션 제공
  4. 재현성 우수: 상세한 구현 코드 및 배포 가이드 제공

부족한 점

  1. 평가 범위 제한: 두 개의 유사한 프로젝트에서만 테스트되어 대규모 검증 부족
  2. 성능 분석 부재: 대규모 프로젝트 또는 대량 데이터 처리 시 성능 평가 미제공
  3. 오류 처리 부족: 데이터 소스 불가용 또는 형식 변경에 대한 견고성 분석 부족
  4. 사용자 연구 부재: 사용자 수용도 및 사용 편의성 평가 미실시

영향력

  1. 학술적 기여: 연구 소프트웨어 메타데이터 관리 분야에 새로운 기술 솔루션 제공
  2. 실무적 가치: 오픈소스 프로젝트의 CodeMeta 채택에 직접 적용 가능
  3. 생태계 추진: CodeMeta의 연구 소프트웨어 커뮤니티 내 채택률 향상에 기여
  4. 표준화 촉진: FAIR 원칙의 연구 소프트웨어 분야 실시 지원

적용 시나리오

  1. 오픈소스 소프트웨어 프로젝트: 특히 여러 플랫폼에서 출시해야 하는 연구 소프트웨어에 적합
  2. 학술 기관: 기관 수준의 연구 소프트웨어 메타데이터 관리에 활용 가능
  3. CI/CD 통합: 기존 자동화 발행 프로세스가 있는 프로젝트에 적합
  4. 메타데이터 표준화: 통일된 메타데이터 형식이 필요한 연구 조직에 적용 가능

참고문헌

논문은 FAIR 원칙, 의미론적 웹 기술, CodeMeta 사양, 선언적 매핑 언어 등 관련 분야의 중요한 연구를 포함한 37개의 참고문헌을 포함하고 있으며, 연구에 견고한 이론적 기초 및 기술적 지원을 제공한다.


종합 평가: 이는 연구 소프트웨어 메타데이터 관리 분야에서 실용적 가치를 갖는 기술 논문이며, 제안된 선언적 매핑 방법은 혁신성을 가지고 있고, 구현이 완전하며 재현 가능하며, CodeMeta 표준의 채택 촉진에 긍정적인 의미를 갖는다. 평가 범위와 깊이에서 개선의 여지가 있지만, 이 분야에 가치 있는 기술적 기여를 제공한다.