aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/rsacomb/RSAAxiom.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/rsacomb/RSAAxiom.scala')
-rw-r--r--src/main/scala/rsacomb/RSAAxiom.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/scala/rsacomb/RSAAxiom.scala b/src/main/scala/rsacomb/RSAAxiom.scala
index aca44b1..f504bbe 100644
--- a/src/main/scala/rsacomb/RSAAxiom.scala
+++ b/src/main/scala/rsacomb/RSAAxiom.scala
@@ -19,6 +19,7 @@ import org.semanticweb.owlapi.model.{
19 OWLAxiomVisitorEx, 19 OWLAxiomVisitorEx,
20 OWLClassExpressionVisitorEx 20 OWLClassExpressionVisitorEx
21} 21}
22import org.semanticweb.owlapi.model.OWLObjectProperty
22 23
23/* Wrapper trait for the implicit class `RSAAxiom`. 24/* Wrapper trait for the implicit class `RSAAxiom`.
24 */ 25 */
@@ -163,6 +164,19 @@ trait RSAAxiom {
163 val visitor = new RSAAxiomRoleExtractor() 164 val visitor = new RSAAxiomRoleExtractor()
164 axiom.accept(visitor) 165 axiom.accept(visitor)
165 } 166 }
167
168 lazy val toTriple: Option[(OWLClass, OWLObjectProperty, OWLClass)] =
169 for {
170 subClass <- Some(axiom) collect { case a: OWLSubClassOfAxiom => a }
171 cls1 <- Some(subClass.getSubClass) collect { case a: OWLClass => a }
172 someValues <- Some(subClass.getSuperClass) collect {
173 case a: OWLObjectSomeValuesFrom => a
174 }
175 prop <- Some(someValues.getProperty) collect {
176 case a: OWLObjectProperty => a
177 }
178 cls2 <- Some(someValues.getFiller) collect { case a: OWLClass => a }
179 } yield (cls1, prop, cls2)
166 } 180 }
167 181
168} // trait RSAAxiom 182} // trait RSAAxiom