2012-03-05 7 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つの要素は、ツリーが(1)のようにラベル付けされているか、(2)のようにラベル付けされていないかです。


私の質問:はJavaScriptでブラウザでこれらの木をレンダリングするための最良の方法(最速開発時間)とは何ですか?すべてがクライアント側で起こるはずです。

テキストボックス(およびラベル付きツリーかどうかを指定するラジオボタン)を使用して簡単なインターフェイスを想像しています。変更すると、ツリーが表示されます(入力に構文がない場合エラー)。

答えて

4

実際には、括弧内の表現をツリーに変換するサーバー側ライブラリphpsyntaxtreeがあります。
jsdraw2dのようなjavascriptグラフィックライブラリを使用して再実装することも、HTML5キャンバスを使用してjavascriptを使用することもできます。

10 Best Javascript Drawing and Canvas Libraries

+0

ありがとう、それは素晴らしいリンクです!それは私が望むものにほぼ完全に置き換わるものです。私はちょうど角括弧の代わりにかっこで入力を受け入れることを望みます。 – dsg

9

私は政策はstackoverflowの上、自己プラグ何のためにあるのかわかりません。これがルールを破っている場合、私はお詫び申し上げます。

これについて私の解決策を見たことがありますか? mshang.ca/syntree

それはあなたが望むものではありませんが、助けがあれば無料でcodeを盗むことができます。

+2

これは素晴らしいです。構成要素のマーカーとして括弧に加えて括弧を受け入れることができますか?例: '(S(NP This)(VP(V is)(^ NP a wug)))'を使ってサンプルツリーをレンダリングできるようにしたい。 – dsg

+0

あまりにも多くの特殊文字を導入したくないので、これを行う予定はありませんでした。私は角括弧が言語学の標準であると思います。ただし、プロジェクトをフォークしてニーズに合わせて変更することをお勧めします。 – mshang

+0

あなたの解決策が役立つ限り、stackoverflowは –