(57)【要約】  方法は、ディスプレイと結合されたコンピューティングデバイスで実行される。この方法は、第１の用語を含む第１のフレーズに対応する自然言語入力の一部を識別するために、グラフィカルユーザインターフェースをディスプレイに表示することと、ユーザから受信された自然言語入力を分析することと、を含む。この方法は、ユーザから、第１のフレーズの第１の用語を修正する第２の入力を受信することをさらに含む。第２の入力を受信することに応答して、コンピューティングデバイスは、第２の入力に基づいて第２のフレーズを更新する。第２の入力に基づいて第２のフレーズを更新することに応答して、コンピューティングデバイスは、グラフィカルユーザインターフェース上に、修正された第１のフレーズおよび更新された第２のフレーズを含む更新された自然言語表現を表示し、さらに更新された自然言語表現を表す更新されたデータ可視化を表示する。【選択図】図３Ｃ
2022500751.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ディスプレイと結合されているコンピューティングデバイスであって、１つ以上のプロセッサおよび前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリを有する、コンピューティングデバイスにおいて、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記第２の入力に基づいて前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を含む、方法。
【請求項２】
前記自然言語入力が、前記グラフィカルユーザインターフェースにおけるユーザインターフェースコントロールで受信される、請求項１に記載の方法。
【請求項３】
前記自然言語入力が、２つ以上の異なるフレーズを含む、請求項１に記載の方法。
【請求項４】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を置き換える第２の用語を含む、請求項１に記載の方法。
【請求項５】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を削除することを含む、請求項１に記載の方法。
【請求項６】
前記第２の入力を受信する前に、前記第１および第２のフレーズに従って、前記更新されたデータ可視化とは異なる初期データ可視化を表示することをさらに含む、請求項１に記載の方法。
【請求項７】
前記第２のフレーズが前記第１のフレーズの前記第１の用語に依存することを判定するためにデータベース内で検索を実行することをさらに含み、前記第２のフレーズを更新することは、前記第２のフレーズが前記第１のフレーズの前記第１の用語に依存するという判定に従って実行される、請求項１に記載の方法。
【請求項８】
前記第２のフレーズが、前記第１のフレーズのサブ部分を含み、前記第２の入力に基づいて前記第２のフレーズを更新することが、前記第１のフレーズの前記サブ部分を更新することを含む、請求項１に記載の方法。
【請求項９】
前記第１のフレーズおよび前記第２のフレーズが、異なるフレーズである、請求項１に記載の方法。
【請求項１０】
前記第２の用語に基づいて前記第２のフレーズを更新することが、第３の用語を置き換えるために、前記第２のフレーズから前記第３の用語を削除することと、前記第２の用語を前記第２のフレーズに追加することと、を含む、請求項１に記載の方法。
【請求項１１】
前記第２の用語に基づいて前記第２のフレーズを更新することが、前記第２のフレーズを削除することを含む、請求項１に記載の方法。
【請求項１２】
ディスプレイと結合されたコンピューティングデバイスであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリと、を含み、前記１つ以上のプログラムが、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記第２の入力に基づいて前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を行わせる命令を含む、コンピューティングデバイス。
【請求項１３】
前記自然言語入力が、２つ以上の異なるフレーズを含む、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を置き換える第２の用語を含む、請求項１２に記載のコンピューティングデバイス。
【請求項１５】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を削除することを含む、請求項１２に記載のコンピューティングデバイス。
【請求項１６】
前記第２の入力を受信する前に、前記第１および第２のフレーズに従って、前記更新されたデータ可視化とは異なる初期データ可視化を表示させるための命令をさらに含む、請求項１２に記載のコンピューティングデバイス。
【請求項１７】
前記第２のフレーズが、前記第１のフレーズのサブ部分を含み、前記第２の入力に基づいて前記第２のフレーズを更新することが、前記第１のフレーズの前記サブ部分を更新することを含む、請求項１２に記載のコンピューティングデバイス。
【請求項１８】
前記第２の用語に基づいて前記第２のフレーズを更新することが、第３の用語を置き換えるために、前記第２のフレーズから前記第３の用語を削除することと、前記第２の用語を前記第２のフレーズに追加することと、を含む、請求項１２に記載のコンピューティングデバイス。
【請求項１９】
前記第２の用語に基づいて前記第２のフレーズを更新することが、前記第２のフレーズを削除することを含む、請求項１２に記載のコンピューティングデバイス。
【請求項２０】
１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納する非一時的なコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記第２の入力に基づいて前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を行わせるための命令を含む、非一時的なコンピュータ可読記憶媒体。
【請求項２１】
方法であって、
ディスプレイと結合されているコンピューティングデバイスであって、１つ以上のプロセッサおよび前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリを有する、コンピューティングデバイスにおいて、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１のデータフィールド、関係、および第１の比較値を含む、フィルタを指定する自然言語入力をユーザから受信することと、
前記フィルタにおける前記第１のデータフィールドを第２のデータフィールドに置き換えるためのユーザ入力を前記ユーザから受信することと、
前記ユーザ入力を受信することに応答して、前記第１の比較値を、前記第２のデータフィールドのデータタイプに対応する、第２の比較値に自動的に置き換えることと、
前記グラフィカルユーザインターフェースに、前記更新されたフィルタに従って更新されたデータ可視化を表示することと、を含む、方法。
【請求項２２】
前記ユーザ入力を受信することに応答して、前記第２のデータフィールドの前記データタイプに基づいて前記関係を更新することをさらに含む、請求項２１に記載の方法。
【請求項２３】
前記第１のデータフィールドのドメインが、前記第１の比較値を含む、請求項２１に記載の方法。
【請求項２４】
前記第２のデータフィールドの前記データタイプが、前記第１のデータフィールドのデータタイプとは異なる、請求項２１に記載の方法。
【請求項２５】
前記第１のデータフィールドが、定量データタイプを有し、前記第２のデータフィールドが、カテゴリデータタイプを有する、請求項２４に記載の方法。
【請求項２６】
前記第１のデータフィールドが、カテゴリデータタイプを有し、前記第２のデータフィールドが、定量データタイプを有する、請求項２４に記載の方法。
【請求項２７】
前記第１のデータフィールドが、計量データタイプを有し、前記第２のデータフィールドが、特性データタイプを有する、請求項２４に記載の方法。
【請求項２８】
前記第１のデータフィールドが、範囲データタイプを有し、前記第２のデータフィールドが、計量データタイプを有する、請求項２４に記載の方法。
【請求項２９】
前記フィルタ指定への前記更新を受信する前に、前記グラフィカルユーザインターフェース上に、前記指定されたフィルタを適用する、前記更新されたデータ可視化とは異なる初期データ可視化を表示することをさらに含む、請求項２１に記載の方法。
【請求項３０】
前記第２のデータフィールドのデータ値のドメインに従って、前記第２の比較値のデフォルト値を識別することをさらに含む、請求項２１に記載の方法。
【請求項３１】
ディスプレイと結合されたコンピューティングデバイスであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリと、を含み、前記１つ以上のプログラムが、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１のデータフィールド、関係、および第１の比較値を含む、フィルタを指定する自然言語入力をユーザから受信することと、
前記フィルタ内の前記第１のデータフィールドを第２のデータフィールドに置き換えるためのユーザ入力を前記ユーザから受信することと、
前記ユーザ入力を受信することに応答して、前記第１の比較値を、前記第２のデータフィールドのデータタイプに対応する、第２の比較値に自動的に置き換えることと、
前記グラフィカルユーザインターフェースに、前記更新されたフィルタに従って更新されたデータ可視化を表示することと、を行わせる命令を含む、コンピューティングデバイス。
【請求項３２】
前記ユーザ入力を受信することに応答して、前記第２のデータフィールドのデータタイプに基づいて前記関係を更新することをさらに含む、請求項３１に記載のコンピューティングデバイス。
【請求項３３】
前記第１のデータフィールドのドメインが、前記第１の比較値を含む、請求項３１に記載のコンピューティングデバイス。
【請求項３４】
前記第２のデータフィールドの前記データタイプが、前記第１のデータフィールドのデータタイプとは異なる、請求項３１に記載のコンピューティングデバイス。
【請求項３５】
前記第１のデータフィールドが、定量データタイプを有し、前記第２のデータフィールドが、カテゴリデータタイプを有する、請求項３４に記載のコンピューティングデバイス。
【請求項３６】
前記第１のデータフィールドが、カテゴリデータタイプを有し、前記第２のデータフィールドが、定量データタイプを有する、請求項３４に記載のコンピューティングデバイス。
【請求項３７】
前記フィルタ指定への前記更新を受信する前に、前記グラフィカルユーザインターフェース上に、前記指定されたフィルタを適用する前記更新されたデータ可視化とは異なる初期データ可視化を表示することをさらに含む、請求項３１に記載のコンピューティングデバイス。
【請求項３８】
前記第２のデータフィールドのデータ値のドメインに従って、前記第２の比較値のデフォルト値を識別することをさらに含む、請求項３１に記載のコンピューティングデバイス。
【請求項３９】
１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納する非一時的なコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１のデータフィールド、関係、および第１の比較値を含む、フィルタを指定する自然言語入力をユーザから受信することと、
前記フィルタ内の前記第１のデータフィールドを第２のデータフィールドに置き換えるためのユーザ入力を前記ユーザから受信することと、
前記ユーザ入力を受信することに応答して、前記第１の比較値を、前記第２のデータフィールドのデータタイプに対応する、第２の比較値に自動的に置き換えることと、
前記グラフィカルユーザインターフェースに、前記更新されたフィルタに従って更新されたデータ可視化を表示することと、を行わせるための命令、を含む、非一時的なコンピュータ可読記憶媒体。
【請求項４０】
前記第１のデータフィールドのドメインが、前記第１の比較値を含む、請求項３９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実装形態は、概して、データ可視化に関し、より詳細には、ユーザが自然言語表現を使用してデータ可視化と対話することを可能とするシステム、方法、およびユーザインターフェースに関する。
【背景技術】
【０００２】
データ可視化アプリケーションは、ユーザが、ビジネス上の意思決定をするのに重要な分布、傾向、外れ値、および他の要因を含むデータセットを視覚的に理解することを可能にする。いくつかのデータセットは、非常に大きいかまたは複雑であり、多くのデータフィールドを含む。様々なツールがユーザに様々なデータセットのデータ可視化を生成させることを助けるために使用され得るが、通常、ユーザに複雑なユーザインターフェースを学習させる必要がある。
【発明の概要】
【０００３】
データ可視化を生成するための自然言語表現の使用は、フィールドの更新およびどのようにデータをフィルタリングするのかの変更を含む、データ可視化特徴への優れたアクセス利便性をユーザに提供する。自然言語インターフェースにより、ユーザは、トレーニングをほとんどまたはまったくせずに、有用なデータ可視化を展開することが可能になる。
【０００４】
したがって、本開示は、自然言語入力を使用してデータのグラフィカルビューを操作および生成するためのより効率的な方法およびインターフェースを提供する。このような方法およびインターフェースは、ユーザの認知的負担を軽減し、より効率的なマンマシンインターフェースを作り出す。電池駆動のデバイスの場合、このような方法およびインターフェースは電力を節約し、かつ電池の充電間隔を長くする。このような方法およびインターフェースは、データを可視化するために、従来の方法を補完または置き換え得る。他の実装形態および有益点は、本明細書の説明および図面に照らして当業者には明らかであり得る。
【０００５】
いくつかの実装形態は、データ可視化を生成するために使用される自然言語表現内の関連フレーズの自動的更新を提供する。例えば、ユーザが自然言語表現における１つのフレーズを変更する場合、エラーの発生を回避するためには、自然言語表現の別のフレーズも更新する必要があり得る。いくつかの実装形態において、自然言語表現のフレーズを更新すると、自然言語表現によって識別されるデータを表すデータ可視化が変更されることになる。
【０００６】
いくつかの実装形態によれば、方法は、ディスプレイと結合されたコンピューティングデバイスにおいて実行される。例えば、コンピューティングデバイスは、スマートフォン、タブレット、ノートブックコンピュータ、またはデスクトップコンピュータであり得る。この方法は、ディスプレイ上にグラフィカルユーザインターフェースを表示することを含む。この方法は、ユーザから受信された自然言語入力を分析して、第１の用語を含む第１のフレーズに対応する自然言語入力の一部を識別することを含む。この方法はまた、第２のフレーズに対応する第２の部分を識別する。この方法は、第１のフレーズの第１の用語を修正する第２の入力をユーザから受信することをさらに含む。第２の入力を受信することに応答して、コンピューティングデバイスは、第２の入力に基づいて第２のフレーズを更新する。第２の入力に基づいて第２のフレーズを更新することに応答して、コンピューティングデバイスは、グラフィカルユーザインターフェース上に、修正された第１のフレーズおよび更新された第２のフレーズを含む、更新された自然言語表現を表示し、さらに更新された自然言語表現を表す更新されたデータ可視化を表示する。
【０００７】
いくつかの実装形態において、自然言語入力は、グラフィカルユーザインターフェースのユーザインターフェースコントロールにおいて受信される。
【０００８】
場合によっては、自然言語入力は、２つ以上の異なるフレーズを含む。
【０００９】
場合によっては、第１のフレーズにおける第１の用語を修正する第２の入力は、第１のフレーズにおける第１の用語を置き換える第２の用語を含む。
【００１０】
場合によっては、第１のフレーズにおける第１の用語を修正する第２の入力は、第１のフレーズにおける第１の用語を削除する。
【００１１】
場合によっては、この方法は、第２の入力を受信する前に、第１および第２のフレーズに従って、更新されたデータ可視化とは異なる初期データ可視化を表示することをさらに含む。
【００１２】
いくつかの実装形態において、この方法は、さらにデータベース内でルックアップを実行して、第２のフレーズが第１のフレーズの第１の用語に依存していることを判定する。第２のフレーズの更新は、第２のフレーズが第１のフレーズの第１の用語に依存しているという判定に従って実行される。
【００１３】
場合によっては、第２のフレーズは、第１のフレーズのサブ部分であり、第２の入力に基づいて第２のフレーズを更新することは、第１のフレーズのサブ部分を更新する。
【００１４】
場合によっては、第１のフレーズおよび第２のフレーズは、異なるフレーズである。
【００１５】
場合によっては、第２の用語に基づいて第２のフレーズを更新することは、第３の用語を置き換えるために、第２のフレーズから第３の用語を削除し、かつ第２の用語を第２のフレーズに追加する。
【００１６】
場合によっては、第２の用語に基づいて第２のフレーズを更新することは、第２のフレーズを削除する。
【００１７】
いくつかの実装形態によれば、方法は、ディスプレイを備えたコンピュータで実行される。例えば、コンピュータは、スマートフォン、タブレット、ノートブックコンピュータ、またはデスクトップコンピュータであり得る。この方法は、ディスプレイ上にグラフィカルユーザインターフェースを表示することを含む。この方法は、第１のデータフィールド、関係、および比較値を含む、フィルタ条件を指定する自然言語入力をユーザから受信することを含む。
【００１８】
この方法は、第１のデータフィールドから第２のデータフィールドに切り替えるための入力を受信することをさらに含む。この方法は、ユーザ入力に応答して、第２のデータフィールドのデータタイプに従って第２の比較値を自動的に選択することと、更新されたフィルタに対応する更新されたデータ可視化をグラフィカルユーザインターフェースに表示することと、を含む。
【００１９】
場合によっては、第１のデータフィールドのドメインは、第１の比較値を含む。
【００２０】
場合によっては、第１のデータフィールドのデータタイプは、第２のデータフィールドのデータタイプとは異なる。
【００２１】
いくつかの実装形態において、この方法は、ユーザ更新を受信する前に、フィルタ条件に従って、更新されたデータ可視化とは異なる初期データ可視化をグラフィカルユーザインターフェース上に表示することをさらに含む。
【００２２】
いくつかの実装形態において、この方法は、第２の比較値のデフォルト値を識別することをさらに含む。
【００２３】
いくつかの実装形態において、コンピューティングデバイスは、１つ以上のプロセッサ、メモリ、ディスプレイ、およびメモリに格納された１つ以上のプログラムを含む。プログラムは、１つ以上のプロセッサによって実行されるように構成される。１つ以上のプログラムは、本明細書に記載の方法のいずれかを実行するための命令を含む。
【００２４】
いくつかの実装形態において、非一時的なコンピュータ可読記憶媒体は、１つ以上のプロセッサ、メモリ、およびディスプレイを有するコンピューティングデバイスによって実行されるように構成された１つ以上のプログラムを格納する。１つ以上のプログラムは、本明細書に記載の方法のいずれかを実行するための命令を含む。
【００２５】
このように、ユーザが自然言語コマンドを使用してデータ可視化を容易に構築および更新することを可能にする方法、システム、およびグラフィカルユーザインターフェースが開示される。
【図面の簡単な説明】
【００２６】
開示されたシステム、方法、およびグラフィカルユーザインターフェース、ならびに自然言語インターフェースを提供する追加のシステム、方法、およびグラフィカルユーザインターフェースをよりよく理解するために、同様の参照番号が図全体を通して対応する部分を指す以下の図面と併せて、以下の発明を実施するための形態を参照されたい。
【００２７】
【図１】いくつかの実装形態によるグラフィカルユーザインターフェースである。
【図２】いくつかの実装形態によるコンピューティングデバイスのブロック図である。
【図３Ａ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図３Ｂ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図３Ｃ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図３Ｄ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図３Ｅ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図３Ｆ】いくつかの実装形態による自然言語入力を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図４Ａ】いくつかの実装形態による自然言語入力の変更に基づいてデータ可視化を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図４Ｂ】いくつかの実装形態による自然言語入力の変更に基づいてデータ可視化を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図４Ｃ】いくつかの実装形態による自然言語入力の変更に基づいてデータ可視化を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図４Ｄ】いくつかの実装形態による自然言語入力の変更に基づいてデータ可視化を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図４Ｅ】いくつかの実装形態による自然言語入力の変更に基づいてデータ可視化を更新するためのグラフィカルユーザインターフェースの一連のスクリーンショットを提供する。
【図５Ａ】いくつかの実装形態による自然言語入力で指定されたフィルタの更新を示す。
【図５Ｂ】いくつかの実装形態による自然言語入力で指定されたフィルタの更新を示す。
【図５Ｃ】いくつかの実装形態による自然言語入力で指定されたフィルタの更新を示す。
【図５Ｄ】いくつかの実装形態による自然言語入力で指定されたフィルタの更新を示す。
【図６Ａ】いくつかの実装形態による、更新されたデータ可視化を表示するために提供されたプロセスのフローチャートである。
【図６Ｂ】いくつかの実装形態による、更新されたデータ可視化を表示するために提供されたプロセスのフローチャートである。
【図７】いくつかの実装形態によるデータフィルタを更新するプロセスのフローチャートを提供する。
【図８Ａ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｂ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｃ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｄ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｅ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｆ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｇ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｈ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｉ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【図８Ｊ】いくつかの実装形態による自然言語インターフェースで使用されるウィジェットを示す。
【００２８】
ここで、実装形態を参照すると、その例は、添付の図面に示されている。以下の説明では、本発明の徹底した理解を提供するために、数多くの特定の詳細が記載される。しかしながら、本発明がこれらの特定の詳細を必要とせずに実施され得ることは当業者には明らかであろう。
【発明を実施するための形態】
【００２９】
本明細書で説明されるいくつかの方法およびデバイスは、データ可視化を生成するために使用される自然言語入力を自動的に更新することによって、データ可視化方法を改善する。このような方法およびデバイスは、自然言語入力におけるすべての関連フレーズの手動更新を不要にし、データ可視化に迅速で容易なアクセスを提供してユーザの負担を軽減する。ユーザが入力の関連部分を更新せずに自然言語入力の一部を修正する場合、更新されたデータ可視化の代わりに、エラー状態がトリガーされ得る。いくつかの実装形態において、ユーザが自然言語入力の一部を修正する場合、フィルタのような自然言語入力の別の部分も更新する必要がある。これは、ユーザが自然言語入力の様々な部分の依存関係を理解することを要求する。本明細書において説明する方法およびデバイスは、自然言語表現を自動的に更新するので、ユーザが入力の一部を変更する場合に、入力の関連部分が自動的に検出されて更新される。
【００３０】
図１は、対話型データ分析のためのグラフィカルユーザインターフェース１００を示している。ユーザインターフェース１００は、データペインとも呼ばれるスキーマ情報領域１１０を表示する。スキーマ情報領域１１０は、データ可視化を構築するために選択および使用され得るデータフィールドを提供する。いくつかの実装形態において、スキーマのデータフィールドは、スキーマ情報領域１１０において、範囲のグループ（例えば、カテゴリデータ）と計量のグループ（例えば、数量）に分けられる。ユーザインターフェース１００は、ユーザインターフェースコントロール１２０を表示する。いくつかの実装形態において、ユーザインターフェースコントロール１２０は、ユーザから自然言語入力１２８（例えば、表現）を受信および／または表示する。いくつかの実装形態において、グラフィカルユーザインターフェース１００は、ユーザインターフェースコントロール１２０における入力１２８に基づいて生成されたデータ可視化を表示するためのデータ可視化領域１１２を含む。
【００３１】
いくつかの実装形態において、データ可視化のタイプは、ビュータイプセレクタ１２２を使用することによって変更され得る。例えば、図１で選択したデータ可視化のビュータイプは「Ｂａｒ  Ｃｈａｒｔ（棒グラフ）」である。「ｍａｐ（マップ）」、「ｌｉｎｅ  ｃｈａｒｔ（折れ線グラフ）」、「ｐｉｅ  ｃｈａｒｔ（円グラフ）」、「ｓｃａｔｔｅｒ  ｐｌｏｔ（散布図）」、「ｔｅｘｔ  ｔａｂｌｅ（テキストテーブル）」、および「ｔｒｅｅｍａｐ（ツリーマップ）」のような、データ可視化の追加のビュータイプを使用できる。いくつかの実装形態において、データ可視化は、入力に基づくデフォルトのビュータイプに従って生成される。いくつかの実装形態において、デフォルトのビュータイプは、各々参照によりその全体が組み込まれる、米国特許第８，０９９，６７４号および米国特許第９，４２４，３１８号に記載されているように、ユーザによって選択されたデータフィールドのデータタイプおよび／またはユーザによって選択されたデータフィールドのデータ値に従って判定される最高位の可視化タイプに基づいて選択される。例えば、入力が修正される場合、異なるタイプのデータ可視化が表示される（例えば、データ可視化タイプが「ｂａｒ  ｃｈａｒｔ」から「ｔｅｘｔ  ｔａｂｌｅ」に変わる図３Ｅおよび図３Ｆを参照して説明されているように）。いくつかの実装形態において、ユーザは、ユーザインターフェースコントロール１２０における自然言語入力の一部としてデータ可視化タイプを指定する。例えば、ユーザは、「ｉｎ  ａ  Ｂａｒ  Ｃｈａｒｔ（棒グラフで）」を指定する追加のフレーズを入力し得る（例えば、コントロール１２０にタイプする）。例えば、コンピューティングデバイスは、「ｉｎ  ａ  Ｂａｒ  Ｃｈａｒｔ」のユーザ入力を解析し、ビュータイプセレクタを「ｂａｒ  ｃｈａｒｔ」オプションに更新し得る。
【００３２】
いくつかの実装形態において、ビュータイプセレクタ１２２から選択されるデータ可視化のタイプに応答して、コンピューティングデバイスは、データ可視化タイプを含む自然言語コントロール１２０にフレーズを表示する。例えば、コンピューティングデバイスは、ビュータイプセレクタ１２２における「ｂａｒ  ｃｈａｒｔ」のユーザ選択に応答して、「ｉｎ  ａ  ｂａｒ  ｃｈａｒｔ」を自然言語表現に追加する。
【００３３】
いくつかの実装形態において、現在の表現に意味をなすビュータイプのみがオプションとしてユーザに提供される。例えば、ユーザが「ｉｎ  ａ  ｍａｐ」と入力（例えば、自然言語コントロール１２０にタイプする）しても、自然言語表現１２８は、マップデータ可視化と矛盾するフレーズを含まないが、コンピューティングデバイスは、ユーザによる自然言語入力を解析後に、ビュータイプセレクタ１２２をデフォルトのデータ可視化タイプに設定し、かつ「ｍａｐ」ビュータイプオプションをビュータイプセレクタ１２２のドロップダウンに含まない。例えば、ビュータイプセレクタ１２２のドロップダウンは、自然言語入力１２８に基づいて意味をなす可視化タイプのみを含む。
【００３４】
いくつかの実装形態において、データフィールドは、データベース自体の範囲または計量として指定される場合がある（例えば、データソースがキューブデータソースの場合）。他の実装形態において、データ可視化アプリケーション２２２は、データフィールドのデータタイプに基づき計量または範囲のいずれかである、各データフィールドにデフォルトの役割を自動的に割り当てる。例えば、デフォルトで数値フィールドが計量として使用されるのに対して、デフォルトで非数値フィールド（例えば、テキストフィールドおよび日付フィールド）が範囲として使用される。ユーザは、必要に応じて、割り当てられたデフォルトの役割を上書き可能である。例えば、数値の「ＩＤ」フィールドは、最初は計量として分類され得るが、ユーザは「ＩＤ」フィールドを範囲として再分類できる。
【００３５】
範囲は、データをカテゴリ（「バケット」とも呼ばれる）に整理するデータフィールドである。例えば、データソースが「Ｕｎｉｔｅｄ  Ｓｔａｔｅｓ（合衆国）」に関連付けられたデータを含み、データソースが「Ｓｔａｔｅ（州）」に対応するデータフィールドを含む場合、「Ｓｔａｔｅ（州）」は範囲として使用される。各範囲は、棒グラフの個別の棒（例えば、州ごとに個別の棒）など、データ可視化内に異なる区分を作成する。これらの区分は通常、対応する範囲値ごとに１つのヘッダを使用して、範囲ヘッダでラベル付けされる（例えば、各棒には、対応する州の名前がラベル付けされ得る）。
【００３６】
計量は、売上高、利益、発注量のようなものを計量するために使用されるデータフィールドであり、通常は連続的である。例えば、範囲「Ｓｔａｔｅ」は離散可能な値の固定セットがあるが、「Ｓａｌｅｓ  Ａｍｏｕｎｔ（売上高）」データフィールドは広い範囲内の任意の値を有することができる。かなりの数のレコードは、低価格のアイテムに関連する様々な少ない売上高を含む可能性があり、他の多くのレコードには、高価格のアイテムのより多い売上高を含み得る。各計量は通常、選択された範囲（例えば、販売は州ごとに集計される場合がある）に応じた詳細レベル（グループ化）で単一の値に集計される（例えば、デフォルトでは計量は合計される）。
【００３７】
図１に示されるように、自然言語入力コントロール１２０は、自然言語表現１２８を入力および表示するために使用される。自然言語プロセッサ２２８は、表現１２８を３つの異なるフレーズ１３０−１、１３０−２、および１３０−３に解析した。場合によっては、１つ以上のフレーズがサブフレーズで構成される。
【００３８】
図２は、いくつかの実装形態によるグラフィカルユーザインターフェース１００を表示することができるコンピューティングデバイス２００を示すブロック図である。コンピューティングデバイス２００の様々な例としては、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、およびデータ可視化アプリケーション２２２を実行することができるディスプレイおよびプロセッサを有する他のコンピューティングデバイスが挙げられる。コンピューティングデバイス２００は、典型的には、メモリ２１４に格納されたモジュール、プログラム、および／または命令を実行し、それによって処理動作を実行するための１つ以上の処理ユニット／コア（ＣＰＵ）２０２と、１つ以上のネットワークまたは他の通信インターフェース２０４と、メモリ２１４と、これらの構成要素を相互接続するための１つ以上の通信バス２１２と、を含む。通信バス２１２は、システム構成要素間の通信を相互接続および制御する回路網を含み得る。
【００３９】
コンピューティングデバイス２００は、ディスプレイデバイス２０８および１つ以上の入力デバイスまたは機構２１０を備えるユーザインターフェース２０６を含む。いくつかの実装形態において、入力デバイス／機構はキーボードを含む。いくつかの実装形態において、入力デバイス／機構は、ディスプレイデバイス２０８に必要に応じて表示される「ソフト」キーボードを含み、ユーザがディスプレイ２０８に表示される「キーを押す」ことを可能にする。いくつかの実装形態において、ディスプレイ２０８および入力デバイス／機構２１０は、タッチスクリーンディスプレイ（タッチセンシティブディスプレイとも呼ばれる）を備える。
【００４０】
いくつかの実装形態において、メモリ２１４は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲＲＡＭ、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含む。いくつかの実装形態において、メモリ２１４は、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性固体記憶デバイスなどの不揮発性メモリを含む。いくつかの実装形態において、メモリ２１４は、ＣＰＵ（複数可）２０２から遠隔に位置する１つ以上の記憶デバイスを含む。メモリ２１４、または代替的にメモリ２１４内の不揮発性メモリデバイス（複数可）は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実装形態において、メモリ２１４、またはメモリ２１４のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットを格納する：
・様々な基本的なシステムサービスを処理し、ハードウェアに依存するタスクを実行するための手順を含むオペレーティングシステム２１６；
・１つ以上の通信ネットワークインターフェース２０４（有線または無線）およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどのような１つ以上の通信ネットワークを介してコンピューティングデバイス２００を他のコンピュータおよびデバイスに接続するために使用される通信モジュール２１８；
・ユーザがネットワークを介して遠隔のコンピュータまたはデバイスと通信することを可能にするブラウザ２２０（またはウェブページを表示することができる他のアプリケーション）；
・データ可視化アプリケーション２２２。いくつかの実装形態において、データ可視化アプリケーション２２２はまた、以下を含む：
○ユーザが視覚的グラフィックスを構築するためのグラフィカルユーザインターフェース１００。いくつかの実装形態において、グラフィカルユーザインターフェースは、自然言語コントロール１２０を介して、ユーザ入力を受信するためのユーザ入力モジュール２２４を含む。例えば、ユーザは、１つ以上のデータソース２４０（コンピューティングデバイス２００に格納されるか、または遠隔に格納され得る）および／またはデータソース（複数可）からのデータフィールドを識別する、自然言語表現１２８（例えば、コントロール１２０を介して）を入力する。選択されたフィールドは、視覚的グラフィックを定義するために使用される。次に、データ可視化アプリケーション２２２は、生成された視覚的グラフィックをユーザインターフェース１００に表示する。いくつかの実装形態において、データ可視化アプリケーション２２２は、スタンドアロンアプリケーション（例えば、デスクトップアプリケーション）として実行される。いくつかの実装形態において、データ可視化アプリケーション２２２は、ウェブブラウザ２２０またはウェブサーバによって提供されるウェブページを使用する別のアプリケーション内で、以下を実行する；
○ユーザ入力（例えば、自然言語入力）を受信し、対応する視覚的グラフィック（「データ可視化」または「データビズ」とも呼ばれる）を生成するデータ可視化生成モジュール２２６；
○ユーザによって提供された自然言語入力を受信されて解析する自然言語プロセッサ２２８。自然言語プロセッサ２２８はまた、依存性判定モジュール２３０を含み得、これは、データベース２４０における依存関係を検索して、特定の用語および／またはフレーズがどのように関連しているか（例えば、依存）を判定する。いくつかの実装形態において、自然言語プロセッサ２２８は、１つ以上のフィルタがユーザによって修正されたフィールドに関連しているかどうかを判定するフィルタ生成モジュール２３２を含む。フィルタ生成モジュール２３２は、フィールドへの変更に基づいて１つ以上のフィルタを生成する；
○ユーザが選択可能なオプションを含むウィジェットを生成するウィジェット生成モジュール２３４。例えば、「ｓｏｒｔ（並べ替え）」ウィジェットは、ユーザが並べ替えフィールド（例えば、並べ替えフィールドとして識別される自然言語用語）上で選択（例えば、ホバリング）することに応答して生成される。並べ替えウィジェットは、「ａｓｃｅｎｄｉｎｇ（昇順）」、「ｄｅｓｃｅｎｄｉｎｇ（降順）」、および／または「ａｌｐｈａｂｅｔｉｃａｌ（アルファベット順）」などのユーザが選択可能なオプションを含み、ユーザは、ウィジェットから選択したフィールドをどのように並べ替えるのかを容易に選択することができる。
・データ可視化アプリケーション２２２によって使用される、ゼロ個以上のデータベースまたはデータソース２４０（例えば、第１のデータソース２４０−１および第２のデータソース２４０−２）。いくつかの実装形態において、データソースは、スプレッドシートファイル、ＣＳＶファイル、ＸＭＬファイル、フラットファイル、もしくはＪＳＯＮファイルとして格納されるか、またはリレーショナルデータベースに格納される。
【００４１】
上述の識別された実行可能モジュール、アプリケーション、または手順のセットの各々は、１つ以上のメモリデバイスに格納され得、かつ上述の機能を実行するための命令のセットに対応する。上述の識別されたモジュールまたはプログラム（すなわち、命令のセット）は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実装形態において組み合わされるか、または別様に再配置され得る。いくつかの実装形態において、メモリ２１４は、上述の識別されたモジュールおよびデータ構造のサブセットを格納する。さらに、メモリ２１４は、上述されていない追加のモジュールまたはデータ構造を格納し得る。
【００４２】
図２は、コンピューティングデバイス２００を示しているが、図２は、本明細書で説明されている実装形態の構造的概略としてではなく、存在し得る様々な特徴の機能的説明としてより意図されている。実際には、当業者によって認識されるように、別々に示されたアイテムを組み合わせることができ、いくつかのアイテムを分離することができる。
【００４３】
図３Ａ〜図３Ｆは、グラフィカルユーザインターフェース１００の一連のスクリーンショットを提供する。ユーザは、自然言語コントロール１２０と対話し、表現１２８を更新することができる。図３Ａにおける自然言語表現１２８は、３つの異なるフレーズ１３０−１、１３０−２、および１３０−３を含む。各フレーズは個別に識別され（例えば、個別のテキストボックス内で）、「ｓｕｍ  ｏｆ  Ｎｕｍｂｅｒ  ｏｆ  Ｒｅｃｏｒｄｓ（レコードの合計数）」１３０−１、「ｂｙ  Ｒｅｇｉｏｎ（地域別）」１３０−２（例えば、「ｂｙ」はグループ別機能を表す）、および「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ（地域をアルファベット順に並べ替える）」１３０−３を含む。典型的には、各フレーズ１３０は、データソース２４０からデータフィールドを識別する１つ以上の用語を含む。用語は、範囲または計量であり得る。自然言語入力は、２つ以上の用語を含み得る。図３Ａに示すように、自然言語入力を表す初期データ可視化がグラフィカルユーザインターフェースに表示される。例えば、図３Ａは、アルファベット順に並べ替えられた地域ごとのレコード数を表す棒グラフを示している。「Ｒｅｇｉｏｎ（地域）」列ヘッダ１４０は、棒グラフの各行が地域に対応することを示し、並べ替えインジケータ１４２は、行が現在アルファベット順に並べ替えられていることを示す（第３のフレーズ１３０−３によって指定されるように）。
【００４４】
場合によっては、ユーザは自然言語表現の第１の用語を選択する（例えば、マウスクリック、ホバー、または他の入力を介して）。例えば、図３Ｂは、ユーザが、第３のフレーズ「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ（地域をアルファベット順に並べ替える）」１３０−３における「Ｒｅｇｉｏｎ」１４４という用語上にホバリングしていることを示している。いくつかの実装形態において、ユーザの選択に応じて、用語は自然言語入力内で視覚的に区別される。例えば、選択された用語「Ｒｅｇｉｏｎ」１４４は、ユーザがその用語上にホバリングしたことに応答して下線が引かれている。いくつかの実装形態において、図３Ｃに示すように、ユーザの選択に応答して、ウィジェットが生成される（例えば、ウィジェット生成モジュール２３４を使用して）。例えば、ウィジェット１５０は、選択された用語１４４を置き換えるために、ユーザが選択可能なオプション（例えば、代替用語を含む）をユーザに表示する。図３Ｃにおいてユーザは、ウィジェットから「Ｃｏｕｎｔｒｙ（国）」オプション１５２を選択する。ユーザの選択に応じて、第１の用語「Ｒｅｇｉｏｎ」１４４は、第３のフレーズ「ｓｏｒｔ［ｔｅｒｍ］ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ（アルファベット順に［用語］を並び替える）」１３０−３において、選択された用語「Ｃｏｕｎｔｒｙ」１４６に置き換えられる。
【００４５】
場合によっては、第２のフレーズ（または第２のフレーズ内の用語）は、編集されたフレーズ（または編集されたフレーズ内の編集された用語）に依存する。並べ替えフィールドはグループ化フィールドと互換性がある必要があるため、例えば、第２のフレーズ「ｂｙ  Ｒｅｇｉｏｎ（地域別）」１３０−２は、第３のフレーズ「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」１３０−３に依存している。いくつかの実装形態において、用語および／またはフレーズの依存性は、データおよびデータがどのように関連しているかに関する情報を格納するデータベースにおいて検索を実行することによって判定される。場合によっては、重複する用語を含むフレーズは依存フレーズである。例えば、両方のフレーズが「Ｒｅｇｉｏｎ」という用語を使用する場合、コンピューティングデバイスは、そのフレーズが依存フレーズであると判定し得る。ここで、ユーザが第３のフレーズ１３０−３において「Ｒｅｇｉｏｎ」という用語を「Ｃｏｕｎｔｒｙ」に置き換えたとき、第２のフレーズ「ｂｙ  Ｒｅｇｉｏｎ」１３０−２が更新されなかった場合、コンピューティングデバイスはエラーを発生させる。要求されたデータが国別にグループ化されていない場合、システムは国別に並べ替えることができない。エラーを発生させる代わりに、コンピューティングデバイスは、ユーザ入力に基づいてエラーを返すのを防ぐために、「ｂｙ  Ｒｅｇｉｏｎ」１３０−２も更新されなければならないことを自動的に判定する。これにより、エラーを防ぐためにユーザが第２のフレーズを手動で更新する必要がなくなるため、ユーザエクスペリエンスが向上する。
【００４６】
第２のフレーズが第３のフレーズに依存しているという判定に従って、第３のフレーズの用語「Ｒｅｇｉｏｎ」１４４を用語「Ｃｏｕｎｔｒｙ」１４６に置き換えるユーザの入力はまた、コンピューティングデバイスに、「Ｒｅｇｉｏｎ」を「Ｃｏｕｎｔｒｙ」１４８で置き換えて、第２のフレーズ１３０−２を更新させる。第２のフレーズは、ユーザ入力なしでコンピューティングデバイスによって自動的に更新される（例えば、ユーザは、第１の用語を修正した後、「ｂｙ  Ｒｅｇｉｏｎ」を「ｂｙ  Ｃｏｕｎｔｒｙ」に手動で変更しない）。変更がまだコミットされていないため、図３Ｃにおいては、列ヘッダおよび並び替えインジケータ１５４はまだ更新されていないことに留意されたい。結果として更新された自然言語表現を図３Ｄに示す。さらに、図３Ｄは、更新された自然言語表現を表す更新されたデータ可視化を示し、更新された列ヘッダおよび並び替えインジケータ１５６によって示されるように、ここで棒グラフの棒をアルファベット順に国別に並び替えている。
【００４７】
図３Ｅおよび図３Ｆは、フレーズ内の用語を修正するユーザ入力の別の例を示しており、これにより、デバイスは（例えば、第１のフレーズに依存する）別のフレーズを更新する。例えば、図３Ｅにおけるユーザ入力は、ユーザが、第２のフレーズ「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−２の上にホバリングしていることを示している。いくつかの実装形態において、自然言語表現におけるフレーズは、「ｘ」オプション１５８（例えば、「ｘ」オプション１５８上をホバリングするユーザ入力指示によって図３Ｅに示される）を選択するユーザ入力によって削除可能である（例えば、消去され得る）。例えば、「ｘ」オプション１５８は、フレーズを含むテキストボックス上でのユーザ入力（例えば、ホバー）に応答して動的に生成される。この例において、コンピューティングデバイスは、第２のフレーズ「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−２と第３のフレーズ「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ（国をアルファベット順に並び替える）」１３０−３が互いに依存していると判定する。図３Ｅは、国別にグループ化され、アルファベット順に並び替えられたいくつかのレコードを表す棒グラフの初期データ可視化を示している。
【００４８】
ユーザ入力は、自然言語表現１２８から第２のフレーズを削除することによって、第２のフレーズ１３０−２を修正する。第２のフレーズ「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−２を削除することに応答して、コンピューティングデバイスは、第３のフレーズを削除することによって、第３のフレーズ「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」１３０−３を更新する。結果として更新された自然言語表現を図３Ｆに示す。図に示すように、第２のフレーズ「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−２は削除され、第３のフレーズ「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」１３０−３は、ユーザ入力なしでコンピューティングデバイスによって自動的に削除される。例えば、ユーザは、第２のフレーズに対して「ｘ」オプション１５８のみを選択し、コンピューティングデバイスは、第３のフレーズが第２のフレーズに依存していると判定して、エラーを発生させる代わりに第３のフレーズを自動的に削除した。したがって、ユーザは表現を訂正するために第３のフレーズを手動で削除する必要はなかった。図３Ｆは、「ｓｕｍ  ｏｆ  Ｎｕｍｂｅｒ  ｏｆ  Ｒｅｃｏｒｄｓ」というフレーズ１３０−１を表すテキストテーブルに対応する更新されたデータ可視化も示している。グループ化を指定するデータフィールドがないため、データのすべての行がグループ化されて単一の合計が作成される。
【００４９】
上述の例に示されているように、コンピューティングデバイスは、第１のフレーズがユーザによってどのように修正されたかを判定し、その修正に基づいて１つ以上の依存フレーズを更新する。いくつかの実装形態において、コンピューティングデバイスは、第１のフレーズへの修正に基づいて、第２のフレーズの用語を更新する。いくつかの実装形態において、コンピューティングデバイスは、第１のフレーズへの修正に基づいて第２のフレーズを削除する。
【００５０】
図４Ａ〜図４Ｅは、自然言語入力への変更に基づいてデータ可視化のビュータイプを更新する、グラフィカルユーザインターフェース１００の一連のスクリーンショットを提供する。いくつかの実装形態において、コンピューティングデバイスは、自然言語入力に基づいて、あるタイプのデータ可視化を自動的に生成する（例えば、データ可視化生成モジュール２２６を使用して）。いくつかの実装形態において、（例えば、自然言語コントロール１２０を介して）自然言語入力への修正（例えば、ユーザ入力から受信された）により、コンピューティングデバイスは、ユーザに提示されるデータ可視化のタイプを変更する。例えば、図４Ａにおいて、自然言語入力は、「ａｖｅｒａｇｅ  Ｐｏｐｕｌａｔｉｏｎ（平均人口）」１３０−４、「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−５、「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ｄｅｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ  ｂｙ  ａｖｅｒａｇｅ  Ｐｏｐｕｌａｔｉｏｎ（平均人口の降順で国を並べ替える）」１３０−６の３つの異なるフレーズを含む。データ可視化のビュータイプは棒グラフである。列ヘッダ１６０によって示されるように、棒グラフは、国ごとに棒を有し、並べ替えインジケータ１６２は、データが降順で並べ替えられていることを示している。図４Ｂは、第３のフレーズ１３０−６「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ｄｅｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ  ｂｙ  ａｖｅｒａｇｅ  Ｐｏｐｕｌａｔｉｏｎ」に対するユーザ入力（例えば、ホバリング）を示している。ユーザがフレーズ１３０−６にホバリングすることに応答して、コンピューティングデバイスは、「ｘ」オプション１６４を動的に生成し、これをユーザが選択し、フレーズ１３０−６を削除することができる。ユーザが自然言語入力の第３のフレーズを削除したことに応答して（例えば、「ｘ」オプション１６４を選択することにより）、コンピューティングデバイスは、「ｓｏｒｔ」を含むフレーズがないので、データ可視化のデフォルトタイプは地図であると判定する。これが機能するのは、自然言語の入力が「ａｖｅｒａｇｅ  Ｐｏｐｕｌａｔｉｏｎ」１３０−４と「ｂｙ  Ｃｏｕｎｔｒｙ」１３０−５の２つのフレーズしか含んでいないためである。これを図４Ｃに示す。いくつかの実装形態において、ユーザは、データ可視化をデータ可視化のデフォルトタイプから変更することができる。例えば、データ可視化のデフォルトタイプ「ｍａｐ」は、ドロップダウンコントロール１６８に示されている。データ可視化の代替のタイプは、ドロップダウンコントロール１６８を介してユーザに提示され、それにより、ユーザは、グラフィカルユーザインターフェースに示されるデータ可視化のタイプを修正し得る。
【００５１】
図４Ｄは、データ可視化を更新する別の例を示す。図４Ｄにおいて、ユーザは、（例えば、タイピングすることによって）追加のフレーズ１３０−７を自然言語入力に（例えば、自然言語入力コントロール１２０を介して）入力する。図４Ｅは、ユーザ入力の受信に応答して、コンピューティングデバイスがデータ可視化を図４Ｄにおけるマップビューから図４Ｅにおける棒グラフビューに変更することを示している。図４Ｅにおける棒グラフは、更新された自然言語表現を表しており、国別の平均人口を国ごとにアルファベット順に並べ替えて示している。列ヘッダおよび並び替えインジケータ１７０は、棒グラフの各行が国に対応し、それらの行がアルファベット順に並び替えられていることを示している（例えば、追加のフレーズ１３０−７によって指定されるように）。
【００５２】
図５Ａ〜図５Ｄは、いくつかの実装形態による自然言語表現５００の更新フィルタを示している。図５Ａは、各々がデータフィールドに対応する３つのフレーズ５０２−１、５０２−２、および５０２−３を有する自然言語入力５００を示している。フィルタフレーズ（第３のフレーズ５０２−３のような）は、データフィールドを特定の値または［データフィールド］［関係］［比較値］のような別のデータフィールドと比較する。最も一般的な関係は＝、≠、＞、≧、＜、および≦である。場合によっては、自然言語入力５００のフレーズ５０２は、自然言語テンプレート（例えば、コンピューティングデバイスのデータベースに格納されている）に従う。自然言語テンプレートおよび自然言語処理に基づいて、コンピューティングデバイスは、ユーザ入力に基づき、フレーズをどのように更新するのか（例えば、または自動的に完成するのか）を判定する。例えば、フレーズの第１の用語がカテゴリである場合、テンプレートは、カテゴリフィルタがフレーズを更新するのに適切であることを識別する。別の例として、フレーズの第１の用語が数値データフィールドである場合、テンプレートは、フレーズを更新する（例えば、完成する）のに定量的フィルタが適切であることを識別する。
【００５３】
いくつかの実装形態において、ユーザインターフェースコントロール１２０内のユーザ入力（例えば、ホバリング）は、用語「Ｃｏｕｎｔｒｙ」５１４を選択する。ユーザが用語（例えば、データフィールド）「Ｃｏｕｎｔｒｙ」５１４上にホバリングすることに応答して、コンピューティングデバイスは、自動的に（例えば、ユーザ入力なしで）部分入力をテンプレートフレーズと相関させ、フレーズの第２のテンプレートフィールドにデフォルト値（例えば、「Ａｒｇｅｎｔｉｎａ（アルゼンチン）」５１６）を設定する。特に、コンピューティングデバイスは、ユーザが、比較のためにカテゴリ値を必要とする、範囲（データフィールド「Ｃｏｕｎｔｒｙ」５１４）を選択したと判定する。デフォルトの比較値は、国データフィールド５１４のデータ値である。このようにして、データフィールド「Ｃｏｕｎｔｒｙ」５１４を選択すると、コンピューティングデバイスは、「Ａｒｇｅｎｔｉｎａ」５１６でフレーズテンプレートを完成させる。これらのアクションは、図５Ａにおけるスクリーンショットの前に発生した。図５Ａに示されるように、マップのデータ可視化は、グラフィカルユーザインターフェースに示され（マップは、ドロップダウンウィジェット５１８の後ろに部分的に隠されている）、これは、国５１４を「Ａｒｇｅｎｔｉｎａ」５１６にフィルタリングしたことを反映している。
【００５４】
図５Ａにおいて、ユーザは、データフィールド選択ウィジェット５１８を開くために別のアクション（例えば、国の用語５１４をクリックする）をとった。図５Ａに示すように、国フィールドオプション５２０が現在選択されている。国５１４のフィルタに基づくと、「Ａｒｇｅｎｔｉｎａ」５１６の比較値には意味がある。ただし、ユーザが図５Ｂで人口オプション５２２を選択すると、人口を文字列「Ａｒｇｅｎｔｉｎａ」と比較しても意味がなくなる。
【００５５】
図５Ｂにおいて、ウィジェット５１８内のユーザ入力（例えば、ホバリング）は、用語「Ｐｏｐｕｌａｔｉｏｎ（人口）」５２２を選択する。コンピューティングデバイスは、選択された用語が定量的であると判定する。ユーザ入力に応答して、コンピューティングデバイスは、比較演算子５３６（例えば、「ａｔ  ｌｅａｓｔ（少なくとも）」または「≧」）およびフレーズ５０２−３の比較値５３８を自動的に更新する。この例において、コンピューティングデバイスは１０，０００の比較値でフレーズを完成させる。人口５３４のような定量的なデータフィールドの場合、集計タイプも選択する必要がある（例えば、ＳＵＭ（合計）、ＣＯＵＮＴ（総数）、またはＡＶＥＲＡＧＥ（平均））。この例では、集計タイプは、デフォルトでＡＶＥＲＡＧＥ５２４になり、これは第３のフレーズ５０２−３において集計タイプ５３２として表示される。いくつかの実装形態において、集計タイプは、デフォルトで他のフレーズですでに指定されているものになる（例えば、第１のフレーズ５０２−１における「Ａｖｅｒａｇｅ  Ｐｏｐｕｌａｔｉｏｎ」）。さらに、棒グラフに対応する更新されたデータ可視化が、更新されたフレーズに基づいてグラフィカルユーザインターフェースに表示される。
【００５６】
図５Ｃは、第１のデータフィールド「Ｃｏｕｎｔｒｙ」５５２を有する、第３のフレーズ「Ｃｏｕｎｔｒｙ  ｃｏｎｔａｉｎｓ‘Ｓｏｕｔｈ’（「南」を含む国）」５５０−３を含む自然言語入力を示している。比較演算子５５４は「ｃｏｎｔａｉｎｓ（含む）」であり、比較値は「Ｓｏｕｔｈ（南）」５５６である。この場合、第３のフレーズ５５０−３は、国名がテキスト文字列「Ｓｏｕｔｈ」５５６を含むデータに制限するフィルタを指定する。データ可視化に示されているように、地図には「Ｓｏｕｔｈ  Ａｆｒｉｃａ（南アフリカ）」５６０が示されている。図５Ｃにおいて、ユーザは、フィルタウィジェット５１８を起動するアクションを実行し、Ｃｏｕｎｔｒｙオプション５６２が選択されている。
【００５７】
図５Ｄは、「Ｃｏｕｎｔｒｙ」オプション５６２から「Ｃｏｎｔｉｎｅｎｔ（大陸）」オプション５６４へのユーザ入力切り替えを示している。コンピューティングデバイスは、「Ｃｏｕｎｔｒｙ」と「Ｃｏｎｔｉｎｅｎｔ」の両方がカテゴリデータを格納していると判定する。したがって、コンピューティングデバイスは、カテゴリフィルタの比較演算子５５４および比較値５５６を保持する。カテゴリフィルタは、選択された新しいデータフィールド「Ｃｏｎｔｉｎｅｎｔ」５７２に基づいた適切なフィルタのままである（例えば、エラーは発生しない）。
【００５８】
図６Ａおよび図６Ｂは、自然言語表現に従ってデータ可視化を表示する方法６００を示している。方法６００は、プロセスとも称される。いくつかの実装形態において、方法は、ディスプレイと結合されたコンピューティングデバイスで実行および行われ、コンピューティングデバイスは１つ以上のプロセッサと、１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリとを有する（６０２）。コンピューティングデバイスによって行われる方法６００は、任意選択で、非一時的なコンピュータ可読記憶媒体に格納される命令によって支配される。命令は、コンピューティングデバイスの１つ以上のプロセッサによって実行される。図６Ａおよび図６Ｂに示される動作の各々は、コンピュータメモリまたは非一時的なコンピュータ可読記憶媒体（例えば、コンピューティングデバイス２００のメモリ２１４）に格納された命令に対応し得る。コンピュータ可読記憶媒体は、磁気もしくは光ディスク記憶デバイス、フラッシュメモリなどの固体記憶デバイス、または他の１つ以上の不揮発性メモリデバイスを含み得る。コンピュータ可読記憶媒体に格納された命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または１つ以上のプロセッサによって解釈される他の命令フォーマットのうちの１つ以上を含み得る。方法６００におけるいくつかの動作は、組み合わせられ得、および／またはいくつかの動作の順序は、変更され得る。
【００５９】
いくつかの実装形態において、コンピューティングデバイスは、ディスプレイ上にグラフィカルユーザインターフェースを表示する（６０３）。例えば、コンピューティングデバイスは、図１に示されるグラフィカルユーザインターフェース１００を表示する。
【００６０】
コンピューティングデバイスは、ユーザから受信された自然言語入力を分析して、第１の用語を含む第１のフレーズに対応する自然言語入力の一部を識別する（６０４）。いくつかの実装形態において、自然言語入力は、グラフィカルユーザインターフェース１００におけるユーザインターフェースコントロール１２０において受信される（６０６）。いくつかの実装形態において、自然言語入力の少なくとも一部がユーザによってタイプされる。いくつかの実装形態において、自然言語入力の少なくとも一部は、コンピューティングデバイスによって提供される複数のオプションから、ユーザによって選択される。いくつかの実装形態において、自然言語入力の一部のみがユーザから受信され、自然言語入力は、コンピューティングデバイスによって自動的に完成される（例えば、コンピューティングデバイスは、自然言語入力をどのように完成させるかを予測および／または提案する）。例えば、ユーザは「ｓｕｍ  ｏｆ  Ｎｕｍｂｅｒ  ｏｆ  Ｒｅｃｏｒｄｓ」、「ｂｙ  Ｒｅｇｉｏｎ」、および「ｓｏｒｔ」を入力（例えば、タイプ）し得、コンピューティングデバイスは、ユーザ入力に基づいて、デフォルトのフレーズ（例えば、「Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ（アルファベット順の地域）」）により自然言語入力を完成させる。いくつかの実装形態において、自然言語入力は、２つ以上の異なるフレーズを含む（６０８）。例えば、図１に示されている自然言語入力（例えば、表現）は、「ｓｕｍ  ｏｆ  Ｎｕｍｂｅｒ  ｏｆ  Ｒｅｃｏｒｄｓ」、「ｂｙ  Ｒｅｇｉｏｎ」、および「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」という３つの異なるフレーズで構成されている。いくつかの実装形態において、グラフィカルユーザインターフェース１００は、各フレーズを別個のユーザインターフェース要素（例えば、テキストボックス）に表示することによって、２つ以上の異なるフレーズを区別する。
【００６１】
いくつかの実装形態において、第２の入力を受信する前に、コンピューティングデバイスは、自然言語入力に従って、更新されたデータ可視化とは異なる初期データ可視化を表示する（６１０）。例えば、図３Ａに示すデータ可視化（例えば、棒グラフ）は、グラフィカルユーザインターフェースに表示される。データ可視化は、自然言語入力に従って表示される（例えば、棒グラフは、地域別のレコード数をアルファベット順に並べ替えて示している）。
【００６２】
コンピューティングデバイスは、ユーザから、第１のフレーズにおける第１の用語を修正する第２の入力を受信する（６１１）。第２の入力を受信することに応答して、コンピューティングデバイスは、第２の入力に基づいて（自然言語入力において）第２のフレーズを更新する（６１４）。いくつかの実装形態において、第２のフレーズは、ユーザ入力なしで自動的に更新される。いくつかの実装形態において、第２のフレーズを更新する前に、コンピューティングデバイスは、第２の入力が第２のフレーズをどのように更新するかを示す（例えば、グラフィカルユーザインターフェース上で）。例えば、コンピューティングデバイスは、第１のフレーズ（例えば、「ｂｙ  Ｃｏｕｎｔｒｙ」）を削除することにより、コンピューティングデバイスが第２のフレーズ（例えば、「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」）も（例えば、自動的に）削除することをユーザに示す。この指示は、異なるフレーズが互いにどのように依存するか（例えば、影響するか）をユーザに示す。
【００６３】
いくつかの実装形態において、第２の入力は、第１の用語を置き換える第２の用語を含む（６１２）。いくつかの実装形態において、第２の用語に基づいて第２のフレーズを更新することは、第２のフレーズから第３の用語を削除し、第２の用語を第２のフレーズに追加して、第３の用語を置き換える（６２２）。例えば、コンピューティングデバイスは、第１のフレーズへの変更に一致するように、第２のフレーズの少なくとも一部を更新する。例えば、図３Ｂ〜図３Ｄは、第１のフレーズ（例えば、「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」）の第１の用語（例えば、「Ｒｅｇｉｏｎ」）が第１の用語を第２の用語（例えば、「Ｃｏｕｎｔｒｙ」）に置き換えることによって修正された、グラフィカルユーザインターフェースの一連のスクリーンショットを示している。例えば、ユーザは、図３Ｃで、第２の入力を提供する（例えば、ドロップダウンメニューに提示される用語のセットから「Ｃｏｕｎｔｒｙ」を選択する）。選択された第２の用語（例えば、国）は、自然言語入力の第１の用語（例えば、地域）を修正する（例えば、置き換える）。第１のフレーズ（例えば、「ｓｏｒｔ  Ｒｅｇｉｏｎ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」）の第１の用語（例えば、「Ｒｅｇｉｏｎ」）を置き換えるために、第２の用語（例えば、「Ｃｏｕｎｔｒｙ」）を選択するユーザからの第２の入力に応答して、コンピューティングデバイスは、第３の用語を置き換えるために（例えば、「ｂｙ  Ｒｅｇｉｏｎ」が「ｂｙ  Ｃｏｕｎｔｒｙ」で置き換えられる）、第２のフレーズ（「ｂｙ  Ｒｅｇｉｏｎ」）から第３の用語（例えば、Ｒｅｇｉｏｎ）を削除し、かつ、第２のフレーズに第２の用語（「Ｃｏｕｎｔｒｙ」）を追加することによって、第２のフレーズ（例えば、「ｂｙ  Ｒｅｇｉｏｎ」）を更新する。図３Ｄは、結果として得られる自然言語入力を示しており、そこでは、第２の入力が第１のフレーズを「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」に修正したことに応じて、第２のフレーズ「ｂｙ  Ｒｅｇｉｏｎ」が「ｂｙ  Ｃｏｕｎｔｒｙ」に更新されている。
【００６４】
いくつかの実装形態において、第２の入力は、第１のフレーズの第１の用語を削除する（６１３）。いくつかの実装形態において、第２の用語に基づいて第２のフレーズを更新することは、第２のフレーズを削除する（６２４）。例えば、図３Ｅおよび図３Ｆは、グラフィカルユーザインターフェースの一連のスクリーンショットを示し、そこでは第１のフレーズにおける第１の用語（例えば、「ｂｙ  Ｃｏｕｎｔｒｙ」というフレーズの「Ｃｏｕｎｔｒｙ」という用語）が削除される（例えば、フレーズを削除するために、フレーズテキストボックス内のフレーズの隣りにある「×」を選択するユーザ入力によって示されるように）。いくつかの実装形態において、第１のフレーズのすべて（例えば、第１の用語を含む）が第２の入力によって削除される。いくつかの実装形態において、第１のフレーズを削除することに応答して（例えば、「ｂｙ  Ｃｏｕｎｔｒｙ」）、コンピューティングデバイスは第２のフレーズを更新する。例えば、コンピューティングデバイスは、第１のフレーズ「ｂｙ  Ｃｏｕｎｔｒｙ」が第２の入力によって削除されたために、第２のフレーズ（例えば、「ｓｏｒｔ  Ｃｏｕｎｔｒｙ  ｉｎ  ａｌｐｈａｂｅｔｉｃａｌ  ｏｒｄｅｒ」）を削除する。
【００６５】
いくつかの実装形態において、コンピューティングデバイスは、データベース内で検索を実行して、第２のフレーズが第１のフレーズの第１の用語に依存していると判定する（６１６）。第２のフレーズの更新は、第２のフレーズが第１のフレーズの第１の用語に依存しているという判定に従って実行される。いくつかの実装形態において、第２のフレーズを修正せずに第１のフレーズを修正してエラー状態が発生する場合、第２のフレーズは第１のフレーズの第１の用語に依存している。例えば、コンピューティングデバイスは、更新された自然言語入力がデータ可視化を生成できるように、第２のフレーズを更新する。
【００６６】
第２の入力に基づいて第２のフレーズを更新することに応答して（６２６）、コンピューティングデバイスは、グラフィカルユーザインターフェース上に、修正された第１のフレーズおよび更新された第２のフレーズを含む、更新された自然言語表現を表示し（６２８）、更新された自然言語表現を表す更新されたデータ可視化を表示する（６３０）。例えば、図３Ａは、地域別のレコード数を示す自然言語入力を表す初期データ可視化を示し、図３Ｄは、国別のレコード数を示す、更新された自然言語入力を表す更新されたデータ可視化を示す。別の例として、図３Ｅは、第２の入力の前の棒グラフとしての初期データ可視化を示し、図３Ｆは、第２の入力に応答して第２のフレーズが更新された後の、更新されたデータ視覚化（例えば、「４０，６６０」を示すテキストテーブル）を示す。
【００６７】
いくつかの実装形態において、第２のフレーズは、第１のフレーズのサブ部分を含み、第２の入力に基づいて第２のフレーズを更新することは、第１のフレーズのサブ部分を更新することを含む（６１８）。例えば、第１のフレーズは、第１の用語を含み、さらに第２のフレーズを含む。したがって、第２の入力に応答して、コンピューティングデバイスは、同じフレーズ（例えば、第１のフレーズ）内の別の用語を更新する。
【００６８】
いくつかの実装形態において、第１のフレーズおよび第２のフレーズは異なるフレーズである（６２０）。例えば、図３Ａ〜図３Ｆを参照して上述した例は、第１のフレーズが第２のフレーズとは異なる事例を示している（例えば、第２のフレーズは第１のフレーズのサブ部分ではない）。
【００６９】
図７は、いくつかの実装形態による、自然言語表現のフィルタ条件を更新する方法７００を示している。方法７００は、プロセスとも称される。いくつかの実装形態において、この方法は、ディスプレイと結合されたコンピューティングデバイスで実行され、かつ行われる（７０２）。コンピューティングデバイスは、１つ以上のプロセッサおよびメモリを有する（７０２）。メモリは、１つ以上のプロセッサによる実行用に構成された１つ以上のプログラムを格納する。コンピューティングデバイスによって行われる方法７００は、任意選択で、非一時的なコンピュータ可読記憶媒体に格納される命令によって支配される。命令は、コンピューティングデバイスの１つ以上のプロセッサによって実行される。図７に示される動作の各々は、コンピュータメモリまたは非一時的なコンピュータ可読記憶媒体（例えば、コンピューティングデバイス２００のメモリ２１４）に格納された命令に対応し得る。コンピュータ可読記憶媒体は、磁気もしくは光ディスク記憶デバイス、フラッシュメモリなどの固体記憶デバイス、または他の１つ以上の不揮発性メモリデバイスを含み得る。コンピュータ可読記憶媒体に格納された命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または１つ以上のプロセッサによって解釈される他の命令フォーマットのうちの１つ以上を含み得る。方法７００におけるいくつかの動作は、組み合わせられ得、および／またはいくつかの動作の順序は、変更され得る。
【００７０】
いくつかの実装形態において、コンピューティングデバイスは、ディスプレイ上にグラフィカルユーザインターフェースを表示する（７０４）。例えば、コンピューティングデバイスは、図１に示されるグラフィカルユーザインターフェース１００を表示する。
【００７１】
コンピューティングデバイスは、ユーザから、第１のデータフィールド、関係、および第１の比較値を含むフィルタを指定する自然言語入力を受信する（７０６）。いくつかの実装形態において、自然言語入力は、グラフィカルユーザインターフェース１００のユーザインターフェースコントロール１２０において受信される。いくつかの実装形態において、自然言語入力の少なくとも一部はユーザによってタイプされる。いくつかの実装形態において、自然言語入力の少なくとも一部は、コンピューティングデバイスによって提供される複数のオプションから、ユーザによって選択される。いくつかの実装形態において、自然言語入力の一部のみがユーザから受信され、自然言語入力は、コンピューティングデバイスによって自動的に完成される（例えば、コンピューティングデバイスは、自然言語入力をどのように完成するかを予測および／または提案する）。例えば、ユーザは、第１のデータフィールドを入力することができ、コンピューティングデバイスは、第１のフィールドに基づいて比較値を自動的に生成する（例えば、追加する）。例えば、図５Ａに示されている自然言語入力は、「ｗｉｔｈ  Ｃｏｕｎｔｒｙ  ｉｎ  Ａｒｇｅｎｔｉｎａ（アルゼンチンの国と）」という第３のフレーズ５０２−３を含む。第１のデータフィールドは、「Ｃｏｕｎｔｒｙ」に対応し、比較値は、「Ａｒｇｅｎｔｉｎａ」である。図５Ａを参照して説明したように、いくつかの実装形態において、自然言語入力は自然言語テンプレートと一致する（例えば、使用されているフィルタのタイプを識別するため）。
【００７２】
この例において、第１のデータフィールドのドメインは、比較値を含む（７０８）。例えば、第１のデータフィールド「Ｃｏｕｎｔｒｙ」のドメインは、「Ａｒｇｅｎｔｉｎａ」を含む国名で構成されている。
【００７３】
いくつかの実装形態において、フィルタ指定への更新を受信する前に、コンピューティングデバイスは、指定されたフィルタを適用する、更新されたデータ可視化とは異なる初期データ可視化を表示する（７１０）。例えば、図５Ａは、マップデータ可視化を示す（例えば、ウィジェットの背後に部分的に隠されている）。
【００７４】
コンピューティングデバイスは、ユーザ入力を受信し、フィルタ内の第１のデータフィールドを第２のデータフィールドと置き換える（７１１）。場合によっては、第２のデータフィールドは、第１のデータフィールドとは異なるデータタイプを有する（７１２）。例えば、図５Ｂに示すように、ユーザは第１のデータフィールド「Ｃｏｕｎｔｒｙ」５１４を「Ｐｏｐｕｌａｔｉｏｎ」５３４に置き換える。この例において、第１のデータフィールド「Ｃｏｕｎｔｒｙ」はカテゴリデータタイプ（例えば、範囲）であるが、データフィールド「Ｐｏｐｕｌａｔｉｏｎ」は定量データタイプ（例えば、計量）である。したがって、第１のデータフィールドから第２のデータフィールドに切り替えると、データのタイプをカテゴリデータから定量データに変更する必要がある。ユーザ入力が定量データからカテゴリデータに切り替わる可能性もあることを理解されたい。場合によっては、ユーザ入力は、フィルタで使用されるデータのデータタイプを変更しない。例えば、図５Ｃおよび図５Ｄは、ユーザがデータフィールド「Ｃｏｕｎｔｒｙ」からデータフィールド「Ｃｏｎｔｉｎｅｎｔ」に切り替えることを示しており、どちらもカテゴリデータを有する。場合によっては、切り替えがデータのタイプを変更しないという判定に従って、比較値は更新されない（例えば、比較値５５６は、図５Ｃおよび図５Ｄにおいて「Ｓｏｕｔｈ」のままである）。場合によっては、データフィールドへの切り替えがデータのタイプを変更しない場合、比較値は、第２のデータフィールドのドメインに含まれる用語に更新される。例えば、データフィールドが「Ｃｏｕｎｔｒｙ」から「Ｃｏｎｔｉｎｅｎｔ」に切り替えられ、初期比較値が「Ａｒｇｅｎｔｉｎａ」（例えば、「Ｃｏｎｔｉｎｅｎｔ」のドメインに含まれていない値）であった場合、更新された比較値は、「Ｓｏｕｔｈ  Ａｍｅｒｉｃａ（南米）」に変更される。
【００７５】
第１のフィールドへの更新を受信することに応答して、コンピューティングデバイスは、第１の比較値を第２の比較値に自動的に置き換える（７１４）。例えば、図５Ａおよび図５Ｂにおいて、第１のデータフィールド「Ｃｏｕｎｔｒｙ」から第２のデータフィールド「Ｐｏｐｕｌａｔｉｏｎ」へのユーザ入力切り替えに応答して、コンピューティングデバイスは、関係を「ｉｎ（において）」から「ａｔ  ｌｅａｓｔ」５３６に自動的に更新し、「Ａｒｇｅｎｔｉｎａ」を１０，０００に変更する。したがって、コンピューティングデバイスは、関係および比較値を更新して、第２のデータフィールドに一致させる。例えば、ユーザは、第１のフィールドを変更した後、フィルタに対応する第２のフィールドを手動で更新しない。これにより、ユーザにカテゴリフィルタと定量的フィルタとの間の違いを理解させる必要のない、データ可視化を生成する直感的な方法を提供する。代わりに、コンピューティングデバイスは、ユーザのデータフィールドの選択に基づいて、どのフィルタ（例えば、定量的または定性的）を適用するかを判定する。このように、ユーザがデータフィールドを異なるデータタイプに切り替えると、コンピューティングデバイスは、エラーの発生を防ぐために、対応する比較値を自動的に更新する。場合によっては、第１のデータフィールドは、定量データタイプを有し（７１６）、第２のデータフィールドは、カテゴリデータタイプを有する（７１６）。場合によっては、第１のデータフィールドはカテゴリデータタイプを有し（７１８）、第２のデータフィールドは定量データタイプを有する（７１８）。例えば、図５Ｂは、カテゴリデータタイプ（例えば、「Ｃｏｕｎｔｒｙ」）を有する第１のデータフィールドから定量データタイプ（例えば、「Ｐｏｐｕｌａｔｉｏｎ」）を有する第２のデータフィールドにユーザが切り替えることを示している。
【００７６】
場合によっては、第１のデータフィールドから第２のデータフィールドへの切り替えはまた、フィルタによって使用される関係の変更（７２０）を必要とする。例えば、「ｃｏｎｔａｉｎｓ（含む）」は、カテゴリデータフィールドでは意味のある関係であるが、定量データフィールドでは意味のある関係ではない。
【００７７】
いくつかの実装形態において、コンピューティングデバイスは、比較値のデフォルト値を識別する。例えば、コンピューティングデバイスは、この数が平均的な人口と比較されるという事実に基づいて、デフォルト値として１０，０００を選択する。いくつかの実装形態において、コンピューティングデバイスは、データベースおよび／またはデータソースに格納された情報に基づいて（例えば、データフィールドのデータ値のサンプリングを使用して）デフォルト値を選択する。いくつかの実装形態においては、ユーザは、デフォルト値を更新する。いくつかの実装形態において、コンピューティングデバイスがデフォルト値を提供した後、ユーザは、自然言語表現における値を手動で修正する（例えば、フィルタを変更して）。
【００７８】
コンピューティングデバイスは、更新されたフィルタに対応する更新されたデータ可視化を表示する（７２２）。例えば、図５Ｂは、データフィールド「Ｐｏｐｕｌａｔｉｏｎ」と比較値１０，０００に従ってデータをフィルタリングする棒グラフデータ可視化（ウィジェットの後ろに部分的に隠れているなど）を示す。図５Ａおよび図５Ｂに示すように、図５Ａの初期データ可視化は、図５Ｂの更新されたデータ可視化とは異なる。
【００７９】
図８Ａ〜図８Ｊは、いくつかの実装形態による自然言語インターフェースにおいて使用されるウィジェットを示している。例えば、ウィジェット生成モジュール２３４は、グラフィカルユーザインターフェース１００においてユーザに表示されるウィジェットを動的に生成する。ウィジェットは、ユーザから受信された自然言語入力に部分的に基づいて生成される。コンピューティングデバイスは、自然言語入力の選択部分に基づいて適切なウィジェットタイプを識別する。このように、コンピューティングデバイスは、自然言語入力の一部を分析概念にマッピングして、分析概念に対応するウィジェットを生成する。自然言語入力に基づいてウィジェットを動的に生成することにより、ユーザには、入力が与えられた場合に意味のあるデータ可視化に変更するオプションが提供される。
【００８０】
例えば、図８Ａは、「Ｓｅｇｍｅｎｔｓ  ｉｎ  ｄｅｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ  ｂｙ  ｓａｌｅｓ（売上高の降順でセグメント）」を列挙するコントロール１２０で自然言語入力を受信することを示している。コンピューティングデバイスは、自然言語入力を分析（例えば、解析）し、「ｄｅｓｃｅｎｄｉｎｇ  ｏｒｄｅｒ（降順）」８００が、データを並べ替える分析概念（例えば、「Ｓｅｇｍｅｎｔｓ（セグメント）」）に対応することを識別する。したがって、コンピューティングデバイスは、「ｄｅｓｃｅｎｄｉｎｇ」オプション８０２、「ａｓｃｅｎｄｉｎｇ」オプション８０４、および「ａｌｐｈａｂｅｔｉｃａｌ」オプション８０６を含む複数の並び替えオプションをユーザに提供するウィジェットを生成する。この例においては、降順オプション８０２が選択されている。したがって、セグメントは、自然言語の入力で示されるように、売上高の降順で並べ替えられる。
【００８１】
図８Ｂは、ウィジェットを生成する別の例を示している。自然言語のフレーズ「ｔｏｐ  ２０  Ｓｅｇｍｅｎｔｓ（上位２０セグメント）」が、コンピューティングデバイスによって受信される。コンピューティングデバイスは、「ｔｏｐ  ２０（上位２０）」８０８が分析概念の制限に対応すると判定する。したがって、コンピューティングデバイスは、ユーザが制限を入力することを可能にし、上限８１０と下限８１２の間で選択させるウィジェットを生成する。上限８１０が選択されているので、ユーザは、数量テキストボックス８１３にいくつの上位値が入るかを入力することができる。ここで、自然言語フェーズは、上位２０の制限を指定する。ウィジェットは、ユーザが制限を選択および設定し、自然言語フレーズを修正するためのユーザフレンドリーな方法を提供する。
【００８２】
図８Ｃは、フィールドリストウィジェットの例を示している。例えば、自然言語の入力は、フィールド「ｓａｌｅｓ（売上高）」８１４を含むのみである。いくつかの実装形態において、フィールドリストウィジェットは、コンテンツに依存するすべての関連フィールドをエリア８１６にリストするスクロール可能なウィジェットを備える。ウィジェットは、ユーザがリスト内のフィールドをフィルタリングすることを可能にするサーチボックス８１８と、データタイプに従って表示されたフィールドをフィルタリングするためのデータタイプドロップダウン８２０とを含む。いくつかの実装形態において、ウィジェットは、ユーザが集計タイプを選択することを可能にする集計ドロップダウン８２２を含む。例えば、定量的集計では、合計、平均、中央値、総数、個別の総数、最小、最大、またはなし（集計なし）を指定できる。日付の集計では、年、四半期、四半期名、月、月名、日、月の日、週、週番号、曜日、時間、日の時間、分、時間の分、秒、分の秒、正確な日付などを指定できる。例えば、図８Ｄは、「Ｏｒｄｅｒ  Ｄａｔｅ（注文日）」フィールド８２４が「ｗｅｅｋ  ｎｕｍｂｅｒ（週番号）」によってフィルタリングされ得ることを示している。データタイプドロップダウン８２６は、エリア８２８およびサーチバーに示されるフィールドを制限する。
【００８３】
図８Ｅ〜図８Ｇは、日付フィルタウィジェットの例である。いくつかの実装形態において、ウィジェットは、上部に、特定の値、相対日付、および絶対日付の３つのタブを含む。図８Ｅ〜図８Ｇに示されているウィジェットは、選択されているタブに応じて表示されるウィジェットの様々なインターフェースである。各タブは、特定のタイプの日付フィルタリングに関連するパラメータを指定するためのドロップダウンを含む。
【００８４】
図８Ｈは、定量的フィルタの例を示している。例えば、「ａｔ  ｌｅａｓｔ  ＄１００（少なくとも＄１００）」というフィールドは、定量的フィルタに対応するようにコンピューティングデバイスによって解析される。いくつかの実装形態において、ウィジェットは、「ｂｅｔｗｅｅｎ（間）」８５２、「ａｔ  ｌｅａｓｔ」８５４、および「ａｔ  ｍｏｓｔ（最大で）」８５６の３つのオプションを含む。ウィジェットはまた、スライダー８６０（例えば、フィールドの最小値および／または最大値を示す）および編集可能なテキスト入力ボックス８５８などのユーザインターフェース要素を含む。
【００８５】
図８Ｉおよび図８Ｊは、日付ではないカテゴリフィルタの例である（例えば、カテゴリフィルタに対応する自然言語入力８６２に基づく）。いくつかの実装形態において、ウィジェットは、上部に１つ以上のタブを有する（例えば、特定の値８６４およびワイルドカード８７０）。このウィジェットにより、ユーザは、特定の値リスト８６５に表示されるデータ値の「Ａｌｌ（すべて）」８６６または「Ｎｏｎｅ（なし）」８６８を容易に選択することができる。いくつかの実装形態において、カテゴリフィールドが日付であるという判定に従って、ウィジェットはまた、絶対日付フィルタまたは相対日付フィルタに切り替えるオプションを含む。
【００８６】
本明細書で本発明の説明に使用される専門用語は、特定の実装形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明の説明および添付の特許請求の範囲で使用される場合、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、特に文脈が明示しない限り、複数形も含むことが意図される。本明細書で使用される「および／または」という用語は、１つ以上の関連するリストされたアイテムのありとあらゆる可能な組み合わせを指し、それらを包含することも理解されよう。本明細書で使用される場合、「含む」および／または「含んでいる」という用語は、述べられた特徴、ステップ、動作、要素、および／または構成要素の存在を指定するが、１つ以上の他の特徴、ステップ、動作、要素、構成要素、および／またはそれらの群の存在または追加を排除しないことがさらに理解されよう。
【００８７】
前述の記載は、説明の目的で、特定の実装形態を参照して記載されてきた。しかしながら、上記の例示的な論議は、網羅的であること、または本発明を開示された正確な形態に限定することを意図していない。上記の教示を考慮して、多くの修正および変形が可能である。実装形態は、本発明の原理およびその実際の応用を最もよく解説するために選択および記載され、それにより、当業者は、本発明および企図される特定の用途に好適な様々な修正を伴う様々な実装形態を最大限に利用できる。
【図１】
2022500751.tif 000003
【図２】
2022500751.tif 000004
【図３Ａ】
2022500751.tif 000005
【図３Ｂ】
2022500751.tif 000006
【図３Ｃ】
2022500751.tif 000007
【図３Ｄ】
2022500751.tif 000008
【図３Ｅ】
2022500751.tif 000009
【図３Ｆ】
2022500751.tif 000010
【図４Ａ】
2022500751.tif 000011
【図４Ｂ】
2022500751.tif 000012
【図４Ｃ】
2022500751.tif 000013
【図４Ｄ】
2022500751.tif 000014
【図４Ｅ】
2022500751.tif 000015
【図５Ａ】
2022500751.tif 000016
【図５Ｂ】
2022500751.tif 000017
【図５Ｃ】
2022500751.tif 000018
【図５Ｄ】
2022500751.tif 000019
【図６Ａ】
2022500751.tif 000020
【図６Ｂ】
2022500751.tif 000021
【図７】
2022500751.tif 000022
【図８Ａ】
2022500751.tif 000023
【図８Ｂ】
2022500751.tif 000024
【図８Ｃ】
2022500751.tif 000025
【図８Ｄ】
2022500751.tif 000026
【図８Ｅ】
2022500751.tif 000027
【図８Ｆ】
2022500751.tif 000028
【図８Ｇ】
2022500751.tif 000029
【図８Ｈ】
2022500751.tif 000030
【図８Ｉ】
2022500751.tif 000031
【図８Ｊ】
2022500751.tif 000032
【手続補正書】
【提出日】令和3年6月9日(2021.6.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
ディスプレイと結合されているコンピューティングデバイスであって、１つ以上のプロセッサおよび前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリを有する、コンピューティングデバイスにおいて、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記自然言語入力に対応する自然言語表現を表示し、前記自然言語表現に従ってデータ可視化を表示することであって、前記データ可視化は、折れ線グラフ、円グラフ、棒グラフ、ツリーマップ、散布図、またはマップのうちの１つであることと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記修正された第１の用語を有する前記自然言語入力が有効であるかどうか判定するために依存性データベースにおいて検索を実行することによって、前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存していると判定することと、
前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存しているという前記判定に応答して、さらなるユーザ入力なしに、前記第２の入力において受信された前記第１の用語への前記修正に基づいて、前記自然言語表現を有効にするように前記自然言語表現における前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を含む、方法。
【請求項２】
前記自然言語入力が、前記グラフィカルユーザインターフェースにおけるユーザインターフェースコントロールで受信される、請求項１に記載の方法。
【請求項３】
前記自然言語入力が、２つ以上の異なるフレーズを含む、請求項１に記載の方法。
【請求項４】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を置き換える第２の用語を含む、請求項１に記載の方法。
【請求項５】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を削除することを含む、請求項１に記載の方法。
【請求項６】
前記第２の入力を受信する前に、前記第１および第２のフレーズに従って、前記更新されたデータ可視化とは異なる初期データ可視化を表示することをさらに含む、請求項１に記載の方法。
【請求項７】
前記第２のフレーズが、前記第１のフレーズのサブ部分を含み、前記第２の入力に基づいて前記第２のフレーズを更新することが、前記第１のフレーズの前記サブ部分を更新することを含む、請求項１に記載の方法。
【請求項８】
前記第１のフレーズおよび前記第２のフレーズが、異なるフレーズである、請求項１に記載の方法。
【請求項９】
前記第２の用語に基づいて前記第２のフレーズを更新することが、第３の用語を置き換えるために、前記第２のフレーズから前記第３の用語を削除することと、前記第２の用語を前記第２のフレーズに追加することと、を含む、請求項１に記載の方法。
【請求項１０】
前記第２の用語に基づいて前記第２のフレーズを更新することが、前記第２のフレーズを削除することを含む、請求項１に記載の方法。
【請求項１１】
ディスプレイと結合されたコンピューティングデバイスであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納するメモリと、を含み、前記１つ以上のプログラムが、
前記ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記自然言語入力に対応する自然言語表現を表示し、前記自然言語表現に従ってデータ可視化を表示することであって、前記データ可視化は、折れ線グラフ、円グラフ、棒グラフ、ツリーマップ、散布図、またはマップのうちの１つであることと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記修正された第１の用語を有する前記自然言語入力が有効であるかどうか判定するために依存性データベースにおいて検索を実行することによって、前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存していると判定することと、
前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存しているという前記判定に応答して、さらなるユーザ入力なしに、前記第２の入力において受信された前記第１の用語への前記修正に基づいて、前記自然言語表現を有効にするように前記自然言語表現における前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を行わせる命令を含む、コンピューティングデバイス。
【請求項１２】
前記自然言語入力が、２つ以上の異なるフレーズを含む、請求項１１に記載のコンピューティングデバイス。
【請求項１３】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を置き換える第２の用語を含む、請求項１１に記載のコンピューティングデバイス。
【請求項１４】
前記第１のフレーズにおける前記第１の用語を修正する前記第２の入力が、前記第１のフレーズにおける前記第１の用語を削除することを含む、請求項１１に記載のコンピューティングデバイス。
【請求項１５】
前記第２の入力を受信する前に、前記第１および第２のフレーズに従って、前記更新されたデータ可視化とは異なる初期データ可視化を表示させるための命令をさらに含む、請求項１１に記載のコンピューティングデバイス。
【請求項１６】
前記第２のフレーズが、前記第１のフレーズのサブ部分を含み、前記第２の入力に基づいて前記第２のフレーズを更新することが、前記第１のフレーズの前記サブ部分を更新することを含む、請求項１１に記載のコンピューティングデバイス。
【請求項１７】
前記第２の用語に基づいて前記第２のフレーズを更新することが、第３の用語を置き換えるために、前記第２のフレーズから前記第３の用語を削除することと、前記第２の用語を前記第２のフレーズに追加することと、を含む、請求項１１に記載のコンピューティングデバイス。
【請求項１８】
前記第２の用語に基づいて前記第２のフレーズを更新することが、前記第２のフレーズを削除することを含む、請求項１１に記載のコンピューティングデバイス。
【請求項１９】
１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムを格納する非一時的なコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、
ディスプレイにグラフィカルユーザインターフェースを表示することと、
第１の用語を含む第１のフレーズに対応する自然言語入力の一部分を識別し、かつ第２のフレーズに対応する前記自然言語入力の第２の部分を識別する、ユーザから受信された前記自然言語入力を分析することと、
前記自然言語入力に対応する自然言語表現を表示し、前記自然言語表現に従ってデータ可視化を表示することであって、前記データ可視化は、折れ線グラフ、円グラフ、棒グラフ、ツリーマップ、散布図、またはマップのうちの１つであることと、
前記第１のフレーズにおける前記第１の用語を修正する第２の入力を、前記ユーザから、受信することと、
前記第２の入力を受信することに応答して、前記修正された第１の用語を有する前記自然言語入力が有効であるかどうか判定するために依存性データベースにおいて検索を実行することによって、前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存していると判定することと、
前記第２の部分における前記第２のフレーズが前記第１のフレーズの前記第１の用語に機能的に依存しているという前記判定に応答して、さらなるユーザ入力なしに、前記第２の入力において受信された前記第１の用語への前記修正に基づいて、前記自然言語表現を有効にするように前記自然言語表現における前記第２のフレーズを更新することと、
前記第２の入力に基づいて前記第２のフレーズを更新することに応答して、
前記グラフィカルユーザインターフェース上に、前記修正された第１のフレーズおよび前記更新された第２のフレーズを含む更新された自然言語表現を表示することと、
前記更新された自然言語表現を表す更新されたデータ可視化を表示することと、を行わせるための命令を含む、非一時的なコンピュータ可読記憶媒体。
【国際調査報告】
2022500751.tif 000033
2022500751.tif 000034
2022500751.tif 000035
2022500751.tif 000036
2022500751.tif 000037