2011-07-29 5 views
9

저는 그래프로 가장 잘 표현되는 데이터 세트를 가지고 있습니다. 그것은 방향성을 지닌 가장자리 (상호 의존성을 가지지 않음을 보장하는 서로에 대한 의존성)를 가진 6 가지 또는 7 가지 다른 "유형"의 노드로 구성됩니다. 데이터 세트는 본질적으로 계층화 된 구성의 템플리트이며, 사용자는 원하는 다른 계층에서 구성의 비트 및 조각을 선택하고 종속 비트를 자동으로 가져올 수 있어야합니다.자바 스크립트 지향 비순환 그래프 라이브러리? (그래프 시각화는 필요하지 않습니다.)

일반적인 UI는 다중 선택 상자 (각 노드 유형에 대해 하나의 상자)에서 항목을 선택 또는 선택 취소하고 다른 상자의 "종속 항목"을 선택 또는 선택 취소하도록하는 것입니다 필요에 따라. 서버에서 데이터 집합을 끌어낼 수 있어야하며 사용자가 원하는 비트 (응답 성을 위해 클라이언트 측에서 자바 스크립트로 처리되는 종속성 처리)를 선택하고 완료되면 결과를 다시 제출할 수 있어야합니다.

데이터 세트는 크고 복잡하기 때문에 실제로 그래프로 표시하는 것은 사용자에게 압도적이며 혼란 스럽습니다. 기본 그래프 트래버 설 연산 만 필요합니다. 왜냐하면 선택이 모두 의존 관계를 계단식으로 나열하기 때문입니다. (예를 들어, 사용자가 노드를 선택하지 않으면 다른 선택된 노드가없는 경우 노드 종속성이 선택되지 않게됩니다. 노드를 선택하면 해당 노드의 모든 종속성이 선택됩니다.) A 시작 노드로부터의 지시 된 에지를 따르는 단순한 깊이 또는 폭 넓은 제 1 탐색은 모든 영향을받는 노드를 방문하기에 충분할 것이다. 나는 한쪽 방향으로 보너스를 따라갈 수 있다면. (그렇지 않다면 가장자리 뒤집힌 그래프를 쉽게 생성하여 필요할 때 사용할 수 있습니다.)

저는 여기 저기 파고 들었고 많은 자바 스크립트 그래프 시각화 라이브러리에 대한 참조를 찾았지만 이러한 토론의 대부분은 " 그래프 "를"차트 "로 사용하고 차트 작업이 필요 없습니다. 내 파고가 Raphael, protovis, flare, D3, jsVis, Dracula 및 prefuse라는이 목록으로 안내했습니다. 이 목록에서 jsVis 또는 Dracula가 시각화 측면을 무시하면 필요한 기본 그래프 구조가있을 수 있지만 문서의 경우에는 분명하지 않습니다. 나는 플래시 의존성을 가져올 수 없기 때문에 몇 가지 다른 것들을 배제해야한다. 불행히도이 많은 라이브러리로 프로토 타입을 작성할 시간이 없습니다. (여기서 jsVis와 dracula를 더 자세히 살펴볼 것입니다.) 여기에 몇 가지 편리한 입력을 제외하고

누군가가 그 목록의 어떤 것을 경험하고 그 그래프 부분이 시각화 부분과 독립적으로 사용될 수 있다고 생각하면, 확실히 내 요구를 충족시킬 것입니다. 내 필요를 충족시키는 데 사용할 수있는 다른 라이브러리가 있다면 그것은 또한 좋을 것입니다. 라이센싱에 관한 최종 요구 사항 : 라이브러리는 비 카피 레프트 방식으로 "자유"가되어야합니다. 이상적으로는 Apache v2.0, BSD, MIT 등입니다.

+1

자신 만의 솔루션을 구현하게 되었습니까? 그렇다면 어디서나 사용할 수 있습니까? – steeveeet

답변

7

아직 사용하지 않았지만 data.js을 확인해보십시오. 다양한 데이터 구조 유틸리티를 갖춘 MIT 라이선스 라이브러리입니다. 특히, Data.Node 포함하고 Data.Graph하십시오 Data.Graph가 임의의 복잡한 객체 그래프를 나타내는데 사용될 수있다

. 객체 간의 관계는 참조 된 객체를 가리키는 링크를 통해 표현됩니다. Data.Graphs는 다양한 방법으로 이동할 수 있습니다.

+0

고마워, 오늘 아침에 이걸 보면서 시간을내어 정말 필요한 것을 할 수 있을지 모르겠다. 문서에 매우 가볍습니다. 예제에서는 CouchDB와 node.js를 실행하고 싶어합니다. 필자가 정말로 필요로하는 것은 단순한 트리 트래버스 (traversal)이므로 내 자신을 굴릴 수도 있지만 data.js를 사용하면 돌아와 이것을 대답으로 표시 할 것입니다. –

관련 문제