我是MathML的新手,所以如果这是一个愚蠢的问题我会道歉。我想将MathML 3.0嵌入到本体(RDF / OWL等)中。但我希望方程中的变量能够引用本体中的实体。
例如,对于等式( a + b ),其中 a 由 exampleontology#a 表示 exampleontology#b b ,我会做类似的事情:
<应用> < csymbol cd =“arith1”> plus< / csymbol>
< ci id ='exampleontology#a'> a< / ci>
< ci id ='exampleontology#b'> b< / ci>
< /应用>
我不确定嵌入这些引用的最合适方法是什么。
答案 0 :(得分:2)
This answer on semanticweb.com关于在RDF中编码数学表达式的相关问题可能有助于达到预期目标。
它为数学对象引入了一个基于OpenMath的词汇表,并为数学表达式和RDF资源和属性之间的交叉引用引入(另请参阅OpenMath content dictionary for RDF)。由于OpenMath也与Strict Content MathML完全兼容,因此很容易在两种表示形式之间进行转换。
答案 1 :(得分:1)
<owl:Class rdf:about="exampleontology#A"/>
)。所以不可能这样,你必须找到一个解决方法。
您可以做的是创建一个本体,然后通过OWL注释属性(例如mathml
)链接一些MathML代码。然后,您可以通过访问注释属性的值来检索MathML代码。
例如,如果将以下代码块保存为.owl文件并使用Protege 4打开它,您应该能够理解该模式:
<?xml version="1.0"?>
<!DOCTYPE rdf:RDF [
<!ENTITY owl "http://www.w3.org/2002/07/owl#" >
<!ENTITY demo "http://www.example.org/demo.owl#" >
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>
<rdf:RDF xmlns="http://www.example.org/demo.owl#"
xml:base="http://www.example.org/demo.owl"
xmlns:demo="http://www.example.org/demo.owl#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<owl:Ontology rdf:about="http://www.example.org/demo.owl"/>
<owl:AnnotationProperty rdf:about="&demo;mathml"/>
<owl:Class rdf:about="&demo;a">
<mathml rdf:datatype="&xsd;string"><ci>a</ci></mathml>
</owl:Class>
</rdf:RDF>
答案 2 :(得分:0)
<apply> <csymbol cd="arith1">plus</csymbol>
<ci id='exampleontology#a'>a</ci>
<ci id='exampleontology#b'>b</ci>
</apply>
#
不是XML ID中的有效字符,我认为这里最自然的方法是将您的本体等同于OpenMath内容词典然后你可以去
<apply> <csymbol cd="arith1">plus</csymbol>
<csymbol cd='exampleontology'>a</csymbol>
<csymbol cd='exampleontology>b</csymbol>
</apply>
将csymbol的内容作为内容字典中符号的名称。
您可以但不必使用OpenMath Content Dictionary语法来描述系统,也可以直接将本体作为OWL进行管理。
有一些旧文件在rdf / owl和世界的openmath视图之间开始一些映射,例如
http://www.openmath.org/ontology/README
http://www.openmath.org/lists/index.html的openmath列表可能是与对OpenMath / MathML和RDF / OWL感兴趣的人联系的最佳位置
答案 3 :(得分:0)
最简单的方法是为MathML文字定义一个新的数据类型。我们说http://www.w3c.org/datatypes/mathMLLiteral。 (理想情况下,它应由W3C定义)
在Turtle格式中,这看起来像这样:
@prefix math:<http://example.org/ont/math#>
:APlusB a math:Addition
math:serialization """<apply> <csymbol cd="arith1">plus</csymbol>
<ci id='exampleontology#a'>a</ci>
<ci id='exampleontology#b'>b</ci>
</apply> """^^<http://www.w3c.org/datatypes/mathMLLiteral> .
在GeoSPARQL标准中使用类似的编码模式,其中几何以WKT或GML编码。 Geosparql为每个数据类型引入了两种不同的数据类型:http://www.opengis.net/ont/geosparql#wktLiteral和&lt; http://www.opengis.net/ont/geosparql#gmlLiteral