从 sparql 查询中检索到多个个体
Multiple individuals retrieved from sparql query
我有一个 owl 文件 classes 和个人在同一个文件中。
投诉和用户 (classes)。
我创建用户的投诉作为个人。
投诉 class 具有 dataProperties(id、阅读次数、标题、标签、内容等)
我在 eclipse swing 项目上用 jena 写了一个 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 |
没关系,但是。我也想从查询中检索投诉的所有者。我在上面添加了一个行查询。
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 与
的所有投诉
我解决了问题。
在 owl 文件中,由于我的错误,一些人的名字相同。比如投诉苹果,我给这个人起的名字是"apple"。出于这个原因,他们有时会检索多个。我给所有个人起不同的名字并在下面更改我的查询。然后就可以了。 :)
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) ";
我有一个 owl 文件 classes 和个人在同一个文件中。 投诉和用户 (classes)。 我创建用户的投诉作为个人。 投诉 class 具有 dataProperties(id、阅读次数、标题、标签、内容等) 我在 eclipse swing 项目上用 jena 写了一个 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 |
没关系,但是。我也想从查询中检索投诉的所有者。我在上面添加了一个行查询。
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 与
的所有投诉我解决了问题。 在 owl 文件中,由于我的错误,一些人的名字相同。比如投诉苹果,我给这个人起的名字是"apple"。出于这个原因,他们有时会检索多个。我给所有个人起不同的名字并在下面更改我的查询。然后就可以了。 :)
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) ";