私は封じ込めクエリ言語の実装を開発してきましたが、ドキュメントは非常に限られており、ガイドとして使用する参照実装はありません。包含言語は、ツリー パターンの存在についてツリー構造を照会し、次のような構文を持ちます。
A CONTAINS B CONTAINS ((C contains A) AND (C CONTAINS D))
A、B、C、および D はツリー ノードのタイプです。より一般的な見方をすると、それらはノードのラベルです。A CONTAINS B は、A がツリー内のどこかに子 B を持っていることを意味します。
実装は、上記のステートメント (部分的に定義されたツリーを表す) で照会されたツリー インスタンスの一致するすべてのサブツリーを返す必要があります。また、パターンの出現の組み合わせを考慮する必要があります。たとえば、上記のクエリで、C の下に 2 つの A インスタンスがある場合、CD を含む C-A1 と CD を含む C-A2 は 2 つの異なる一致になります。
私は独自のソリューションを設計しましたが、実装が一貫して正しく動作することを確認するために、参照として使用できるもの、またはコードと一緒に回帰テストで使用できるものはありません。
最もトリッキーなのは、クエリ言語の論理演算子です。XML を参照実装として XQuery を調べようとしています (この時点では、私がしようとしていることを実行できるかどうかはわかりません) が、他のオプションについても知りたいです。オープン ソースは素晴らしいものですが、プロプライエタリ ツールでも十分に機能します。このタイプのクエリをサポートするグラフDB、おそらくRDFなどを使用したセマンティックツールはありますか?