it.unibz.inf.ontop.cli.OntopR2RMLToOBDA Maven / Gradle / Ivy
package it.unibz.inf.ontop.cli;
import com.github.rvesse.airline.annotations.Command;
import com.github.rvesse.airline.annotations.Option;
import com.github.rvesse.airline.annotations.OptionType;
import com.github.rvesse.airline.annotations.restrictions.Required;
import com.google.common.base.Strings;
import it.unibz.inf.ontop.injection.OntopSQLOWLAPIConfiguration;
import it.unibz.inf.ontop.spec.mapping.serializer.impl.OntopNativeMappingSerializer;
import it.unibz.inf.ontop.spec.mapping.pp.SQLPPMapping;
import java.io.File;
@Command(name = "to-obda",
description = "Convert R2RML format to ontop native mapping format (.obda)")
public class OntopR2RMLToOBDA implements OntopCommand {
@Option(type = OptionType.COMMAND, name = {"-i", "--input"}, title = "mapping.ttl",
description = "Input mapping file in R2RML format (.ttl)")
@Required
protected String inputMappingFile;
@Option(type = OptionType.COMMAND, name = {"-o", "--output"}, title = "mapping.obda",
description = "Output mapping file in Ontop native format (.obda)")
protected String outputMappingFile;
@Override
public void run() {
if (Strings.isNullOrEmpty(outputMappingFile)) {
outputMappingFile = inputMappingFile.substring(inputMappingFile.lastIndexOf(".")).concat(".obda");
}
OntopSQLOWLAPIConfiguration configuration = OntopSQLOWLAPIConfiguration.defaultBuilder()
.r2rmlMappingFile(inputMappingFile)
.jdbcUrl("jdbc:h2:tcp://localhost/DBName")
.jdbcUser("username")
.jdbcPassword("password")
.build();
OntopNativeMappingSerializer writer = new OntopNativeMappingSerializer();
try {
SQLPPMapping ppMapping = configuration.loadProvidedPPMapping();
writer.write(new File(outputMappingFile), ppMapping);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy