Syntax 如何在MMT中提供绝对URI?获得;未绑定令牌:http";及;格式错误的常量引用“;

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?

绝对URI在MMT表面语法中的行为出乎意料。在某些地方,我得到了
未绑定令牌: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 ❚
    
  • 使用
    (“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 ❙
    ❚
    
    解释 没有像
    OMMOD
    OMID
    节点,而后者需要解析为
    OMV

    正在加载规则
    scala://parser.api.mmt.kwarc.info?MMTURILexer
    根据
    到MMT的词法分析器和解析器