Commit f3a1998a authored by Steinberg, Jan's avatar Steinberg, Jan

JFR

parent 2d840dd8
......@@ -10,6 +10,7 @@ import org.gesis.dda.filter.impl.AcceptAnyBundleFilter;
import org.gesis.dda.filter.impl.Aseas2SsoarBundleFilter;
import org.gesis.dda.filter.impl.Doabooks2SsoarBundleFilter;
import org.gesis.dda.filter.impl.Fqs2SsoarBundleFilter;
import org.gesis.dda.filter.impl.Jfr2SsoarBundleFilter;
import org.gesis.dda.filter.impl.SsoarTargetRepositoryBundleFilter;
import org.gesis.dda.filter.impl.Wbv2SsoarBundleFilter;
import org.gesis.dda.filter.impl.Wzb2SsoarBundleFilter;
......@@ -135,6 +136,10 @@ public class FeedingContextFactory {
log.info("using Aseas2SsoarBundleFilter");
result = new Aseas2SsoarBundleFilter();
break;
case "https://ubp.uni-bamberg.de/jfr/index.php/jfr/oai/$$ssoar":
log.info("using Jfr2SsoarBundleFilter");
result = new Jfr2SsoarBundleFilter();
break;
case "https://www.econstor.eu/oai/request$$ssoar":
log.info("using Wzb2SsoarBundleFilter");
result = new Wzb2SsoarBundleFilter();
......
package org.gesis.dda.filter.impl;
import java.util.Set;
import org.gesis.dda.filter.BundleFilter;
import org.gesis.dda.publishing.domain.Bundle;
import org.gesis.dda.publishing.domain.Metadatum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Jfr2SsoarBundleFilter implements BundleFilter {
private final static Logger LOG = LoggerFactory.getLogger(Jfr2SsoarBundleFilter.class);
/**
* SSOAR already has everything up to and including dc.source.volume=31, therefore: harvest everything with volume>=32
* The "early view" articles have no volume, they also get lost.
*/
@Override
public boolean test(Bundle bundle) {
boolean result;
Set<Metadatum> metadata = bundle.getMetadata();
Metadatum volume = metadata.stream().filter( m -> m.getKey().equals("dc.source.volume") ).findFirst().orElse(null);
if (null != volume) {
String volumeValueString = volume.getValue();
try {
int volumeValue = Integer.parseInt(volumeValueString);
if ( volumeValue >= 32 ) {
result = true;
}
else {
LOG.info("Jfr2SsoarBundleFilter - filtering away bundle.reference={}", bundle.getReference() );
result = false;
}
}
catch (NumberFormatException e) {
LOG.warn("unparsable dc.source.volume={} for bundle.reference={}", volumeValueString, bundle.getReference() );
result = true;
}
}
else {
result = false;
}
return result;
}
}
......@@ -461,6 +461,65 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
}
@Test
public void getSinglePublicationJfr() throws IOException {
Map<String, String> map = new HashMap<>();
String oaiDcXsltString = IOUtils.toString(
getClass().
getClassLoader().
getResourceAsStream("xslt/jfr-oai_dc-2-xmlbundle.xslt"), StandardCharsets.UTF_8);
map.put("oai_dc", oaiDcXsltString);
XsltTransformerOaiPmhBundlesStreamSource bss = new XsltTransformerOaiPmhBundlesStreamSource("https://ubp.uni-bamberg.de/jfr/index.php/jfr/oai", map);
Bundle bundle = bss.getBundle("oai:ubp.uni-bamberg.de/jfr:article/7");
LOG.info("{}", bundle);
Set<Metadatum> metadata = bundle.getMetadata();
metadata.stream().map(Object::toString).forEach(LOG::info);
assertTrue( metadata.contains( new SimpleMetadatum("dc.type.stock", "article") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.type.document", "32") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.journal", "JFR - Journal of Family Research") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.identifier.journal", "1690") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.description.pubstatus", "1") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.contributor.author", "Alby, Francesca") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.contributor.author", "Fatigante, Marilena") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.contributor.author", "Zucchermaglio, Cristina") ) );
assertEquals(3, metadata.stream().filter(m -> m.getKey().equals("dc.contributor.author") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.description.review", "1") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.description.review") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.date.issued", "2014") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.description.abstract", "en", "In this work we focus, through a multi-method approach, on the managerial practices used by working mothers to deal with complex schedules and family needs in domestic life. We know, from previous studies, that dual earner families face substantial reorganizations of their domestic life, but there has been little research on how such reorganizations are accomplished within families. Findings draw on different data sets (focus groups, self-report charts, naturally occurring interactions) and, overall, show the centrality of managerial practices in the everyday domestic life of this kind of families. Results also show that housework is an arena for practical reasoning and thinking, making visible, through a detailed analysis of the sequential unfolding of actions, the managerial practices used by mothers to exploit and interactively coordinate different and competing activities. Finally, we suggest that managerial practices may constitute a form of care work through which mothers guarantee family members’ well-being. Zusammenfassung In dieser Arbeit nehmen wir mithilfe eines Multimethodenansatzes die Managementpraxis erwerbstätiger Mütter, die diese zur Bewältigung komplexer Zeitpläne und der Bedürfnisse der Familie anwenden, in den Blick. Aus vorausgegangenen Studien wissen wir, dass Doppelverdienerfamilien einer grundlegenden Umgestaltung des häuslichen Familienlebens gegenüberstehen, wobei bisher kaum darüber geforscht wurde, wie eine solche Reorganisation innerhalb der Familien erreicht wird. Die Erkenntnisse beruhen auf verschiedenen Datensätzen (Fokusgruppen, Zeitverwendungstagebücher, Aufzeichnung von Alltagsgesprächen) und verweisen auf die zentrale Bedeutung dieser Managementpraktiken im häuslichen Alltagsleben dieser Familien. Die Ergebnisse zeigen zudem, dass die Hausarbeit eine Arena praktischer Überlegungen und Denkmuster ist. Mithilfe einer detaillierten Analyse der sequentiellen Handlungsabfolgen in der Hausarbeit werden die Managementpraktiken sichtbar, die die Mütter nutzen, um unterschiedliche und miteinander in Wettstreit stehende Aktivitäten für sich zu verwerten und zu koordinieren. Abschließend schlagen wir vor, dass diese Managementpraktiken eine Form von Care- Arbeit darstellt, durch die Mütter das Wohlergehen der Familienmitglieder sicherstellen.") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.description.abstract") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.issn", "2699-2337") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.url", "https://ubp.uni-bamberg.de/jfr/index.php/jfr/article/view/7/4") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.identifier.url") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.language", "en") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.issue", "1") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.source.issue") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.volume", "26") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.rights.licence", "16") ) );
// assertTrue( metadata.contains( new SimpleMetadatum("dc.source.issuetopic", "OBEN_UNTEN : Bilder vom Leben der Anderen") ) );
// assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.source.issuetopic") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.pageinfo", "29-48") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.source.pageinfo") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "“Somebody is thinking about it”: Women as household managers in dual-earner families") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
// assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "urn:nbn:de:gbv:18-8-7560") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "https://ubp.uni-bamberg.de/jfr/index.php/jfr/oai@@oai:ubp.uni-bamberg.de/jfr:article/7") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "DEU") ) );
// assertTrue( metadata.contains( new SimpleMetadatum("internal.identifier.classoz", "10900") ) );
// assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.classoz", "10900") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.identifier.ddc", "300") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.ddc", "300") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.status", "formal und inhaltlich fertig erschlossen") ) );
Set<InputStream> fileSet = bundle.getContents();
assertEquals( 2, fileSet.size());
}
@Test
public void getSinglePublicationJpla() throws IOException {
Map<String, String> map = new HashMap<>();
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment