2016-12-20 13 views
0

私はowlファイルクラスを持ち、個人は同じファイルにあります。 申し立ておよびユーザー(クラス)。 私は個人としてユーザーの苦情を作成します。 complaintクラスにはdataProperties(id、読み取り、タイトル、タグ、コンテンツなどの数)があります eclipse swingプロジェクトでjenaを使用してsparqlクエリを作成しました。複数の個人がsparqlクエリから取得されました

String queryRetrieveAll = "SELECT * WHERE \n { " 
+ "?Complaint skyt:numOfRead ?Num . " 
+ " FILTER (?Num >= 1) " 
+ ".}\n"; 

私のowlファイルにすべての苦情を取り戻してください。例えば;

------------------------------- 
| Complaint   | Num | 
=============================== 
| skyt:apple   | 484 | 
| skyt:toshiba   | 202 | 
| skyt:niluferturizm | 43 | 
| skyt:kamilkoc  | 42 | 
| skyt:eceElektronik | 254 | 
| skyt:celebi   | 112 | 

これはOKですが。私は質問から苦情の所有者をも検索したい。上記の行クエリを追加します。このクエリの

String queryRetrieveAll = "SELECT * WHERE \n { " 
+ "?Complaint skyt:numOfRead ?Num . " 
+ " FILTER (?Num >= 1) " 
+ "?Complaint skyt:Owner ?owner . "// or "?Complaint skyt:sId ?ID . " 
+ ".}\n"; 

結果、個人は私はそれを修正する方法

----------------------------------------------- 
| Complaint   | Num | Owner 
=============================================== 
| skyt:apple   | 484 | skyt:huseyinG | 
| skyt:apple   | 484 | skyt:kaanY | 
| skyt:apple   | 484 | skyt:ramazanÇ | 
| skyt:apple   | 484 | skyt:mertM | 
| skyt:apple   | 484 | skyt:burakÇ | 
| skyt:apple   | 484 | skyt:merveE | 
| skyt:apple   | 484 | skyt:ertuncE | 
| skyt:toshiba   | 202 | skyt:sahinT | 
| skyt:niluferturizm | 43 | skyt:yasinT | 
| skyt:kamilkoc  | 42 | skyt:hanifeC | 
| skyt:kamilkoc  | 42 | skyt:HasanH | 
| skyt:kamilkoc  | 42 | skyt:semihA | 
| skyt:eceElektronik | 254 | skyt:sonerD | 
| skyt:celebi   | 112 | skyt:gayeB | 
| skyt:polypadSarj  | 265 | skyt:serefG | 
| skyt:polypadSarj  | 265 | skyt:metinY | 
| skyt:polypadSarj  | 265 | skyt:simayS 
| skyt:apple   | 871 | skyt:huseyinG | 
| skyt:apple   | 871 | skyt:kaanY | 
| skyt:apple   | 871 | skyt:ramazanÇ | 
| skyt:apple   | 871 | skyt:mertM | 
| skyt:apple   | 871 | skyt:burakÇ | 
| skyt:apple   | 871 | skyt:merveE | 
| skyt:apple   | 871 | skyt:ertuncE | 

、繰り返し取得していますか?私はオーナー、ID、numOfread、対

のすべての苦情を取得したい
+0

TR/sparql11-query /#集計 – AKSW

答えて

0

私は問題を解決します。 owlファイルでは、私の間違いで個人の一部が同じ名前になっています。リンゴについての苦情の例として、私はこの個人的な名前を「リンゴ」としました。このため、複数のものを取得することがあります。私はすべての個人に別個の名前を与え、下の質問を変更します。その後、それは動作します。 1件の苦情が複数の所有者を持っていることを、あなただけhttps://www.w3.org/を参照してください、SPARQL 1.1 `GROUP_CONCAT`機能を提訴によって、その後の所有者のカンマ区切りのリストのようなものを得ることができます考える:)

String queryExtractAll = 
"SELECT DISTINCT ?Num ?Owner ?Title ?Content WHERE \n { " 
+ "?Complaint skyt:numofRead ?Num;" 
+ "skyt:owner ?Owner;" 
+ "skyt:title ?Title;" 
+ "skyt:content ?Content" 
+ " FILTER (?Num >= 1) " + ".}\n" 
+ " ORDER BY DESC (?Num) "; 
関連する問題