Thanks. I'm going to try to add these to the patterns.... kc
Pete Johnston wrote:
> Hi Karen,
>
> Just to try to answer your specific questions about AND/OR...
>
>
>>> If I want to specify that my statements using the dcterms:language
>>> property should use only one of those three codes, "eng", "fra",
>>> "spa", rather than any of the codes in the list, then I could use a
>>> template
>>> like:
>>>
>>> <StatementTemplate type="nonliteral">
>>> <Property>http://purl.org/dc/terms/language</Property>
>>> <NonLiteralConstraint>
>>> <ValueStringConstraint minOccurs="1" maxOccurs="1">
>>> <LiteralOption>eng</LiteralOption>
>>> <LiteralOption>fra</LiteralOption>
>>> <LiteralOption>spa</LiteralOption>
>>>
>>>
>>>
>> <SyntaxEncodingSchemeOccurrence>mandatory</SyntaxEncodingSchemeOccurre
>>
>>> nc
>>> e>
>>>
>>>
>>>
>> <SyntaxEncodingScheme>http://purl.org/dc/terms/ISO639-2</SyntaxEncodin
>>
>>> gS
>>> cheme>
>>> </ValueStringConstraint>
>>> </NonLiteralConstraint>
>>> </StatementTemplate>
>>>
>>>
>> OK, if I understand this, you restrict the values to the ones
>> you want,
>> then tie the statement to the SES. How does one know that's
>> an "AND" not
>> an "OR"? e.g. "eng" "fra" "spa" OR ISO639-2.
>>
>
> The intent is that it is an "AND" i.e. that in each template, all the
> separate constraints should be satisfied (N.B. constraint != DSP XML
> element; some constraints are expressed using multiple XML elements).
>
> So, for the template above, the constraints are:
>
> (i) a Property List Constraint (6.4.1), represented by the XML element
> called Property - the statement must contain a Property URI which
> matches an entry in the list (of one member) =
> http://purl.org/dc/terms/language
>
> (ii) a Type Constraint (6.3), represented by the XML attribute
> type="nonliteral" - the statement must contain a non-literal value
> surrogate
>
> (iii) a Literal List Constraint (6.5.1) (for Value Strings in a
> Non-Literal Value Surrogate), represented by the three XML elements
> called LiteralOption - each Value String in the Statement must match an
> entry the list (of three members) = "eng", "fra", "spa"
>
> (iv) a Syntax Encoding Scheme (Occurrence) Constraint (6.5.4) (for Value
> Strings in a Non-Literal Value Surrogate), represented by the XML
> element called SyntaxEncodingSchemeOccurrence - each Value String in the
> Statement must have a Syntax Encoding Scheme URI
>
> (v) a Syntax Encoding Scheme List Constraint (6.5.5) (for Value Strings
> in a Non-Literal Value Surrogate), represented by the XML element called
> SyntaxEncodingScheme - each Value String in the Statement must use a
> Syntax Encoding Scheme URI which matches an entry in the list (of one
> member) = http://purl.org/dc/terms/ISO639-2
>
> So the checking algorithm expects each of those five constraints to be
> met, i.e. both (iii) and (v) should be true
>
> (a) the value string must be one of those from that list of three
> ("eng", "fra", "spa"); AND
> (b) the syntax encoding scheme URI must be
> http://purl.org/dc/terms/ISO639-2
>
> I think that is the intended interpretation, anyway - Mikael, please
> correct me if I'm wrong.
>
>
>> Putting it another way, if
>> I list more than one VES or SES, does that mean I could use
>> either one?
>>
>
> Yes.
>
> If I take the template above and change only the SES list constraint (my
> (v) above) so that it lists two SES then, yes, either is permitted. e.g.
> the following template
>
> <StatementTemplate type="nonliteral">
> <Property>http://purl.org/dc/terms/language</Property>
> <NonLiteralConstraint>
> <ValueStringConstraint minOccurs="1" maxOccurs="1">
> <LiteralOption>eng</LiteralOption>
> <LiteralOption>fra</LiteralOption>
> <LiteralOption>spa</LiteralOption>
>
> <SyntaxEncodingSchemeOccurrence>mandatory</SyntaxEncodingSchemeOccurrenc
> e>
>
> <SyntaxEncodingScheme>http://purl.org/dc/terms/ISO639-2</SyntaxEncodingS
> cheme>
>
> <SyntaxEncodingScheme>http://purl.org/dc/terms/ISO639-3</SyntaxEncodingS
> cheme>
> </ValueStringConstraint>
> </NonLiteralConstraint>
> </StatementTemplate>
>
> still requires that the literal is from that list of three strings, but
> it allows for the use of either http://purl.org/dc/terms/ISO639-2 or
> http://purl.org/dc/terms/ISO639-3 as SES URI.
>
>
>> If not, I probably can't use either because I can't satisfy
>> both with a single property value.
>>
>
> The template above says that exactly one value string is required in a
> ststement so, yes, it would have to be either one SES URI or the other.
>
> In the general case, a non-literal value surrogate permits multiple
> value strings in a single statement, so, if that maxOccurs constraint
> was relaxed to allow multiple value strings, you could have a statement
> which included one value string of "eng" with SES =
> http://purl.org/dc/terms/ISO639-2 and a second value string of "eng"
> with SES = http://purl.org/dc/terms/ISO639-3
>
> For the VES case, yes, a statement can contain only one VES URI, so it
> would have to be either/or.
>
> Pete
>
> ---
> Pete Johnston
> Technical Researcher, Eduserv
> [log in to unmask]
> +44 (0)1225 474323
> http://www.eduserv.org.uk/research/people/petejohnston/
> http://efoundations.typepad.com/
>
>
>
--
-----------------------------------
Karen Coyle / Digital Library Consultant
[log in to unmask] http://www.kcoyle.net
ph.: 510-540-7596 skype: kcoylenet
fx.: 510-848-3913
mo.: 510-435-8234
------------------------------------
|