Hi,
I have a collection of 740 documents with the following structure:
<?xml version="1.0" encoding="utf-8"?> <officiele-publicatie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://technische-documentatie.oep.overheid.nl/schema/op-xsd-2012-1"> <metadata> <meta name="OVERHEIDop.externMetadataRecord" scheme="" content="https://zoek.officielebekendmakingen.nl/h-tk-20202021-102-2/metadata.xml" /> </metadata> <handelingen> <agendapunt> <spreekbeurt nieuw="nee"> <tekst status="goed"> <al-groep> <al>Allereerst hebben we het traditionele mondelinge vragenuur. </al> </al-groep> </tekst> </spreekbeurt> <spreekbeurt nieuw="ja"> <tekst status="goed"> <al-groep> <al>Voorzitter. Het was altijd al een eer om hier te staan.</al> </al-groep> <al-groep> <al>De vragen die ik ga stellen, gaan over stikstof.</al> </al-groep> <al-groep> <al>We zijn allemaal 100 kilometer per uur gaan rijden, maar er is nog geen gram ammoniak uit de veehouderij minder uitgestoten.</al> </al-groep> </tekst> </spreekbeurt> </spreekbeurt> <spreekbeurt nieuw="nee"> <tekst status="goed"> <al-groep> <al>U heeft helaas maar één vraag, meneer Ephraim, als Groep Van Haga.</al> </al-groep> <al-groep> <al>Ik wil de minister bedanken voor haar beantwoording.</al> </al-groep> </tekst> </spreekbeurt> </agendapunt> </handelingen> </officiele-publicatie>
I want to experiment with textmining and for these experiments, it would be usefull if for every <spreekbeurt>, all <al>/text() elements were concated.The first option is to use XQuery for concatenating.
Another option is to use XSL to transform the original documents to the following structure:
<?xml version="1.0" encoding="utf-8"?> <officiele-publicatie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://technische-documentatie.oep.overheid.nl/schema/op-xsd-2012-1"> <metadata> <meta name="OVERHEIDop.externMetadataRecord" scheme="" content="https://zoek.officielebekendmakingen.nl/h-tk-20202021-102-2/metadata.xml" /> </metadata> <handelingen> <agendapunt> <spreekbeurt nieuw="nee"> <tekst status="goed"> Allereerst hebben we het traditionele mondelinge vragenuur. </tekst> </spreekbeurt> <spreekbeurt nieuw="ja"> <tekst status="goed"> Voorzitter. Het was altijd al een eer om hier te staan. De vragen die ik ga stellen, gaan over stikstof. We zijn allemaal 100 kilometer per uur gaan rijden, maar er is nog geen gram ammoniak uit de veehouderij minder uitgestoten. </tekst> </spreekbeurt> </spreekbeurt> <spreekbeurt nieuw="nee"> <tekst status="goed"> U heeft helaas maar één vraag, meneer Ephraim, als Groep Van Haga. Ik wil de minister bedanken voor haar beantwoording. </tekst> </spreekbeurt> </agendapunt> </handelingen> </officiele-publicatie>
Question: What are the pros and cons of both methods? Is it difficult to do this in XSL (I have only used very simple transformations)?
Ben
On 09.03.2022 13:11, Ben Engbers wrote:
Hi,
I have a collection of 740 documents with the following structure:
<?xml version="1.0" encoding="utf-8"?>
<officiele-publicatie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://technische-documentatie.oep.overheid.nl/schema/op-xsd-2012-1"> <metadata> <meta name="OVERHEIDop.externMetadataRecord" scheme="" content="https://zoek.officielebekendmakingen.nl/h-tk-20202021-102-2/metadata.xml" /> </metadata> <handelingen> <agendapunt> <spreekbeurt nieuw="nee"> <tekst status="goed"> <al-groep> <al>Allereerst hebben we het traditionele mondelinge vragenuur. </al> </al-groep> </tekst> </spreekbeurt> <spreekbeurt nieuw="ja"> <tekst status="goed"> <al-groep> <al>Voorzitter. Het was altijd al een eer om hier te staan.</al> </al-groep> <al-groep> <al>De vragen die ik ga stellen, gaan over stikstof.</al> </al-groep> <al-groep> <al>We zijn allemaal 100 kilometer per uur gaan rijden, maar er is nog geen gram ammoniak uit de veehouderij minder uitgestoten.</al> </al-groep> </tekst> </spreekbeurt> </spreekbeurt> <spreekbeurt nieuw="nee"> <tekst status="goed"> <al-groep> <al>U heeft helaas maar één vraag, meneer Ephraim, als Groep Van Haga.</al> </al-groep> <al-groep> <al>Ik wil de minister bedanken voor haar beantwoording.</al> </al-groep> </tekst> </spreekbeurt> </agendapunt> </handelingen>
</officiele-publicatie>
I want to experiment with textmining and for these experiments, it would be usefull if for every <spreekbeurt>, all <al>/text() elements were concated.The first option is to use XQuery for concatenating.
Another option is to use XSL to transform the original documents to the following structure:
<?xml version="1.0" encoding="utf-8"?>
<officiele-publicatie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://technische-documentatie.oep.overheid.nl/schema/op-xsd-2012-1"> <metadata> <meta name="OVERHEIDop.externMetadataRecord" scheme="" content="https://zoek.officielebekendmakingen.nl/h-tk-20202021-102-2/metadata.xml" /> </metadata> <handelingen> <agendapunt> <spreekbeurt nieuw="nee"> <tekst status="goed"> Allereerst hebben we het traditionele mondelinge vragenuur. </tekst> </spreekbeurt> <spreekbeurt nieuw="ja"> <tekst status="goed"> Voorzitter. Het was altijd al een eer om hier te staan. De vragen die ik ga stellen, gaan over stikstof. We zijn allemaal 100 kilometer per uur gaan rijden, maar er is nog geen gram ammoniak uit de veehouderij minder uitgestoten. </tekst> </spreekbeurt> </spreekbeurt> <spreekbeurt nieuw="nee"> <tekst status="goed"> U heeft helaas maar één vraag, meneer Ephraim, als Groep Van Haga. Ik wil de minister bedanken voor haar beantwoording. </tekst> </spreekbeurt> </agendapunt> </handelingen>
</officiele-publicatie>
Question: What are the pros and cons of both methods? Is it difficult to do this in XSL (I have only used very simple transformations)?
An XSLT transformation is easy, start with the identity transformation as the base template, either in XSLT 3 by declaring
<xsl:mode on-no-match="shallow-copy"/>
or by spelling out in XSLT 2 or 1, then add a template
<xsl:template match="spreekbeurt/tekst//*">
</xsl:template>
to ensure the all elements nodes below spreekbeurt/tekst are stripped and only the text nodes are output.
basex-talk@mailman.uni-konstanz.de