Giter VIP home page Giter VIP logo

cmo's Introduction

Corpus Musicae Ottomanicae (CMO)

This MyCoRe application is under construction.

For project details visit https://www.uni-muenster.de/CMO-Edition/

More information about MyCoRe are available at http://www.mycore.org

Installation Instructions

  • clone repository
  • run mvn clean install
  • unzip cmo-cli to user defined cli directory
  • change to cli directory
  • run bin/cmo.sh create configuration directory
  • you now have a config dir ~/.mycore/cmo
  • configure your database connection in ~/.mycore/cmo/resources/META-INF/persistence.xml
  • perhaps you need to download a driver to ~/.mycore/cmo/lib/
  • run cli command bin/cmo.sh process config/setup-commands.txt to load default data
  • Go to cmo-webapp
  • Install solr with the command: mvn solr-runner:copyHome solr-runner:installSolrPlugins
  • Run solr with the command mvn solr-runner:start (End with mvn solr-runner:stop)
  • Run Jetty with the command: mvn jetty:run (End with ctrl+c)
  • Fast rebuild and Jetty restart mvn clean install -DskipTests -pl cmo-module && mvn jetty:run -pl cmo-webapp (End with ctrl+c)

Update

  • to update solr run mvn solr-runner:stop solr-runner:copyHome solr-runner:start

Clear data in database before reimport

DELETE FROM MCRLINKHREF WHERE 1=1;
DELETE FROM MCRMETAHISTORY WHERE 1=1;
DELETE FROM MCRCATEGORYLINK WHERE OBJECTTYPE='expression'
                                  or OBJECTTYPE='source'
                                  or OBJECTTYPE='work'
                                  or OBJECTTYPE='mods'
                                  or OBJECTTYPE='person';

FOP Settings for PDF export

Its maybe required to store a fop.xml in the folder ~/.mycore/cmo/resources/ to support the right font rendering. See fop.xml in project.

Debug

The project uses webpack to bundle typescript. To Debug change the mode in cmo-module/webpack.config.js to 'development'.

cmo's People

Contributors

kkrebs avatar sebhofmann avatar tilonn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

cmo's Issues

search form: Person: missing options

  • "Identifikator" will not be necessary
  • the Checkbox-Option for "Role" is missing ("composer" and/or "lyricist"), which should indicate wether a relation to an expression as composer or lyricist exists

search form: Literaturangabe: less fields, more targets

  • Identifier can be removed
  • "Publisher" wronlgy labelled as "Herausgeber"
  • the field "Publishing information" (instead of "Publisher") should search everything in mods.originInfo like mods.publisher ; mods:place as well as mods.relatedItem type="series"

search form: Lyrics/Liedtexte

  • Identifikator should be removed

fields targeting information in related entities are missing:

  • date (from lyricist)
  • source type (from source)*
  • date (from source)*
  • checkbox "Faksimile" (= is related to a source with an attachment)*
  • checkbox: "CMO edition" (= has a relation to an edition entity)

see also #37
see also the language/script fields are missing: #36

sorting of facets makam/usul impractical

large search results do produce a long list of makam & usul facets, and therefore are hard to read/browse/use as they are sorted by occurence.
A suggestion is to switch to an alphabetical order when showing all ("mehr anzeigen..").

note title type in bibl migration

We have three different title types in bibl entrys. They have to be treated differently in migration:

  <title xml:lang="tur" type="main">Müzik Ansiklopedisi</title>
  <title xml:lang="tur" type="sub">Besteciler, Yorumcular, Eserler, Kavramlar</title>

should be migrated to:

<mods:titleInfo xml:lang="tr">
  <mods:title>Müzik Ansiklopedisi</mods:title>
  <mods:subTitle>Besteciler, Yorumcular, Eserler, Kavramlar</mods:subTitle>
</mods:titleInfo>

and

  <title xml:lang="eng" type="main">The Catalog of Music Manuscripts in Istanbul University
    Library</title>
  <title xml:lang="tur" type="alt">İstanbul Üniversitesi Kütüphanesi’ndeki Musiki Yazmalarının
    Kataloğu</title>

should be migrated to:

<mods:titleInfo xml:lang="en">
  <mods:title>The Catalog of Music Manuscripts in Istanbul University
    Library</mods:title>
</mods:titleInfo>
<mods:titleInfo xml:lang="tr" type="translated">
  <mods:title>İstanbul Üniversitesi Kütüphanesi’ndeki Musiki Yazmalarının
    Kataloğu</mods:title>
</mods:titleInfo>

mei:identifier with GND should have type GND

Currently:

<person xml:id="pp-49818454-X" xmlns="http://www.tei-c.org/ns/1.0" xmlns:cmo="http://www.corpus-musicae-ottomanicae.de/ns/cmo" cmo:doctype="pp" cmo:pubReady="false">
  <idno type="CMO">Uz, Kazım</idno>
  <idno type="GND">133572889</idno>
  <persName type="TMAS-main">Uz, Kâzım</persName>
  <persName type="TMAS-other">Muallim Hoca Sakallı Kâzım Efendi; sonra: Bey</persName>
  <persName type="TMNvE">Muallim Kâzim Bey</persName>
  <birth><date from="1872-02-21" to="1872-02-21" calendar="../ _index/calendars.xml#gregorian"><ref
    target="bb-80081264-2">TMAS/II, p. 463</ref>21.2.1872</date><date from="1873" to="1873" calendar="../ _index/calendars.xml#gregorian"><ref
      target="bb-27399586-4">MA2/III, p. 558</ref>1873</date></birth>
  <death><date from="1938-01-09" to="1938-01-09" calendar="../ _index/calendars.xml#gregorian"><ref
    target="bb-80081264-2">TMAS/II, p. 463</ref>9.1.1938</date><date from="1943" to="1943" calendar="../ _index/calendars.xml#gregorian"><ref
      target="bb-27399586-4">MA2/III, p. 558</ref>1943</date>
  </death>
  <list>
    <item></item>
  </list>
</person>

will be transformed to:

      <mei:persName xmlns:mei="http://www.music-encoding.org/ns/mei" xmlns:tei="http://www.tei-c.org/ns/1.0">
        <mei:identifier type="cmo_intern">pp-49818454-X</mei:identifier>
        <mei:identifier type="cmo">Uz, Kazım</mei:identifier>
        <mei:identifier type="cmo">133572889</mei:identifier>
        <mei:name type="TMAS-main">Uz, Kâzım</mei:name>
        <mei:name type="TMAS-other">Muallim Hoca Sakallı Kâzım Efendi; sonra: Bey</mei:name>
        <mei:name type="TMNvE">Muallim Kâzim Bey</mei:name>
        <mei:date calendar="gregorian" type="birth" isodate="1872-02-21" source="bb-80081264-2" label="TMAS/II, p. 463" />
        <mei:date calendar="gregorian" type="birth" isodate="1873" source="bb-27399586-4" label="MA2/III, p. 558" />
        <mei:date calendar="gregorian" type="death" isodate="1938-01-09" source="bb-80081264-2" label="TMAS/II, p. 463" />
        <mei:date calendar="gregorian" type="death" isodate="1943" source="bb-27399586-4" label="MA2/III, p. 558" />
      </mei:persName>

save pages in bibliography mir/mods conform

We should save pages in bibl entries mir/mods conform:

<mods:part>
  <mods:extent unit="pages">
    <mods:start>181</mods:start>
    <mods:end>196</mods:end>
  </mods:extent>
</mods:part>

instead of

<mods:part>
  <mods:extent unit="pages">
    <mods:list>181–96</mods:list>
  </mods:extent>
</mods:part>

source editor: error on save

<mcr_error errorServlet="true" xml:space="preserve" HttpError="403" requestURI="/cmo/servlets/XEditor">
You do not have any of the required privileges ( 'create-cmo_source', 'create-source) to perfom: Create object with id cmo_source_00000000
</mcr_error>

simplify source components / relation lists

  1. <relationList /> is bidirectional, atm we remove <relationList /> in source and keep it in expression. We decided to switch this and keep <relationList /> in source instead. Expression metadata may only contain the page reference:
  <relationList>
    <relation rel="hasEmbodiment" target="sc-62147348-8" label="TMKl-Ayi/XI.xvii, p. 583"/>
  </relationList>
  to
  <extent unit="page">583</extent>
  1. We try to simplify SourceComponents. At the moment each sc is a child of a source, but sc has nearly no metadata. So we like to bring it together again. In simple cases we can use a <relationList />
  <relationList>
    <relation rel="isEmbodimentOf" target="ex-08837172-9" label="CMO_TMKl-Ayi/XI.xvi, p. 575" />
    <relation rel="isEmbodimentOf" target="ex-98758633-8" label="CMO_TMKl-Ayi/XI.xvi, p. 576" />
    <relation rel="isEmbodimentOf" target="ex-33596548-9" label="CMO_TMKl-Ayi/XI.xvi, p. 567" />
     ...
  </relationList>

For more structured sc we still need the <componentGrp> tag.

<componentGrp>
  <source xml:id="sc-07814903-2">
    <identifier>TMKl-Ayi/XI.xvii</identifier>
    <titleStmt>
      <title>Mein Testtitel einer SC</title>
    </titleStmt>
    <relationList>
      <relation rel="isEmbodimentOf" target="ex-79308133-4" label="CMO_TMKl-Ayi/XI.xvii, p. 582" />
      <relation rel="isEmbodimentOf" target="ex-34697765-4" label="CMO_TMKl-Ayi/XI.xvii, p. 583" />
    </relationList>
  </source>
</componentGrp>

I'm not sure if we need a source id here ...

put persName/ref/text() to persName/@label

persName/ref/text() ist missing, we should use the label attribute

<persName type="TMKl-Nef">
  Türabî <ref target="pr-30522253-4">TMKl-Nef/V.ii, p. 224</ref>
</persName>
<mei:name type="TMKl-Nef" nymref="cmo_source_00002620" label="TMKl-Nef/V.ii, p. 224">Türabî</mei:name>

normalize language usage

The used language term in data is not clearly. Sometimes it is "en" and sometimes "eng". We should clean this up at data import.

clean up date attribute mixture

We have tei:date and mei:date attributes in our mei dates. Please fix this mixture within data import

These are the mei:date attributes (which we support)
@startdate
- contains the starting point of a date range in standard ISO form
@enddate
- contains the end point of a date range in standard ISO form
@notbefore
- contains a lower boundary for an uncertain date
@notafter
- contains an upper boundary for an uncertain date
@isodate
- gives the value of a textual date in standard ISO form
@calendar
- indicates the system or calendar to which a date belongs, for example, Gregorian, Julian, Roman, Mosaic, Revolutionary, Islamic, etc.

We should map the following tei:date attributes:

@from      -> @startdate
@to        -> @enddate
@notBefore -> @notbefore
@notAfter  -> @notafter
@when      -> @isodate

searchfield for date range contains too much

If only @notbefore is given these persons are always found if date is greater than the given date.
<mei:date calendar="gregorian" type="death" notbefore="1510">After 1510</mei:date>

leads to:
<field name="death.date.range">[1510 TO *]</field><field name="death.date.content">After 1510</field>

But I'm not sure if this is a content or an implementation bug.

text content of vocabularies makam & usul not migrated

original data:

<usul xmlns="http://www.corpus-musicae-ottomanicae.de/ns/cmo" cmo:classLink="us-20798235-2 label="Hâvî">hāvī</usul>
<makam xmlns="http://www.corpus-musicae-ottomanicae.de/ns/cmo" cmo:classLink="mk-15305132-3"
 label="Sâzkâr">sāzkār</makam>

is migrated to:

<mei:classCode authURI="http://www.corpus-musicae-ottomanicae.de/api/v1/classifications/cmo_usuler" xml:id="id13ced91d"/>
<mei:termList classcode="#id13ced91d">
<mei:term>us-20798235-2</mei:term>
</mei:termList>
<mei:classCode authURI="http://www.corpus-musicae-ottomanicae.de/api/v1/classifications/cmo_makamler" xml:id="id528d80f1"/>
<mei:termList classcode="#id528d80f1">
<mei:term>mk-15305132-3</mei:term>
</mei:termList>

The text content of the elements does represent the original spelling given in the source and must therefore be kept. At least somewhere in the entity.

search forms: language

search forms for Musikstück (expression), Quelle (source) und Liedtext / Lyrics (expression) should contain fields for

  • language (rfc4646)
  • script (iso15924)

according to the new data model:

<langUsage>
  <language xml:id="tur" authority="rfc4646" />
  <language xml:id="ota-latn" authority="iso15924" />
</langUsage>

search form: expression / konkretes Musikstück (komplex)

  • Identifikator should be removed

fields targeting information in related entities are missing:

  • date (from composer)
  • date (from lyricist)
  • source type (from source)*
  • notation type (from source)*
  • date (from source)*
  • checkbox "Faksimile" (= is related to a source with an attachment)*
  • checkbox: "CMO edition" (= has a relation to an edition entity)
    see also the language/script fields are missing: #36

/* "from source" means from "top" source, not from the directly related source that is part of source (formerly known as source components)

Note: the search form "konkretes Musikstück" (the simple one) might be obsolete.

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.