bible-technology / scripture-burrito

Scripture Burrito Schema & Docs 🌯
http://docs.burrito.bible/
MIT License
21 stars 13 forks source link

Sometimes we need scope plus roles #171

Closed mvahowe closed 4 years ago

mvahowe commented 4 years ago

In DBL we currently have a "role" attribute that is either a Scripture reference or some other label such as "introduction".

In SB 0.1 we had "scopeOrRole" which worked in a similar way.

Right now, in SB 0.2, we have either "scope" or "role" but never both.

Reluctantly, I think we need to allow both "scope" and "role". (I'm reluctant, because this means revisiting a lot of enums, and because it's a departure from the USFM3 approach.)

The specific use case is chronological Bible Translation in sign language, but I think we're going to hit similar issues with any content that contains Scripture plus peripherals, mixed in a somewhat arbitrary way, where Scripture is broken down beyond whole books.

The idea is to be able to express, eg, "Introduction to JHN 3:1-18" or "Timing files for MAT 1". USFM tries to cover this sort of thing with composite labels such as intNT. I added options for, eg, intMAT. But this clearly becomes unworkable as soon as we have introductions or teaching or standoff notes or timing files or anything else applying to arbitrary verse selections. (It's also a complete non-starter because we decided that references as strings are borderline unparseable, ie we'd be trying to add "introduction" to a nested JSON structure.)

On one level, I think this is relatively easy to do, as we no longer need the composite enums for roles. The fun bit would be trying to proscribe mad combinations such as "Weights and measures for JHN 4".

mvahowe commented 4 years ago

Looking at the details, this isn't as dramatic as I thought.

Biblical scope remains unchanged.

We have a list of what, in a printed Bible, would be frontmatter or backmatter. Some of these, such as "measures", are hard to imagine being used alongside a scriptural scope but, eg, "glossary for the gospels" is not completely mad. So I guess we could allow all of these to be used alongside scope and make an optimistic appeal to common sense as to how roles and scopes are combined.

Then we have

"^int(bible|dc|epistles|gospels|hist|nt|ot|pent|poetry|prophecy)$

I think we should allow the options within parentheses as "scope" and add "introduction" as a role. That way, we can say, eg, "introduction to the NT" but also "chronology for the NT".

We then no longer need, eg, intMAT

I think that the other roles specific to print and SL can stay. I would also like to add roles for

to handle two common cases in CBT-style SL.

jag3773 commented 4 years ago

Agreed to allow either scope and/or role for 0.2.0. After that we'll consider this in light of multiple examples.

mvahowe commented 4 years ago

I think PR #177 implements the rest of this.