All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sansa_stack.owl.spark.writers.KRSS2SyntaxWriter.scala Maven / Gradle / Ivy

package net.sansa_stack.owl.spark.writers

import java.io.{ByteArrayOutputStream, OutputStreamWriter}
import java.util.Collections

import net.sansa_stack.owl.spark.rdd.OWLAxiomsRDD
import org.semanticweb.owlapi.apibinding.OWLManager
import org.semanticweb.owlapi.krss2.renderer.KRSS2OWLObjectRenderer

import scala.collection.JavaConverters._

object KRSS2SyntaxWriter extends OWLWriterBase {
  override def save(filePath: String, owlAxioms: OWLAxiomsRDD): Unit =
    owlAxioms.mapPartitions(partition => if (partition.hasNext) {
      val os = new ByteArrayOutputStream()
      val osWriter = new OutputStreamWriter(os)
      val renderer = new KRSS2OWLObjectRenderer(OWLManager.createOWLOntologyManager().createOntology(), osWriter)

      partition.foreach(axiom => {
        val ont = OWLManager.createOWLOntologyManager().createOntology(Seq(axiom).asJava)
        renderer.visit(ont)
      })
      osWriter.flush()

      Collections.singleton(os.toString("UTF-8").trim + nl).iterator().asScala

    } else {
      Iterator()

    }).saveAsTextFile(filePath)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy