没有语言标签的文字过滤

问题描述 投票:1回答:1

我试图用特定的语言过滤一些字符串,但它们是没有语言标签的文字,所以我不能用“lang”或“langMatches”过滤它们。就像所有结果都响应所有语言一样,我该如何过滤它?

我正在使用Java Jena库,我已经尝试使用“正则表达式”功能,但它在回复所有语言时为我提供了所有结果。

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

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" |
-----------------------------------------------------
sparql rdf jena
1个回答
0
投票

问题是标题和语言都是为资源定义的。所以单个资源,比如:r1,有一些标题t1, t2, ..., tn和一些语言l1, l2, ..., ln。但是你需要一些你没有的标题和语言之间的关系。

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

© www.soinside.com 2019 - 2024. All rights reserved.