package org.datacite.conres.view;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.vocabulary.DCTerms;
import com.hp.hpl.jena.vocabulary.OWL;
import org.datacite.conres.model.Model;
import java.io.StringWriter;
public class RdfRepresentation {
public static String writeXML(Model m){
com.hp.hpl.jena.rdf.model.Model model = getRdfModel(m);
StringWriter writer = new StringWriter();
model.write(writer, "RDF/XML");
return writer.toString();
}
public static String writeTurtle(Model m){
com.hp.hpl.jena.rdf.model.Model model = getRdfModel(m);
StringWriter writer = new StringWriter();
model.write(writer, "TURTLE");
return writer.toString();
}
private static com.hp.hpl.jena.rdf.model.Model getRdfModel(Model m) {
com.hp.hpl.jena.rdf.model.Model model = ModelFactory.createDefaultModel();
String doiUri = "https://doi.org/" + m.getDoi();
String doi = "doi:" + m.getDoi();
String infoDoi = "info:doi/" + m.getDoi();
Resource dataset = model.createResource(doiUri)
.addProperty(DCTerms.identifier, m.getDoi())
.addProperty(OWL.sameAs, infoDoi)
.addProperty(OWL.sameAs, doi)
.addProperty(DCTerms.date, m.getPublicationYear())
.addProperty(DCTerms.title, m.getTitles().get(0).getValue())
.addProperty(DCTerms.publisher, m.getPublisher());
for(String s : m.getCreators()){
dataset.addProperty(DCTerms.creator, s);
}
return model;
}
}