2012-03-05 4 views
9

의 언어 구문 트리를 렌더링 입력된다 중 하나브라우저

(1) 등의 표지 내부 노드 트리의 괄호 표기 : 출력

(S (N John) (VP (V hit) (NP (D the) (N ball)))) 

:

enter image description here

(선이 파선인지 캡션이 있는지 여부는 중요하지 않음)

또는 입력이 될 수있다 :

(2)는 라벨없는 단어의 브라켓은 예 :

((John) ((hit) ((the) (ball)))) 

(NO 내부 라벨 위와 같은 출력이 시간에, 단지 트리 구조).

입력의 또 다른 구성 요소는 트리가 (1)과 같이 레이블이 지정되는지 아니면 (2)에서와 같이 레이블이 지정되지 않는지 여부입니다.


내 질문 : 자바 스크립트에서 브라우저에서이 나무를 렌더링하는 가장 좋은 방법 (빠른 개발 시간)이란 무엇입니까? 모든 것이 클라이언트 측에서 이루어져야합니다.

텍스트 상자 (및 레이블이 지정된 트리인지 여부를 지정하는 라디오 단추)로 간단한 인터페이스를 상상하고 있습니다. 변경되면 트리가 렌더링되도록 트리거합니다 (입력에 구문이없는 경우 오류).

답변

4

실제로 브라켓 표시를 트리로 변환하는 서버 측 라이브러리가 있습니다 (phpsyntaxtree).
jsdraw2d과 같은 자바 스크립트 그래픽 라이브러리를 사용하여 다시 구현하거나 HTML5 캔버스를 사용하여 자바 스크립트에서 시작할 수 있습니다.

10 Best Javascript Drawing and Canvas Libraries

+0

감사합니다. 멋진 링크입니다! 그것은 내가 원하는 것에 대한 거의 완벽한 대체품입니다. 그냥 대괄호 대신 괄호로 입력을 받아들이기를 바랍니다. – dsg

9

나는 정책이 유래에 자기 플러그를 위해 무엇인지 모르겠어요. 이것이 규칙을 어기면 사과드립니다.

내 솔루션을 보았습니까? mshang.ca/syntree

정확하게 원하는 것은 아니지만 도움이된다면 code을 훔칠 수는 있습니다.

+2

이것은 굉장합니다. 구성 요소의 표식으로 대괄호 외에 괄호를 허용 할 수 있습니까? 예 :'(S (NP This) (VP (V is) (^ NP a wug)))'를 사용하여 예제 트리를 렌더링 할 수 있기를 원합니다. – dsg

+0

너무 많은 특수 문자를 도입하고 싶지 않기 때문에이 작업을 수행 할 계획이 없었습니다. 저는 대괄호가 언어학의 표준이라고 생각합니다. 그러나 프로젝트를 포크하여 필요에 맞게 변경하는 것이 좋습니다. – mshang

+0

당신의 솔루션이 도움이된다면, stackoverflow는 –