You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Notation3规则中针对特定语言标签定义规则?

问题

我有使用Turtle/Notation3语法编写的本地化事实,示例如下:

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://www.example.org/#>.

ex:A rdfs:label "example"@en;
   rdfs:label "beispiel"@de.

想针对特定语言标签定义规则,尝试编写了如下规则但不知道如何筛选en语言标签:

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://www.example.org/#>.

{
  ?s rdfs:label ?v@en. # 需要筛选'en'语言标签的机制
}
=>
{
  ?s a ex:EnglishLabeledThing.
}.

试过多种语法变体,包括访问langString相关属性都没成功,使用的是EYE v2.3.0,求解决方案。

解决方案

EYE(Notation3推理引擎)支持通过内置的lang()函数来筛选带语言标签的字符串,你可以修改规则如下:

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix ex: <http://www.example.org/#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.

{
  ?s rdfs:label ?v.
  log:lang(?v) "en".
}
=>
{
  ?s a ex:EnglishLabeledThing.
}.

说明

  • log:lang(?v)是EYE提供的内置函数,用于获取字符串?v的语言标签
  • 配合条件log:lang(?v) "en",就能精准筛选出带en语言标签的rdfs:label值
  • 执行该规则后,带英文标签的资源(比如示例中的ex:A)会被推断为ex:EnglishLabeledThing类型

内容的提问来源于stack exchange,提问作者florian k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:50:17