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

Commit 26e9ed7

Browse files
Added test for Forw.RuleReasonerOWLHorst rule O11c
1 parent e3251ab commit 26e9ed7

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Prefix(:=<http://ex.com/default#>)
2+
3+
Ontology(<http://ex.com/ont/sample1.owl>
4+
<http://ex.com/ont/release/123/sample1.owl>
5+
6+
Declaration(Class(:Cls1))
7+
Declaration(Class(:Cls2))
8+
9+
Declaration(Class(:Cls3))
10+
Declaration(Class(:Cls4))
11+
Declaration(Class(:Cls5))
12+
13+
# should be detected as equivalent classes
14+
SubClassOf(:Cls02 :Cls01)
15+
SubClassOf(:Cls01 :Cls02)
16+
17+
# just random sub class axioms
18+
SubClassOf(:Cls04 :Cls03)
19+
SubClassOf(:Cls04 :Cls05)
20+
)

sansa-inference-spark/src/test/scala/net/sansa_stack/inference/spark/forwardchaining/axioms/ForwardRuleReasonerOWLHorstTest.scala

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,4 +570,28 @@ class ForwardRuleReasonerOWLHorstTest extends FunSuite with SharedSparkContext w
570570
assert(inferred.contains(df.getOWLSubClassOfAxiom(cls04, cls05)))
571571
assert(inferred.contains(df.getOWLSubClassOfAxiom(cls05, cls04)))
572572
}
573+
574+
/**
575+
* O11c:
576+
* Condition:
577+
* v owl:subClassOf w
578+
* w owl:subClassOf v
579+
* Consequence:
580+
* v rdfs:equivalentClass w
581+
*/
582+
test("Rule O11c should return correct results") {
583+
val cls01 = df.getOWLClass(defaultPrefix + "Cls01")
584+
val cls02 = df.getOWLClass(defaultPrefix + "Cls02")
585+
586+
val input = getClass.getResource(resourcePath + "test_o11c.owl").getPath
587+
588+
val axiomsRDD = spark.owl(Syntax.FUNCTIONAL)(input)
589+
val reasoner = new ForwardRuleReasonerOWLHorst(sc, sc.defaultMinPartitions)
590+
val inferred: Seq[OWLAxiom] = reasoner.apply(axiomsRDD).collect()
591+
592+
// One axiom should be inferred:
593+
// EquivalentClasses(:Cls01 :Cls02)
594+
assert(inferred.size == 1)
595+
assert(inferred.contains(df.getOWLEquivalentClassesAxiom(cls01, cls02)))
596+
}
573597
}

0 commit comments

Comments
 (0)