没有语言标签的文字过滤

时间:2019-04-03 11:20:59

标签: sparql rdf jena

我正在尝试通过特定语言过滤某些字符串,但是它们是没有语言标签的文字,因此我无法使用“ lang”或“ langMatches”过滤它们。就像所有结果都响应所有语言一样,该如何过滤呢?

我正在使用Java Jena库,并且我已经尝试使用“ regex”功能,但是当它们响应所有语言时,它会为我提供所有结果。

这是显示所有结果和语言的查询

String TitleQuery =
      "PREFIX dc: <http://purl.org/dc/elements/1.1/>"+
      "SELECT ?title ?language "+
      "WHERE { ?s dc:title ?title ."+
      "?s dc:language ?language ."+
      "}";
--------------------------------------------------------
| title                                 | language     |
========================================================
| "Espainiako Erkidego Autonomoak"      | "Euskera"    |
| "Espainiako Erkidego Autonomoak"      | "Portuguese" |
| "Espainiako Erkidego Autonomoak"      | "English"    |
| "Espainiako Erkidego Autonomoak"      | "Català"     |
| "Espainiako Erkidego Autonomoak"      | "Italiano"   |
| "Espainiako Erkidego Autonomoak"      | "Français"   |
| "Espainiako Erkidego Autonomoak"      | "Deutsch"    |
| "Espainiako Erkidego Autonomoak"      | "Galego"     |
| "Espainiako Erkidego Autonomoak"      | "Español"    |
| "Comunità autonome della Spagna"      | "Euskera"    |
| "Comunità autonome della Spagna"      | "Portuguese" |
| "Comunità autonome della Spagna"      | "English"    |
| "Comunità autonome della Spagna"      | "Català"     |
| "Comunità autonome della Spagna"      | "Italiano"   |
| "Comunità autonome della Spagna"      | "Français"   |
| "Comunità autonome della Spagna"      | "Deutsch"    |
| "Comunità autonome della Spagna"      | "Galego"     |
| "Comunità autonome della Spagna"      | "Español"    |
| "Comunitats Autònomes d'Espanya"      | "Euskera"    |
[...]

这是我尝试过的正则表达式过滤器:FILTER regex(str(?language),\"Español\")

这些是结果,每个结果都与每种语言匹配:

-----------------------------------------------------
| title                                 | language  |
=====================================================
| "Espainiako Erkidego Autonomoak"      | "Español" |
| "Comunità autonome della Spagna"      | "Español" |
| "Comunitats Autònomes d'Espanya"      | "Español" |
| "Comunidades autónomas de España"     | "Español" |
| "Comunidades Autónomas da Espanha"    | "Español" |
| "Communautés Autonomes d'Espagne"     | "Español" |
| "Autonome Gemeinschaften von Spanien" | "Español" |
| "Autonomous Communities of Spain"     | "Español" |
-----------------------------------------------------

1 个答案:

答案 0 :(得分:0)

问题在于标题和语言都只是为资源定义的。因此,假设一个资源:r1具有一些标题t1, t2, ..., tn和某些语言l1, l2, ..., ln。但是,您需要标题和语言之间没有的某种关系。

数据集在当前形式下没有意义。每个对(标题,语言)(例如r1 :hasTitle [:value :t1; :language :l1])都需要一个空白节点,或者标题必须使用语言标签。否则,你会迷路。问题不是您的查询,而是数据集。