Skip to content
This repository was archived by the owner on Oct 8, 2020. It is now read-only.

Commit d5e6b6c

Browse files
Utils simplified
1 parent 3dd33b9 commit d5e6b6c

3 files changed

Lines changed: 46 additions & 19 deletions

File tree

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,21 @@
11
package net.sansa_stack.inference.utils
22

33
import org.apache.jena.graph.Triple
4+
import org.apache.jena.shared.PrefixMapping
5+
import org.apache.jena.sparql.util.FmtUtils
46

57

68
/**
79
* Convert a Jena Triple to an N-Triples string.
810
*
11+
* @note it turns out, that it might be more efficient to use the Jena stream based writer API per partition.
12+
*
913
* @author Lorenz Buehmann
1014
*/
1115
class JenaTripleToNTripleString
1216
extends Function[Triple, String]
1317
with java.io.Serializable {
14-
override def apply(t: Triple): String = {
15-
val subStr =
16-
if (t.getSubject.isBlank) {
17-
s"_:${t.getSubject.getBlankNodeLabel}"
18-
} else {
19-
s"<${t.getSubject.getURI}>"
20-
}
2118

22-
val objStr =
23-
if (t.getObject.isLiteral) {
24-
t.getObject
25-
} else if (t.getObject.isBlank) {
26-
s"_:${t.getObject}"
27-
} else {
28-
s"<${t.getObject}>"
29-
}
30-
s"$subStr <${t.getPredicate}> $objStr ."
31-
}
19+
override def apply(t: Triple): String = s"${FmtUtils.stringForTriple(t, null.asInstanceOf[PrefixMapping])} ."
3220
}
3321

sansa-inference-common/src/main/scala/net/sansa_stack/inference/utils/NTriplesStringToRDFTriple.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package net.sansa_stack.inference.utils
22

33
import java.io.ByteArrayInputStream
44

5-
import org.apache.jena.graph.Triple
65
import org.apache.jena.riot.{Lang, RDFDataMgr}
76

87
import net.sansa_stack.inference.data.RDFTriple
@@ -13,7 +12,7 @@ import net.sansa_stack.inference.data.RDFTriple
1312
* @author Lorenz Buehmann
1413
*/
1514
class NTriplesStringToRDFTriple
16-
extends Function1[String, Option[RDFTriple]]
15+
extends ((String) => Option[RDFTriple])
1716
with java.io.Serializable {
1817
override def apply(s: String): Option[RDFTriple] = {
1918
val t = RDFDataMgr.createIteratorTriples(new ByteArrayInputStream(s.getBytes), Lang.NTRIPLES, null).next()
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package net.sansa_stack.inference.utils
2+
3+
/**
4+
* Some utils for logical combinations of boolean functions.
5+
*/
6+
object PredicateUtils {
7+
8+
implicit class RichPredicate[A](f: A => Boolean) extends (A => Boolean) {
9+
def apply(v: A): Boolean = f(v)
10+
11+
/**
12+
* Logical 'and'.
13+
*
14+
* @param g
15+
* @return
16+
*/
17+
def &&(g: A => Boolean): A => Boolean = { x: A =>
18+
f(x) && g(x)
19+
}
20+
21+
/**
22+
* Logical 'or'.
23+
*
24+
* @param g
25+
* @return
26+
*/
27+
def ||(g: A => Boolean): A => Boolean = { x: A =>
28+
f(x) || g(x)
29+
}
30+
31+
/**
32+
* Logical 'not'
33+
*
34+
* @return
35+
*/
36+
def unary_! : A => Boolean = { x: A =>
37+
!f(x)
38+
}
39+
}
40+
}

0 commit comments

Comments
 (0)