Giter Site home page Giter Site logo

ebeshero / uptransformation Goto Github PK

View Code? Open in Web Editor NEW
17.0 4.0 3.0 30.56 MB

a repository for materials related to teaching and writing on technologies of up-conversion and project development with the XML family of languages, featuring regex, XPath, XQuery, XSLT, and Schematron.

Home Page: https://ebeshero.github.io/UpTransformation/

License: GNU Affero General Public License v3.0

XSLT 4.19% HTML 64.06% JavaScript 31.41% CSS 0.20% XProc 0.02% XQuery 0.12%
up-conversion up-translation up-transformation xpath xml xslt xquery schematron schema tei

uptransformation's Introduction

UpTransformation

a repository for materials related to teaching and writing on technologies of up-conversion and project development with the XML family of languages, featuring regex, XPath, XQuery, XSLT, and Schematron.

uptransformation's People

Contributors

djbpitt avatar ebeshero avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

uptransformation's Issues

Next year?

  • Same title?
    suggestion: XML Technologies: XPath, XQuery, XSLT, and Schematron

The X-Files: The XML family of languages (XPath, XSLT, XQuery, and Schematron)

Create syllabus schema and transformations

  • Create Relax NG (optional: also Schematron)
  • Transfer schedule outline to XML
  • Create XSLT to transform XML into overview syllabus
  • Create XSLT to transform XML into detail session plans\

Tristan’s rs processing

@djbpitt My idea at dinner was this:
In the template matching the parent of <rs>, after the shallow copy of itself, we check each child node from the first child and then each following sibling for our requisite condition.

When it does not match that condition, we shallow copy and apply templates to the next following sibling.

If it is an <rs> that meets our condition, we apply templates and start a new template rule to process its following siblings until they fail to match our condition.

In the template rule for the parent of <rs>, in the when condition that defines a match to our requisite condition, we apply templates only to the next following sibling that FAILS to match our requisite condition.

,

Changes to schedule schemas

Relax NG

  • Make a start date that's metadata in the XML.
  • Calculate all dates from the start date.
  • This requires changes in the XSLT.
  • Make it easier and more semantically meaningful to navigate from the top level between collapsed vs. expanded view. All lists should be ordered lists. (Change XSLT and JS accordingly.)
  • Hierarchies start with upper Latin
  • A. 1. a. i. 1)
  • B. 2. b. ii. b)

XSLT

Schematron

  • [ ]

xsl:result-document and xsl:message

This example from the Obdurodon Immigration Station project reads from a collection() and outputs multiple files using <xsl:result-document>: https://github.com/ech45/immigration_station/blob/master/Mallet/extract-mallet-input-data.xsl

<xsl:result-document> and <xsl:message> are useful for "micropipeline" processes to send out intermediary files or posts during processing--and almost certainly would be beneficial for up-conversion.

<xsl:message> : writes a message to standard error (which can be read in oXygen's lower left tabs).

Sustainability plan

We need to sustain publication of the schedule and its links for the current or most recently taught version of this course.

Update eXist-db installation instructions

We can specify that users who don't have Java can get easy-to-install binaries at https://adoptopenjdk.net/. Aside from all of the other reasons to prefer open source, OpenJDK doesn’t require registration, which Oracle does.

Windows users who install the win-zip distribution of eXist-db may not know whether they have Java or not, so our instructions should include information about how to check.

Link to older versions of the course

The link to older versions of the course on the Resources page, which currently points to the 2018 version, is broken. Additionally, we should move those links to the bottom of the page, since they're likely to be less in demand than information about where to learn more.

Rebooting Syllabus with new timeframes

  • We need to reconstruct our syllabus to conform with the DHSI 2023 Timetable: https://dhsi.org/timetable/ Action on @djbpitt to get us started with the requisite revisions to the XML, the Schematron, perhaps the XProc.

  • Action @ebeshero to contact the DHSI participants with the oXygen license and information about eXist, and invitation to tell us about their projects via form.

  • Action on @ebeshero to create a Slack for the course with a bunny logo

Update JavaScript and XSLT

JavaScript

  • Show/hide individual days

XSLT

  • Show time range along with duration for activities in schedule (XSLT)

HTML

  • Create wrapper to view schedule with style and JavaScript from local file system

To create local view, cd into _includes/schedule and run:

saxon -xi -s:wrapper.xml -xsl:identity.xsl -o:schedule-local.html

(replacing saxon with whatever you do to run saxon).

Errata:

Errata to correct on GitHub syllabus

Tuesday: XPath and XQuery

===========================

  • #### XPath and XQuery in eXist-db
G. Introducing variables (10 minutes; 11:30 a.m.–11:40 a.m.)
d. The value after as specifies the data type. It is optional, but strongly recommended.

i. Other common values include xs:string or xs:integer().

That should read: xs:integer.

======================================

  • #### XQuery flow control (1:30 p.m.–4:00 p.m.)
Writing XQuery in stages (30 minutes; 1:30 p.m.–2:00 p.m.)

2.a XQuery flow control, declare variable $si as document-node() := doc('https://raw.githubusercontent.com/ebeshero/UpTransformation/master/data/Charles1.xml');

The second variable is misnamed and should be declare variable $Chas as document-node() := doc('https://raw.githubusercontent.com/ebeshero/UpTransformation/master/data/Charles1.xml');

======================================

  • #### XQuery flow control (1:30 p.m.–4:00 p.m.)
Review XPath for loops; sequence and range variables
  1. b. Find all persons listed as born in Scotland in two ways: with a for loop and as a one-line XPath path expression. for $i in //person[contains(birth, "Scotland")] return $i or //person[contains(birth, "Scotland")]. You should return 30 elements.

The returned value should (now) be 45 and not 30.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.