fuzzy-dl-owl2 1.0.4__tar.gz → 1.0.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/PKG-INFO +2 -2
  2. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py +224 -61
  3. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/util/__init__.py +1 -0
  4. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py +22 -16
  5. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2_to_fuzzydl.py +3 -4
  6. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/modified_property.py +7 -1
  7. fuzzy_dl_owl2-1.0.6/fuzzy_dl_owl2/fuzzyowl2/parser/__init__.py +2 -0
  8. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/parser/owl2_parser.py +22 -15
  9. fuzzy_dl_owl2-1.0.6/fuzzy_dl_owl2/fuzzyowl2/parser/owl2_xml_parser.py +226 -0
  10. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/util/__init__.py +1 -0
  11. fuzzy_dl_owl2-1.0.6/fuzzy_dl_owl2/fuzzyowl2/util/constants.py +198 -0
  12. fuzzy_dl_owl2-1.0.6/fuzzy_dl_owl2/fuzzyowl2/util/fuzzy_xml.py +107 -0
  13. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/pyproject.toml +2 -2
  14. fuzzy_dl_owl2-1.0.4/fuzzy_dl_owl2/fuzzyowl2/parser/__init__.py +0 -1
  15. fuzzy_dl_owl2-1.0.4/fuzzy_dl_owl2/fuzzyowl2/util/constants.py +0 -112
  16. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/LICENSE +0 -0
  17. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/README.md +0 -0
  18. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/__init__.py +0 -0
  19. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/__init__.py +0 -0
  20. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/assertion/__init__.py +0 -0
  21. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/assertion/assertion.py +0 -0
  22. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/assertion/atomic_assertion.py +0 -0
  23. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/__init__.py +0 -0
  24. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/all_some_concept.py +0 -0
  25. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/approximation_concept.py +0 -0
  26. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/atomic_concept.py +0 -0
  27. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/choquet_integral.py +0 -0
  28. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concept.py +0 -0
  29. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/__init__.py +0 -0
  30. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/crisp_concrete_concept.py +0 -0
  31. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_concrete_concept.py +0 -0
  32. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/__init__.py +0 -0
  33. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/triangular_fuzzy_number.py +0 -0
  34. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/left_concrete_concept.py +0 -0
  35. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/linear_concrete_concept.py +0 -0
  36. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/modified_concrete_concept.py +0 -0
  37. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/right_concrete_concept.py +0 -0
  38. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/trapezoidal_concrete_concept.py +0 -0
  39. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/concrete/triangular_concrete_concept.py +0 -0
  40. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/ext_threshold_concept.py +0 -0
  41. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/has_value_concept.py +0 -0
  42. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/implies_concept.py +0 -0
  43. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/__init__.py +0 -0
  44. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_concept_interface.py +0 -0
  45. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_concepts_interface.py +0 -0
  46. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_role_concept_interface.py +0 -0
  47. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_role_interface.py +0 -0
  48. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_value_interface.py +0 -0
  49. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/interface/has_weighted_concepts_interface.py +0 -0
  50. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/modified/__init__.py +0 -0
  51. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/modified/linearly_modified_concept.py +0 -0
  52. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/modified/modified_concept.py +0 -0
  53. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/modified/triangularly_modified_concept.py +0 -0
  54. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/negated_nominal.py +0 -0
  55. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/operator_concept.py +0 -0
  56. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/owa_concept.py +0 -0
  57. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/qowa_concept.py +0 -0
  58. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/quasi_sugeno_integral.py +0 -0
  59. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/self_concept.py +0 -0
  60. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/string_concept.py +0 -0
  61. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/sugeno_integral.py +0 -0
  62. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/threshold_concept.py +0 -0
  63. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/truth_concept.py +0 -0
  64. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/value_concept.py +0 -0
  65. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/weighted_concept.py +0 -0
  66. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/weighted_max_concept.py +0 -0
  67. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/weighted_min_concept.py +0 -0
  68. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/weighted_sum_concept.py +0 -0
  69. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept/weighted_sum_zero_concept.py +0 -0
  70. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concept_equivalence.py +0 -0
  71. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/concrete_feature.py +0 -0
  72. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/degree/__init__.py +0 -0
  73. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/degree/degree.py +0 -0
  74. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/degree/degree_expression.py +0 -0
  75. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/degree/degree_numeric.py +0 -0
  76. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/degree/degree_variable.py +0 -0
  77. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/domain_axiom.py +0 -0
  78. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/exception/__init__.py +0 -0
  79. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/exception/fuzzy_ontology_exception.py +0 -0
  80. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/exception/inconsistent_ontology_exception.py +0 -0
  81. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/feature_function.py +0 -0
  82. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/general_concept_inclusion.py +0 -0
  83. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/individual/__init__.py +0 -0
  84. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/individual/created_individual.py +0 -0
  85. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/individual/individual.py +0 -0
  86. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/individual/representative_individual.py +0 -0
  87. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/knowledge_base.py +0 -0
  88. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/label.py +0 -0
  89. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/__init__.py +0 -0
  90. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/expression.py +0 -0
  91. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/inequation.py +0 -0
  92. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/milp_helper.py +0 -0
  93. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/show_variables_helper.py +0 -0
  94. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/solution.py +0 -0
  95. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/term.py +0 -0
  96. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/milp/variable.py +0 -0
  97. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/modifier/__init__.py +0 -0
  98. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/modifier/linear_modifier.py +0 -0
  99. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/modifier/modifier.py +0 -0
  100. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/modifier/triangular_modifier.py +0 -0
  101. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/parser/__init__.py +0 -0
  102. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/parser/dl_parser.py +0 -0
  103. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/primitive_concept_definition.py +0 -0
  104. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/__init__.py +0 -0
  105. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/all_instances_query.py +0 -0
  106. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/bnp_query.py +0 -0
  107. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/defuzzify/__init__.py +0 -0
  108. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/defuzzify/defuzzify_query.py +0 -0
  109. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/defuzzify/lom_defuzzify_query.py +0 -0
  110. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/defuzzify/mom_defuzzify_query.py +0 -0
  111. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/defuzzify/som_defuzzify_query.py +0 -0
  112. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/instance_query.py +0 -0
  113. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/kb_satisfiable_query.py +0 -0
  114. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/__init__.py +0 -0
  115. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/max_instance_query.py +0 -0
  116. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/max_query.py +0 -0
  117. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/max_related_query.py +0 -0
  118. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/max_satisfiable_query.py +0 -0
  119. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/max/max_subsumes_query.py +0 -0
  120. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/__init__.py +0 -0
  121. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/min_instance_query.py +0 -0
  122. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/min_query.py +0 -0
  123. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/min_related_query.py +0 -0
  124. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/min_satisfiable_query.py +0 -0
  125. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/min/min_subsumes_query.py +0 -0
  126. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/query.py +0 -0
  127. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/related_query.py +0 -0
  128. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/satisfiable_query.py +0 -0
  129. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/query/subsumption_query.py +0 -0
  130. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/range_axiom.py +0 -0
  131. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/relation.py +0 -0
  132. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/restriction/__init__.py +0 -0
  133. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/restriction/has_value_restriction.py +0 -0
  134. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/restriction/restriction.py +0 -0
  135. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/role_parent_with_degree.py +0 -0
  136. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/util/config_reader.py +0 -0
  137. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/util/constants.py +0 -0
  138. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/util/util.py +0 -0
  139. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzydl/util/utils.py +0 -0
  140. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/__init__.py +0 -0
  141. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/__init__.py +0 -0
  142. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/choquet_concept.py +0 -0
  143. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/concept_definition.py +0 -0
  144. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/fuzzy_datatype.py +0 -0
  145. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/fuzzy_modifier.py +0 -0
  146. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/fuzzy_nominal_concept.py +0 -0
  147. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/fuzzy_property.py +0 -0
  148. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/left_shoulder_function.py +0 -0
  149. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/linear_function.py +0 -0
  150. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/linear_modifier.py +0 -0
  151. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/modified_concept.py +0 -0
  152. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/modified_function.py +0 -0
  153. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/owa_concept.py +0 -0
  154. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/property_definition.py +0 -0
  155. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/qowa_concept.py +0 -0
  156. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/quasi_sugeno_concept.py +0 -0
  157. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/right_shoulder_function.py +0 -0
  158. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/sugeno_concept.py +0 -0
  159. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/trapezoidal_function.py +0 -0
  160. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/triangular_function.py +0 -0
  161. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/triangular_modifer.py +0 -0
  162. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/weighted_concept.py +0 -0
  163. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/weighted_max_concept.py +0 -0
  164. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/weighted_min_concept.py +0 -0
  165. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/weighted_sum_concept.py +0 -0
  166. {fuzzy_dl_owl2-1.0.4 → fuzzy_dl_owl2-1.0.6}/fuzzy_dl_owl2/fuzzyowl2/owl_types/weighted_sum_zero_concept.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fuzzy-dl-owl2
3
- Version: 1.0.4
3
+ Version: 1.0.6
4
4
  Summary: A python porting of the Fuzzy Description Language (see https://www.umbertostraccia.it/cs/software/fuzzyDL/fuzzyDL.html) and the Fuzzy OWL 2 framework (see https://www.umbertostraccia.it/cs/software/FuzzyOWL/index.html).
5
5
  License: CC-BY-SA-4.0
6
6
  Author: Giuseppe Filippone
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.13
14
14
  Requires-Dist: gurobipy (>=12.0.0,<13.0.0)
15
15
  Requires-Dist: networkx (>=3.3,<4.0)
16
16
  Requires-Dist: owlready2 (>=0.47,<0.48)
17
- Requires-Dist: pyowl2 (>=1.0.1,<2.0.0)
17
+ Requires-Dist: pyowl2 (>=1.0.2,<2.0.0)
18
18
  Requires-Dist: pyparsing (>=3.2.3,<4.0.0)
19
19
  Requires-Dist: rdflib (>=7.1.4,<8.0.0)
20
20
  Requires-Dist: sortedcontainers (>=2.4.0,<3.0.0)
@@ -5,6 +5,8 @@ import sys
5
5
  import typing
6
6
  from functools import partial
7
7
 
8
+ from rdflib import RDF, XSD, Literal, Namespace, URIRef
9
+
8
10
  from fuzzy_dl_owl2.fuzzydl.assertion.assertion import Assertion
9
11
  from fuzzy_dl_owl2.fuzzydl.concept.all_some_concept import AllSomeConcept
10
12
  from fuzzy_dl_owl2.fuzzydl.concept.choquet_integral import ChoquetIntegral
@@ -62,6 +64,7 @@ from fuzzy_dl_owl2.fuzzydl.util import constants
62
64
  from fuzzy_dl_owl2.fuzzydl.util.constants import ConceptType, ConcreteFeatureType
63
65
  from fuzzy_dl_owl2.fuzzydl.util.util import Util
64
66
  from fuzzy_dl_owl2.fuzzyowl2.util.constants import FuzzyOWL2Keyword
67
+ from fuzzy_dl_owl2.fuzzyowl2.util.fuzzy_xml import FuzzyXML
65
68
  from pyowl2.abstracts.axiom import OWLAxiom
66
69
  from pyowl2.abstracts.class_expression import OWLClassExpression
67
70
  from pyowl2.abstracts.data_range import OWLDataRange
@@ -125,7 +128,6 @@ from pyowl2.expressions.object_property import OWLObjectProperty
125
128
  from pyowl2.individual.named_individual import OWLNamedIndividual
126
129
  from pyowl2.literal.literal import OWLLiteral
127
130
  from pyowl2.ontology import OWLOntology
128
- from rdflib import RDF, XSD, Literal, Namespace, URIRef
129
131
 
130
132
 
131
133
  # @utils.timer_decorator
@@ -275,11 +277,24 @@ class FuzzydlToOwl2:
275
277
  c4: OWLClassExpression = self.get_new_atomic_class(str(c))
276
278
  c3: OWLClassExpression = self.get_base(c.c1)
277
279
  self.concepts[str(c)] = c3
278
- annotation: str = (
279
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
280
- f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIED.get_str_value()}" {FuzzyOWL2Keyword.MODIFIER.get_str_value()}="{self.modifiers[str(c)]}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c3}"/>\n',
281
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>",
280
+
281
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.CONCEPT.get_str_value())
282
+ concept_xml = FuzzyXML.build_concept_xml(
283
+ FuzzyOWL2Keyword.MODIFIED.get_str_value(),
284
+ {
285
+ FuzzyOWL2Keyword.MODIFIER.get_str_value(): str(
286
+ self.modifiers[str(c)]
287
+ ),
288
+ FuzzyOWL2Keyword.BASE.get_str_value(): str(c3),
289
+ },
282
290
  )
291
+ main_xml.append(concept_xml)
292
+ annotation: str = FuzzyXML.to_str(main_xml)
293
+ # annotation: str = (
294
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
295
+ # f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIED.get_str_value()}" {FuzzyOWL2Keyword.MODIFIER.get_str_value()}="{self.modifiers[str(c)]}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c3}"/>\n',
296
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>",
297
+ # )
283
298
  self.add_entity_annotation(annotation, c4)
284
299
  return c4
285
300
  elif c_type == ConceptType.SELF:
@@ -330,11 +345,22 @@ class FuzzydlToOwl2:
330
345
  c: WeightedConcept = typing.cast(WeightedConcept, c)
331
346
  c4: OWLClassExpression = self.get_new_atomic_class(str(c))
332
347
  c3: OWLClassExpression = self.get_base(c.c1)
333
- annotation: str = (
334
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
335
- f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.WEIGHTED.get_str_value()}" {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{c.weight}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c3}"/>\n',
336
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>",
348
+
349
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.CONCEPT.get_str_value())
350
+ concept_xml = FuzzyXML.build_concept_xml(
351
+ FuzzyOWL2Keyword.WEIGHTED.get_str_value(),
352
+ {
353
+ FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value(): str(c.weight),
354
+ FuzzyOWL2Keyword.BASE.get_str_value(): str(c3),
355
+ },
337
356
  )
357
+ main_xml.append(concept_xml)
358
+ annotation: str = FuzzyXML.to_str(main_xml)
359
+ # annotation: str = (
360
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
361
+ # f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.WEIGHTED.get_str_value()}" {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{c.weight}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c3}"/>\n',
362
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>",
363
+ # )
338
364
  self.add_entity_annotation(annotation, c3)
339
365
  return c4
340
366
  elif c_type in (
@@ -346,12 +372,14 @@ class FuzzydlToOwl2:
346
372
  return self.__get_class_weighted_min_max_sum(c)
347
373
  elif c_type in (
348
374
  ConceptType.OWA,
349
- ConceptType.QUANTIFIED_OWA,
375
+ # ConceptType.QUANTIFIED_OWA,
350
376
  ConceptType.CHOQUET_INTEGRAL,
351
377
  ConceptType.SUGENO_INTEGRAL,
352
378
  ConceptType.QUASI_SUGENO_INTEGRAL,
353
379
  ):
354
380
  return self.__get_class_weighted(c)
381
+ elif c_type == ConceptType.QUANTIFIED_OWA:
382
+ return self.__get_class_q_owa(c)
355
383
  cls = OWLClass(self.iri(str(c)))
356
384
  self.ontology.add_axiom(OWLDeclaration(cls))
357
385
  return cls
@@ -375,16 +403,33 @@ class FuzzydlToOwl2:
375
403
  curr_concept: HasWeightedConceptsInterface = type_cast[c.type](c)
376
404
  c3: OWLClassExpression = self.get_new_atomic_class(str(curr_concept))
377
405
 
378
- annotation: str = (
379
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
380
- f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{type_dict[c.type]}">\n ',
381
- )
406
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.CONCEPT.get_str_value())
407
+ concept_xml = FuzzyXML.build_concept_xml(type_dict[c.type])
382
408
  for i in range(len(curr_concept.concepts)):
383
409
  c5: OWLClassExpression = self.get_base(curr_concept.concepts[i])
384
- annotation += f'\t\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.WEIGHTED.get_str_value()}" {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{curr_concept.weights[i]}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c5}" />\n'
385
- annotation: str = (
386
- f"\t</{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} >\n</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} >"
387
- )
410
+ sub_concept_xml = FuzzyXML.build_concept_xml(
411
+ FuzzyOWL2Keyword.WEIGHTED.get_str_value(),
412
+ {
413
+ FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value(): str(
414
+ curr_concept.weights[i]
415
+ ),
416
+ FuzzyOWL2Keyword.BASE.get_str_value(): str(c5),
417
+ },
418
+ )
419
+ concept_xml.append(sub_concept_xml)
420
+ main_xml.append(concept_xml)
421
+ annotation: str = FuzzyXML.to_str(main_xml)
422
+
423
+ # annotation: str = (
424
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
425
+ # f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{type_dict[c.type]}">\n ',
426
+ # )
427
+ # for i in range(len(curr_concept.concepts)):
428
+ # c5: OWLClassExpression = self.get_base(curr_concept.concepts[i])
429
+ # annotation += f'\t\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.WEIGHTED.get_str_value()}" {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{curr_concept.weights[i]}" {FuzzyOWL2Keyword.BASE.get_str_value()}="{c5}" />\n'
430
+ # annotation: str = (
431
+ # f"\t</{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} >\n</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} >"
432
+ # )
388
433
  self.add_entity_annotation(annotation, c3)
389
434
  return c3
390
435
 
@@ -392,14 +437,14 @@ class FuzzydlToOwl2:
392
437
  """Get the class for OWA, Quantified OWA, Choquet Integral, Sugeno Integral, or Quasi Sugeno Integral"""
393
438
  type_dict: dict[ConceptType, str] = {
394
439
  ConceptType.OWA: FuzzyOWL2Keyword.OWA.get_str_value(),
395
- ConceptType.QUANTIFIED_OWA: FuzzyOWL2Keyword.Q_OWA.get_str_value(),
440
+ # ConceptType.QUANTIFIED_OWA: FuzzyOWL2Keyword.Q_OWA.get_str_value(),
396
441
  ConceptType.CHOQUET_INTEGRAL: FuzzyOWL2Keyword.CHOQUET.get_str_value(),
397
442
  ConceptType.SUGENO_INTEGRAL: FuzzyOWL2Keyword.SUGENO.get_str_value(),
398
443
  ConceptType.QUASI_SUGENO_INTEGRAL: FuzzyOWL2Keyword.QUASI_SUGENO.get_str_value(),
399
444
  }
400
445
  type_cast: dict[ConceptType, typing.Callable] = {
401
446
  ConceptType.OWA: partial(typing.cast, OwaConcept),
402
- ConceptType.QUANTIFIED_OWA: partial(typing.cast, QowaConcept),
447
+ # ConceptType.QUANTIFIED_OWA: partial(typing.cast, QowaConcept),
403
448
  ConceptType.CHOQUET_INTEGRAL: partial(typing.cast, ChoquetIntegral),
404
449
  ConceptType.SUGENO_INTEGRAL: partial(typing.cast, SugenoIntegral),
405
450
  ConceptType.QUASI_SUGENO_INTEGRAL: partial(typing.cast, QsugenoIntegral),
@@ -408,18 +453,67 @@ class FuzzydlToOwl2:
408
453
  return None
409
454
  curr_concept: HasWeightedConceptsInterface = type_cast[c.type](c)
410
455
  c4: OWLClassExpression = self.get_new_atomic_class(str(c))
411
- annotation: str = (
412
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
413
- f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{type_dict[c.type]}">\n',
414
- f"\t\t<{FuzzyOWL2Keyword.WEIGHTS.get_tag_name()}>\n",
456
+
457
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.CONCEPT.get_str_value())
458
+ concept_xml = FuzzyXML.build_concept_xml(type_dict[c.type])
459
+ weights_xml = FuzzyXML.build_weights_xml(curr_concept.weights)
460
+ names_xml = FuzzyXML.build_names_xml(
461
+ [self.get_base(ci) for ci in curr_concept.concepts]
462
+ )
463
+ concept_xml.append(weights_xml)
464
+ concept_xml.append(names_xml)
465
+ main_xml.append(concept_xml)
466
+ annotation: str = FuzzyXML.to_str(main_xml)
467
+
468
+ # annotation: str = (
469
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
470
+ # f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{type_dict[c.type]}">\n',
471
+ # f"\t\t<{FuzzyOWL2Keyword.WEIGHTS.get_tag_name()}>\n",
472
+ # )
473
+ # for d in curr_concept.weights:
474
+ # annotation += f"\t\t\t<{FuzzyOWL2Keyword.WEIGHT.get_tag_name()}>{d}</{FuzzyOWL2Keyword.WEIGHT.get_tag_name()}>\n"
475
+ # annotation += f"\t\t</{FuzzyOWL2Keyword.WEIGHTS.get_tag_name()}>\n\t\t<{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n"
476
+ # for ci in curr_concept.concepts:
477
+ # c5: OWLClassExpression = self.get_base(ci)
478
+ # annotation += f"\t\t\t<{FuzzyOWL2Keyword.NAME.get_tag_name()}>{c5}</{FuzzyOWL2Keyword.NAME.get_tag_name()}>\n"
479
+ # annotation += f"\t\t</{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n\t</{FuzzyOWL2Keyword.CONCEPT.get_tag_name()}>\n</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
480
+
481
+ self.add_entity_annotation(annotation, c4)
482
+ return c4
483
+
484
+ def __get_class_q_owa(self, c: Concept) -> OWLClassExpression:
485
+ """Get the class for OWA, Quantified OWA, Choquet Integral, Sugeno Integral, or Quasi Sugeno Integral"""
486
+ type_dict: dict[ConceptType, str] = {
487
+ ConceptType.QUANTIFIED_OWA: FuzzyOWL2Keyword.Q_OWA.get_str_value(),
488
+ }
489
+ type_cast: dict[ConceptType, typing.Callable] = {
490
+ ConceptType.QUANTIFIED_OWA: partial(typing.cast, QowaConcept),
491
+ }
492
+ if c.type not in type_dict:
493
+ return None
494
+ curr_concept: QowaConcept = type_cast[c.type](c)
495
+ c4: OWLClassExpression = self.get_new_atomic_class(str(c))
496
+
497
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.CONCEPT.get_str_value())
498
+ concept_xml = FuzzyXML.build_concept_xml(
499
+ type_dict[c.type],
500
+ {FuzzyOWL2Keyword.QUANTIFIER.get_str_value(): str(curr_concept.quantifier)},
501
+ )
502
+ names_xml = FuzzyXML.build_names_xml(
503
+ [self.get_base(ci) for ci in curr_concept.concepts]
415
504
  )
416
- for d in curr_concept.weights:
417
- annotation += f"\t\t\t<{FuzzyOWL2Keyword.WEIGHT.get_tag_name()}>{d}</{FuzzyOWL2Keyword.WEIGHT.get_tag_name()}>\n"
418
- annotation += f"\t\t</{FuzzyOWL2Keyword.WEIGHTS.get_tag_name()}>\n\t\t<{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n"
419
- for ci in curr_concept.concepts:
420
- c5: OWLClassExpression = self.get_base(ci)
421
- annotation += f"\t\t\t<{FuzzyOWL2Keyword.NAME.get_tag_name()}>{c5}</{FuzzyOWL2Keyword.NAME.get_tag_name()}>\n"
422
- annotation += f"\t\t</{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n\t</{FuzzyOWL2Keyword.CONCEPT.get_tag_name()}>\n</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
505
+ concept_xml.append(names_xml)
506
+ main_xml.append(concept_xml)
507
+ annotation: str = FuzzyXML.to_str(main_xml)
508
+ # annotation: str = (
509
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.CONCEPT.get_str_value()}">\n',
510
+ # f'\t<{FuzzyOWL2Keyword.CONCEPT.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{type_dict[c.type]}" {FuzzyOWL2Keyword.QUANTIFIER.get_str_value()}="{curr_concept.quantifier}">\n',
511
+ # f"\t\t<{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n",
512
+ # )
513
+ # for ci in curr_concept.concepts:
514
+ # c5: OWLClassExpression = self.get_base(ci)
515
+ # annotation += f"\t\t\t<{FuzzyOWL2Keyword.NAME.get_tag_name()}>{c5}</{FuzzyOWL2Keyword.NAME.get_tag_name()}>\n"
516
+ # annotation += f"\t\t</{FuzzyOWL2Keyword.CONCEPT_NAMES.get_tag_name()}>\n\t</{FuzzyOWL2Keyword.CONCEPT.get_tag_name()}>\n</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
423
517
  self.add_entity_annotation(annotation, c4)
424
518
  return c4
425
519
 
@@ -522,11 +616,16 @@ class FuzzydlToOwl2:
522
616
  elif isinstance(value, DegreeNumeric): # Degree object
523
617
  n = value.get_numerical_value()
524
618
 
525
- annotation_text: str = (
526
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.AXIOM.get_str_value()}">\n'
527
- f'\t<{FuzzyOWL2Keyword.DEGREE_DEF.get_tag_name()} {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{n}"/>\n'
528
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
529
- )
619
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.AXIOM.get_str_value())
620
+ degree_xml = FuzzyXML.build_degree_xml(n)
621
+ main_xml.append(degree_xml)
622
+ annotation_text: str = FuzzyXML.to_str(main_xml)
623
+
624
+ # annotation_text: str = (
625
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.AXIOM.get_str_value()}">\n'
626
+ # f'\t<{FuzzyOWL2Keyword.DEGREE_DEF.get_tag_name()} {FuzzyOWL2Keyword.DEGREE_VALUE.get_str_value()}="{n}"/>\n'
627
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
628
+ # )
530
629
  annotation: OWLAnnotation = self.to_owl_annotation(annotation_text)
531
630
  return set([annotation])
532
631
 
@@ -563,11 +662,17 @@ class FuzzydlToOwl2:
563
662
  logic = str(constants.KNOWLEDGE_BASE_SEMANTICS)
564
663
 
565
664
  if logic:
566
- annotation: str = (
567
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.ONTOLOGY.get_str_value()}">\n'
568
- f'\t<{FuzzyOWL2Keyword.FUZZY_LOGIC.get_tag_name()} {FuzzyOWL2Keyword.LOGIC.get_str_value()}="{logic}" />\n'
569
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
665
+ main_xml = FuzzyXML.build_main_xml(
666
+ FuzzyOWL2Keyword.ONTOLOGY.get_str_value()
570
667
  )
668
+ logic_xml = FuzzyXML.build_logic_xml(logic)
669
+ main_xml.append(logic_xml)
670
+ annotation: str = FuzzyXML.to_str(main_xml)
671
+ # annotation: str = (
672
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.ONTOLOGY.get_str_value()}">\n'
673
+ # f'\t<{FuzzyOWL2Keyword.FUZZY_LOGIC.get_tag_name()} {FuzzyOWL2Keyword.LOGIC.get_str_value()}="{logic}" />\n'
674
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
675
+ # )
571
676
  self.add_ontology_annotation(annotation)
572
677
 
573
678
  # Process concrete concepts
@@ -786,7 +891,8 @@ class FuzzydlToOwl2:
786
891
  current_datatype: OWLDatatype = OWLDatatype(self.iri(c))
787
892
  self.datatypes[str(c)] = current_datatype
788
893
 
789
- specific: str = self._get_concrete_concept_specifics(c)
894
+ # specific: str = self._get_concrete_concept_specifics(c)
895
+ specific: tuple[str, dict[str, str]] = self._get_concrete_concept_specifics(c)
790
896
 
791
897
  int_datatype: OWLDatatype = OWLDatatype(XSD.integer)
792
898
  greater_than: OWLDatatypeRestriction = OWLDatatypeRestriction(
@@ -816,45 +922,102 @@ class FuzzydlToOwl2:
816
922
  self.ontology.add_axiom(OWLDeclaration(current_datatype))
817
923
  self.ontology.add_axiom(definition)
818
924
 
819
- annotation: str = (
820
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.DATATYPE.get_str_value()}">\n'
821
- f'\t<{FuzzyOWL2Keyword.DATATYPE.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{specific}"/>\n'
822
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
823
- )
925
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.DATATYPE.get_str_value())
926
+ datatype_xml = FuzzyXML.build_datatype_xml(specific[0], specific[1])
927
+ main_xml.append(datatype_xml)
928
+ annotation: str = FuzzyXML.to_str(main_xml)
929
+
930
+ # annotation: str = (
931
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.DATATYPE.get_str_value()}">\n'
932
+ # f'\t<{FuzzyOWL2Keyword.DATATYPE.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{specific}"/>\n'
933
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
934
+ # )
824
935
  self.add_entity_annotation(annotation, current_datatype)
825
936
 
826
- def _get_concrete_concept_specifics(self, c: FuzzyConcreteConcept) -> str:
937
+ def _get_concrete_concept_specifics(
938
+ self, c: FuzzyConcreteConcept
939
+ ) -> tuple[str, dict[str, str]]:
827
940
  """Get concrete concept specific parameters"""
828
941
  if isinstance(c, CrispConcreteConcept):
829
- return f'{FuzzyOWL2Keyword.CRISP.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
942
+ return FuzzyOWL2Keyword.CRISP.get_str_value(), {
943
+ FuzzyOWL2Keyword.A.get_str_value(): str(c.a),
944
+ FuzzyOWL2Keyword.B.get_str_value(): str(c.b),
945
+ }
830
946
  elif isinstance(c, LeftConcreteConcept):
831
- return f'{FuzzyOWL2Keyword.LEFT_SHOULDER.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
947
+ return FuzzyOWL2Keyword.LEFT_SHOULDER.get_str_value(), {
948
+ FuzzyOWL2Keyword.A.get_str_value(): str(c.a),
949
+ FuzzyOWL2Keyword.B.get_str_value(): str(c.b),
950
+ }
832
951
  elif isinstance(c, RightConcreteConcept):
833
- return f'{FuzzyOWL2Keyword.RIGHT_SHOULDER.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
952
+ return FuzzyOWL2Keyword.RIGHT_SHOULDER.get_str_value(), {
953
+ FuzzyOWL2Keyword.A.get_str_value(): str(c.a),
954
+ FuzzyOWL2Keyword.B.get_str_value(): str(c.b),
955
+ }
834
956
  elif isinstance(c, TriangularConcreteConcept):
835
- return f'{FuzzyOWL2Keyword.TRIANGULAR.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{c.c}'
957
+ return FuzzyOWL2Keyword.TRIANGULAR.get_str_value(), {
958
+ FuzzyOWL2Keyword.A.get_str_value(): str(c.a),
959
+ FuzzyOWL2Keyword.B.get_str_value(): str(c.b),
960
+ FuzzyOWL2Keyword.C.get_str_value(): str(c.c),
961
+ }
836
962
  elif isinstance(c, TrapezoidalConcreteConcept):
837
- return f'{FuzzyOWL2Keyword.TRAPEZOIDAL.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{c.c}" {FuzzyOWL2Keyword.D.get_str_value()}="{c.d}'
838
- return ""
963
+ return FuzzyOWL2Keyword.TRAPEZOIDAL.get_str_value(), {
964
+ FuzzyOWL2Keyword.A.get_str_value(): str(c.a),
965
+ FuzzyOWL2Keyword.B.get_str_value(): str(c.b),
966
+ FuzzyOWL2Keyword.C.get_str_value(): str(c.c),
967
+ FuzzyOWL2Keyword.D.get_str_value(): str(c.d),
968
+ }
969
+ return "", dict()
970
+
971
+ # def _get_concrete_concept_specifics(self, c: FuzzyConcreteConcept) -> str:
972
+ # """Get concrete concept specific parameters"""
973
+ # if isinstance(c, CrispConcreteConcept):
974
+ # return f'{FuzzyOWL2Keyword.CRISP.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
975
+ # elif isinstance(c, LeftConcreteConcept):
976
+ # return f'{FuzzyOWL2Keyword.LEFT_SHOULDER.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
977
+ # elif isinstance(c, RightConcreteConcept):
978
+ # return f'{FuzzyOWL2Keyword.RIGHT_SHOULDER.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}'
979
+ # elif isinstance(c, TriangularConcreteConcept):
980
+ # return f'{FuzzyOWL2Keyword.TRIANGULAR.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{c.c}'
981
+ # elif isinstance(c, TrapezoidalConcreteConcept):
982
+ # return f'{FuzzyOWL2Keyword.TRAPEZOIDAL.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{c.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{c.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{c.c}" {FuzzyOWL2Keyword.D.get_str_value()}="{c.d}'
983
+ # return ""
839
984
 
840
985
  def _process_modifier(self, mod: Modifier) -> None:
841
986
  """Process a modifier"""
842
987
  Util.debug(f"Process modifier -> {mod}")
988
+
989
+ main_xml = FuzzyXML.build_main_xml(FuzzyOWL2Keyword.MODIFIER.get_str_value())
990
+
843
991
  if isinstance(mod, LinearModifier):
844
- annotation: str = (
845
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIER.get_str_value()}">\n'
846
- f'\t<{FuzzyOWL2Keyword.MODIFIER.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.LINEAR.get_str_value()}" {FuzzyOWL2Keyword.C.get_str_value()}="{mod.c}"/>\n'
847
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
992
+ modifier_xml = FuzzyXML.build_modifier_xml(
993
+ FuzzyOWL2Keyword.LINEAR.get_str_value(),
994
+ {FuzzyOWL2Keyword.C.get_str_value(): str(mod.c)},
848
995
  )
996
+ # annotation: str = (
997
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIER.get_str_value()}">\n'
998
+ # f'\t<{FuzzyOWL2Keyword.MODIFIER.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.LINEAR.get_str_value()}" {FuzzyOWL2Keyword.C.get_str_value()}="{mod.c}"/>\n'
999
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
1000
+ # )
849
1001
  elif isinstance(mod, TriangularModifier):
850
- annotation: str = (
851
- f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIER.get_str_value()}">\n'
852
- f'\t<{FuzzyOWL2Keyword.MODIFIER.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.TRIANGULAR.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{mod.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{mod.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{mod.c}"/>\n'
853
- f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
1002
+ modifier_xml = FuzzyXML.build_modifier_xml(
1003
+ FuzzyOWL2Keyword.TRIANGULAR.get_str_value(),
1004
+ {
1005
+ FuzzyOWL2Keyword.A.get_str_value(): str(mod.a),
1006
+ FuzzyOWL2Keyword.B.get_str_value(): str(mod.b),
1007
+ FuzzyOWL2Keyword.C.get_str_value(): str(mod.c),
1008
+ },
854
1009
  )
1010
+ # annotation: str = (
1011
+ # f'<{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()} {FuzzyOWL2Keyword.FUZZY_TYPE.get_str_value()}="{FuzzyOWL2Keyword.MODIFIER.get_str_value()}">\n'
1012
+ # f'\t<{FuzzyOWL2Keyword.MODIFIER.get_tag_name()} {FuzzyOWL2Keyword.TYPE.get_str_value()}="{FuzzyOWL2Keyword.TRIANGULAR.get_str_value()}" {FuzzyOWL2Keyword.A.get_str_value()}="{mod.a}" {FuzzyOWL2Keyword.B.get_str_value()}="{mod.b}" {FuzzyOWL2Keyword.C.get_str_value()}="{mod.c}"/>\n'
1013
+ # f"</{FuzzyOWL2Keyword.FUZZY_OWL_2.get_str_value()}>"
1014
+ # )
855
1015
  else:
856
1016
  raise ValueError(f"Unknown modifier type: {type(mod)}")
857
1017
 
1018
+ main_xml.append(modifier_xml)
1019
+ annotation: str = FuzzyXML.to_str(main_xml)
1020
+
858
1021
  current_datatype: OWLDatatype = OWLDatatype(self.iri(mod))
859
1022
  self.modifiers[str(mod)] = current_datatype
860
1023
  self.ontology.add_axiom(OWLDeclaration(current_datatype))
@@ -1,3 +1,4 @@
1
1
  from .config_reader import ConfigReader
2
2
  from .util import Util
3
3
  from .utils import *
4
+ from .constants import *
@@ -35,7 +35,7 @@ from fuzzy_dl_owl2.fuzzyowl2.owl_types.weighted_sum_concept import WeightedSumCo
35
35
  from fuzzy_dl_owl2.fuzzyowl2.owl_types.weighted_sum_zero_concept import (
36
36
  WeightedSumZeroConcept,
37
37
  )
38
- from fuzzy_dl_owl2.fuzzyowl2.parser.owl2_parser import FuzzyOwl2Parser
38
+ from fuzzy_dl_owl2.fuzzyowl2.parser.owl2_xml_parser import FuzzyOwl2XMLParser
39
39
  from pyowl2.abstracts.annotation_value import OWLAnnotationValue
40
40
  from pyowl2.abstracts.axiom import OWLAxiom
41
41
  from pyowl2.abstracts.class_expression import OWLClassExpression
@@ -166,7 +166,7 @@ class FuzzyOwl2(object):
166
166
  self.processed_axioms: set[str] = set()
167
167
  self.ontologies: set[OWLOntology] = set()
168
168
 
169
- FuzzyOwl2Parser.load_config()
169
+ FuzzyOwl2XMLParser.load_config()
170
170
 
171
171
  self.ontology_path = input_file
172
172
  self.ontology_iri = IRI(Namespace(base_iri))
@@ -200,9 +200,13 @@ class FuzzyOwl2(object):
200
200
  if annotation.annotation_property != self.fuzzy_label:
201
201
  continue
202
202
  value: OWLAnnotationValue = annotation.annotation_value
203
- annotation_str: str = str(value).replace('"', "")
203
+ annotation_str: str = str(value)
204
204
  Util.debug(f"Annotation for ontology -> {annotation_str}")
205
- self.write_fuzzy_logic(FuzzyOwl2Parser.parse_string(annotation_str)[0])
205
+ logic: typing.Optional[str] = FuzzyOwl2XMLParser.parse_string(
206
+ annotation_str
207
+ )
208
+ Util.debug(f"Parsed annotation -> {logic}")
209
+ self.write_fuzzy_logic(logic)
206
210
 
207
211
  def __get_facets(self, name: str) -> list[float]:
208
212
  facets: list[float] = [float("-inf"), float("inf")]
@@ -282,13 +286,14 @@ class FuzzyOwl2(object):
282
286
  f"Error: There are {len(annotations)} datatype annotations for {datatype}"
283
287
  )
284
288
  annotation: OWLAnnotation = list(annotations)[0].annotation_value
285
- annotation_str: str = str(annotation).replace('"', "")
289
+ annotation_str: str = str(annotation)
286
290
  Util.debug(f"Annotation for {datatype} -> {annotation_str}")
287
291
  datatype_name: str = self.get_short_name(datatype)
288
292
  facets: list[OWLFacet] = self.__get_facets(datatype_name)
289
293
  c: typing.Union[ConceptDefinition, FuzzyModifier] = (
290
- FuzzyOwl2Parser.parse_string(annotation_str)[0]
294
+ FuzzyOwl2XMLParser.parse_string(annotation_str)
291
295
  )
296
+ Util.debug(f"Parsed annotation -> {c}")
292
297
  if isinstance(c, FuzzyDatatype):
293
298
  c.set_min_value(facets[0])
294
299
  c.set_max_value(facets[1])
@@ -330,12 +335,12 @@ class FuzzyOwl2(object):
330
335
  f"Error: There are {len(annotations)} class annotations for {cls}"
331
336
  )
332
337
  annotation: OWLAnnotation = list(annotations)[0].annotation_value
333
- annotation_str: str = str(annotation).replace('"', "")
338
+ annotation_str: str = str(annotation)
334
339
  Util.debug(f"Annotation for concept {cls} -> {annotation_str}")
335
- concept: ConceptDefinition = FuzzyOwl2Parser.parse_string(
340
+ concept: ConceptDefinition = FuzzyOwl2XMLParser.parse_string(
336
341
  annotation_str
337
- )[0]
338
- Util.debug(f"Concept -> {concept}")
342
+ )
343
+ Util.debug(f"Parsed annotation -> {concept}")
339
344
  name: str = self.get_short_name(cls)
340
345
  if isinstance(concept, ModifiedConcept):
341
346
  mod_name: str = concept.get_fuzzy_modifier()
@@ -401,11 +406,12 @@ class FuzzyOwl2(object):
401
406
  f"Error: There are {len(annotations)} property annotations for {property}"
402
407
  )
403
408
  annotation: OWLAnnotation = list(annotations)[0].annotation_value
404
- annotation_str: str = str(annotation).replace('"', "")
409
+ annotation_str: str = str(annotation)
405
410
  Util.debug(f"Annotation for property {property} -> {annotation_str}")
406
411
  prop: typing.Optional[ModifiedProperty] = (
407
- FuzzyOwl2Parser.parse_string(annotation_str)
408
- )[0]
412
+ FuzzyOwl2XMLParser.parse_string(annotation_str)
413
+ )
414
+ Util.debug(f"Parsed annotation -> {prop}")
409
415
  if prop is None:
410
416
  return
411
417
  if not isinstance(prop, ModifiedProperty):
@@ -428,10 +434,10 @@ class FuzzyOwl2(object):
428
434
  f"Error: There are {len(annotations)} annotations for axiom {axiom}."
429
435
  )
430
436
  annotation: OWLAnnotation = list(annotations)[0].annotation_value
431
- annotation_str: str = str(annotation).replace('"', "")
437
+ annotation_str: str = str(annotation)
432
438
  Util.debug(f"Annotation for degree -> {annotation_str}")
433
- deg: float = FuzzyOwl2Parser.parse_string(annotation_str)[0]
434
- Util.debug(f"Degree for axiom -> {deg}")
439
+ deg: float = FuzzyOwl2XMLParser.parse_string(annotation_str)
440
+ Util.debug(f"Parsed annotation -> {deg}")
435
441
  if not isinstance(deg, constants.NUMBER):
436
442
  raise ValueError
437
443
  return deg
@@ -48,7 +48,6 @@ from pyowl2.expressions.data_property import OWLDataProperty
48
48
  from pyowl2.expressions.object_property import OWLObjectProperty
49
49
  from pyowl2.individual.anonymous_individual import OWLAnonymousIndividual
50
50
  from pyowl2.literal.literal import OWLLiteral
51
- from pyowl2.utils import utils
52
51
 
53
52
 
54
53
  # @utils.timer_decorator
@@ -608,7 +607,7 @@ class FuzzyOwl2ToFuzzyDL(FuzzyOwl2):
608
607
  d: float,
609
608
  ) -> None:
610
609
  self.__write(
611
- f"(implies-role {self.get_object_property_name(subproperty)} {self.get_object_property_name(superproperty)} {d})"
610
+ f"(implies-role {self.get_data_property_name(subproperty)} {self.get_data_property_name(superproperty)} {d})"
612
611
  )
613
612
 
614
613
  def write_sub_property_chain_of_axiom(
@@ -635,9 +634,9 @@ class FuzzyOwl2ToFuzzyDL(FuzzyOwl2):
635
634
  self, class_set: set[OWLDataPropertyExpression]
636
635
  ) -> None:
637
636
  first: OWLDataPropertyExpression = next(class_set)
638
- first_name: str = self.get_object_property_name(first)
637
+ first_name: str = self.get_data_property_name(first)
639
638
  for property in class_set - set([first]):
640
- property_name: str = self.get_object_property_name(property)
639
+ property_name: str = self.get_data_property_name(property)
641
640
  self.__write(f"(implies-role {first_name} {property_name})")
642
641
  self.__write(f"(implies-role {property_name} {first_name})")
643
642
 
@@ -4,7 +4,7 @@ from fuzzy_dl_owl2.fuzzyowl2.owl_types.fuzzy_property import FuzzyProperty
4
4
  class ModifiedProperty(FuzzyProperty):
5
5
 
6
6
  def __init__(self, mod: str, prop: str) -> None:
7
- super.__init__()
7
+ super().__init__()
8
8
  self._mod: str = mod
9
9
  self._prop: str = prop
10
10
 
@@ -13,3 +13,9 @@ class ModifiedProperty(FuzzyProperty):
13
13
 
14
14
  def get_property(self) -> str:
15
15
  return self._prop
16
+
17
+ def __repr__(self) -> str:
18
+ return str(self)
19
+
20
+ def __str__(self) -> str:
21
+ return f"({self.get_fuzzy_modifier()}, {self.get_property()})"
@@ -0,0 +1,2 @@
1
+ # from .owl2_parser import *
2
+ from .owl2_xml_parser import *