The plist and target attributes identify the participants in a relationship, while the rel attribute describes the nature of their relationship. A mutual relationship can be described using only the plist attribute – the target attribute is not necessary. In a non-mutual relationship, plist identifies the entities pointed "from", while target specifies the entities pointed "to". If the target attribute is present, but the plist is not, the relationship is presumed to exist between the parent of the current relation element and the entities identified by target.
<sch:rule context="mei:relationList/mei:relation[parent::mei:work or parent::mei:expression or
parent::mei:source or parent::mei:item]">
<sch:assert test="matches(@rel, 'hasAbridgement') or matches(@rel, 'hasAbridgement') or
matches(@rel, 'isAbridgementOf') or matches(@rel, 'hasAdaptation') or
matches(@rel, 'isAdaptationOf') or matches(@rel, 'hasAlternate') or
matches(@rel, 'isAlternateOf') or matches(@rel, 'hasArrangement') or
matches(@rel, 'isArrangementOf') or matches(@rel, 'hasComplement') or
matches(@rel, 'isComplementOf') or matches(@rel, 'hasEmbodiment') or
matches(@rel, 'isEmbodimentOf') or matches(@rel, 'hasExemplar') or
matches(@rel, 'isExemplarOf') or matches(@rel, 'hasImitation') or
matches(@rel, 'isImitationOf') or matches(@rel, 'hasPart') or
matches(@rel, 'isPartOf') or matches(@rel, 'hasRealization') or
matches(@rel, 'isRealizationOf') or matches(@rel, 'hasReconfiguration')
or matches(@rel, 'isReconfigurationOf') or matches(@rel, 'hasReproduction')
or matches(@rel, 'isReproductionOf') or matches(@rel, 'hasRevision')
or matches(@rel, 'isRevisionOf') or matches(@rel, 'hasSuccessor')
or matches(@rel, 'isSuccessorOf') or matches(@rel, 'hasSummarization')
or matches(@rel, 'isSummarizationOf') or matches(@rel, 'hasSupplement')
or matches(@rel, 'isSupplementOf') or matches(@rel, 'hasTransformation')
or matches(@rel, 'isTransformationOf') or matches(@rel, 'hasTranslation')
or matches(@rel, 'isTranslationOf')">Within work, expression, source, or item, the value of the rel attribute must match
one
of the following: hasAbridgement, isAbridgementOf, hasAdaptation, isAdaptationOf,
hasAlternate, isAlternateOf, hasArrangement, isArrangementOf, hasComplement,
isComplementOf, hasEmbodiment, isEmbodimentOf, hasExemplar, isExemplarOf, hasImitation,
isImitationOf, hasPart, isPartOf, hasRealization, isRealizationOf, hasReconfiguration,
isReconfigurationOf, hasReproduction, isReproductionOf, hasRevision, isRevisionOf,
hasSuccessor, isSuccessorOf, hasSummarization, isSummarizationOf, hasSupplement,
isSupplementOf, hasTransformation, isTransformationOf, hasTranslation,
isTranslationOf</sch:assert>
<sch:assert test="@target">Within work, expression, source or item, the target attribute
must be present.</sch:assert>
</sch:rule>
<elementSpec ident="relation" module="MEI.shared">
<desc>Describes a relationship or linkage amongst entities.</desc>
<classes>
<memberOf
key="att.common"/>
<memberOf
key="att.authorized"/>
<memberOf
key="att.bibl"/>
<memberOf
key="att.datable"/>
<memberOf
key="att.evidence"/>
<memberOf
key="att.plist"/>
<memberOf
key="att.pointing"/>
<memberOf
key="att.targetEval"/>
<memberOf
key="model.relationLike"/>
</classes>
<content>
<rng:empty/>
</content>
<constraintSpec ident="FRBR_relation" scheme="isoschematron">
<constraint>
<sch:rule context="mei:relationList/mei:relation[parent::mei:work or parent::mei:expression or
parent::mei:source or parent::mei:item]">
<sch:assert test="matches(@rel, 'hasAbridgement') or matches(@rel, 'hasAbridgement') or
matches(@rel, 'isAbridgementOf') or matches(@rel, 'hasAdaptation') or
matches(@rel, 'isAdaptationOf') or matches(@rel, 'hasAlternate') or
matches(@rel, 'isAlternateOf') or matches(@rel, 'hasArrangement') or
matches(@rel, 'isArrangementOf') or matches(@rel, 'hasComplement') or
matches(@rel, 'isComplementOf') or matches(@rel, 'hasEmbodiment') or
matches(@rel, 'isEmbodimentOf') or matches(@rel, 'hasExemplar') or
matches(@rel, 'isExemplarOf') or matches(@rel, 'hasImitation') or
matches(@rel, 'isImitationOf') or matches(@rel, 'hasPart') or
matches(@rel, 'isPartOf') or matches(@rel, 'hasRealization') or
matches(@rel, 'isRealizationOf') or matches(@rel, 'hasReconfiguration')
or matches(@rel, 'isReconfigurationOf') or matches(@rel, 'hasReproduction')
or matches(@rel, 'isReproductionOf') or matches(@rel, 'hasRevision')
or matches(@rel, 'isRevisionOf') or matches(@rel, 'hasSuccessor')
or matches(@rel, 'isSuccessorOf') or matches(@rel, 'hasSummarization')
or matches(@rel, 'isSummarizationOf') or matches(@rel, 'hasSupplement')
or matches(@rel, 'isSupplementOf') or matches(@rel, 'hasTransformation')
or matches(@rel, 'isTransformationOf') or matches(@rel, 'hasTranslation')
or matches(@rel, 'isTranslationOf')">Within work, expression, source, or item, the value of the rel attribute must match
one
of the following: hasAbridgement, isAbridgementOf, hasAdaptation, isAdaptationOf,
hasAlternate, isAlternateOf, hasArrangement, isArrangementOf, hasComplement,
isComplementOf, hasEmbodiment, isEmbodimentOf, hasExemplar, isExemplarOf, hasImitation,
isImitationOf, hasPart, isPartOf, hasRealization, isRealizationOf, hasReconfiguration,
isReconfigurationOf, hasReproduction, isReproductionOf, hasRevision, isRevisionOf,
hasSuccessor, isSuccessorOf, hasSummarization, isSummarizationOf, hasSupplement,
isSupplementOf, hasTransformation, isTransformationOf, hasTranslation,
isTranslationOf</sch:assert>
<sch:assert test="@target">Within work, expression, source or item, the target attribute
must be present.</sch:assert>
</sch:rule>
</constraint>
</constraintSpec>
<attList org="group">
<attDef ident="rel" usage="req">
<desc>Describes the relationship between the entities identified by the plist and target
attributes.</desc>
</attDef>
</attList>
<remarks>
<p part="N">The
<att scheme="TEI">plist</att> and
<att scheme="TEI">target</att> attributes identify the participants in a
relationship, while the
<att scheme="TEI">rel</att> attribute describes the nature of their relationship.
A mutual relationship can be described using only the
<att scheme="TEI">plist</att> attribute – the
<att scheme="TEI">target</att> attribute is not necessary. In a non-mutual relationship,
<att scheme="TEI">plist</att>
identifies the entities pointed "from", while
<att scheme="TEI">target</att> specifies the entities
pointed "to". If the
<att scheme="TEI">target</att> attribute is present, but the
<att scheme="TEI">plist</att> is
not, the relationship is presumed to exist between the parent of the current relation
element and the entities identified by
<att scheme="TEI">target</att>.</p>
</remarks>
</elementSpec>