Skip to content
Snippets Groups Projects
Commit 8f0abd5d authored by Jesper Zedlitz's avatar Jesper Zedlitz
Browse files

convert schema:startDate to dcat:startDate

parent 18769082
No related branches found
No related tags found
No related merge requests found
Pipeline #629 passed
...@@ -79,6 +79,7 @@ public class CatalogFilter implements InitializingBean { ...@@ -79,6 +79,7 @@ public class CatalogFilter implements InitializingBean {
addAccessRights(model); addAccessRights(model);
addRights(model); addRights(model);
fixMediaType(model); fixMediaType(model);
changeStartAndEndDate(model);
return model; return model;
} }
...@@ -352,4 +353,34 @@ public class CatalogFilter implements InitializingBean { ...@@ -352,4 +353,34 @@ public class CatalogFilter implements InitializingBean {
} }
} }
/**
* In DCAT-AP.de 2 the startDate changed its namespace from schema.org to DCAT.
*/
void changeStartAndEndDate(Model model) {
LinkedList<Statement> oldStatements = new LinkedList<>();
Selector selectorStart = new SimpleSelector(null, model.createProperty("http://schema.org/startDate"), (Object) null);
StmtIterator it = model.listStatements(selectorStart);
while (it.hasNext()) {
Statement stmt = it.next();
oldStatements.add(stmt);
model.add(stmt.getSubject(), DCAT.startDate, stmt.getObject());
}
it.close();
Selector selectorEnd = new SimpleSelector(null, model.createProperty("http://schema.org/endDate"), (Object) null);
it = model.listStatements(selectorEnd);
while (it.hasNext()) {
Statement stmt = it.next();
oldStatements.add(stmt);
model.add(stmt.getSubject(), DCAT.endDate, stmt.getObject());
}
it.close();
for (Statement stmt : oldStatements) {
model.remove(stmt);
}
}
} }
package de.landsh.opendata.catalogproxy; package de.landsh.opendata.catalogproxy;
import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.*;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.ResIterator;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.riot.RDFLanguages; import org.apache.jena.riot.RDFLanguages;
import org.apache.jena.riot.RDFParser; import org.apache.jena.riot.RDFParser;
import org.apache.jena.riot.system.ErrorHandlerFactory; import org.apache.jena.riot.system.ErrorHandlerFactory;
...@@ -263,4 +260,21 @@ public class CatalogFilterTest { ...@@ -263,4 +260,21 @@ public class CatalogFilterTest {
assertNotNull(mediaType); assertNotNull(mediaType);
assertEquals("https://www.iana.org/assignments/media-types/text/csv", mediaType.getURI()); assertEquals("https://www.iana.org/assignments/media-types/text/csv", mediaType.getURI());
} }
/**
* In DCAT-AP.de 2 the startDate changed its namespace from schema.org to DCAT.
*/
@Test
public void dcatDate() throws IOException {
try (final InputStream inputStream = getClass().getResourceAsStream("/catalog.xml")) {
final Model model = catalogFilter.work(inputStream);
Selector selectorSchema = new SimpleSelector(null, model.createProperty("http://schema.org/startDate"), (Object) null);
assertFalse(model.listStatements(selectorSchema).hasNext());
Selector selectorDCAT = new SimpleSelector(null, DCAT.startDate, (Object) null);
assertTrue(model.listStatements(selectorDCAT).hasNext());
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment