Syntax 如何在MMT中提供绝对URI?获得;未绑定令牌:http";及;格式错误的常量引用“;
绝对URI在MMT表面语法中的行为出乎意料。在某些地方,我得到了Syntax 如何在MMT中提供绝对URI?获得;未绑定令牌:http";及;格式错误的常量引用“;,syntax,mmt,Syntax,Mmt,绝对URI在MMT表面语法中的行为出乎意料。在某些地方,我得到了未绑定令牌:http和格式错误的常量引用错误,而在其他地方,它们工作正常。请参阅下面的(非详尽)列表 绝对URI何时工作?什么时候没有?如何解决此问题? 以下操作不起作用,即生成上述错误: 包括理论上的声明: theory test = include http://cds.omdoc.org/urtheories?LF ❙ ❚ theory test = rule scala://api.mmt.kwarc.info?
未绑定令牌:http
和格式错误的常量引用
错误,而在其他地方,它们工作正常。请参阅下面的(非详尽)列表
绝对URI何时工作?什么时候没有?如何解决此问题?
以下操作不起作用,即生成上述错误:
- 包括理论上的声明:
theory test = include http://cds.omdoc.org/urtheories?LF ❙ ❚
theory test = rule scala://api.mmt.kwarc.info?SomeClass ❙ ❚
- 理论上的规则指令:
theory test = include http://cds.omdoc.org/urtheories?LF ❙ ❚
theory test = rule scala://api.mmt.kwarc.info?SomeClass ❙ ❚
- URI在以下方面:
namespace http://example.com ❚ theory test = someFunction ❙ someConstant ❙ c = someFunction http://example.com?test?someConstant ❙ ❚
- 命名空间指令:
namespace http://cds.omdoc.org/urtheories ❚
- 文档级别的fixmeta指令:
fixmeta http://cds.omdoc.org/urtheories?LF ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
- 文档级别的规则指令:
fixmeta http://cds.omdoc.org/urtheories?LF ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
fixmeta http://cds.omdoc.org/urtheories?LF ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❚
☞所有绝对URI(和命名空间导入限定符)前面的代码>(“juri”表示MMT IDE中的自动完成)
如果您仅在需要消除绝对URI与正常MMT术语之间的歧义的地方使用此前缀就足够了
经验法则:如果在某些地方可以使用正常的MMT术语,则必须使用☞代码>如果你想在那里写一个URI。如果您在MMT理论或视图中,这一点尤其适用
rule scala://parser.api.mmt.kwarc.info?MMTURILexer ❙
theory test =
include ☞http://cds.omdoc.org/urtheories?LF ❙
❚
// A namespace import qualifier "abbreviation" ❚
import abbreviation https://example.com/very-long-uri ❚
theory test2 =
include ☞abbreviation:?test3 ❙
❚
解释
没有像☞对于MMT的词法分析器和解析器来说,从一个变量名中消除绝对URI的歧义是非常麻烦的。前者需要解析为AST中的OMMOD
或OMID
节点,而后者需要解析为OMV
正在加载规则scala://parser.api.mmt.kwarc.info?MMTURILexer
根据☞代码>到MMT的词法分析器和解析器