7

これは非常にばかげた質問のように聞こえますが、これを理解しようとしてきましたが、これについては何も見つかりませんが、これが実行可能であることは明らかです.

マンチェスター OWL 構文と HermiT 推論を使用して、API を介して OWL ファイルを照会するものを開発しています。または、Protege 4 の [DL クエリ] タブでクエリを実行して、そのファイルのクエリ結果を確認します。このファイルは基本的に、データ インスタンスが追加された Friend Of A Friend (FOAF) オントロジーです。

問題: 一意の識別子でインスタンスをクエリする方法が見つかりません。

これはURIであるはずなので、たとえば URI を持つ Person オブジェクトの場合 http://xmlns.com/foaf/0.1/Andrew_Kuchling、次のクエリを実行しようとしました:

Person and URI value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person value "http://xmlns.com/foaf/0.1/Andrew_Kuchling"

Person and URI value "Andrew_Kuchling"

Person that "Andrew_Kuchling"

これらのどれも機能しません。(URI は、入力した文字列にプレフィックスを付けることによって構築されhttp://xmlns.com/foaf/0.1/ます。URI は、実際にはオントロジーでプロパティとして識別されません)。

FOAF ではmbox_sha1sum、メールボックスの sha1sum です。メールボックスは、個人と一意に接続されています。そこで、次のクエリを試しました。

Person and mbox_sha1sum value "mbox_sha1sum-property-value-here"

ただし、クエリが正しくないと感じているため、このクエリを実行することさえありません。値は、このmbox_sha1sumPerson に追加したものと同じです。それは個人に存在します。

次のクエリを実行します。

Person and firstName value "Andrew"

すべてのデータ プロパティは特殊なデータ型ではありません。デフォルトではリテラルとして扱われます。

何が間違っているのか本当にわかりません。誰か助けてください。

4

1 に答える 1

7

この質問が 1 年以上前に投稿されたことは知っていますが、最近同じ質問をしたところ、次の解決策が見つかりました。

照会したい個人/メンバーの名前を中括弧で囲んでください:

{MyIndividualEntityName}

このようにして、一度に複数の個人を照会することもできます。

{IndividualName1,IndividualName2}

これらのクエリは、いわゆる列挙型クラスのクラス式を形成することに注意してください。これは、このクエリの結果が、クエリで名前を付けたすべての個人のすべてのスーパー クラスまたはサブ クラスの単なるリストではないことを意味します。代わりに、リストした個人だけで構成される匿名クラスを参照します。匿名クラスは、オントロジーの外部からは利用できないクラスです。これは、このクラスには参照可能なフクロウ エンティティがない (参照する IRI がない) ためです。

OWL マンチェスター構文の詳細については、公式のW3C 仕様を参照してください。

于 2012-06-26T15:27:09.693 に答える