创作者: | 弗雷德里克·埃诺克森 Knowmania HB,瑞典 |
发行日期: | 2008-10-06 |
最新版本: | //www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/ |
发布历史: | //www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/release_history/ |
描述: | 本文档描述了描述集概要文件的Wiki语法,该语法在2008年3月的DCMI工作草案“描述集概要文件:都柏林核心应用程序概要文件的约束语言”中定义。 |
本文档描述了描述集概要文件的MoinMoin wiki语法,定义在2008年3月的DCMI工作草案[DC-DSP]中的“描述集概要文件:都柏林核心™应用概要文件的约束语言”,该文件是基于DCMI抽象模型[Abstract - Model]。在阅读本文档之前,建议您对Description Set Profile(在本文档其余部分中缩写为DSP)的概念有一定的了解。
甲DSP是描述在描述集结构限制的方式,并且不直接用于人类消费。然而,这里描述的DSP的wiki语法,可以以文档的应用程序配置文件来混合使用DSP特定wiki语法正常wiki语法。这意味着,从同一来源可以创造:
本文档介绍了DSP wiki语法及其使用。在wiki引擎扩展的帮助下,MoinMoin wiki引擎[MoinMoin]实现了该语法。通过添加解析器扩展,对用于呈现HTML页面的MoinMoin wiki引擎进行了扩展。该解析器名为“DSP”使用以下语法从wiki页面内调用:
{{{# !DSP /*这里的具体描述设置Profile wiki语法要解析*/}}}
三个花括号上面和下面的任何内容都将根据普通的MoinMoin wiki语法进行解析。有关MoinMoin wiki中的解析器的更多信息,请参见[MoinMoin - parsers]。为了生成一个DSP的XML表示,MoinMoin wiki实现了一个所谓的“动作扩展”。下面将描述如何使用它来检索XML。
MoinMoin软件的源代码可以在[WIKI-SYNTAX-SOFTWARE]上找到。有关wiki语法的幻灯片可在[EPRINTS]和[wiki - syntax]中找到。
“描述集概要文件”规范[DC-DSP]使用“约束”和“模板”的概念来描述描述集的结构。DSP中有两个级别的模板:
这些模板,此外,包括那些用于限制结构限制。模板和约束之间的关系,如下图中描述:
DSP的层次结构在语法中以这样一种方式被重用:当一个模板或约束被声明时,它是上面第一个声明模板的一部分,根据层次结构(见上图),它可以是上面第一个声明模板的一部分。例如,如果声明了一个描述模板,后面跟着一个语句模板,则该语句模板被视为该描述模板的一部分。
在语法中,有四个部分可以单独表达:
下面空模板用作结构的一个例子:
{{{{}!DSP MoinMoin wiki格式文本在呈现时将放置在下面的模板上。DT=(ID=”“RC=[]min=”“max=”“standalone=“yes | no |两者”)MoinMoin wiki格式文本在呈现时将放置在下面的模板上。ST=(ID=”“min=”“max=”“type=”“PC=(“”{,}))NLC=(description=“[]VURIConstraint=(出现次数)=“强制的{,}可选的{,}不允许的”{,}VESSCONSTRAINT=(发生=“强制的{,}可选的{,})VStringConstraint=(最小=”“max=”“{[value=”“lang lang=”“SES=“”,[…])LangC=(发生=“强制的{,}可选的{,})sessCONSTRAINT=(发生=“强制的{,}可选的{,}不允许的{,})ST=(ID=“”{,”{,”{,})min=“””max=“””type=”“PC=(=”,“,”,”,“,”,”,”,”,”,”,“,”,”,“,”,”,”,”,”,”,”“lang=”“SES=“”],[…])LangC=(occurrence=“mandatory | optional | disallowed”{,})sessconstraint=(occurrence=“mandatory | optional | disallowed”{,})ST=(…)DT=(…)ST=(…)ST=(…)ST=(…)}
在每个表达描述模板(DT)、语句模板(ST)、非文字约束(NLC)和文字约束(LC)之间,可以使用正常的MoinMoin wiki语法。
当格式中的某个内容可以有且只能有一个值时,将其置于引号之间;例如,请参见下面描述模板中的“标识符”。如果要表达一组选择,则使用花括号。
如前所述,并在上述模板中看到,四个基本部分用以下符号表示:
这些表达式中的每一个都必须从新行开始。从上面的模板还可以看出,可以在这些DSP wiki语法表达式之间表达正常的wiki语法。本文还需要从新行开始,以免与DSP wiki语法混淆。此文本在生成的HTML中围绕DSP的各个部分,但在为DSP创建XML时将被忽略。这意味着,例如,为记录ST而创建的HTML可以嵌入到表或类似的HTML结构中。如果任何wiki语法关键字(DT、ST、NLC或LC)需要在正常wiki语法的新行开头使用,请在关键字前面加反斜杠(“”);反斜杠将在生成的HTML中被忽略。
用“DT”后面跟着“=”和左括号开始一个新行;为了结束声明,需要右括号。括号内的表达式允许跨行超过一行。括号内表示的是属性:
ID = "人"
钢筋混凝土=[http://www.anyuri.net/someResourceConstraint, http://www.anyuri.net/someOtherResourceConstraint]
min = " 1 "
最大= “1”
独立= "是的"
有关这些属性的更详细说明,请参见[DC-DSP]中的第5节;这里更详细地描述了属性的条件以及可能的值和默认值。
一个描述模板的属性可以与blankspace作为分隔任何顺序在括号内声明。如果没有这些声明,括号内应为空。属于一个描述模板声明模板后跟随,直到一个新的描述模板声明。一个描述模板的声明示例:DT=(ID="Person" standalone="yes" RC=[http://www.anyuri.net/someResourceConstraint, http://www.anyuri.net/someOtherResourceConstraint] min="1" max="1")
语句模板的表达方式类似于描述模板,以"ST="开头,后面跟着一个左括号,然后用右括号关闭。括号内的表达式可以跨行超过一行,括号内的属性用空格分隔,并且可以是任意顺序的。括号内表示的是属性:
PC=”http://purl.org/dc/elements/1.1/creator"
个人电脑={http://purl.org/dc/elements/1.1/creator, http://xmlns.com/foaf/0.1/name}
min = " 1 "
最大= “1”
类型=“文字”
有关这些属性的更详细描述,请参阅DSP规范草案中关于语句模板的部分,其中更详细地描述了属性的条件以及可能的值和默认值。例如:ST=(最小值=“1”最大值=“10”PC=”http://purl.org/dc/elements/1.1/creator“type=“literal”)
语句模板可以是文字语句模板的类型并具有文字值约束,也可以是非文字语句模板的类型并具有非文字值约束。这些约束分别对应于DCMI抽象模型[Abstract - Model]中的“文字值代理”和“非文字值代理”。要在语句模板上表达约束,它们将在它们所属的语句模板下声明,并且必须在新行开始。
表示文字值约束
当语句模板具有式约束集对文字,有可能进一步限制通过声明一个文字值约束可能的值。表达这种约束关键字“LC”后跟一个“=”,并用于左括号;在端部,一个右括号用于关闭表达。文字值约束的声明必须开始一个新行。括号内的以下部分可表示为:
发生=“强制”
{http://purl.org/dc/terms/URI}
{[value="A simple String" lang="en"],[…]}
发生=“强制”
{en,sv,es}
对于文字值约束属性的更详细的描述,请参阅DSP规范草案中相应的部分,其中对属性和可能的和默认值的条件进行了更详细的描述。
LC=({[value="A typical string" lang="en"]})
LC =(LangC =(发生= “任选的”{烯,SV,ES}))
表示非文字值约束
当一个声明模板有一个类型约束集到非字面就可以进一步限制可能的值。要声明这个约束,开始在新的一行,并使用关键字“NLC”后跟一个“=”和左括号;在NLC的端部的右括号用于关闭表达。表达允许跨越多个线。括号内的以下部分可表示为:
description=“ref”
{http://www.example.com/exampleURI1,...}
{http://www.example.com/uri1, http://www.example.com/uri2}
发生=“强制”
VURIConstraint =(发生= “强制”{http://www.example.com/uri1,http://www.example.com/uri2})
VESConstraint=(出现=“强制”{http://www.example.com/uri3, http://www.example.com/uri4})
min = " 1 "
最大= “1”
有关非文字值约束的属性的更详细的描述,参见在DSP草案规范,其中所述属性和可能的值和默认值条件更详细地描述的相应部分。
NLC =(描述= “REF”{http://www.example.com/exampleURI1})
NLC=(description=“ref”VURIConstraint=(occurrence=“mandatory”{http://www.example.com/uri1, http://www.example.com/uri2}))
NLC=(description="ref" VESConstraint=(occurrence="mandatory" {http://www.example.com/uri3, http://www.example.com/uri4})))
NLC=(description=“ref”VStringConstraint=(min=“1”max=“1”{[value=“someFormat:Format2”lang=“en”SES=”http://www.example.org/someSyntaxEncodingScheme"]}
描述集概要规范草案[DC-DSP]第9节中的DC-XML示例采用wiki格式:
DC实施例:
{{{{#!DSP DT=()ST=(PC={http://purl.org/dc/terms/title})ST=(PC)={http://purl.org/dc/terms/description}) }}}
FOAF的例子:
{{{#!DSP DT =(ID = “人” RC = [http://xmlns.com/foaf/0.1/Person]分钟= 1最大= 1)ST =(MIN = 1最大= 1类型=”文字” PC = {http://xmlns.com/foaf/0.1/name})ST =(类型= “字面” PC = {http://xmlns.com/foaf/0.1/knows})NLC =({http://xmlns.com/foaf/0.1/Person})}}}
这个语法是作为MoinMoin wiki引擎的扩展实现的。下面的示例展示了如何在HTML和生成的XML中呈现语法。
通过安装MoinMoin wiki引擎的扩展,可以在wiki页面中使用本文档中描述的语法。当扩展被执行时,wiki文档将被解析为如下的描述设置配置文件:
{{{{#!DSP==描述模板==DT=(min=“1”max=“1”standalone=“yes”)==标题====----ST=(type=“literal”PC={http://purl.org/dc/terms/title})| |定义| |为资源指定的名称。| | LC=(LangC=(occurrence=“optional”)sessconstraint=(occurrence=“disallowed”)===创建者==----ST=(type=“nonliteral”PC={http://purl.org/dc/terms/creator})| |定义| | |主要负责制作资源的实体。| | | | | | | | | | | | | | | | | | | | | | | | | |注释| | | |创建者=“不允许的”)VStringConstraint=(max=“1”LangC=(occurrence=“optional”)SESConstraint=(occurrence=“disallowed”))}
生成的HTML:
上面的语法示例在HTML中呈现为可读的网页.
生成的XML:
为了从DSP wiki语法创建XML,实现了一个操作扩展。可以通过在包含DSP的页面URL的末尾添加“?action=DSP2XML”来检索DSP的XML,如中所示//www.voudr.com/architecturewiki/EprintsApplicationProfile?action=DSP2XML
. 运行该操作将检索XML,例如:
http://purl.org/dc/terms/title “不允许” “可选” http://purl.org/dc/terms/creator 不允许 不允许 “不允许” “可选”
学术作品应用简介
学术著作应用程序配置文件(也称为Eprints应用程序配置文件)已使用此处描述的wiki语法[Eprints]表示。截至2008年10月,wiki文件可在//www.voudr.com/architecturewiki/EprintsApplicationProfile
.快照一直都在这里的原始维基文件[EPRINTS-RAW]和wiki软件[EPRINTS-XML]的XML输出存档。
[抽象模型]
DCMI抽象模型DCMI建议。2007-06-04
//www.voudr.com/specifications/dublin-core/abstract-model/2007-06-04/
[DC-DSP]
描述设置概要文件:都柏林核心™应用程序概要文件的约束语言。DCMI工作草案。2008-03-31.
//www.voudr.com/specifications/dublin-core/dc-dsp/2008-03-31/
[电子打印]
使用DSP wiki语法表达学术作品(Eprints) DC应用程序概要文件。
//www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/2008-10-06/2007-08-28.dsp-eprint.pdf
[EPRINTS-RAW]
原始维基中的文件进行学术著作应用简介,从//www.voudr.com/architecturewiki/EprintsApplicationProfile6 2007年10月。
//www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/2008-10-06/EprintsApplicationProfile-20081006-raw.txt
[EPRINTS-XML]
从Scholarly Works应用程序概要文件生成的XML,从//www.voudr.com/architecturewiki/EprintsApplicationProfile?action=DSP2XML2008年10月6日。
//www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/2008-10-06/EprintsApplicationProfile.xml
[MOINMOIN]
在维基中引擎。
http://moinmo.in/
[MoinMoin的-PARSERS]
MoinMoinWiki解析器。
http://moinmo.in/HelpOnParsers
[维基语法]
DC描述集配置文件的Wiki语法,DC-2007,新加坡。
//www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/2008-10-06/dcap-model_printout.pdf
[WIKI-SYNTAX-SOFTWARE]
//www.voudr.com/specifications/dublin-core/dsp-wiki-syntax/2008-10-06/DescriptionSetProfile-dist.zip