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

如何在LinkML中将IRI创建为对象而非xsd:anyURI字面量?

如何生成IRI对象而非xsd:anyURI字面量?

要实现将mynr属性值生成形如<https://w3id.org/linkml/examples/personinfo/44>的IRI对象,而非personinfo:mynr "44"^^xsd:anyURI的字面量形式,需同时调整Schema定义和数据内容,具体步骤如下:

1. 修改YAML Schema文件

在Person类的mynr属性配置中,将类型改为支持CURIE(紧凑IRI)或完整IRI的类型,并指定默认前缀以自动补全IRI:

classes:
  Person:
    attributes:
      id:
        identifier: true
      full_name:
        required: true
        description: name of the person
      aliases:
        multivalued: true
        description: other names for the person
      phone:
        pattern: "^[\\d\\(\\)\\-]+$"
      age:
        range: integer
        minimum_value: 0
        maximum_value: 200
      mynr:
        range: uriorcurie  # 支持CURIE或完整IRI格式
        default_prefix: personinfo  # 指定默认前缀,自动补全为完整IRI

2. 修改YAML数据文件

将mynr的值从字符串"44"改为CURIE格式(或直接写入完整IRI):

id: EX:44
persons:
  - id: EX:1234
    full_name: Clark Kent
    age: 33
    phone: 555-555-5555
  - id: EX:4567
    full_name: Lois Lane
    age: 34
    mynr: personinfo:44  # 使用CURIE,转换时会自动解析为完整IRI对象

3. 执行转换命令

使用linkml-convert工具转换为TTL或JSON-LD格式:

# 转换为TTL格式
linkml-convert -s testexample.yaml testexampledata.yaml -t ttl

# 转换为JSON-LD格式
linkml-convert -s testexample.yaml testexampledata.yaml -t json-ld

转换后效果

生成的TTL中mynr会呈现为IRI对象形式:

personinfo:4567 personinfo:mynr <https://w3id.org/linkml/examples/personinfo/44> .

而非原来的字面量形式:

personinfo:4567 personinfo:mynr "44"^^xsd:anyURI .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:42:41