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

Protege中为实例赋值rdf:XMLLiteral类型asGML属性保存报错问题

本体asGML属性赋值rdf:XMLLiteral保存报错解决方案

问题描述

我尝试使用名为asGML的数据属性为实例分配类型值,该实例属于此数据属性定义域对应类的对象,属性的取值范围为rdf:XMLLiteral数据类型(数据属性结构可参考Dataproperty附件图)。

我创建了名为25484-105的实例,所属类为asGML数据属性的定义域AbstractGeometry类,需要为该实例赋值符合属性取值范围类型的属性值,具体值原样复制自Ordnance Survey关联数据资源,类型为XMLLiteral,内容如下:

<gml:MultiPolygon>
    <gml:polygonMember>
        <gml:Polygon>
            <gml:outerBoundaryIs>
                <gml:LinearRing>
                    <gml:coordinates>322508.3974999999,183565.0044 322506.8969,183552.0980999999 322509.7991,183506.8011 322527.1961999999,183509.9001999999 322542.4001,183503.7018999999 322553.0031999999,183496.8038999999 322573.3025999999,183471.3011999999 322573.8962,183470.3015 322574.8032,183464.0033 322575.1989,183458.304899999, 322574.3991999999164542.6994999999</gml:coordinates>
                </gml:LinearRing>
            </gml:outerBoundaryIs>
        </gml:Polygon>
    </gml:polygonMember>
</gml:MultiPolygon>

每当我将该值分配给已创建的实例后,尝试保存本体时就会收到错误提示,错误详情可参考附件图1、图2。

修复方案

  • 修正类型声明错误:你描述中提到的取值范围rdf:MLLiteral为笔误,需严格将属性取值范围和赋值时的类型声明统一为rdf:XMLLiteral,不能省略类型标识。
  • 修正GML语法错误:你使用的GML片段存在两处格式问题,直接导致XML校验失败:
    1. 坐标串中322575.1989,183458.304899999, 末尾多余逗号,删除即可
    2. 最后一组坐标322574.3991999999164542.6994999999缺失逗号分隔,修正为322574.3991999999,164542.6994999999
  • 补充命名空间声明:赋值前需确保本体中已声明gml前缀对应的GML命名空间,也可直接在<gml:MultiPolygon>根节点上添加xmlns:gml="http://www.opengis.net/gml"属性,避免XML解析时无法识别前缀报错。
  • 避免多余转义处理:如果你使用的是Protégé这类本体编辑工具,直接输入原始XML内容即可,不需要提前将尖括号转义为&lt;/&gt;,手动转义会导致工具识别内容时XML语法校验失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:06:03