用于较大域的子域的通用文本模板

动机

绘画语言语法,发布于D8.2号图纸,是为一个本体构建的,文本构建函数使用固定用于绘画的单词和表达式。要描述不同博物馆的本体,例如战争博物馆,可以复制文法并修改相关部分;然而,一个更好的解决方案将涉及抽象,而不是重复代码。这项工作的动机和目标见D4.2:

“与资源语法API类似,我们可以设想将博物馆案例扩展为可重用的语言化/文本化模式库。为了保持简单,GF模板可以变得更抽象。而不是硬编码特定于本体的描述词(油漆、显示、尺寸单位),我们将它们概括为根据所讨论的领域和本体选择的参数。UHEL在这个方向上进行了一些测试,将博物馆案例模式推广到更通用的对象描述模式。"

现实地说,区别应该更微妙——更多的是博物馆内不同种类的艺术品,而不是不同种类的博物馆。例如,绘画和雕塑有足够的共同点,可以使用相同的话语模式,但词语选择略有不同,比如画家雕塑家但绘画和坦克之间的差异很大,因此找到通用描述模式的好处可能很小。

语法设计

GF语法的结构如下。代码位于中(有微小差异,请进一步解释)文本模板.zip.

实例接口实例LexArtEng---LexEng----LexWarEng|                 |                ||不完整的|资源资源文本艺术工程---文本工程---文本战争工程抽象博物馆={<通用类别>乐趣<说明>}                       abstract ArtMuseum=抽象战争博物馆=博物馆有趣有趣<美术馆专用><战争博物馆专用>}                                    }不完整混凝土博物馆=在中打开TextEng{林肯猫<线性化的通用类别><使用TextEng中的textgen操作>}混凝土艺术博物馆=混凝土战争博物馆带有(TextEng=TextArtEng)**{带有(TextEng=TextWarEng)**{林林<美术馆专用><战争博物馆专用>}                                        }

忽略前六个模块,语法是扩展了子域=域**{…}. 向语法中添加概念应该通过子域L具有用户友好的功能,风格独特mk概念“str”。形态学功能隐藏在域L如下所示,

项目=NP;作者=NP;操作人员mkItem:Str->项目=\n->mkNP(mkN n);mkAuthor:Str->Author=\a->mkNP(mkPN a);

和用于子域L:

Mona_Lisa=mkItem“蒙娜丽莎”;PortraitPainting=mkItemType“纵向”;伦勃朗=mkAuthor“伦勃朗”;Ateneum=mk博物馆“Ateneum”;Wood=mkMaterial“木材”;

这本身就是推荐的设计原则(参见示例。D2.3段5.2.2):基本语法和域扩展。的内容子域应以词汇为主;其思想是,文本化模式对于所有子领域都是相同的(除了一些词汇选择),并且它们可以在公共部分全部线性化。

文本化模式中的词汇差异是前六个模块的目的。中的抽象文本描述使用线性化,这是一个带有参数化文本生成功能的不完整资源模块。例如,中的以下函数文本工程描述项目的作者:

资源TextEng=open SyntaxEng,LexEng不完整{操作人员作者文本:NP->NP->Text=\item,author->mkText(mkS过去时态(mkCl项目(mkVP(被动VP品牌_V2)(mkAdv by 8agent_Prep作者));

动词品牌_V2来自接口LexEng公司,它在中可能具有不同的值LexArtEng公司LexWarEng公司例如油漆制造分别是。

结果如下:;函数作者在WarMuseum和ArtMuseum中被线性化的方式不同,尽管在具体语法中,它是按照Authorship=作者文本;.

战争博物馆>gt-tr|lI型帕西战车作者Pasi FinnishArmyPasi是一个坦克。Pasi由Puolustusvoimat制造。艺术博物馆>gt-tr|lI类型Mona_Lisa肖像画作者Mona_Lisa Rembrandt《蒙娜丽莎》是一幅肖像画。《蒙娜丽莎》是伦勃朗画的。

GF问题

由于(未知)技术原因,通过扩展不完整的具体内容来创建具体语法是行不通的。因此,附件中的代码与右侧的代码相同,而不是左侧的设计。

混凝土艺术博物馆=MuseumEng混凝土艺术博物馆=MuseumEng**with(TextEng=TextArtEng)**{在{中打开TextArtEng-林林<美术馆专用><战争博物馆专用>Authorship=作者文本;}                                        }

这意味着,不是写作Authorship=作者文本;仅在中英国博物馆,该行在每个博物馆子领域工程就抽象而言,这不是一个大问题;函数作者文本仍然只在一个地方定义。

第二个决定是文本模式中的参数类型。TextEng中的函数可以操作GF资源语法类型,如CN、NP和Adv。这有一个缺点,即函数看起来很混乱,如果试图修改它们,很容易出错。例如,稍长一点的描述如下所示:

描述文本:NP->CN->NP->NP->高级->NP->文本=\物品,类型,作者,博物馆,年份,材料->。。。

一方面,使用RGL类型使函数可用于任何语法——尽管这不是一个非常现实的问题。另一个想法是将TextEng与MuseumEng中定义的类别联系起来,如下所示:

不完整的资源TextEng=MuseumEng[Item,Author,ItemType,GenText]**在中打开SyntaxEng、LexTemplate{操作人员作者文本:项目->作者->GenText=\Item,作者->。。。

函数体仍然由mkTexts和mkNP组成,因此项目,作者GenText(通用文本)只不过是类型同义词,便于阅读。如果这些类型的lincats在英国博物馆,中的函数文本工程也需要改变。

本体兼容性

中的语法D8.2号图纸使用一个数据库,其中现有的绘画被定义为类型,文本化功能只接受有类型的参数组合。

数据Mk验证文本:(pg:涂装)->(pr:油漆工)->(pt:涂装类型)->(cr:OptColour)->(se:OptSize)->(ml:OptMaterial)->(年:OptYear)->(毫米:OptMuseum)->完成涂装pg pt pr yr mm cr se ml->验证文本;GSM940042Obj喷漆:完全喷漆GSM940042Obj JKFViertel微型肖像(MkYear(YInt 1814))(Mk博物馆哥德堡城市博物馆)(Mk颜色灰色)(MkSize(SIntInt 349 776))(MK材质木材);

在这种方法中使用通用文本模板应该没有问题,以确保只有有效的数据组合。(但尚未测试。)

总结

这是什么?
域及其子域的参数化文本模板。
它有什么好处?
在为几乎相同的内容制作文本表示模式时,要避免复制粘贴。例如,艺术博物馆有一个包含绘画、雕塑和木雕的本体。我们可以博物馆控制野猫和mk概念“str”最终用户构造函数的类型,以及绘画L木雕L收藏所有油画和木雕。可以在中定义不同项目的参数化文本化模式文本L,正确的单词选择来自文本绘制L文字雕刻L.
附件大小
文本模板.zip3.68 KB