2013-03-05 59 views
0

我对MathML相当陌生,所以如果这是一个愚蠢的问题,我很抱歉。我想将MathML 3.0嵌入到本体(RDF/OWL等)中。但我希望方程中的变量指向本体中的实体。如何将MathML嵌入本体及其参考部分

例如,对于其中一个exampleontology#一个由exampleontologyb·B表示的方程(一个 + b),我会做类似:

<申请> < csymbol CD = “arith1”>加</csymbol>

< CI ID = 'exampleontology#一个'>一个</CI>

< CI ID = 'exampleontology#B'> b </CI>

< /申请>

我不知道什么是嵌入这些引用的最合适的方式。

回答

1

传统上,MathML和OWL都使用自己的独立特定标签(例如:<owl:Class rdf:about="exampleontology#A"/>)序列化为XML。所以这是不可能的,你必须找到解决办法。

您可以做的是创建一个本体,然后通过OWL注释属性(例如mathml)链接一些MathML代码。之后您可以通过访问注解属性的值来检索MathML代码。

例如,如果你下面的代码块保存为文件.owl与门生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">&lt;ci&gt;a&lt;/ci&gt;</mathml> 
</owl:Class> 
</rdf:RDF> 
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的内容被作为NA我在内容词典中的符号。

您可以但不必使用OpenMath内容词典语法来描述系统,或者您可以直接将本体作为OWL进行管理。

没有启动世界RDF /猫头鹰和openmath观点之间的一些映射例如一些旧文件

http://www.openmath.org/ontology/README

http://www.openmath.org/lists/index.html的openmath名单可能是用于获取接触有兴趣的人最好的地方在OpenMath/MathML和RDF/OWL

+0

感谢您的回答。为了澄清,如果我使用'exampleontology:a'或另一个ID是有效的XML ID,这样可以吗?还是内容字典方法仍然是首选? – user2137555 2013-03-12 20:52:36

+0

id属性(如在html和大多数词汇表中)应该在文档中是唯一的,并标识_that_元素,它是内向链接的锚点,而不是外部引用。 – 2013-03-12 20:54:54

2

This answer on semanticweb.com有关编码RDF中的数学表达式的相关问题可能有助于达到期望的目标。

它引入了基于OpenMath的数学对象词汇表以及数学表达式和RDF资源和属性之间的交叉引用(另请参阅OpenMath content dictionary for RDF)。由于OpenMath也完全兼容严格内容MathML,所以很容易在两种表示之间进行转换。

0

最简单的方法是为MathML文字定义一个新的数据类型。假设说http://www.w3c.org/datatypes/mathMLLiteral。 (理想地应该由W3C定义)

在龟格式,这将是这样的:

@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和< http://www.opengis.net/ont/geosparql#gmlLiteral