본문 바로가기
미디어위키

Extension Graph

by 다움위키 2023. 12. 28.

Graph 확장은 Vega-기반 그래프를 렌더링하는 JSON 형식에서 막대 차트, 원형 차트, 타임 라인, 그리고 히스토그램 (데모)와 같은 데이터 시각화를 묘사하기 위해 <graph> 태그를 허용합니다.

General info

Graph 확장은 강력한 Vega-기반 그래프를 위키 페이지에 추가하는 것을 허용합니다. 그래프는 정적 그리고 대화형으로 만들어질 수 있습니다.

그래프를 더하기 위해 가장 쉬운 방법은 {{Graph:Chart}}와 같은 이미-만들어진 템플릿을 사용하는 것입니다. 이들 템플릿은 모든 Vega 복잡성을 숨깁니다. 고급 사용자는 그래프를 개발하기 위해서 그래프 샌드박스를 사용할 수 있습니다. 그래프 샌드박스는 위키 템플릿 구문과 추가적으로 JSON을 허용합니다.

Installation

먼저 Extension:JsonConfig를 설치해야 합니다.

미디어위키 확장 내려받기 지면에서 해당 판을 내려받아서 정해진 위치로 이동시킵니다.

미디어위키 설정 LocalSettings.php 파일에 다음을 추가합니다:

wfLoadExtension( 'Graph' );

Special:Version에 접근해서 확장이 정상적으로 설치가 되었는지 확인을 합니다.

Graphoid service

Mathoid, Citoid 등과 마찬가지로 로컬에서 graphoid 서비스를 제공하기 위해서 설치할 수 있습니다. 또한, 다른 서비스와 마찬가지로 RESTBase 뒤에 숨길 수 있습니다.

Graphoid (git repo)는 고급 브라우저에서 실행되는 동일한 Vega 라이브러리 코드를 사용하여 그래프 정의를 정적 PNG 이미지로 변환하는 node.js 서비스입니다. 이 서비스는 graphoid.wikimedia.org에서 위키미디어 클러스터 위에서 이용할 수 있습니다.

만약 로컬에서 서비스를 제공하고 싶다면 다음 과정을 거칩니다:

다음 오류가 발생합니다.

No package 'cairo' found

아래의 패키지를 설치하고, npm install을 다시 입력합니다.

  • sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev

서비스 URL은 페이지의 도메인 (예를 들어, mediawiki.org), 서비스 버전 (v1), 그래프를 갖는 페이지의 제목 (PageTitle), 페이지의 개정 ID (12345이지만, 현재 버전에 대해 0일 수 있음), 그리고 그래프 자체의 해시 ID (그래프 정의를 식별하기 위한 HTML 페이지에서 역시 사용되는)를 포함합니다. 예를 들면 다음과 같습니다:

http://localhost:6927/mediawiki.org/v1/png/PageTitle/12345/a64b022a8fa5b7fc5e40a2c95cd0a114b2ae1174.png
http://graphoid.wikimedia.org/mediawiki.org/v1/png/Extension:Graph/0/be66c7016b9de3188ef6a585950f10dc83239837.png

로컬에 설치된 Graphoid 서비스를 사용하기 위해 그래프 확장을 구성려면, LocalSettings.php에 다음과 같은 설정을 추가해야 합니다:

$wgGraphImgServiceUrl = "//localhost:6927/%1\$s/v1/png/%2\$s/%3\$s/%4\$s.png";
#$wgGraphImgServiceUrl = "//FQDN:6927/%1\$s/v1/png/%2\$s/%3\$s/%4\$s.png";

로컬에서만 접근할 때에는 첫 번째 설정을 추가하십시오.

만약 외부에서 접근하기 위해서는 두 번째와 같이 설정하고, 방화벽이 작동중일 때에는 해당 포트를 열어주어야 합니다.

  • sudo ufw allow 6927/tcp

Graphoid 구성 파일을 통해 서비스에 대한 더 많은 구성을 할 수 있습니다.

위키미디어 재단 서버들은 RESTBase를 통해서 graphoid 서비스를 제공하는 것으로 보입니다. 어쨌든, 위의 설정은 미디어위키에서 직접 접근하는 방법입니다. 물론 RESTBase 설정에는 graphoid를 추가하는 방법은 위키미디어 재단 설정을 참고해서 추가할 수 있지만, 미디어위키 설정에 어떤 변수롤 넘겨주는지는 아직 확인이 되지 않고 있습니다. 예를 들어, Mathoid, Citoid 등은 해당 변수를 설정하는 변수가 존재합니다.