問題タブ [reasoning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
recursion - あいまいさを伴う再帰的な仮説構築 - それは何と呼ばれていますか?
私がよく遭遇する問題があります (データ分析または AI の幅広い分野で)。しかし、おそらく私は正式な CS のバックグラウンドを持っていないため、名前を付けることはできません。ご容赦ください。2 つの例を挙げます。
自然言語の構文解析を想像してください:
各単語を取得し、そのタイプとそれらの間の関係を判断するプログラムがあります。この文を解釈するには、次の 2 つの方法があります。
通常の SVO 語順を使用する、または
より詩的な世界秩序を使用しています。プログラムは、動詞としての "flower" など、"the" の後に続くため、他の可能性を除外します。次に、残りの可能性をランク付けします。1) 2) よりも自然な語順であるため、より多くのポイントを獲得します。しかし、花は牛を食べられないという世界の知識を含めて、2) はまだ勝ちます。したがって、両方の仮説が返され、1) 30 のスコアと 2) 70 のスコアが返される場合があります。
次に、両方の仮説を記憶し、テキストの解析を続けて分岐します。1 つのブランチは 1)、1 つの 2) を想定しています。分岐が矛盾に達した場合、またはランキングが ~0 になった場合、その分岐は破棄されます。最後に、ランク付けされた仮説を再び提示しますが、テキスト全体に対してです。
別の例として、光学式文字認識を想像してください。
ストロークを見て、確かにこれは「H」だと言えます。H を特定した後、その周りに汚れがあることに気付き、少し低いスコアを付けました。
または、最初に汚れ認識を実行して、水平線がアーティファクトのように見えることに気付くこともできます。ll
削除後、これがまたはであると認識し、Il
ランク付けします。
画像全体を処理するとHlumination
、 、lllumination
またはになりIllumination
ます。辞書と総合ランキングを使って、これが最後だと判断します。
- 一般的な問題は、常にある種の解析/理解です。例:
- 自然言語または曖昧言語
- OCR
- 経路探索
- あいまいまたは不完全なユーザー入力への対処 - どの解釈が理にかなっており、最も妥当な解釈はどれか?
- 私は再帰的です。
- 早期に救済できます (分岐/解釈が意味をなさない場合、または確実にスコアが 0 になる場合)。だから、それはおそらくある種のバックトラックです。
- あいまいさを考慮して、すべてのオプションを念頭に置いています。
- 下部の簡単なルールに基づいています
can_eat(cow, flower) = true
。 - 解釈の妥当性ランキングを保持します。
- メタ レベルで再帰的です。データの次の部分を処理するときに、さまざまな仮説を想定するさまざまな「世界」に分岐/分岐できます。
- おそらくベイジアン確率を使用して、個々のランキングを従属仮説に転送します。
- 実際には、これをトレーニングし、ランキング係数を決定する方法があり、ツリーが大きくなりすぎるとカットオフが発生します。
これが何と呼ばれているのかわかりません。「決定木」または「再帰的降下」を推測する人もいるかもしれませんが、これらの用語が異なる意味を持っていることは知っています。
家系図や誰が誰のおじなのかを調べるなど、Prolog がこのような単純なケースを解決できることは知っています。しかし、すべてのデータをコードで提供する必要があり、私の実際のケースでこれを行うのに十分なほど便利でも強力でもないようです。
この問題は何と呼ばれているのか知りたいのですが、これに対処するための一般的な戦略はありますか? このトピックに関する優れた文献はありますか? 理想的には C(++)、Python 用のライブラリはありますか?一連のルールを定義するだけで、すべてのランキングと仮説を解決できますか?
java - OWLIM-lite はステートメントを推論しません
owl2rl オントロジー推論に OWLIM-lite (5.2) を使用しています。公理の保存は機能しているようで、リポジトリは初期化されていますが、システムは暗黙的なステートメントを推論しません (暗黙的なステートメントの数を照会すると、システムは 0 を返します)。
また、リポジトリにクエリを実行しようとしましたが、システムは明示的な知識のみを返しました。オントロジーを RDF/XML にシリアル化し、Pellet を使用して Protege で推論したところ、期待される (暗黙的 + 明示的) 値が正常に返されました。
提案をありがとう。
構成:
リポジトリの初期化:
オントロジーの読み込み方法:
新しい知識の保存:
web-services - OWL API - Web サービス検出のコンテキストでの OWL クラスの包含テスト
私は非常に困難な仕事を前にしているので、どんな助けや提案も歓迎します.
セマンティックの類似性のために、他の2つのWebサービスと一致するJava Webサービスを実装する必要があります。これらの他の 2 つの Web サービスについては、OWL オントロジーの概念を使用する OWL-S で説明します。S1 は探している Web サービス (私のクエリ) で、S2 はリポジトリにあるサービス (宣伝されている) です。そのため、Java コードから OWL-S 記述と OWL オントロジーにアクセスする必要があります。
私は Eclipse、Tomcat、OWL API、および HermiT セマンティック推論を使用しています。
私は非常に原始的なマッチング アルゴリズムを持っています。その主な目標は、サービス S1 の入力と出力を S2 の入力と出力と一致させることです。
私はこのテーマの初心者であり、OWL API を使用したことも、オントロジーに取り組んだこともありません。
私の現在のやることリスト: 1. OWL-S からプロセス・パラメーター・タイプ (OWL クラス) をロードします。S1 入力が C1 のタイプで、S2 入力が C2 のタイプであるとします。2. クラス C1 と C2 が私のオントロジー O にあるかどうかを確認します。
これらのタスクについて、見つけられなかったコード例またはスニペットをいただければ幸いです。特に、クラス C2 がクラス C1 を包含しているかどうかをチェックします。
よろしく
rdf - OWLでExcluded Byを使用する
親愛なるセマンティック Web 関係者へ
私は、OWL で「除外対象」構造をどのように定義できるか自問自答しています。今のところ、私が考えることができる唯一の解決策は、disjointWith を使用することです。「除外」の意味は、コード例に示されています。House オブジェクトは、Roof、Wall、Windows、および Floor の交差点です。したがって、これらのクラスのいずれかが欠落した場合、その個人はハウスにはなりません。しかし、特定の共通部分の欠落しているクラスが true になる可能性があるため、推論者は推論をさらに進めます。一方、House クラスは Tsunami クラスと disjointWith の関係にあります。私の個人が津波クラスであるとき、私は私の個人が決してハウスクラスにならないことを直接知っています. これは、「除外者」について話すときに期待する動作です。でも、もしかしたら、これについて別の意見を持っている人もいるのでは?
よろしく、 Martijn van der Plaat
hadoop - 分散システムにおけるセマンティック Web の推論
Hadoop プラットフォームでWeb スケールの Parallel Inference Engine (WebPIE) 推論を使用したいと考えています。2 つの Ubuntu 仮想マシンで Hadoop 構造を既に実装しており、うまく機能しています。WebPie を使用して RDF ファイルを推論したい場合、シーケンス ファイル形式が必要なためプロセスが失敗します。WebPIE チュートリアルでは、Hadoop で推論するための前提条件として、シーケンス ファイル形式については何も言及していません。Sequence ファイル形式を生成するために、次のコードを書きました。
このコードは、いくつかの RDF ファイルで正しいシーケンス ファイル形式を生成しますが、100% 正しく機能せず、破損したファイルを生成することもあります。このコードを回避するための最初からの解決策はありますか? また、存在しない場合、入力として RDF ファイルで正しく動作するようにこのコードを改善するにはどうすればよいですか?
owl - オントロジーの利点は推論だけですか
私はオントロジーを初めて使用します。私の要件は、保険ドメインの概念とそれらの間の関係を収集することであり、Protegeを使用してドメインの概念をキャプチャしています。これで、保険ドメインの OWL ファイルができました。
今、私はそれから得ることができる利点が何であるかを知りたい. 私はネットで検索し、推論が利点であることを知りました。
私は質問に間違っているかもしれませんか?オントロジーをよりよく理解するためのガイダンスが必要です。
jena - データを Jena TDB に保存し、推論を使用する
RDF として OWL オントロジー ファイルがあり、データを TDB に保存し、推論を使用したいと考えています。実際、これは今のところ単純に聞こえます:)
しかし、ここに私が混乱している点があります:
TDB を作成し、いくつかのステートメントを SPARQL 経由で保存しました。次に、モデルと OWL Reasoner を介して TDB をロードしようとしました。
API 経由で新しいリソースを作成すると、TDB に保存されません。そして、SPARQL を介して追加されたステートメントを確認できませんか?! SPAQRL ステートメントには、SPARQL で追加したエントリのみが表示されます
これは、API で追加されたリソースのみを返します
System.out.print("インスタンス: " + ontModel.getResource(NS + "TestItem"));
そして、これを呼び出すと:
次の例外が発生します。
誰かがその行動を説明できますか? または、OntModel を使用してスキーマと日付を TDB で正しい方法で分離する方法を教えてください。
java - Jena API を使用した基本的な RDFS 推論
現在、Jena API 推論チュートリアルに従っています。
https://jena.apache.org/documentation/inference/
私の理解度をテストするための演習として、最初の例を書き直したいと思います。これは、プログラムで構築されたモデルからの単純な RDFS 推論を示しています。
同じことを行うものに、代わりにこの Turtle ファイルから読み取ったモデルを使用します (これは上記の私自身の翻訳であるため、バグがある可能性があります)。
このコードで:
これは正しいアプローチではないようです (特に、q
プロパティの抽出が正しくないのではないかと思います)。私は何を間違っていますか?
sparql - Jena OWL reasoner に関する問題
私はイエナを初めて使用しますが、現在いくつかの問題に遭遇しています。スーパークラスQuery Processingとその 4 つのサブクラスがあります。
- クエリ処理
- — クエリの意図
- — クエリの再構築
- — クエリ表現
- — クエリの提案
私が使用する場合:
または、他の3つのサブクラスを述語として使用するinQueryReformulation
と、正しい答えが得られます。
ただし、?article Article:inQueryProcessing ?category
サブクラス QueryProcessing に関連するすべての個人を返す必要があるものを使用すると、何も得られませんでした。inQueryIntent
(およびその他の 3 つ) とinQueryProcessing
は、オブジェクトのプロパティです。
これが私のコードです:
オントロジーのスニペットは次のとおりです。
オブジェクトのプロパティ:
クラス:
個人:
私は ComputerScience でドメイン オントロジーを構築しただけです。すべてのクラスは概念であり (クエリ処理はスーパークラスであり、クエリの意図/再定式化/... はサブクラスです)、すべての論文とそれに対応する著者は個人です。