protegeproject/mapping-masterPublic
protegeproject/mapping-masterPublic
Watch 10
Fork 7Fork your own copy of protegeproject/mapping-master
Star 44
Code
Issues15
Pull requests3
Actions
Projects
Wiki
Security
Insights
MappingMasterDSL
编辑新页面
马丁·奥康纳编辑了此页面 on Oct 29, 2020 · 85 修订
页面4
家
MappingMasterDSL
目录
引用
基本参考使用
指定引用的类型
参考分辨率
基本参考分辨率
使用注释值的参考分辨率
参考分辨率配置选项
处理单元格内容
基本单元格内容处理
decimalFormat and printf
嵌套函数
替换字符
前置和追加
使用正则表达式提取值
文字
虹膜
缺失值处理
位置转移
循环访问引用中的单元格区域
曼彻斯特语法覆盖范围
配置选项
总结
MappingMasterGUI
转换规则语言
添加自定义边栏
在本地克隆此维基
MappingMaster 是一种域特定语言 (DSL),它定义了来自 电子表格内容到OWL本体。该语言基于曼彻斯特猫头鹰 语法,它本身就是一个用于描述OWL本体的DSL。
可以在此处找到曼彻斯特语法的介绍。 可以在该文档的“快速参考”部分找到一组示例曼彻斯特语法表达式。
曼彻斯特语法支持OWL公理的声明性规范。
例如,名为类 Gum 的 OWL 的曼彻斯特语法声明是名为 Product 的命名类的子类可以 使用类声明子句编写为:
Class: Gum SubClassOf: Product
MappingMaster DSL 扩展了曼彻斯特语法以支持对 这些声明中的电子表格内容。MappingMaster 引入了一个新的引用子句,用于引用电子表格内容。在此 DSL 中,任何 曼彻斯特语法表达式中的子句,指示 OWL 命名类, 可以替换 OWL 属性、OWL 单个、数据类型或文字 与此引用条款一起使用。任何包含此类引用的声明都是 预处理和这些指定的相关电子表格内容 导入引用。在处理每个声明时,适当的 为每个引用检索电子表格内容。然后,此内容可以是 主要以四种方式使用:
它可用于直接命名按需创建的 OWL 实体。
它可用于注释按需创建的 OWL 实体。
内容可以直接作为URI引用现有的OWL实体,也可以通过注释属性引用。
最后,内容可以用作文字。
因此,使用其中一种方法,表达式中的每个引用都是 在预处理期间解析为命名的 OWL 实体、数据类型或文本。然后,生成的表达式可以由标准曼彻斯特语法处理器执行。
目录
引用
基本参考使用
指定引用的类型
参考分辨率
基本参考分辨率
使用注释值的参考分辨率
参考分辨率配置选项
处理单元格内容
基本单元格内容处理
decimalFormat and printf
嵌套函数
替换字符
前置和追加
使用正则表达式提取值
文字
虹膜
缺失值处理
位置转移
循环访问引用中的单元格区域
曼彻斯特语法覆盖范围
配置选项
总结
引用
MappingMaster DSL 中的引用以字符 @ 为前缀。这些是 通常后跟 Excel 样式的单元格引用。在标准 Excel 中 单元格表示法,单元格从工作表左上角的 A1 延伸 电子表格到连续更高的列和行,带有字母字符 指列,数值指行。
基本参考使用
例如,电子表格中对单元格 A5 的引用编写如下:
@A5
上述单元格规范表明引用是相对的,这意味着 如果将包含引用的公式复制到另一个单元格,则 引用的行和列组件将相应更新。
也可以通过将工作表的名称括在单引号中并使用 工作表名称和单元格规范之间的“!” 字符分隔符:
@'A sheet'!A3
例如,在下面的电子表格中,B 列的第 4 行到第 6 行包含 产品类别;第 2 行的 D 到 G 列包含状态标识符,并且 网格范围 D4 到 G6 包含销售额。
然后可以在MappingMaster的DSL中使用这些引用来定义OWL 使用电子表格内容进行构造。
例如,一个 MappingMaster 表达式,用于声明类 FlavoredGum 是由单元格内容命名的类的子类 B4可以写成:
Class: FlavouredGum SubClassOf: @B4
处理时,此表达式将使用 单元格B4(“口香糖”)的内容作为类名,并声明调味口香糖为其子类。如果类口香糖已经 存在,子类关系将简单地建立。
也就是说,引用既可用于定义新的 OWL 实体,也可用于引用 现有实体。
一个类似的表达式,用于声明类 SalesItem 是 等效于由单元格 B4 的内容命名的类可以写成:
Class: SalesItem
EquivalentTo: @B4
曼彻斯特语法还支持单独的声明子句 申报个人;属性值可以与声明的 使用事实子条款的个人,其中包含财产价值列表 声明。
例如,一个表达式,用于指定个人从 单元格 D2 (“CA”) 的内容对于数据属性的值为“加利福尼亚” 值 hasStateName 可以写成:
Individual: @D2
Facts: hasStateName "California"
在这里,如有必要并关联,将创建一个个人 CA 数据属性 hasStateName,它将被赋予字符串 值“加利福尼亚”。
使用标准曼彻斯特语法,注释属性也可以 与声明的实体相关联。
例如,名为 hasSource 的现有字符串数据类型注释属性可用于关联上述声明的加利福尼亚 个人与源文件如下:
Individual: @D2
Facts: hasStateName "California"
Annotations: hasSource "DMV Spreadsheet 12/12/2010"
类或属性可以用相同的方式进行批注。例如,一个类 可以使用 hasSource 注释属性进行注释,如下所示:
Class: @D2
Annotations: hasSource "DMV Spreadsheet 12/12/2010"
曼彻斯特语法还支持使用 OWL 类表达式。在 通常,类表达式可能出现在命名类可能出现的任何位置。
例如,用于定义 类 Sale 使用单元格 D4 的内容作为猫头鹰的填充物:具有属性 hasAmount 的 HasValue 公理可以是 写:
Class: Sale
SubClassOf: (hasAmount value @D4)
通常,在 MappingMaster 表达式中显式命名的 OWL 实体(如 反对通过引用解决)必须 目标本体中已经存在。在这些示例中,类 Sale、SalesItem 和 FlavoredGum 以及属性必须已经 存在。
指定引用的类型
在表达式中
Class: @A5
SubClassOf: Drug
参考@A5显然是指 OWL 类。 但是,不能始终明确地推断引用类型。
例如,在表达式中
Class: Sale
SubClassOf: (@A3 value @D4)
引用@A3可以引用对象、数据或注释属性,引用@D4可以是 OWL 个人或文本。
为了处理这种情况,映射主机支持显式实体类型规范。 具体而言,引用可以选择后跟括号括起来 实体类型规范,用于显式声明引用实体的类型。 此规范可以指示实体是 OWL 命名类、OWL 数据或注释属性, 名为“个人”的 OWL 或数据类型。这 用于指定类型的 MappingMaster 关键字是标准的曼彻斯特语法 关键字 Class、ObjectProperty、DataProperty、AnnotationProperty 和 Individual,以及任何 XSD 类型名称(例如 xsd:int)。
使用此规范,例如,以前的药物声明可以是 写:
Class: @A5(Class)
SubClassOf: Drug
单元格 B5 中具有关联属性值的个人声明 从单元格 C5 可以指定浮点类型,如下所示:
Individual: @B5
Facts: hasSalary @C5(xsd:float)
如果 hasSalary 数据属性已声明为 xsd:float 类型,则不需要显式类型限定。一个 在以下情况下,也可以为文本指定全局默认类型 关联的数据属性的类型未知或未指定,或者 如果引用中未提供显式类型。
对OWL属性和个人的引用可以用同样的方式进行限定。
参考分辨率
引用可以指定OWL实体(即类、属性、个人或数据类型)或文字。当引用指定OWL实体时,引用值可以解析为现有的OWL实体,也可以用于命名按需创建的OWL实体。
基本参考分辨率
创建或时支持各种名称解析策略 引用 OWL 实体。三个主要策略是:
使用 rdf:IDs 创建或解析 OWL 实体。
使用 rdfs:标签注释来创建或解析 OWL 实体
根据忽略解析的参考值的单元格位置创建 OWL 实体
使用 rdf:ID 编码和从引用生成的 OWL 实体 直接从解析的引用值分配其 rdf:ID。明显地 此内容必须表示有效的标识符(例如,RDF:IDs 中不允许空格)。
使用 rdfs:label 编码,从 引用被赋予一个自动生成的URI,其rdfs:label注释值设置为解析的引用值。
使用位置编码,从引用生成的 OWL 实体也是 给定一个自动生成的 URI,但在这种情况下 解析的参考值未使用。
默认命名编码使用 rdfs:label 注释属性。 默认值也可以全局更改。
提供名称编码子句以显式指定所需的编码 用于特定参考。与实体类型规范一样,此子句是 用单元格引用后的括号括起来。要指定 三种类型的编码是mm:Location,rdf:ID和rdfs:label。
使用此子句,对 以前的药物示例可以写:
Class: @B4(rdf:ID)
SubClassOf: Drug
如前所述,MappingMaster 还支持实体创建,其中单元格值 被忽略。在这种情况下,关键字 mm:Location 可用于 引用后面的括号。
例如,用于在忽略单元格 D4 时为单元格 D<> 创建个体的表达式 单元格的内容可以写入:
Individual: @D4(mm:Location)
默认情况下,OWL实体名称使用命名空间解析或生成 当前活跃的本体。该语言包括 mm:前缀和 mm:namespace 子句来覆盖此默认行为。
例如,指示个人创建或解决的表达式 从单元格 A2 的内容(假设 RDFS:标签分辨率)应该 使用由前缀“clinical”标识的命名空间,可以写成:
Individual: @A2(mm:prefix="clinical")
同样,指示它必须使用命名空间的表达式 “ http://clinical.stanford.edu/Clinical.owl#”可以写成:
Individual: @A2(mm:namespace="http://clinical.stanford.edu/Clinical.owl#")
引用中的显式命名空间或前缀限定允许消除歧义 本体中的重复标签。
使用注释值的参考分辨率
要支持对表达式中的批注值的直接引用, MappingMaster的DSL采用曼彻斯特语法机制来封装这些 单引号中的引用。
例如,如果OWL类产品具有rdfs:label注释值“可销售产品”,则可以按如下方式引用:
Class: @B4
SubClassOf: 'A sellable product'
处理此表达式时,将通过对类 Product 的注释值解析可售产品。
参考分辨率配置选项
记录以下选项:
mm:defaultPrefix, mm:defaultNamespace, mm:defaultLanguage, mm:ResolveIfOWLEntityExists, mm:SkipIfOWLEntityExists, mm:WarningIfOWLEntityExists, mm:ErrorIfOWLEntityExists, mm:CreateIfOWLEntityDoesNotExist, mm:SkipIfOWLEntityDoesNotExist, mm:WarningIfOWLEntityDoesNotExist, mm:ErrorIfOWLEntityDoesNotExist, mm:ProcessIfEmptyLabel, mm:ErrorIfEmptyLabel, mm:WarningIfEmptyLabel, mm:SkipIfEmptyLabel
处理单元格内容
默认行为是直接使用引用单元格的内容。 但是,可以使用可选的值规范子句覆盖此默认值。
此子句通常由“=”表示 紧跟在编码规范关键字之后的字符,紧跟在后面 通过括号括起来、逗号分隔的值规格列表, 它们相互附加。这些值规格可以是单元格 引用、引用值、包含捕获组的正则表达式, 或内置的文本处理功能。
基本单元格内容处理
例如,扩展引用以指定实体的表达式 从单元格 A5 创建的是使用 rdfs:标签名称编码,并且 name 是前面带有字符串“Sale:”的单元格的值,可以是 写法如下:
Class: @A5(rdfs:label=("Sale:", @A5))
值规范引用不限于引用的单元格 本身,并可能指示任意单元格。也可以有多个编码 为特定引用指定,例如,单独的标识符和 可以为特定实体生成标签注释值,使用 不同单元格的内容。
例如,我们可以扩展上面的例子来分配 rdf:ID 生成到单元格 B5 的类,如下所示:
Class: @A5(rdf:ID=@B5 rdfs:label=("Sale:", @A5))
如果分配列表仅包含单个值,则开始和 右括号可以省略:
Class: @A5(rdf:ID=@B5 rdfs:label=("Sale:", @A5))
该语言包括几种内置的文本处理方法,这些方法用于 值规格。目前,支持几种方法。其中包括 mm:replace、mm:replaceAll、mm:replaceFirst、mm:prepend、mm:append、mm:toLowerCase、mm:toUpperCase、mm:trim、mm:reverse和 mm:printf、mm:decimalFormat。 这些方法接受零个或多个参数并返回一个值。提供 参数可以是带引号的字符串或引用的任意组合。
用于在标签之前将单元格 A5 的内容转换为大写的表达式 作业可以写:
Class: @A5(mm:toUpperCase(@A5))
如果参数,方法也可以省略显式的第一个参数 指当前位置值。因此,前面的表达式也可以是 写:
Class: @A5(mm:toUpperCase)
值处理函数也可以在值规范之外使用 子句 - 但仅当这些子句未在引用中使用时,并且仅 可以使用单个功能。
decimalFormat and printf
decimalFormat 和 printf 支持文本和数字内容的格式设置。 它们的行为遵循 DecimalFormat 类和 String.format 方法的标准 Java 规范。
mm:decimalFormat 可以按如下方式使用:
Individual: Fred Facts: hasSalary @A1(mm:decimalFormat("###,###.00", @A1))
当单元格 A1 的值为“23000.2”时,这将呈现:
Individual: Fred Facts: hasSalary "23,000.20"
下面是一个 mm:printf 的例子:
Class: @A1(mm:printf("A_%s", @A1))
当单元格 A1 的值为“汽车”时,这将呈现:
Class: A_Car
任何参数都可以替换为引用子句。这些函数也可以与显式 rdf:ID 和 rdfs:label 赋值一起使用。
请注意,如果只提供一个参数,则假定第二个参数是封闭参考位置。
所以
Individual: Fred Facts: hasSalary @A1(mm:decimalFormat("###,###.00"))
相当于:
Individual: Fred Facts: hasSalary @A1(mm:decimalFormat("###,###.00", @A1))
和
Class: @A1(mm:printf("A_%s"))
相当于:
Class: @A1(mm:printf("A_%s", @A1))
这也相当于:
Class: @A1(rdf:ID=mm:printf("A_%s", @A1))
嵌套函数
请注意,函数不能直接嵌套在其他函数中。例如,我们不能使用 mm:toUpperCase 函数直接将值转换为大写,然后使用封闭的 mm:prepend 函数:
Class: @A1(mm:prepend("_", mm:toUpperCase)) # THIS IS NOT ALLOWED
但是,函数的参数可以包含引用,引用本身可以包含函数,因此我们可以间接嵌套。例如,可以使用此方法将前面的大写字母后跟一个前置运算编写如下:
Class: @A1(mm:prepend("_", @A1(mm:toUpperCase)))
mm:printf 函数在执行复杂的操作组合时也非常有用。例如,前面的大写字母后跟一个前置运算可以使用 mm:printf 编写如下:
Class: @A1(mm:printf("_%s", @A1(mm:toUpperCase)))
替换字符
mm:replace 和 mm:replaceAll 函数遵循 标准 Java 字符串类中的关联方法。
例如,要从单元格中删除前面的所有非字母数字字符 赋值时,mm:replaceAll 函数可以按如下方式使用:
Individual: @A5
Facts: hasItems @B5(mm:replaceAll("[^a-zA-Z0-9]",""))
同样,mm:replace 方法可用于将逗号替换为 处理文本时的句点:
Individual: @A2
Facts: hasSalary @A3(xsd:float mm:replace(",", "."))
前置和追加
mm:prepend 方法可以按如下方式使用,以简化 上面的例子:
Class: @A5(rdfs:label=mm:prepend("Sale:"))
如果表达式是默认值,则可以通过省略显式 rdfs:label 限定来进一步简化表达式:
Class: @A5(mm:prepend("Sale:"))
追加方法的工作方式类似。
例如,假设默认的 rdfs:label 编码,字符串“_MM” 可以使用 mm:append 函数追加到生成的标签,如下所示:
Individual: @A2(mm:append("_MM"))
使用正则表达式提取值
类似的方法可用于有选择地从引用中提取值 细胞。提供了捕获组的正则表达式子句,可以在 值规范条款。此子句包含在带引号的字符串中 用方括号括起来。例如,如果电子表格中的单元格 A5 包含字符串“辉瑞:Zyvox”,但仅包含“:”后面的文本 字符是在标签编码中使用,适当捕获 表达式可以写成:
Class: @A5(rdfs:label=[":(\S+)"])
请注意,正则表达式中的子表达式两边用括号括起来 子句指定捕获组并指示匹配的字符串是 提取。在某些情况下,一个像元值可能匹配多个组, 在这种情况下,将按其顺序提取匹配的字符串 匹配并相互追加。
捕获组还可用于生成文本。例如,如果 电子表格中的单元格 A2 包含人员的名字、中间名首字母和姓氏 由单个空格分隔,三个捕获表达式可用于 有选择地提取每个名称部分并分别将它们分配给不同的 属性如下:
Individual: @A2
Types: Person
Facts: hasForename @A2(["(\S+)"]),
hasInitial @A2(["\S+\s(\S+)"]),
hasSurname @A2(["\S+\s\S+\s(\S+)"])
一个类似的示例,分别从 单元格可以写成:
Individual: @A2
Types: Person
Facts: hasMin @A2(xsd:int ["(\d+)\s+"]),
hasMax @A2(xsd:int ["\s+(\d+)"])
如果 hasMan 和 hasMax 属性的类型为 xsd:int,则 此处不需要明确的限定。
捕获表达式也可以通过 mm:capture 函数调用:
Individual: @A2
Types: Person
Facts: hasForename @A2(mm:capturing("(\S+)")
捕获表达式的语法遵循 Java 模式类支持的语法。
文字
映射主机当前支持以下数据类型:
xsd:string, xsd:boolean, xsd:byte, xsd:short, xsd:int, xsd:long, xsd:float, xsd:double, xsd:integer, xsd:decimal, xsd:dateTime, xsd:date, xsd:time, xsd:Duration, rdf:PlainLiteral, rdf:XMLLiteral
虹膜
映射大师有几个指令来自定义 IRI 创建过程。
命令 | 解释 |
毫米:伊里 | 使用解析的参考值生成 IRI。 如果生成的值不表示有效的 IRI,则会引发错误。 |
毫米:骆驼案例编码 |
|
mm:snakeCaseEncode |
|
mm:uuidEncode |
|
mm:哈希编码 |
|
缺失值处理
要处理缺少的单元格值,也可以在 引用。提供了一个默认值子句来分配这些值。这 子句由关键字 mm:DefaultLocationValue、mm:DefaultLiteral、mm:DefaultLabel 和 mm:DefaultID 指示,后跟对字符串的赋值。为 例如,以下表达式使用此子句来指示值 如果单元格 A5 为空,则应使用“未知”作为创建的类标签:
Class: @A5(rdfs:label mm:DefaultLabel="Unknown")
还支持其他行为来处理缺少的单元格值。这 默认行为是跳过整个表达式(如果它包含任何引用) 带有空单元格。提供了四个关键字来修改此行为。这些 关键字表示:
如果缺少单元格值并且应停止映射过程(mm:ErrorIfEmptyLocation)
应跳过包含具有空单元格的引用的表达式(mm:SkipIfEmptyLocation)
包含具有空单元格的引用的表达式除了应被跳过之外,还应生成警告 (mm:WarningIfEmptyLocation)
应处理包含此类空单元格的表达式 (mm:ProcessIfEmptyLocation)。
最后一个选项允许处理可能包含大量 缺失值的数量。该选项指示语言处理器 如果可能,应保守地删除包含 空引用,而不是删除整个表达式。
例如,考虑以下表达式,该表达式声明个人来自 电子表格的单元格 A5 并与之关联属性已老化 使用单元格 A6 中的值:
Individual: @A5
Facts: hasAge @A6(mm:ProcessIfEmptyLocation)
在这里,使用默认的跳过行为操作,单元格 A5 中的缺失值将 导致跳过表达式。但是,过程指令为 单元格 A6 中的 hasAge 属性值将只删除子表达式 如果该单元格为空,则包含它。因此,如果单元格 A5 包含一个值和单元格 A6 为空,生成的表达式仍将声明个人。
使用类似的方法,更细粒度的空值处理也是 支持为 mm:Literal、rdf:ID 和 rdfs:label 值指定不同的空值处理行为。这里 标签指令是mm:ErrorIfEmptyLabel,mm:SkipIfEmptyLabel,mm:WarningIfEmptyLabel和mm:ProcessIfEmptyLabel,RDF标识符具有等效的关键字。 和字面处理。它们是 mm:ErrorIfEmptyID、mm:SkipIfEmptyID、mm:WarningIfEmptyID、mm:ProcessIfEmptyID 和 mm:ErrorIfEmptyLiteral、mm:SkipIfEmptyLiteral、mm:WarningIfEmptyLiteral、 mm:ProcessIfEmptyLiteral。
位置转移
提供了一个附加选项来处理空单元格值。此选项 针对特定单元格所在的许多电子表格中的常见情况 提供一个值,并且它下面的所有空单元格都暗示具有 相同的值。在这种情况下,当处理这些空单元格时,它们的 位置必须移动到其上方包含值的位置。为 例如,以下表达式使用此关键字来指示调用 A5 不包含声明类的名称的值,则包含行 数字必须向上移动,直到找到值:
Class: @A5(mm:ShiftUp)
如果未找到任何值,则应用正常的空值处理处理。 类似的指令提供了下移(mm:ShiftDown),以及 允许向左移动(mm:ShiftLeft)或向右移动 (毫米:右移)。
循环访问引用中的单元格区域
显然,大多数映射不仅会引用单个单元格,还会引用 而是迭代电子表格中的一系列列或行。通配符 然后可以在引用中使用字符“*”来引用当前列 和/或迭代中的行。MappingMaster 提供了一个图形界面来 指定这些范围。(它们将很快在DSL中得到支持。
使用此通配符表示法的示例引用包括:
AAR
AAK
@**
例如,一个表达式,它从网格 D4 迭代到 G6 以创建一个 每个单元格的类个人销售可以写:
Individual: @**
Types: Sale
可以扩展此表达式以将属性值分配给这些 个人:
Individual: @**
Types: Sale
Facts: hasAmount @**,
hasProduct @B*,
hasState @*2
曼彻斯特语法覆盖范围
DSL 不支持整个曼彻斯特语法。当前不支持以下子句:
OWL 对象属性声明
OWL数据属性声明
OWL 注释属性声明
OWL 数据类型声明
OWL文字类型限定
猫头鹰不相交类
OWL等效和不相交性质
OWL 负属性断言
猫头鹰有钥匙
配置选项
可以为引用指令指定一组全局默认值。 该语言有许多子句来指定这些默认值。
以下示例说明了如何将这些子句与 当前默认值。
mm:默认引用类型当前默认值为类。其他可能的值包括 NamedIndividual、ObjectProperty、DataProperty、AnnotationProperty 和任何 XSD 数据类型。
mm:默认属性类型当前默认值为 ObjectProperty。其他可能的值是 DataProperty 和 AnnotationProperty。
mm:默认属性值类型当前默认值为 xsd:string 如果我们需要一个(数据或注释)属性值,请使用 xsd:string
mm:默认数据属性值类型当前默认值为 xsd:string。其他可能的值包括任何 XSD 数据类型。
mm:默认值编码当前默认值为 rdf:ID。其他可能的值是rdfs:Label,mm:Literal和rdfs:Location。
mm:默认IRIE编码当前默认值为 mm:CamelCaseEncoding。其他可传递的值包括 mm:NoEncode、mm:NoSnakeCaseEncode、mm:UUIDEncode 和 mm:HashEncode。
mm:默认移位设置当前默认值为 mm:NoShift。其他可能的值包括 mm:ShiftUp、mm:ShiftDown、mm:ShiftLeft 和 mm:ShiftRight。
mm:默认空位置设置当前默认值为 mm:WarningIfEmptyLocation。
mm:默认空文本设置当前默认值为 mm:WarningIfEmptyLiteral。
mm:DefaultEmptyRDFIDSetting当前默认值为 mm:WarningIfEmptyRDFID。
mm:DefaultEmptyRDFSLabelSetting当前默认值为 mm:WarningIfEmptyRDFSLabel。
mm:DefaultIfOWLEntityExistsSetting当前默认值为 mm:ResolveIfOWLEntityExists。
mm:DefaultIfOWLEntityDoesNotExistSetting当前默认值为 mm:CreateIfOWLEntityDoesNotExist。
mm:默认位置值当前默认值为 “”。
mm:默认文本值当前默认值为 “”。
mm:DefaultRDFID当前默认值为 “”。
mm:DefaultRDFSLabel当前默认值为 “”。
mm:默认语言当前默认值为 “”。
mm:默认前缀当前默认值为 “”。
mm:默认命名空间当前默认值为 “”。
总结
MappingMaster DSL允许从电子表格内容创建OWL公理和实体。 曼彻斯特语法的使用允许这些OWL实体在复杂的中相互关联 方式。
以这种方式以声明方式指定映射有几个 优势。这些映射的写入不需要任何 编程或脚本专业知识。这些映射可以共享 轻松使用MappingMaster GUI,它可以保存和加载映射。这 映射也可以轻松地在不同的 具有相同结构的电子表格。
添加自定义页脚
页脚
© 2023 GitHub, Inc.
页脚导航
条款
隐私
安全
地位
文档
联系 GitHub
定价
应用程序接口
训练
博客
大约
来自 <https://github.com/protegeproject/mapping-master/wiki/MappingMasterDSL>
相关文章:
04、数据保护技术
数据保护技术 1.磁盘镜像制作 1.1.Windows 磁盘镜像制作及恢复 GetData Forenisc Imager 该工具安装后,可将安装后的文件复制出来(类似绿色运行) 使用(需要管理员运行):https://getdataforensics.com/product/fex-imager/DataNumen Disk Image 1.2.Linux 磁盘镜像制作(命…...
Ubuntu22.04.4 - apt - 笔记
一、修改源配置 这里使用的时候又出现了联不通的情况,换成国内镜像 在update cp /etc/apt/source.list /etc/apt/source.list.bak vim source.list 换源地址 修改完(网上有,注意:根据Ubuntu版本不一样,部分内同也会不…...
【漏洞复现】云时空社会化商业ERP系统slogin SQL注入漏洞
漏洞描述: 云时空社会化商业ERP系统slogin存在SQL注入漏洞,攻击者可以通过此漏洞获取数据库敏感信息。 搜索语法: Fofa-Query: app"云时空社会化商业ERP系统" 漏洞详情: 1.云时空社会化商业ERP系统。 2.漏洞POC: …...
实验 1--SQL Server2008数据库开发环境
文章目录 实验 1--SQL Server2008数据库开发环境2.4.1 实验目的2.4.2 实验准备2.4.3 实验内容1.利用 SSMS 访问系统自带的Report Server 数据库。2.熟悉了解 SMSS对象资源管理器树形菜单相关选择项的功能。(1)右键单击数据库Report Server,查看并使用相关功能;(2)选…...
Flink CDC详解
文章目录 Flink CDC一 CDC简介1.1 CDC定义1.2 CDC应用场景1.3 CDC实现机制1.4 开源CDC工具对比 二 Flink CDC简介2.1 Flink CDC介绍2.2 Flink CDC Connector(连接器)2.3 Flink CDC && Flink版本2.4 Flink CDC特点 三 Flink CDC发展3.1 发展历程3.2 背景Dynamic Table &…...
[Android]使用CompositionLocal隐式传值
1.相关概念 CompositionLocal 是定义数据的方式,而 CompositionLocalProvider 是在 Compose UI 树中传递这些数据的工具。二者合作,为 Compose 应用提供了一个强大的状态和数据流管理机制,使得数据可以在组件间按需传递,而无需通…...
protegeproject/mapping-masterPublic
protegeproject/mapping-masterPublicWatch 10 Fork 7Fork your own copy of protegeproject/mapping-masterStar 44CodeIssues15Pull requests3ActionsProjectsWikiSecurityInsightsMappingMasterDSL编辑新页面马丁奥康纳编辑了此页面 on Oct 29, 2020 85 修订页面4家Mapping…...
大数据分析案例-基于随机森林算法构建人口普查分析模型
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
【数据结构和算法】认识线性表中的链表,并实现单向链表
本文接着上文,上文我们认识了线性表的概念,并实现了静态、动态顺序表。接下来我们认识一个新概念链表。并实现单向链表的各种操作。顺序表还有不明白的看这一篇文章 (13条消息) 【数据结构和算法】实现线性表中的静态、动态顺序表_小王学代码的博客-CSDN…...
2023-1-28
具有给定数值的最小字符串 题目描述 小写字符 的 数值 是它在字母表中的位置(从 1 开始),因此 a 的数值为 1 ,b 的数值为 2 ,c 的数值为 3 ,以此类推。 字符串由若干小写字符组成,字符串的数…...
Linux_常见命令
1.ls ls -l 列出隐藏文件,并显示10项权限,类似如同下图 在部分发行版本的linux下,ll等同于ls -l 首先,第一列为-则代表着这一列是文件, 第一列为d则代表这一列为目录 除了第一位,那么其他还有9位,分为3组…...
【Linux】基础IO --- 系统级文件接口、文件描述符表、文件控制块、fd分配规则、重定向…
能一个人走的路别抱有任何期待,死不了 文章目录一、关于文件的重新认识二、语言和系统级的文件操作(语言和系统的联系)1.C语言文件操作接口(语言级别)1.1 文件的打开方式1.2 文件操作的相关函数1.3 细节问题2.系统级文…...
ffmpeg无损裁剪、合并视频
我用的版本是 ffmpeg version git-2020-06-23-ce297b4 官方文档 https://ffmpeg.org/ffmpeg-utils.html#time-duration-syntax 时间格式 [-][HH:]MM:SS[.m...] 或 [-]S[.m...][s|ms|us]裁剪视频 假设需要裁剪视频aaa.mp4,第5秒到第15秒 ffmpeg -ss 5 -to 15 -i…...
ATAC-seq分析:Annotating Peaks(9)
1. 注释开放区域 将已识别的无核小体区域与基因组特征(如基因和增强子)相关联通常很有趣。 一旦注释到基因或增强子的基因,我们就可以开始将 ATACseq 数据与这些基因的特征相关联。 (功能注释、表达变化、其他表观遗传状态&#x…...
蓝桥杯刷题015——最少刷题数(二分法+前缀和)
问题描述 小蓝老师教的编程课有 N 名学生, 编号依次是 1…N 。第 i 号学生这学期刷题的数量是 Ai 。 对于每一名学生, 请你计算他至少还要再刷多少道题, 才能使得全班刷题比他多的学生数不超过刷题比他少的学生数。 输入格式 第一行包含一个正整数 N 。 第二行包含 N 个整数:…...
Linux——进程
目录 冯诺依曼体系结构 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 进程 基本概念 描述进程-PCB task_struct-PCB的一种 task_ struct内容分类 组织进程 查看进程 通过系统调用获取进程…...
Junit单元测试框架【基础篇】
Junit单元测试框架【基础篇】🍎一.Junit单元测试框架🍒1.1 注解🍒1.2 断言🍒1.3 用例执行顺序🍒1.4 测试套件🍉1.4.1 指定类🍉1.4.1 指定包🍒1.5 参数化🍉1.5.1 单参数&a…...
高通平台开发系列讲解(WIFI篇)什么是WLAN无线局域网
文章目录 一、什么是WLAN1.1、WLAN发展史1.2、WLAN工作频段二、高通相关文件2.1、配置文件2.2、开机启动2.3、wpa_supplicant沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文将基于高通平台介绍什么是无线局域网。 一、什么是WLAN 在WLAN领域被大规模推广和商用的是…...
JavaScript 变量
JavaScript 变量 变量是什么? 变量是计算机中用来存储数据的“容器”,它可以让计算机变得有记忆,通俗的理解变量就是使用【某个符号】来代表【某个具体的数值】(数据) JavaScript 变量 与代数一样,JavaScript 变量…...
C语言进阶——文件管理
每当我们写好一段代码运行结束之后,再次运行的时候就会发现,之前在终端上输入的数据都会消失,那么如何把之前输入的数据保存下来呢? 我们一般把数据持久化的方式有把数据存放在磁盘文件中、存放到数据库。打印等方式进行保存。 …...
[Rust笔记] 规则宏的“卫生保健”
规则宏代码的“卫生保健”规则宏mbe即是由macro_rules!宏所定义的宏。它的英文全称是Macro By Example。相比近乎“徒手攀岩”的Cpp模板元编程,rustc提供了有限的编译时宏代码检查功能(名曰:Mixed Hygiene宏的混合保健)。因为rust…...
芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点
💡该教程为改进进阶指南,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀💡本篇文章 基于 YOLOv5、YOLOv7芒果改进YOLO系列:芒果改进YOLOv7系列:超越ConvNeXt结构,原创结合Conv2Former改进结构,Transformer 风格的卷积网络视觉基线模型,高效涨点、…...
Java---微服务---RabbitMQ部署
RabbitMQ部署1.单机部署1.1.下载镜像1.2.安装MQ1.3访问管理端2.集群部署2.1.集群分类2.2.设置网络1.单机部署 我们在Centos7虚拟机中使用Docker来安装,如未安装dockr,请参考《Centos7安装Docker》 1.1.下载镜像 方式一:在线拉取 docker …...
别总写代码,这130个网站比涨工资都重要
今天推荐一些学习资源给大家,当然大家可以留言评论自己发现的优秀资源地址 搞学习 找书籍 冷知识 / 黑科技 写代码 资源搜索 小工具 导航页(工具集) 看视频 学设计 搞文档 找图片 搞学习 TED(最优质的演讲)࿱…...
Python 类方法简记
文章目录前言必须实例化的类方法使用静态装饰器的类方法使用类装饰器的类方法省流版本ref:前言 Python 的类可以有特定的方法。下面是三种设计类方法的模板。 class A(object):a adef foo1(self, name):print hello, namestaticmethoddef foo2(name):print hello, nameprint…...
分享136个ASP源码,总有一款适合您
ASP源码 分享136个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 136个ASP源码下载链接:https://pan.baidu.com/s/11db_K2QXns5pm8vMZBVPSw?pwds0lb 提取码&#x…...
【Python百日进阶-Web开发-Peewee】Day241 - Peewee 安装和测试、快速开始
文章目录 一、安装和测试1.1 使用 git 安装1.2 运行测试1.3 可选依赖项1.4 关于 SQLite 扩展的注意事项二、快速开始2.1 模型定义2.2 存储数据2.3 检索数据2.3.1 获取单条记录2.3.2 记录列表2.3.3 排序2.3.4 组合过滤器表达式2.3.5 聚合和预取2.3.6 SQL 函数2.4 数据库2.4.1 使…...
手机提供GMS支持(适用安卓和鸿蒙系统)
手机提供GMS支持 - 适用安卓和鸿蒙系统前言方式1:安装GMS套件(不推荐)方式2:安装OurPlay(推荐)方式3:安装Gspace(推荐)前言 本文提供多种为手机(安卓和鸿蒙系…...
[JavaEE]线程池
专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录: 1. 线程池是什么? 2. 线程池的实现原理 3. 标准…...
Redis缓存污染了怎么办?
我们应用Redis缓存时,如果能缓存会被反复访问的数据,那就能加速业务应用的访问,但是,如果发生了缓存污染,那么,缓存对业务应用的加速作用就减少了。 在一些场景下,有些数据被访问的次数非常小&…...
特斯拉印证成本仍是工业制造取胜的关键,反证中国制造的优势
近20年来,业界对于工业制造的竞争优势开始逐渐偏离成本控制,然而如今特斯拉在全球的成功却正在印证着工业制造的成功仍然在于成本,成本才是工业制造取胜的关键,其他任何被吹嘘的个性化、创新等全都是骗人的把戏。特斯拉的成功曾被…...
工具及方法 - 斗地主技巧
斗地主游戏起源 斗地主是流行于湖北武汉、汉阳一带的一种扑克游戏。游戏需由3个玩家进行,用一副54张牌(连鬼牌),其中一方为地主,其余两家为另一方,双方对战,先出完牌的一方获胜。斗地主起源于湖北武汉汉阳一带…...
BIO NIO AIO IO多路复用的区别
1、基础概念 1.1、阻塞非阻塞和同步异步的结合 下面通过例子来具体说明: 同步阻塞: 小明一直盯着下载进度条,到100%的时候完成。 同步体现在:小明关注下载进度条并等待完成通知。(可以看成同步是我主动关注任务完成的…...
数学建模——降维算法
降维 降维的意义 降低无效、错误数据对建模的影响,提高建模的准确性少量切具有代表性的数据将大幅缩减挖掘所需的时间降低存储数据的成本 需要降维的情况 维度灾难。很难有一个简洁的模型在高维空间中依旧具有鲁棒性,而随着模型复杂度的增加…...
04_iic子系统
总结 iic_client和iic_driver 加入iic总线的思想和paltform总线的玩法一样 把iic设备和驱动注册到iic总线中 构造出字符设备驱动和设备节点供app进行操作 但是iic硬件设备是挂在iic控制器下面的 所以iic控制器也会有自己的驱动和设备树节点 厂家一般都会帮做好 我们写的iic_dr…...
离散系统的数字PID控制仿真-3
离散PID控制的封装界面如图1所示,在该界面中可设定PID的三个系数、采样时间及控制输入的上下界。仿真结果如图2所示。图1 离散PID控制的封装界面图2 阶跃响应结果仿真图:离散PID控制的比例、积分和微分三项分别由Simulink模块实现。离散PID控制器仿真图&…...
如何好好说话-第12章 理清楚问题就是答案
生活中该不该积极主动与别人展开社交活动?有些时候社交活动并不开心,仅仅只是无聊的闲才。但他确实能拉拢人际关系,帮我们获得近身套路。而且有一种观点认为不善于社交的人是不成功的。注意以上说的这些都是偏见。当我们站在一个更高的维度认…...
ice规则引擎==启动流程和源码分析
启动 git clone代码 创建数据库ice,执行ice server里的sql,修改ice server的配置文件中的数据库信息 启动ice server 和ice test 访问ice server localhost:8121 新增一个app,默认给了个id为1,这个1可以看到在ice test的配置文件中指定…...
进度管理(上)
规划进度管理 定义:规划进度管理是为实施项目进度管理制定计划的过程。 输入: 1、项目管理计划 2、项目章程(包含里程碑,这个和规划进度有直接干系) 3、组织过程资产 4、事业环境因素。 输出:进度管…...
2021 XV6 8:locks
实验有两个任务,都是为了减少锁的竞争从而提高运行效率。Memory allocator一开始我们是有个双向链表用来存储空闲的内存块,如果很多个进程要竞争这一个链表,就会把效率降低很多。所以我们把链表拆成每个CPU一个,在申请内存的时候就…...
JUC面试(十一)——LockSupport
可重入锁 可重入锁又名递归锁 是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提,锁对象得是同一个对象),不会因为之前已经获取过的锁还没释放而阻塞。 Java中ReentrantLock和synchronized都是可重入锁&am…...
Datawhale 202301 设计模式 | 人工智能 现代方法 习题
Exercise 1 绪论 Q:用您自己的话来定义:(a)智能,(b)人工智能,(c)智能体,(d)理性,(e)逻…...
k8s安装dashboard面板
k8s dashboard github地址:https://github.com/kubernetes/dashboard注意:dashboard版本要和k8s版本匹配,具体参考release里的Compatibility:https://github.com/kubernetes/dashboard/releases安装命令wget https://raw.githubus…...
最详细、最仔细、最清晰的几道python习题及答案(建议收藏哦)
名字:阿玥的小东东 学习:python。c 主页:没了 今天阿玥带大家来看看更详细的python的练习题 目录 1. 在python中, list, tuple, dict, set有什么区别, 主要应用在什么样的场景? 2. 静态函数, 类函数, 成员函数、属性函数的区别? 2.1静态…...
逆水寒魔兽老兵服副本攻略及代码分析(英雄武林风云录,后续更新舞阳城、扬州、清明等副本攻略)
文章目录一、武林风云录1)老一:陈斩槐(只有四个机制,dps压力不大,留爆发打影子就行)(1)点名红色扇形区域(2)点名红色长条,注意最后还有一段大劈&a…...
SpringMVC总结
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验…...
二进制部署kubernetes高可用集群
二进制部署kubernetes高可用集群 一、单节点部署 1、集群节点规划(均是24位掩码) 负载均衡节点Master节点Node节点Harbor私有仓库节点nginx110.4.7.23master110.4.7.11node110.4.7.2110.4.7.200nginx210.4.7.24master210.4.7.12node210.4.7.22 2、基本…...
机器学习(七):Azure机器学习模型搭建实验
文章目录 Azure机器学习模型搭建实验 前言 Azure平台简介 Azure机器学习实验 Azure机器学习模型搭建实验 前言 了解Azure机器学习平台,知道机器学习流程。 Azure平台简介 Azure Machine Learning(简称“AML”)是微软在其公有云Azure上推…...
第二类换元法倒代换专项训练
前置知识:第二类换元法 题1: 计算∫1x10xdx\int\dfrac{1}{x^{10}x}dx∫x10x1dx 解: \qquad令x1tx\dfrac 1txt1,t1xt\dfrac 1xtx1,dx−1t2dtdx-\dfrac{1}{t^2}dtdx−t21dt \qquad原式∫11t101t⋅(−1t2)dt−∫…...
VMware虚拟机无法向宿主机拖放文件
宿主机环境: Windows 10 x64专业工作站版 VMware workstation pro 17 TotalCommander 9.21a 虚拟机环境: Windows 10 x64专业工作站版 TotalCommander 9.21a 现象: 从虚拟机的TC向宿主机TC拖放文件时,光标显示为禁止drop的图…...
Java基础语法——运算符与表达式
目录 Eclipse下载 安装 使用 运算符 键盘录入 Eclipse下载 安装 使用 Eclipse的概述(磨刀不误砍柴工)——是一个IDE(集成开发环境)Eclipse的特点描述(1)免费 (2)纯Java语言编写 (3)免安装 (…...
连通性1(Tarjan 理论版)
目录 一、无向图割点、桥、双连通分量 Tarjan 算法求割点和桥(割边) “割点”代码 边双和点双连通分量 边双连通分量 和 点双连通分量 的缩点 二、有向图强连通分量 1.有向图的弱连通与强连通 2.强连通分量 Kosaraju算法 Tarjan 算法(…...
数据库02_函数依赖,数据库范式,SQL语句关键字,数据库新技术---软考高级系统架构师009
1.首先我们来看这个,给定一个X,能确定一个Y那么就说,X确定Y,或者Y依赖x,那么 比如y = x * x 就是x确定y,或者y依赖于x 2.然后再来看图,那么左边的部分函数依赖,就是,通过A和B能决定C,那么如果A只用给就能决定C,那么就是部分函数依赖. 3.然后再来看,可以看到,A可以决定B,那么…...
王者荣耀入门技能树-解答
前言 前段时间写了一篇关于王者荣耀入门技能树的习题,今天来给大家解答一下。 职业 以下哪个不属于王者荣耀中的职业: 射手法师辅助亚瑟 这道题选:亚瑟 王者荣耀中有6大职业分类,分别是:坦克、战士、刺客、法师、…...
java基础学习 day37 (集合)
集合与数组的区别 长度:数组长度固定,一旦创建完成,就不能改变。集合长度可变,根据添加和删除元素,自动扩容或自动收缩,(添加几个元素就扩容多少,删除几个元素就收缩多少࿰…...
C语言:数组
往期文章 C语言:初识C语言C语言:分支语句和循环语句C语言:函数 目录往期文章前言1. 一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化2. 一维数组的使用3. 一维数组在内存中的存储4. 二维数组的创建和初始化4.1 二维数组的创建4.2 二维…...
Redis学习(三)| Redis高可用和容错机制详解
文章目录 高可用性主从复制(Master-Slave Replication)哨兵(Sentinel) 容错性数据持久化哨兵(Sentinel) 高可用vs容错性概念关联 结论 Redis(Remote Dictionary Server)是一种高性能…...
SpringMVC 源码剖析
SpringMVC 源码剖析 0 从源码角度分析SpringMVC执行流程 // 前端控制器,SpringMVC最核心的类 public class DispatcherServlet extends FrameworkServlet {// 前端控制器最核心的方法,这个方法是负责处理请求的,一次请求,调用一次…...
代码随想录算法训练营第五十天|123.买卖股票的最佳时机Ⅲ、188.买卖股票的最佳时机Ⅳ
买卖股票 文章目录 一、买卖股票的最佳时机Ⅲ二、买卖股票的最佳时机Ⅳ总结 一、买卖股票的最佳时机Ⅲ 最多只能买卖两次,所以需要记录第一次和第二次买卖的装填,加上不操作的状态,共有五个状态 class Solution { public:int maxProfit(vec…...
【算法刷题day30】Leetcode:332. 重新安排行程、51. N 皇后、37. 解数独
文章目录 Leetcode 332. 重新安排行程解题思路代码总结 Leetcode 51. N 皇后解题思路代码总结 Leetcode 37. 解数独解题思路代码总结 草稿图网站 java的Deque Leetcode 332. 重新安排行程 题目:332. 重新安排行程 解析:代码随想录解析 解题思路 代码 /…...
苹果电脑装虚拟机好用吗 苹果电脑装虚拟机要钱吗 Parallels对mac的损害 Parallels占用多大空间 PD19
在当今数字化的时代,人们对电脑系统跨设备互联的需求越来越高。作为拥有广泛用户群体的苹果电脑,许多用户会有在Mac系统中运行其他操作系统的需求。在这种情况下,安装虚拟机是一个较好的解决方案。那么接下来就给大家介绍苹果电脑装虚拟机好用…...
爬虫f12跳转和debugger检测
在空白页面的控制台运行解决重定向再复制url到网页 //解决重定向 (() > {window.onbeforeunload ()>{debugger;return false;}})();//构造方法无限debugger (() > {Function.prototype.constructor Function.prototype.constructor;Function.prototype.constructor…...