2017-03-24 8 views
-1

私は、プロテジェ、フセキサーバー、およびPHPを使用して大豆病気分析の意思決定支援システムを開発しようとしています。私はユーザーからの入力を受け取り、リテラルの照合に基づいて病名を返すことを望みます。私がしようとしているクエリは次のとおりです。ユーザー入力をtripplestoreデータと一致させる

$sparql = "PREFIX : <http://localhost/soy_test1#> 
     select ?Diaporthe_stem_canker where {?Diaporthe_stem_canker :hasTOC ' . TOC . ' . ' . TOC .' :hasTOC 'July'}"; 

それは、常に関係なく入力が何であるかDiaporthe_stem_cankerを返しません。私は、sparqlクエリのエラーを見つけることを試みています。どんな助けもありがとう。

ありがとうございました。

編集

次のように私が持っているオントロジーは以下のとおりです。

植物の大豆は、いくつかの植物の記述子によって記述されています。植物記述子には、いくつかの属性値を持ついくつかのタイプがあります。

例:PlantDescriptorと属性がオントロジーの概念である

:PlantDescriptor :hasType "EnvironmentalDescriptors" . 
:PlantDescriptor :hasAttribute :TOC . 
:PlantDescriptor :hasTOC "July" . 
:TOC rdfs:subClassOf :Attribute . 

"TOC"という属性の入力をユーザーから受けようとしていますが、これは "7月"かどうかを一致させたいものです。それが7月と一致すれば病名Diaporthe-stem-cankerを返します。

文字列部分は、ユーザー入力テキストを値「7月」と照合するための部分です。だから私はSPARQL Queryの中でPHP変数として使ってきました。

私は私のクエリエンジンで使用されるクエリは、このようなものです:

時間、属性の概念とそれに対応する属性のPlantDescriptorの種類のURLの下に値「7月」を返し
PREFIX : <http://localhost/soy_test1#> 
select distinct ?P ?X ?Time 
where {?PlantDescriptor :hasType ?P . 
     ?PlantDescriptor :hasAttribute ?X. 
     ?X :hasTOC "July" . 
     ?X :hasTOC ?Time .} 

? 。

希望私はより明確な点を述べました。

ありがとうございます。

+0

1.それが現在では読めないですが、ここでは実際のSPARQLクエリを表示してください:PHP(あなたの構文が何であるか全く分かりません(プログラミング言語固有のフォーム私が慣れていないいくつかのString操作。 2.サンプルデータを提供する3.あなたが期待しているものと、現在クエリーから得たものを提供します。 – AKSW

+0

あなたの応答をありがとう、私は編集を投稿した、どんな助けていただければ幸いです。申し訳ありませんが、現在私が得ている出力について言及するのを忘れていました...それは、入力として提供するすべてのもののためのdiease名を示しています。 – user1790

+0

最初の例では、TOCの値を設定しています。そうであれば、2番目のトリプルパターンは同じリテラルで始まります。これは最初のリテラルのオブジェクトです。 RDFトリプルでは、​​件名のリテラルは使用できません。 – AKSW

答えて

0

この例は、Diaporthe-stem-cankerを検索していると言われていますが、サンプルデータには含まれていないため、完全にはっきりしません。 Diaporthe-stem-cankerPlantDescriptorであると仮定すると、次のクエリはあなたが必要なものを得ることができる:

SELECT ?disease 
WHERE { 
    ?disease :hasTOC "July" . 
} 

そして、あなたの場合には「7月」の文字列を文字列に挿入され、あなたが使用していた場合は、次のようなものを持っているかもしれので、など

$sparql = "PREFIX : <http://localhost/soy_test1#> 
    select ?disease where {?disease :hasTOC " . $date . " . }" 

... $dateは「7月」にバインドされ、

+0

SPARQLでは、サンプルデータには必ずしもファクトを持つ必要はありません...このチュートリアルを確認してくださいhttp://www.semantic-web-journal.net/ system/files/swj1004.pdf。私のオントロジーは、この例に似ています。 – user1790

+0

ええと、私はあなたの質問に答えるのに役立つ良いデータセットを持っていることについて話しています。 – scotthenninger

+0

さて、私は自分が実際に探しているものについてはっきりとしています... $ _POST ['some_variable']をSPARQLコードブロックに含めるにはどうすればいいですか?私は、SPARQLを使用してPHPでフォームから提出された値をチェックしたいと思います。 – user1790

関連する問題