@@ -3,26 +3,14 @@ package org.renci.relationgraph
33import org .apache .jena .graph .Triple
44import org .apache .jena .riot .system .StreamRDF
55import org .apache .jena .shared .PrefixMapping
6- import org .apache .jena .shared .impl .PrefixMappingImpl
76import org .apache .jena .sparql .core .Quad
87
98import java .io .{File , PrintWriter }
109import scala .jdk .CollectionConverters ._
1110
1211class TSVStreamRDF (file : File , prefixes : Map [String , String ], oboPrefixes : Boolean ) extends StreamRDF {
1312
14- private val prefixMapping : PrefixMapping = {
15- val pm = new PrefixMappingImpl () {
16- override def shortForm (uri : String ): String = {
17- val shortForm = super .shortForm(uri)
18- if (oboPrefixes && (shortForm == uri) && (uri.startsWith(" http://purl.obolibrary.org/obo/" ))) {
19- val tail = uri.replace(" http://purl.obolibrary.org/obo/" , " " )
20- tail.split(" _" , 2 ).mkString(" :" )
21- } else shortForm
22- }
23- }
24- pm.setNsPrefixes(prefixes.asJava).withDefaultMappings(PrefixMapping .Standard )
25- }
13+ private val prefixMapping = LongestFirstPrefixMapping (PrefixMapping .Standard .getNsPrefixMap.asScala.toMap ++ prefixes, oboPrefixes)
2614
2715 private var writer : PrintWriter = _
2816
@@ -31,17 +19,17 @@ class TSVStreamRDF(file: File, prefixes: Map[String, String], oboPrefixes: Boole
3119 }
3220
3321 override def triple (triple : Triple ): Unit = {
34- val s = triple.getSubject.toString(prefixMapping, true )
35- val p = triple.getPredicate.toString(prefixMapping, true )
36- val o = triple.getObject.toString(prefixMapping, true )
22+ val s = prefixMapping.compact( triple.getSubject.toString)
23+ val p = prefixMapping.compact( triple.getPredicate.toString)
24+ val o = prefixMapping.compact( triple.getObject.toString)
3725 writer.println(s " $s\t $p\t $o" )
3826 }
3927
4028 override def quad (quad : Quad ): Unit = {
41- val s = quad.getSubject.toString(prefixMapping, true )
42- val p = quad.getPredicate.toString(prefixMapping, true )
43- val o = quad.getObject.toString(prefixMapping, true )
44- val g = quad.getGraph.toString(prefixMapping, true )
29+ val s = prefixMapping.compact( quad.getSubject.toString)
30+ val p = prefixMapping.compact( quad.getPredicate.toString)
31+ val o = prefixMapping.compact( quad.getObject.toString)
32+ val g = prefixMapping.compact( quad.getGraph.toString)
4533 writer.println(s " $s\t $p\t $o\t $g" )
4634 }
4735
0 commit comments