[osis-core] Latest Draft of Schema
Patrick Durusau
osis-core@bibletechnologieswg.org
Mon, 20 May 2002 23:33:15 -0400
Suggestion: with all the changes and modifications, lets limit each post
on the latest version to one element or attribute whenever possible.
That will help me keep track of the discussion and any changes that we
need to make. I should have most of Thursday afternoon and Friday
evening (my presentation and following meetings consume most of
tomorrow, Wednesday for me already).
Guys,
Well, after much delay and not a little hard work, I finally have a
candidate release for OSIS 1.1!
I have added a lot of notes to the schema to try to make it a little
clearer on the first read.
A couple of major points to note:
Reference Syntax:
The regexes for the reference system are in place but basically
constrain the syntax of grain and reference but not their content. I
have spent the better part of a day trying to devise a system that
allows all the possible alternative reference systems with this syntax
and came up dry. The problem is that if we require say
book.chapter.verse for osisref, what do I do with references to Plutarch
that have only a book and section number? In part it is a problem of
trying to be a reference syntax and content validation rolled into one.
One possible approach is to allow the schema to handle the syntax of the
reference validation and have the content validation (data type in
schema land) handled by a separate process, perhaps even a perl script.
To some degree schemas can do both syntax and content (read data type)
validation but only because they are in a universe of a very controlled
set of data types.
Note that the syntax for the osisRef data type:
(([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*\.)?([^\s]*)?)
Allows you to have up to six (6) non-whitespace character strings
separated by the period for a reference.
I used the same syntax for work (osisRef being a data type) so that we
could validate the syntax of references to a work.
Syntax for osisGrain:
(char:([Nd]*)+([Nd]*)\((^\s)*\) | ((^\s)*)
Follows Steve's suggestion but with the addition of a string as an
alternative to allow for alternative (XPath?) addressing of grains.
Corpus vs. Text
I have added a higher level container element, osis, which has a choice
of either being followed by osisCorpus, which contains an unlimited
number of osisText(s), or simply being followed by osisText.
Let's try to get some texts into this so we can determine if there are
any hidden bugs about to bite us! I would really like to put this to bed
so we can move onto producing texts and getting some work done on the
rest of the materials.
Hope this finds one and all in good health and spirits!
Patrick
--
Patrick Durusau
Director of Research and Development
Society of Biblical Literature
pdurusau@emory.edu