我正在尝试通过特定语言过滤某些字符串,但是它们是没有语言标签的文字,因此我无法使用“ 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" |
-----------------------------------------------------
答案 0 :(得分:0)
问题在于标题和语言都只是为资源定义的。因此,假设一个资源:r1
具有一些标题t1, t2, ..., tn
和某些语言l1, l2, ..., ln
。但是,您需要标题和语言之间没有的某种关系。
数据集在当前形式下没有意义。每个对(标题,语言)(例如r1 :hasTitle [:value :t1; :language :l1]
)都需要一个空白节点,或者标题必须使用语言标签。否则,你会迷路。问题不是您的查询,而是数据集。