diff options
Diffstat (limited to 'src/main/scala/rsacomb/RSAOntology.scala')
| -rw-r--r-- | src/main/scala/rsacomb/RSAOntology.scala | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/main/scala/rsacomb/RSAOntology.scala b/src/main/scala/rsacomb/RSAOntology.scala index dcd9c63..9220434 100644 --- a/src/main/scala/rsacomb/RSAOntology.scala +++ b/src/main/scala/rsacomb/RSAOntology.scala | |||
| @@ -245,8 +245,11 @@ trait RSAOntology { | |||
| 245 | Graph(edges: _*) | 245 | Graph(edges: _*) |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | def filteringProgram(query: SelectQuery): FilteringProgram = | 248 | def filteringProgram( |
| 249 | FilteringProgram(query, individuals) | 249 | query: SelectQuery, |
| 250 | nis: List[Term] | ||
| 251 | ): FilteringProgram = | ||
| 252 | new FilteringProgram(query, nis) | ||
| 250 | 253 | ||
| 251 | // TODO: the following functions needs testing | 254 | // TODO: the following functions needs testing |
| 252 | def confl( | 255 | def confl( |
| @@ -359,9 +362,11 @@ trait RSAOntology { | |||
| 359 | 362 | ||
| 360 | import RDFoxUtil._ | 363 | import RDFoxUtil._ |
| 361 | 364 | ||
| 362 | val NIs: List[Rule] = | 365 | val named: List[Rule] = |
| 363 | individuals.map(a => | 366 | individuals.map(a => |
| 364 | Rule.create(TupleTableAtom.rdf(a, IRI.RDF_TYPE, RSA.internal("NI"))) | 367 | Rule.create( |
| 368 | TupleTableAtom.rdf(a, IRI.RDF_TYPE, RSA.internal("NAMED")) | ||
| 369 | ) | ||
| 365 | ) | 370 | ) |
| 366 | 371 | ||
| 367 | val rolesAdditionalRules: List[Rule] = { | 372 | val rolesAdditionalRules: List[Rule] = { |
| @@ -500,17 +505,17 @@ trait RSAOntology { | |||
| 500 | val z = Variable.create("Z") | 505 | val z = Variable.create("Z") |
| 501 | List( | 506 | List( |
| 502 | Rule.create( | 507 | Rule.create( |
| 503 | TupleTableAtom.rdf(x, IRI.SAME_AS, x), | 508 | TupleTableAtom.rdf(x, RSA.EquivTo, x), |
| 504 | TupleTableAtom.rdf(x, IRI.RDF_TYPE, IRI.THING) | 509 | TupleTableAtom.rdf(x, IRI.RDF_TYPE, IRI.THING) |
| 505 | ), | 510 | ), |
| 506 | Rule.create( | 511 | Rule.create( |
| 507 | TupleTableAtom.rdf(y, IRI.SAME_AS, x), | 512 | TupleTableAtom.rdf(y, RSA.EquivTo, x), |
| 508 | TupleTableAtom.rdf(x, IRI.SAME_AS, y) | 513 | TupleTableAtom.rdf(x, RSA.EquivTo, y) |
| 509 | ), | 514 | ), |
| 510 | Rule.create( | 515 | Rule.create( |
| 511 | TupleTableAtom.rdf(x, IRI.SAME_AS, z), | 516 | TupleTableAtom.rdf(x, RSA.EquivTo, z), |
| 512 | TupleTableAtom.rdf(x, IRI.SAME_AS, y), | 517 | TupleTableAtom.rdf(x, RSA.EquivTo, y), |
| 513 | TupleTableAtom.rdf(y, IRI.SAME_AS, z) | 518 | TupleTableAtom.rdf(y, RSA.EquivTo, z) |
| 514 | ) | 519 | ) |
| 515 | ) | 520 | ) |
| 516 | } | 521 | } |
| @@ -519,7 +524,7 @@ trait RSAOntology { | |||
| 519 | // Compute rules from ontology axioms | 524 | // Compute rules from ontology axioms |
| 520 | val rules = axioms.flatMap(_.accept(this.ProgramGenerator)) | 525 | val rules = axioms.flatMap(_.accept(this.ProgramGenerator)) |
| 521 | // Return full set of rules | 526 | // Return full set of rules |
| 522 | rules ++ rolesAdditionalRules ++ topAxioms ++ equalityAxioms ++ NIs | 527 | rules ++ rolesAdditionalRules ++ topAxioms ++ equalityAxioms ++ named |
| 523 | } | 528 | } |
| 524 | 529 | ||
| 525 | object ProgramGenerator | 530 | object ProgramGenerator |
