2010-03-12 4 views
2

단일 파일로 표시된 대형 DAG를 편집하는 팀과 함께 작업하고 있습니다. 현재 DAG를 수정하는 동시에 여러 사용자와 작업 할 수 없습니다.그래프 분석 및 버전 관리 도구

들어오고 나가는/충돌하는 변경 사항 (노드/링크 삽입/삭제/수정)을 식별하기 위해 파일에 대한 개정 제어 (타임 스탬프/개정 스탬프 관리)를 수행 할 수있는 도구 (Eclipse SVN 플러그인과 비슷 함) 프로그래머가 소스 코드 파일을 사용하는 것처럼 변경 사항을 병합 할 수 있습니까?

시스템에서 종속성 관리도 수행 할 수 있어야합니다. 예 : 두 개의 노드 중 하나가 부재중 일 때 들어오는 링크는 받아 들여지지 않아야합니다. 즉, 부분 업데이트를 허용하여 기존 DAG를 "중단"해서는 안됩니다.

일반 "노드"및 "링크"인터페이스를 사용하여이를 수행 할 프레임 워크가 있다면?

참고 : Protege 및 해당 플러그인에 대해 알고 있습니다. 그들은 현재 나의 요구 사항을 만족시키지 못합니다.

답변

0

나는 플러그인을 인식하지 못했습니다. 사용자 지정 코드를 작성해야한다면 인접 행렬에 DAG를 저장합니다. 다른 모든 작업은 이제 단순 해집니다.

1

Graphviz을 사용할 수 있습니다.

단순히 소스 파일을 버전 제어하고 Makefile을 사용하여 그래프를 만들고 업데이트 할 수 있습니다. 이 방법으로 SVN, Mercurial, Git 또는 버전 제어를 위해 선호하는 다른 것을 사용할 수 있습니다.

소스 파일의 확장자는 .gv이며 this입니다.

Graphviz complements을 확인하여 필요에 맞는지 확인하십시오. 그들은 원하는대로 정확하게 할 수있는 많은 그래픽 인터페이스를 가지고 있습니다.

0

그런 도구를 찾을 수 없다면 기존 VCS는 종속성 관리를 제외한 모든 것을 치는 것처럼 보입니다. 의존성 관리 (dependency management)는 프로그래머가 다루는 것입니다 (oops는 새 코드가 의존하는 함수를 삭제했습니다). 종속성 검사를 "빌드"로 생각하고 체크인을 수락하기 전에 빌드하는 코드를 시행하는 VCSes를 찾는 것이 도움이 될 수 있습니다.

+0

@ 알고리즘 주의자. 예. 나는 이해. DAG 버전 제어의 종속성 관리는 DAG에 대한 표준화 된 컴파일러 프레임 워크가 없기 때문에 훨씬 복잡합니다. 또한 DAG를 편집하는 사람들은 일반적으로 프로그래머 (사전 편찬가/온톨로지 전문가 등)가 아니며 "빌드 파괴"의 영향을 인식하지 못할 수도 있습니다. – hashable

0

단순한 버전 트리가 시각화 부분에 도움이되지 않았습니까? 종속성은 다른 이야기입니다.