
eu.optique.api.mapping.impl.jena.JenaConfiguration Maven / Gradle / Ivy
package eu.optique.api.mapping.impl.jena;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.apache.jena.rdf.model.Literal;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.Property;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.rdf.model.Statement;
import org.apache.jena.rdf.model.StmtIterator;
import org.apache.jena.vocabulary.RDF;
import eu.optique.api.mapping.LibConfiguration;
import eu.optique.api.mapping.TriplesMap;
import eu.optique.api.mapping.impl.R2RMLVocabulary;
/**
* The library configuration for the Jena API.
*
* Uses org.apache.jena.rdf.model.Resource as the resource class,
* org.apache.jena.rdf.model.Statement as the triple class and
* org.apache.jena.rdf.model.Model as the graph class.
*
* @author Marius Strandhaug
*/
public class JenaConfiguration implements LibConfiguration {
private Class res = Resource.class;
private Class trpl = Statement.class;
private Class graph = Model.class;
@Override
public Resource createResource(String URI) {
return org.apache.jena.rdf.model.ResourceFactory.createResource(URI);
}
@Override
public Resource createBNode() {
return org.apache.jena.rdf.model.ResourceFactory.createResource();
}
@Override
public Statement createTriple(Object subject, Object predicate,
Object object) {
Resource s = (Resource) subject;
Property p = org.apache.jena.rdf.model.ResourceFactory
.createProperty(((Resource) predicate).getURI());
Resource o = (Resource) object;
return org.apache.jena.rdf.model.ResourceFactory.createStatement(s, p,
o);
}
@Override
public Statement createLiteralTriple(Object subject, Object predicate,
String litObject) {
Property p = org.apache.jena.rdf.model.ResourceFactory
.createProperty(((Resource) predicate).getURI());
Literal l = org.apache.jena.rdf.model.ResourceFactory
.createPlainLiteral(litObject);
return org.apache.jena.rdf.model.ResourceFactory.createStatement(
(Resource) subject, p, l);
}
@Override
public Object createGraph(Collection maps) {
Model m = ModelFactory.createDefaultModel();
m.setNsPrefix("rr", R2RMLVocabulary.NAMESPACE);
for (TriplesMap tm : maps) {
Set stmts = tm.serialize(Statement.class);
for (Statement st : stmts)
m.add(st);
}
return m;
}
@Override
public Resource getRDFType() {
return RDF.type;
}
@Override
public Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy