diff options
| -rw-r--r-- | examples/example1.owl | 80 | ||||
| -rw-r--r-- | examples/example2.owl | 112 | ||||
| -rw-r--r-- | src/main/scala/rsacomb/RSAOntology.scala | 3 |
3 files changed, 194 insertions, 1 deletions
diff --git a/examples/example1.owl b/examples/example1.owl new file mode 100644 index 0000000..88de981 --- /dev/null +++ b/examples/example1.owl | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
| 2 | <rdf:RDF | ||
| 3 | xml:base = "http://example.com/rsa_example.owl#" | ||
| 4 | xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
| 5 | xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | ||
| 6 | xmlns:owl="http://www.w3.org/2002/07/owl#" | ||
| 7 | > | ||
| 8 | |||
| 9 | <!-- | ||
| 10 | A ⊑ D | ||
| 11 | A ⊑ ∃ S⁻.C | ||
| 12 | ∃ S.A ⊑ D | ||
| 13 | D ⊑ ∃ R.B | ||
| 14 | B ⊑ ∃ S.D | ||
| 15 | R ⊑ T⁻ | ||
| 16 | S ⊑ T | ||
| 17 | --> | ||
| 18 | |||
| 19 | <owl:Class rdf:ID="A"> | ||
| 20 | <rdfs:subClassOf rdf:resource="#D" /> | ||
| 21 | </owl:Class> | ||
| 22 | |||
| 23 | <owl:Class rdf:ID="A"> | ||
| 24 | <rdfs:subClassOf> | ||
| 25 | <owl:Restriction> | ||
| 26 | <owl:onProperty> | ||
| 27 | <owl:ObjectProperty> | ||
| 28 | <owl:inverseOf rdf:resource="#S" /> | ||
| 29 | </owl:ObjectProperty> | ||
| 30 | </owl:onProperty> | ||
| 31 | <owl:someValuesFrom> | ||
| 32 | <owl:Class rdf:about="#C" /> | ||
| 33 | </owl:someValuesFrom> | ||
| 34 | </owl:Restriction> | ||
| 35 | </rdfs:subClassOf> | ||
| 36 | </owl:Class> | ||
| 37 | |||
| 38 | <owl:Restriction> | ||
| 39 | <owl:onProperty rdf:resource="#S"/> | ||
| 40 | <owl:someValuesFrom> | ||
| 41 | <owl:Class rdf:about="#A" /> | ||
| 42 | </owl:someValuesFrom> | ||
| 43 | <rdfs:subClassOf rdf:resource="#D" /> | ||
| 44 | </owl:Restriction> | ||
| 45 | |||
| 46 | <owl:Class rdf:ID="D"> | ||
| 47 | <rdfs:subClassOf> | ||
| 48 | <owl:Restriction> | ||
| 49 | <owl:onProperty rdf:resource="#R"/> | ||
| 50 | <owl:someValuesFrom> | ||
| 51 | <owl:Class rdf:about="#B" /> | ||
| 52 | </owl:someValuesFrom> | ||
| 53 | </owl:Restriction> | ||
| 54 | </rdfs:subClassOf> | ||
| 55 | </owl:Class> | ||
| 56 | |||
| 57 | <owl:Class rdf:ID="B"> | ||
| 58 | <rdfs:subClassOf> | ||
| 59 | <owl:Restriction> | ||
| 60 | <owl:onProperty rdf:resource="#S"/> | ||
| 61 | <owl:someValuesFrom> | ||
| 62 | <owl:Class rdf:about="#D" /> | ||
| 63 | </owl:someValuesFrom> | ||
| 64 | </owl:Restriction> | ||
| 65 | </rdfs:subClassOf> | ||
| 66 | </owl:Class> | ||
| 67 | |||
| 68 | <owl:ObjectProperty rdf:ID="R"> | ||
| 69 | <rdfs:subPropertyOf> | ||
| 70 | <owl:ObjectProperty> | ||
| 71 | <owl:inverseOf rdf:resource="#T" /> | ||
| 72 | </owl:ObjectProperty> | ||
| 73 | </rdfs:subPropertyOf> | ||
| 74 | </owl:ObjectProperty> | ||
| 75 | |||
| 76 | <owl:ObjectProperty rdf:ID="S"> | ||
| 77 | <rdfs:subPropertyOf rdf:resource="#T" /> | ||
| 78 | </owl:ObjectProperty> | ||
| 79 | |||
| 80 | </rdf:RDF> \ No newline at end of file | ||
diff --git a/examples/example2.owl b/examples/example2.owl new file mode 100644 index 0000000..f42f6c9 --- /dev/null +++ b/examples/example2.owl | |||
| @@ -0,0 +1,112 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
| 2 | <rdf:RDF | ||
| 3 | xml:base = "http://example.com/rsa_example.owl#" | ||
| 4 | xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" | ||
| 5 | xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" | ||
| 6 | xmlns:owl="http://www.w3.org/2002/07/owl#" | ||
| 7 | > | ||
| 8 | |||
| 9 | <!-- | ||
| 10 | A ⊑ ∃ R.B | ||
| 11 | ∃ R⁻.X ⊑ Y | ||
| 12 | B ⊑ ∃ S.C | ||
| 13 | ∃ S⁻.X ⊑ Y | ||
| 14 | C ⊑ ∃ T.D | ||
| 15 | ∃ T⁻.X ⊑ Y | ||
| 16 | D ⊑ ∃ P.A | ||
| 17 | ∃ P⁻.X ⊑ Y | ||
| 18 | --> | ||
| 19 | |||
| 20 | <owl:Class rdf:ID="A"> | ||
| 21 | <rdfs:subClassOf> | ||
| 22 | <owl:Restriction> | ||
| 23 | <owl:onProperty rdf:resource="#R"/> | ||
| 24 | <owl:someValuesFrom> | ||
| 25 | <owl:Class rdf:about="#B" /> | ||
| 26 | </owl:someValuesFrom> | ||
| 27 | </owl:Restriction> | ||
| 28 | </rdfs:subClassOf> | ||
| 29 | </owl:Class> | ||
| 30 | |||
| 31 | <owl:Restriction> | ||
| 32 | <owl:onProperty> | ||
| 33 | <owl:ObjectProperty> | ||
| 34 | <owl:inverseOf rdf:resource="#R" /> | ||
| 35 | </owl:ObjectProperty> | ||
| 36 | </owl:onProperty> | ||
| 37 | <owl:someValuesFrom> | ||
| 38 | <owl:Class rdf:about="#X" /> | ||
| 39 | </owl:someValuesFrom> | ||
| 40 | <rdfs:subClassOf rdf:resource="#Y" /> | ||
| 41 | </owl:Restriction> | ||
| 42 | |||
| 43 | <owl:Class rdf:ID="B"> | ||
| 44 | <rdfs:subClassOf> | ||
| 45 | <owl:Restriction> | ||
| 46 | <owl:onProperty rdf:resource="#S"/> | ||
| 47 | <owl:someValuesFrom> | ||
| 48 | <owl:Class rdf:about="#C" /> | ||
| 49 | </owl:someValuesFrom> | ||
| 50 | </owl:Restriction> | ||
| 51 | </rdfs:subClassOf> | ||
| 52 | </owl:Class> | ||
| 53 | |||
| 54 | <owl:Restriction> | ||
| 55 | <owl:onProperty> | ||
| 56 | <owl:ObjectProperty> | ||
| 57 | <owl:inverseOf rdf:resource="#S" /> | ||
| 58 | </owl:ObjectProperty> | ||
| 59 | </owl:onProperty> | ||
| 60 | <owl:someValuesFrom> | ||
| 61 | <owl:Class rdf:about="#X" /> | ||
| 62 | </owl:someValuesFrom> | ||
| 63 | <rdfs:subClassOf rdf:resource="#Y" /> | ||
| 64 | </owl:Restriction> | ||
| 65 | |||
| 66 | <owl:Class rdf:ID="C"> | ||
| 67 | <rdfs:subClassOf> | ||
| 68 | <owl:Restriction> | ||
| 69 | <owl:onProperty rdf:resource="#T"/> | ||
| 70 | <owl:someValuesFrom> | ||
| 71 | <owl:Class rdf:about="#D" /> | ||
| 72 | </owl:someValuesFrom> | ||
| 73 | </owl:Restriction> | ||
| 74 | </rdfs:subClassOf> | ||
| 75 | </owl:Class> | ||
| 76 | |||
| 77 | <owl:Restriction> | ||
| 78 | <owl:onProperty> | ||
| 79 | <owl:ObjectProperty> | ||
| 80 | <owl:inverseOf rdf:resource="#T" /> | ||
| 81 | </owl:ObjectProperty> | ||
| 82 | </owl:onProperty> | ||
| 83 | <owl:someValuesFrom> | ||
| 84 | <owl:Class rdf:about="#X" /> | ||
| 85 | </owl:someValuesFrom> | ||
| 86 | <rdfs:subClassOf rdf:resource="#Y" /> | ||
| 87 | </owl:Restriction> | ||
| 88 | |||
| 89 | <owl:Class rdf:ID="D"> | ||
| 90 | <rdfs:subClassOf> | ||
| 91 | <owl:Restriction> | ||
| 92 | <owl:onProperty rdf:resource="#P"/> | ||
| 93 | <owl:someValuesFrom> | ||
| 94 | <owl:Class rdf:about="#A" /> | ||
| 95 | </owl:someValuesFrom> | ||
| 96 | </owl:Restriction> | ||
| 97 | </rdfs:subClassOf> | ||
| 98 | </owl:Class> | ||
| 99 | |||
| 100 | <owl:Restriction> | ||
| 101 | <owl:onProperty> | ||
| 102 | <owl:ObjectProperty> | ||
| 103 | <owl:inverseOf rdf:resource="#P" /> | ||
| 104 | </owl:ObjectProperty> | ||
| 105 | </owl:onProperty> | ||
| 106 | <owl:someValuesFrom> | ||
| 107 | <owl:Class rdf:about="#X" /> | ||
| 108 | </owl:someValuesFrom> | ||
| 109 | <rdfs:subClassOf rdf:resource="#Y" /> | ||
| 110 | </owl:Restriction> | ||
| 111 | |||
| 112 | </rdf:RDF> \ No newline at end of file | ||
diff --git a/src/main/scala/rsacomb/RSAOntology.scala b/src/main/scala/rsacomb/RSAOntology.scala index a3c1843..c658227 100644 --- a/src/main/scala/rsacomb/RSAOntology.scala +++ b/src/main/scala/rsacomb/RSAOntology.scala | |||
| @@ -55,7 +55,8 @@ trait RSAOntology { | |||
| 55 | val renderer = new DLSyntaxObjectRenderer() | 55 | val renderer = new DLSyntaxObjectRenderer() |
| 56 | println("\nDL rules:") | 56 | println("\nDL rules:") |
| 57 | tbox.foreach(x => println(renderer.render(x))) | 57 | tbox.foreach(x => println(renderer.render(x))) |
| 58 | println(s"Unsafe roles: $unsafe") | 58 | println("\nUnsafe roles:") |
| 59 | println(unsafe) | ||
| 59 | 60 | ||
| 60 | /* Ontology convertion into LP rules */ | 61 | /* Ontology convertion into LP rules */ |
| 61 | val datalog = for { | 62 | val datalog = for { |
