专利名称:先进的多功能布局和渲染系统、方法和产品的制作方法
技术领域:
本发明一般涉及图形渲染系统,本发明特别涉及一种系统、装置、方法和物品的制造,其利用例如Macromedia Inc公司的Macromedia FlashTM技术、Extensible Markup Language(XML)语言以及Mathematical MarkupLanguage(MathML)来提供更好的交互式图形应用软件。
有关Macromedia FlashTM技术的详细内容,这包括优选的软件和硬件环境,可以在各种来源找到,如Macromedia的网站http//www.macromedia.com,来自FlashForward和Macromedia Ucon的会议记录,在几本如Friends of Ed,O’Reilly & Co.已出版的书中,网站上的文章及用户论坛如We’re Here,FlashKit,UltraShock和Figleaf’s FlashCoders。
有关XML和MathML的详细内容,这包括优选的软件和硬件环境,可以在各种来源找到,如W3C的网站http//www.w3c.org。特别是,当前名称为“Mathematical Markup Language(MathML)2.0版”的MathML说明位于http//www.w3c.org/TR/2001/REC-MathML2-20010221。
上述的每一篇参考文献以及这里提到其它任一篇参考文献均以参考的形式并入这里。
背景技术:
当前,多媒体信息,这包括文本、图形、数字表达式、符号以及其它标识(合起来被称为“数学表达式”)等是按如下方式开发并表示出来当前的网络浏览器如Internet ExplorerTM和NetscapeTM等显示格式化文本和图形/图像,然而,只有少数不知名的网络浏览器含有本地MathML支持,从而限制了使用。
另一项技术是利用图形生成及渲染程序如Macromedia Inc公司的Macromedia Flash MXTM开发工具来人工生成整个多媒体布局。然而,人工布局实际上不可行,因为其开发成本太高,并且在维护性、可量测性和轻便性上均受到限制。
Macromedia Flash PlayerTM及相关的Flash Plug-inTM显示的是格式为Hypertext Markup Language(HTML)对象的样式文本。然而,这种布局与图形或数字表达式并不具有整体性。
现有的软件产品是将MathML对象渲染成图形格式如JointPhotographic Experts Group(JPEG)格式来显示数字表达式。然而,为了更为有效,该图形必须与文本一致。此外,对图形进行预渲染或动态渲染以满足前面的要求在性能、保存和带宽以及许可费用上花费很大。
发明内容
本发明旨在解决现有技术的上述问题。特别是,本发明是一种全面的解决方案,其用来有效地布局并渲染包含有混合数据类型的多媒体信息,这包括文本、图形、动画、视频和数字表达式。该混合数据可显示成各种尺寸和格式,并且是一种可活动并且可维护的格式。此外,还有一定的技术支持,如Macromedia FlashTM、多语言及统一编码(Unicode)支持、客户机-服务器多层构架的实现。此外,其性能和成本均保持在可接受的水平上。
参考下面的说明,本发明的其它方面、特征和优点将更加清楚。
下面将参照来描述本发明的实施例,其中图1A所示为根据本发明教导构造的一例系统;图1B所示为根据本发明教导构造的一例网络系统;图2所示为根据本发明教导的一例数据格式;图3所示为根据本发明教导的一例处理流程;图4所示为根据本发明教导用来实现图3所示实施例的一例伪代码(pseudo code);图5所示为根据本发明教导的另一例处理流程;图6所示为根据本发明教导用来实现图5所示实施例的一例伪代码;图7所示为根据本发明教导的一例用户界面。
优选实施例图1-7主要是用来示例性地展示本发明的系统结构、操作方法、数据格式和程序代码。程序代码可用任易一种计算机程序产品来实现。一计算机程序产品包括有一个用来保存或转移计算机可读代码的介质,或者是一种可将计算机可读代码嵌入其中的介质。该计算机程序产品例如可以是CD-ROM盘、ROM卡、软盘、磁带、计算机硬盘驱动器、网络上的一台服务器以及载波。
显然,在不脱离本发明构思的情况下,这里所述的系统、操作方法、数据对象以及计算机产品在细节上可以有所不同。此外,这里公开的许多细节是为了更加全面的理解本发明。然而,所有特定的细节均可由通用的对象来代替。此外,为了使本发明原理更加清楚,这里不会对公知的技术做详细的说明。尽管本发明在这里公开的实施例特别适用于MacromediaFlash-XML-MathML平台,但本发明并非仅限于此,本领域技术人员很容易就能将本发明的构思应用于另一个更为优选的平台。因此,其它合适并相当的程序语言、平台和构架等均落入本发明的保护范围。
图1所示为用来实现本发明的一例处理器控制系统的硬件配置。本领域技术人员均清楚本发明并不限于这里所描述的配置,本发明可在过去、现在以及将来的任何一种配置上实现,这包括例如,工作站/桌上/膝上/掌上配置、客户机-服务器的配置、多层配置、分布式配置、其它的网络配置等,只要其具有必要部件能够实现本发明的原理即可。
图1A和B所示是根据本发明教导的一个先进的多功能布局和渲染系统700,其包括但并不限于一总线705,其用来实现至少一个处理器710、至少一个内存715以及至少一个存储设备720之间的通讯。该总线705在连接上还用来接收至少一个输入设备725如鼠标、键盘、输入笔、垫等的输入,并给至少一个输出设备730如监视器、打印机或其它显示介质等提供输出。至少的一个处理器710在结构上用来完成这里所提供的技术,特别是运行本发明下面所列的计算机程序产品的实施例。作为选择,计算机程序产品实施例的逻辑功能可分配给通过网络或其它通讯装置相联的多个处理器。该计算机程序产品可在各种操作系统下运行,例如。各个版本的Microsoft WindowsTM,Apple MacintoshTM,UNIX等。
本发明可实现为一个计算机程序产品(其也被称为“QD模块”),其可作为例如一个FlashTM的客户应用程序代码模块来在Macromedia FlashTM平台上开发并实现。该QD模块与超级-多功能-文本(Super-Versatile-Text)显示子模块(其也被称为“SVT模块”)一起(如下所述)能够将多媒体信息有效地呈现在显示输出设备上。
图2所示为根据本发明由QD模块所用的一例数据格式。其中的布局以及必须由数据使用环境所定义的数据都是本领域技术人员非常清楚的内容。在一实施例中,该QD数据格式是作为一个XML对象,一个被FlashTM应用程序所解读的开放式网络标准来实现的。该QD数据格式优选用统一编码作为字符编码,其允许使用巨型的字符组,其中包括大多数的语言和数学符号。该QD数据格式还允许出现并混合使用如斜体、粗体等的样式文本、图形、和数字表达式、符号以及其它标识。其中的图形可定义为标准的JPEG文件或者是Flash SWFTM文件,并且可做成动画的或者是交互式的。数学表达式可定义为MathML、一个基于XML的开放式标准,其可被大多数数学软件产品导入导出。
图3所示为本发明QD模块的一例处理流程。
如图所示,在301,内容数据如问题数据被输入到系统中。该内容数据包括文本、样式文本、外部数据文件(其包含例如图形或动画)的说明、MathML以及其它的可显示对象。该内容数据用来生成主问题的内容和相关的答案、视觉辅助(Visual Aid)(可选),以及描述性解决方案(DescriptiveSolution)(可选)的内容。
在302,系统对问题数据进行处理并将所述数据转换成一个XML的树对象。该问题数据用来生成主问题的文本。
在303,系统将问题文本显示成FlashTM数据块。
在304,系统将主问题的可能答案显示成FlashTM数据块;在305,系统核对与主问题相关的视觉辅助。正如其名字所说的那样,视觉辅助用图形展示相关的问题。下面根据结果的不同,程序进到306或307。如果有Visual Aid,程序进到306,然后是307。然而,如果没有视觉辅助,那么程序就直接进到307。
在306,系统将视觉辅助显示成FlashTM数据块,同时程序进到307。
在307,系统核对与主问题相关的描述性解决方案。接着根据结果的不同,程序进到308或309。如果有描述性解决方案,程序进到308,然后是309。然而,如果没有描述性解决方案,那么程序就直接进到309。
在308,系统保存该描述性解决方案以便在下面显示成FlashTM数据块,同时程序进到307。
在309,系统根据所需的布局将所有的数据元素对齐。
在310,系统据此显示出问题。
图7所示为一例用户界面,其中有用于显示的各种元素。如图所示,问题文本数据呈现在显示区域(Display area)2,可供选择的答案的数据呈现在显示区域4,当前答案的数据呈现在显示区域6,视觉辅助的数据呈现在显示区域8,同时描述性解决方案的数据呈现在显示区域10。
图4所示为一例伪代码,其用来实现QD模块(亦复制如下)。
QD伪代码function parseQuestionXMLconvert raw text to an XML treeget question layout style from XMLend parseQuestionXML function
function buildQuestionObjects// Sort through branches of question XML.
For each branchif the branch is the main question textcreate a movieclip to contain the textcall the displaySVTBlock functionelse if the branch is the answer optionscreate a movieclip to hold the answersfor each answercreate a movieclip to hold the answerattach an answer buttoncreate a movieclip to hold the answer textcall the displaySVTBlock functionend forelse if the branch is some other content blockif the type of content is visual aidif this layout calls for a visual aidcreate a movieclip to contain thevisual aidcall the displaySVTBlock functionelse if the type of content is descriptivesolutionsave the contents for possible laterdisplayend if
end ifend forend buildQuestionObjects functionfunction layoutQuestion// Positions are based on the question layout style.
Position the main question textposition the answer blockposition the answers within the answer blockposition the visual aid,if requiredposition any other content blockend layoutQuestion function图5和图6所示为本发明QD模块的附加特征。其中图5所示为超级-多功能-文本显示模块或SVT模块的一例处理流程。该QD模块与SVT模块相互作用(调用SVT模块)从而在视觉上渲染QD内容数据。
如图所示,在501,内容数据被输入到系统中。该内容数据显示如下在502,系统经XML树来确定是否有剩下的内容(结点)来显示。如果是,程序进到503;如果不是,程序进到505。
在503,系统确定是何种剩下的内容来显示。然后根据结果,系统选择不同的路径。如果内容是文本,那么程序进到504A;如果内容是外部文件,那么程序进到504B;如果内容是MathML,那么程序进到504C。
在504A,系统找一条能容纳该文本数据对象的显示行。然后,系统生成一个新的、具有合适文本和样式格式的文本对象,同时程序回到502。
在504B,系统找一条能容纳该外部文件数据对象的显示行。然后,系统将该外部文件布置到显示行上,并使程序进到502。
在504C,系统找一条能容纳该MathML数据对象的显示行。然后,系统将渲染该MathML对象,并使程序进到502。
当其中没有剩下的结点数据内容显示时,程序进到505。
在505,系统将这些行以及这些行中的所有数据对象均格式化,并在506显示出来。
图6所示为一例伪代码,其用来实现SVT模块。(该代码如下)。
SVT显示伪代码//The displayContentBlock function is the interface toother code.
//External code would call this function,specifying thexml data to//display,the destination to display into,and any non-default//configuration options.
Function displaySVTBlock
// Initialize the environment of the destination,based on// configuration options.
Set the environment′s widthset a default text stylefor each node in the XML dataif node is textcall the displayText functionelse if node is a visual aid file referencecall the loadFile functionelse if node is MathMLcall the displayMath functionend ifend forfor each line that has been created in destinationfor each object in linegather measurementsend forcompute shared baseline and boundaries of linefor each object in lineposition the object so baselines arealignedend for
align line to other lines and destinationend forend displaySVTBlockfunction displayTextinherit the default text stylemodify the style as specified for this nodecreate an object to hold text within the current linewhile there is text in the noderemove a word of textadd the word to the current line of destinationif current line has exceeded lengthremove the last linemark the line donecreate a new current linecreate an object to hold text within thecurrent lineadd the word to the current lineend ifend while
end renderTextfunction loadFileextract file information from nodecreate an object of the file′s given dimensionsbegin loading the fileif the object fits in the current line of destinationplace the object into the lineelsecreate a new lineif the object doesn′t fit into the new emptylinescale the object to fit the lineend ifplace the object into the lineend ifend loadFile
function displayMathcreate an object to render the math node intoextract MathML data from nodecall the renderMath functionif the object fits in the current line of destinationplace the object into the lineelsecreate a new lineif the object doesn′t fit into the new emptylinescale the object to fit the lineend ifplace the object into the lineend ifend displayMath//This function is called recursively-that is,it callsitself.
//MathML objects are frequently composed of other MathMLobjects,//such as fractions of fractions,so this recursion isnecessary.
//Nodes in the MathML are of two major typescompositeor terminal.
//composite nodes contain other nodes,while teminalnodes contain//only values,such as a number,variable,or mathematicalsymbol.
//For instance,a fraction node would have two childnodes,the//numerator and denominator.Each child is renderedseparately,then//the first is placed over the other,and a line is drawnbetween//them.
Function renderMathif the current node is a composite nodecall the renderMath function on each child nodelayout the child node based on node typeelse if the current node is a terminal nodeif the node contains text
create a text box of the appropriatestyleelse if the node contains an encoded symbolinsert the graphic for that symbolend ifend ifend renderMath外部(公共)函数的定义这部分内容列出了QD模块中的外部函数。尽管这里没有严格的面向对象的公共/私用状态,但这里仅是一些应当被外部代码调用的函数。除非是特别说明,每一个函数均没有返回值。
Init(initObj)该函数应在下面的其它函数被调用之前被调用一次。其用来以各个常数初始化QD环境,这包括字体的设定值以及宽度和高度值。
变元initObj一个对象,其包含有任何已命名的数值从而撤销配置选项。displayQuestion(question,return_mc,return_func)该函数用来显示一个问题。当显示完成时,其调用特定的返回函数。
变元question问题数据,采用合适的XML文本。
return_mc[可选],其中的内容将在完成时被return_func调用。
return_func[可选],该函数将在return_mc中被调用。
removeQuestion()该函数用来去掉所显示的问题。
变元(无)activateAnswers(notify_mc,notify_func)该函数用来启动答案选项,使它们对用户具交互性。当一个答案被选择时,会调用该专门的通知函数,该函数带有两个变元用户所选答案的字母,和正确的答案。
变元notify_mc内容,其中将在完成时调用notify_func。
notify_func函数,其将在notify_mc中被调用。
deactivateAnswers()其用来使所有的答案选项均无效,从而使用户无法选择。
变元(无)showUserAnswer(userAnswer,showCorrect)该函数用来标记userAnswer中指定的答案,其用来显示选择是否正确。如果showCorrect设定为真,并且用户的答案是错误的,那么正确的答案也要显示起来。
变元userAnswer用户所选答案的字母。
showCorrect一个真/假标记,其用来表明是否要显示正确的答案。
getCorrectAnswer()其用来给所显示的一个问题返回其正确答案的字母。
变元(无)showCorrectAnswer()其用来给用户显示所显示问题的正确答案。
变元(无)getAnswerArray()其用来所有答案选项的字母阵列。这对让用户用键盘来选择答案有用。
变元(无)isSolution()在该问题有描述性解决方案时,该函数用来返回一个真值,否则返回一个假值。
变元(无)dislpaySolution(dest_mc,destWidth,return_mc,return_func)该函数用来渲染问题的描述性解决方案,当然是在其存在时。该方案在特定的电影剪辑(movieclip)中以特定的宽度被渲染。一旦渲染完成,就调用一个返回函数。
变元dest_mc电影剪辑,其用来将描述性解决方案渲染入其中。
destWidth dest_mc显示区域的像素宽度。
retum_mc[可选],内容,其中将在完成时调用return_func。
return_func[可选],该函数将在return_mc中被调用。
dislpayXMLBlock(svt_xml,dest_mc,destWidth,return_mc,return_func)该函数用来将问题数据的XML对象(也被称为SVT块(Block))以特定的宽度渲染到特定的电影剪辑中。一旦渲染完成,就调用一个返回函数。
变元svt_xml一个XML对象,其中包含有SVT数据的一个有效块。
dest_mc电影剪辑,其用来将描述性解决方案渲染入其中。
destWidth dest_mc显示区域的像素宽度。
return_mc[可选],内容,其中将在完成时调用return_func。
return_func[可选],该函数将在return_mc中被调用。
dislpayTextBlock(svtText,dest_mc,destWidth,return_mc,return_func)与dislpayXMLBlock一样,该函数用来将SVTBlock在专门的宽度渲染到专门的电影剪辑中。然而,该SVTBlock应作为纯文本通过,这一点不同于XML对象。一旦渲染完成,就调用一个返回函数。
变元svtTextXML文本,用来描述SVT数据中一个有效块的文本。
dest_mc电影剪辑,其用来将描述性解决方案渲染入其中。
destWidth dest_mc显示区域的像素宽度。
return_mc[可选],内容,其中将在完成时调用return_func。
return_func[可选],该函数将在return_mc中被调用。
内部(私有)函数的定义这部分内容列出了QD模块中的内部函数。尽管这里没有严格的面向对象的公共/私用状态,但这些函数不应被外部代码调用。任何交互均应通过上面所列外部函数来产生。此外,除非是特别说明,每一个函数均没有返回值。
parseQuestionXML(rawText)该函数用来将问题的源文本转换成一个XML对象。其也用来为问题的布局核对XML,其中的布局需要在问题开始渲染之前完成。该XML对象以及布局的值均保存在内部问题电影剪辑中。
变元rawText一个文本串,其中包含有用于整个问题的合适的XML。
buildQuestionObjects()该函数通过问题XML对象进行分类,提取出问题文本和答案,以及各种视觉辅助、描述性解决方案或者是其它的内容。问题文本、答案和视觉辅助将生成电影剪辑,它们的SVT块将由displaySVT()函数渲染。描述性解决方案,如果有的话,将保存起来以供以后显示出来。
变元(无)
displaySVT(svt_xml,svt_mc)该函数用来获得一个SVT块,并将其渲染到专门的SVT环境中。该SVT块是一个XML对象,并且该SVT环境是一个包含有SVT显示所需设定值和配置信息的电影剪辑。
变元svt_xml一个包含有SVT块的XML对象。
svt_mc SVT环境电影剪辑,其将SVT块渲染入其中。
getDisplayLine(svt_mc)该函数在SVT环境电影剪辑中给当前行(一电影剪辑)返回一个参考值。其中的当前行至少具有一些空间供附加的内容(文本,图形,被渲染的MathML)使用。如果已有的最后一行满了,或者是没有当前行,该函数将生成一个新的。
变元svt_mc SVT环境电影剪辑。
endDisplayLine(svt_mc)该函数用来标记SVT环境在完成时的当前显示行,从而使下面调用getDisplayLine(svt_mc)将返回一个新的行。这对断行时或者在一内容对象必须覆盖下一行时非常有用。
变元svt_mc一SVT环境电影剪辑。
displayVisualAid(va_xml,va_mc)该函数用来将一个视觉辅助项渲染到一个SVT环境中。该视觉辅助通常是一个SWF或者是一个JPEG,其由一个单独的文件加载。该对象的高度和宽度在XML中规定,这样不用等加载完成就能进行布局。(用piiLoader模块来完成加载。)变元va_xml一个来自SVT块的XML结点,其包含有视觉辅助。
va_mc一个SVT环境电影剪辑。
processVisualAid(returnID,va_mc)当视觉辅助对象加载完成时,该函数由piiLoader模块调用。其用来对加载的文件进行处理,核实其是否装入SVT块XML结点定义的范围内。
变元returnID一个piiLoader的加载ID,其用来唯一地识别该加载。
va_mc一个SVT环境电影剪辑。
displayMathML(math_xml,svt_mc)该函数用来将一SVTBlock的MathML部分渲染到一个对象中。单个MathML要素的渲染由renderMathML()函数来处理。该函数用来在SVT环境中对行进行分配,如果MathML对象大宽,则覆盖到下一行。
变元math_xml来自SVTBlock的一个结点,其包含有MathML的数据。
svt_mc一个SVT环境电影剪辑。
renderMathML(math_xml,box_mc,ref_tf)该函数用来将单个的MathML要素渲染到其中包含有文本和二进制符号的电影剪辑中。该渲染为递归处理,因此其调用自己来渲染主要素中的任何MathML要素。(例如,分数MathML要素含有另两个要素,它们分别表示分子和分母。)该函数将MathML数据的一个结点、用来将数据渲染进来的电影剪辑以及文本格式当作变元。该函数给其生成的电影剪辑返回一个参考值。
变元math_xml一个含有MathML数据的XML结点。
box_mc一个在其中生另新电影剪辑的电影剪辑。
ref_tf一文本格式对象,其用来渲染该对象的文本。
displayTextItem(rawText,svt_mc)该函数用来处理来自SVT块的纯样式文本对象的显示。其获得一个文本字符串并将其以当前的文本格式在SVT环境中进行渲染,并且在需要时将该文本分开并覆盖到多行上。
变元rawText一文本串。
svt_mc一个SVT环境电影剪辑。
drawBorder(a_mc,color,bwidth,bheight)该函数用Flash的画线工具来在一电影剪辑中画出一个边界。如果宽度和高度没有专门指定,就采用所测得的电影剪辑的宽度和高度。该函数可用在渲染函数中从而将特定的测量值强加到电影剪辑上。例如,加载的SWF文件可能没有占满其可以使用的整个空间,从而使布局混乱。用一个可不见的边界就能大大地减少布局的计算。(注意,画线函数容易覆盖电影剪辑中的已知线条。)变元a_mc画入边界的电影剪辑。
color画边界的颜色。(仅在调整时可见)bwidth[可选]所画边界的宽度。
bheight[可选]所画边界的高度。
layoutQuestion()该函数用来完成前面构建的问题对象的布局。问题文本、答案以及视觉辅助将根据其尺寸以及问题XML中特定的布局样式来布置。
变元(无)现在已描述了本发明的一个或多个实施例,然而本领域技术人员均清楚这些实施例均是示例说明而非限定,其仅以举例的方式来说明。除非另有表述,说明书(包括权利要求书、摘要和附图)中的所有特征均可由其它的用来实现相同或类似功能的特征、等同内容取代。因此,这些实施例经变更后的其它实施例均落在本发明权利要求书所限定的保护范围之内。
此外,这里提到的技术可由硬件、软件或者是两者的结合来实现。在一实施例中,该技术可由可编程的多个计算机上运行的计算机程序来实现,这些计算机均包括处理器、处理器可读存贮介质(这包括易失性存贮器和非易失性存贮器和/或存贮部件)、至少一个输入设备以及一个或多个输出设备。程序代码应用到输入设备所输入的数据上以完成上述的功能并产生出输出信息。该输出信息加到一个或多个输出设备。
每一个程序均优选用面向过程或面向对象的高级程序语言来实现从而与计算机系统进行通讯,然而,如果需要的话,这些程序也可用汇编或机器语言来实现。无论怎样,该语言均是可编辑或翻译的语言。在一实施例中,本发明用ActionScript程序语言来实现以便用在Macromedia FlashTM环境中。该程序代码采用Macromedia Flash MXTM来开发,用MacromediaFlash PlayeTM(如第6版,第48次发布或更高级的版本)来执行,并用到Macromedia piiLoader和timeQueue代码模块。
每一个程序均优选保存在可被通用或专用的可编程计算机读取的存贮介质或设备(如CD-ROM、NVRAM、ROM、硬盘、磁盘或载波)上,以便在该存贮介质或设备被计算机读取时能够配置并操作该计算机从而完成本文所述的各个操作。该系统也可实施为一个计算机可读的存贮介质,其配有计算机程序,该存贮介质在配置上应使计算机能按预定的方式来操作。
这里在描述实施例时假定人们知道Macromedia FlashTM和ActionScript程序语言,并且对编程有着一般的认识。如果知道布局和设计技术,如网络或打印页面的布局,特别是数字表达式的布局,对本申请的理解也非常有用。
本发明的其它方面和/或特征包括代码,其用来提供尽可能多的解决方案,并专门适用于当前实施的字体和布局尺寸。如果字体或者显示环境的另一部分出现明显的变化,那么两行之间的空间也可相应地进行调整。
作为优选,数字符号,无论是由名称实体还是统一编码所表示,均可按如下方式使用名称实体和编码字符均在XML的终端标记中单独存在。也就是说,在本发明的一个实施例中,<mn>5</mn><mn>π</mn>有效,而<mn>5π</mn>无效。
最后,本发明一个具有潜在商业成功的实施例集成到了PlanetiiTMMathSystemTM中,该系统是一个在线数学教育软件产品,其可在http//www.planetii.com/home/获得。
权利要求
1.一种用来显示多媒体内容数据的显示系统,其包括MathematicalMarkup Language(MathML)数据,所述系统包括一个显示介质,其具有多个显示行以便把多媒体内容数据渲染其上;与所述显示介质相联的处理器,其配置成接收所述的多媒体内容数据,其包括有文本、MathML以及外部文件标识;分析所述接收到的多媒体内容数据从而导出所述的文本、MathML以及外部文件标识;根据数据类型对所述的文本、MathML以及文件数据进行分类;其中所述的文本数据被定义为TEXT数据类型,所述MathML数据被定义为MATHML数据类型,并且所述的外部文件标识数据被定义为FILE数据类型;将所述导出并分类的文本、MathML以及外部文件标识数据保存为一个包括一根结点和多个分支结点的树,其中分支结点形成左右的子树,所述根结点以及所述分支结点的每一个结点均具有所述的文本、MathML以及外部文件中的一个以及对应关联的数据类型;定义一个横向程序,其包括访问所述树的一个结点,确定所述结点的数据类型;根据所述数据类型来显示所述结点数据,其中如果数据类型为TEXT,则生成一个具有所述文本结点数据的文本对象,并且根据预定的格式协议找出一个显示行以显示所述的文本对象;如果数据类型为FILE,则生成一个具有所述外部文件标识结点数据的文件对象,并且根据预定的格式协议找出一个显示行以加载并与前面渲染的文本一起显示出所述的文件对象;如果数据类型为MATHML,则生成一个具有所述所保存的MathML结点数据的MathML数据对象,并且根据预定的格式协议找出一个显示行以便与前面渲染的文本一起显示出所述的MathML对象;将所述横向程序应用到所述访问结点的左子树;将所述横向程序应用到所述访问结点的右子树;将所述横向程序应用到所述根结点从而使所述根结点是第一个被访问的结点。
2.如权利要求1的系统,其中所述处理器进一步将所述MathML数据分成MATHML COMPOSITE和MATHML TERMINAL数据类型;将所述分类的MathML数据保存为一个包括一根结点和多个分支结点的MathML树,其中分支结点形成所述MathML树的左右子树,所述根结点以及所述分支结点的每一个结点均具有一个所述导出MathML数据以及相关联的数据类型;定义第二个横向程序,其包括访问所述MathML树的一个结点,确定所述MathML树结点的MathML数据类型;根据所述数据类型来显示所述MathML树结点的数据,其中如果数据类型为MATHML COMPOSITE,则生成一个具有所述所保存的MathML复合结点数据的MathML数据对象,并且根据预定的格式协议找出一个显示行以便将所述的MathML对象与前面渲染的文本一起显示出来;如果数据类型为MATHML TERMINAL,则生成一个具有所述所保存的MathML终端结点数据的MathML数据对象,并且根据预定的格式协议找出一个显示行以便将所述的MathML对象与前面渲染的文本一起显示出来;将所述第二横向程序应用到所述被访问MathML树结点的左子树;将所述第二横向程序应用到所述被访问MathML树结点的右子树;将所述第二横向程序应用到所述MathML树的所述根结点从而使所述根结点是MathML树的第一个被访问的结点。
3.如权利要求1或2的系统,其中所述多媒体内容数据包括MarkupLanguage数据。
4.如权利要求3的系统,其中所述Markup Language数据包括Extensible Markup Language(XML)数据。
5.如权利要求1或2的系统,其中所述外部文件标识数据包括与数据文件相关联的信息,其包括图形、视频、动画、其它可显示物或者是其组合。
6.如权利要求4的系统,其中所述数据文件为Macromedia或者是Flash兼容文件。
7.一种用来显示多媒体内容数据的方法,其中的多媒体内容数据包括Mathematical Markup Language(MathML)数据,所述方法包括提供一个显示介质,其具有多个显示行以便把多媒体内容数据渲染其上;接收所述多媒体内容数据,其包括有文本、MathML以及外部文件标识;分析所述接收到的多媒体内容数据从而导出所述的文本、MathML以及外部文件标识;根据数据类型对所述的文本、MathML以及文件数据进行分类;其中所述的文本数据被定义为TEXT数据类型,所述MathML数据被定义为MATHML数据类型,并且所述的外部文件标识数据被定义为FILE数据类型;将所述导出并分类的文本、MathML以及外部文件标识数据保存成一个包括一根结点和多个分支结点的树,其中分支结点形成左右的子树,所述根结点以及所述分支结点的每一个结点均具有所述的文本、MathML以及外部文件中的一个以及对应关联的数据类型;定义一个横向程序,其包括访问所述树的一个结点,确定所述结点的数据类型;根据所述数据类型来显示所述结点数据,其中如果数据类型为TEXT,则生成一个具有所述文本结点数据的文本对象,并且根据预定的格式协议找出一个显示行以显示所述的文本对象;如果数据类型为FILE,则生成一个具有所述外部文件结点数据的文件对象,并且根据预定的格式协议找出一个显示行以加载并与前面渲染的文本一起显示出所述的文件对象;如果数据类型为MATHML,则生成一个具有所述所保存的MathML结点数据的MathML数据对象,并且根据预定的格式协议分配一个显示行以便与前面渲染的文本一起显示出所述的MathML对象;将所述横向程序应用到所述访问结点的左子树;将所述横向程序应用到所述访问结点的右子树;将所述横向程序应用到所述根结点从而使所述根结点是第一个被访问的结点。
8.如权利要求7的系统,其中所述方法进一步将所述MathML数据分成MATHML COMPOSITE和MATHML TERMINAL数据类型;将所述分类的MathML数据保存为一个包括一根结点和多个分支结点的MathML树,其中分支结点形成所述MathML树的左右子树,所述根结点以及所述分支结点的每一个结点均具有一个所述导出MathML数据以及相关联的数据类型;定义第二个横向程序,其包括访问所述MathML树的一个结点,确定所述MathML树结点的MathML数据类型;根据所述数据类型来显示所述MathML树结点的数据,其中如果数据类型为MATHML COMPOSITE,则生成一个具有所述所保存的MathML复合结点数据的MathML数据对象,并且根据预定的格式协议找出一个显示行以便将所述的MathML数据对象与前面渲染的文本一起显示出来;如果数据类型为MATHML TERMINAL,则生成一个具有所述所保存的MathML终端结点数据的MathML数据对象,找出一个显示行以便将所述的MathML数据对象与前面渲染的文本一起显示出来;将所述第二横向程序应用到所述被访问MathML树结点的左子树;将所述第二横向程序应用到所述被访问MathML树结点的右子树;将所述第二横向程序应用到所述MathML树的所述根结点从而使所述根结点是MathML树的第一个被访问的结点。
9.如权利要求7或8的方法,其中所述多媒体内容数据包括MarkupLanguage数据。
10.如权利要求9的方法,其中所述Markup Language数据包括Extensible Markup Language(XML)数据。
11.如权利要求7或8的方法,其中所述外部文件标识数据包括与数据文件相关联的信息,该数据文件包括图形、视频、动画、其它可显示物或者是其组合。
12.如权利要求11的方法,其中所述数据文件为Macromedia或者是Flash兼容文件。
13.一种用来呈现问题及答案的多媒体数据的用户界面,其中的多媒体数据包括数学的MathML内容,所述系统包括一处理器,其在配置成接收所述包括有文本、MathML以及外部文件的多媒体数据;分析所述接收到的多媒体数据从而导出所述的文本、MathML以及外部文件数据;根据所导出的文本、MathML以及外部文件数据生成问题的内容和相关的答案、视觉辅助以及描述述解决方案内容;在所述显示设备上显示出第一、第二、第三和第四显示容器,所述第一显示容器包括一个图示区域以便显示所述问题的内容;所述第二显示容器包括一个图示区域以便显示所述答案的内容;所述第三显示容器包括一个图示区域以便显示所述视觉辅助的内容;所述第四显示容器包括一个图示区域以便显示所述描述性解决方案的内容;以及其中对于所述第一、第二、第三和第四显示容器中的每一个容器来说,所述容器内容的MathML以及外部文件数据均与所述容器内容的所述文本数据一起显示出来。
14.如权利要求13的用户界面,其中所述外部文件数据包括图形、视频、动画、其它可显示物或者其组合。
15.如权利要求13或14的用户界面,其中所述多媒体数据包括MarkupLanguage数据。
16.如权利要求15的用户界面,其中所述Markup Language数据包括Extensible Markup Language(XML)数据。
全文摘要
本发明提供一种例如用MacromediaFlash
文档编号G06F17/30GK1791869SQ200480013298
公开日2006年6月21日 申请日期2004年4月1日 优先权日2003年4月1日
发明者乔·福森, 李·琼, 里维斯·程 申请人:普莱尼提美国公司