fuzzy-dl-owl2 1.0.2__py3-none-any.whl → 1.0.4__py3-none-any.whl

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 (25) hide show
  1. fuzzy_dl_owl2/fuzzydl/concept/approximation_concept.py +35 -10
  2. fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/triangular_fuzzy_number.py +2 -1
  3. fuzzy_dl_owl2/fuzzydl/concept/concrete/trapezoidal_concrete_concept.py +1 -0
  4. fuzzy_dl_owl2/fuzzydl/concept/implies_concept.py +14 -11
  5. fuzzy_dl_owl2/fuzzydl/concept/operator_concept.py +10 -6
  6. fuzzy_dl_owl2/fuzzydl/concept/value_concept.py +1 -1
  7. fuzzy_dl_owl2/fuzzydl/concrete_feature.py +7 -1
  8. fuzzy_dl_owl2/fuzzydl/feature_function.py +16 -2
  9. fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py +1 -1
  10. fuzzy_dl_owl2/fuzzydl/knowledge_base.py +494 -358
  11. fuzzy_dl_owl2/fuzzydl/milp/expression.py +4 -2
  12. fuzzy_dl_owl2/fuzzydl/milp/milp_helper.py +3 -2
  13. fuzzy_dl_owl2/fuzzydl/milp/variable.py +3 -0
  14. fuzzy_dl_owl2/fuzzydl/modifier/triangular_modifier.py +1 -1
  15. fuzzy_dl_owl2/fuzzydl/parser/dl_parser.py +1465 -1210
  16. fuzzy_dl_owl2/fuzzydl/query/defuzzify/mom_defuzzify_query.py +14 -7
  17. fuzzy_dl_owl2/fuzzydl/query/min/min_subsumes_query.py +2 -2
  18. fuzzy_dl_owl2/fuzzydl/util/config_reader.py +0 -6
  19. fuzzy_dl_owl2/fuzzydl/util/constants.py +10 -9
  20. fuzzy_dl_owl2/fuzzydl/util/utils.py +48 -7
  21. fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py +4 -2
  22. {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.4.dist-info}/METADATA +10 -8
  23. {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.4.dist-info}/RECORD +25 -25
  24. {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.4.dist-info}/LICENSE +0 -0
  25. {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.4.dist-info}/WHEEL +0 -0
@@ -41,6 +41,7 @@ class MomDefuzzifyQuery(DefuzzifyQuery):
41
41
  if not s.is_consistent_kb():
42
42
  return s
43
43
  d: float = s.get_solution()
44
+ # LOM
44
45
  cloned: KnowledgeBase = kb.clone()
45
46
  ind: Individual = cloned.individuals.get(str(self.a))
46
47
  cloned.set_dynamic_blocking()
@@ -62,24 +63,30 @@ class MomDefuzzifyQuery(DefuzzifyQuery):
62
63
  return None
63
64
 
64
65
  try:
65
- self.ob_expr: Expression = Expression(Term(-1.0, q))
66
- sol1: Solution = cloned.optimize(self.obj_expr)
66
+ obj_expr: Expression = Expression(Term(-1.0, q))
67
+ sol1: Solution = cloned.optimize(obj_expr)
67
68
  if sol1.get_solution() < 0.0:
68
- sol1 = Solution(-sol1.get_solution())
69
- self.obj_expr: Expression = Expression(Term(1.0, q))
70
- sol2: Solution = cloned.optimize(self.obj_expr)
69
+ sol1 = Solution(sol1.get_solution())
70
+
71
+ # SOM
72
+ obj_expr: Expression = Expression(Term(1.0, q))
73
+ sol2: Solution = cloned.optimize(obj_expr)
71
74
  if sol2.get_solution() < 0.0:
72
- sol2 = Solution(-sol2.get_solution())
75
+ sol2 = Solution(sol2.get_solution())
76
+
77
+ # MOM
73
78
  if sol1.is_consistent_kb() and sol2.is_consistent_kb():
74
79
  value = (sol1.get_solution() + sol2.get_solution()) / 2.0
75
80
  kb.milp.print_instance_of_labels(self.f_name, str(self.a), value)
76
81
  return Solution(value)
82
+
83
+ # Returns an inconsistent KB solution
77
84
  return sol1
78
85
  except FuzzyOntologyException as e:
79
86
  traceback.print_exc()
80
87
  except InconsistentOntologyException as e:
81
88
  traceback.print_exc()
82
- return None
89
+ return Solution(False)
83
90
 
84
91
  def get_obj_expression(self, variable: Variable) -> Expression:
85
92
  return Expression(Term(-1.0, variable))
@@ -30,9 +30,9 @@ class MinSubsumesQuery(SubsumptionQuery):
30
30
  conc: Concept = OperatorConcept.lukasiewicz_or(-self.c2, self.c1)
31
31
  elif self.type == LogicOperatorType.GOEDEL:
32
32
  conc: Concept = ImpliesConcept.goedel_implies(self.c2, self.c1)
33
- elif self.type == LogicOperatorType.KLEENE_DIENES:
33
+ elif self.type == LogicOperatorType.ZADEH:
34
34
  conc: Concept = ImpliesConcept.zadeh_implies(self.c2, self.c1)
35
- else: # LogicOperatorType.ZADEH
35
+ else: # LogicOperatorType.KLEENE_DIENES
36
36
  conc: Concept = OperatorConcept.goedel_or(-self.c2, self.c1)
37
37
 
38
38
  q: Variable = kb.milp.get_new_variable(VariableType.SEMI_CONTINUOUS)
@@ -14,8 +14,6 @@ class ConfigReader:
14
14
  NUMBER_DIGITS: int = 2
15
15
  OPTIMIZATIONS: int = 1
16
16
  RULE_ACYCLIC_TBOXES: bool = True
17
- SHOW_VERSION: bool = False
18
- AUTHOR: bool = False
19
17
 
20
18
  @staticmethod
21
19
  def load_parameters(config_file: str, args: list[str]) -> None:
@@ -42,14 +40,10 @@ class ConfigReader:
42
40
  ConfigReader.NUMBER_DIGITS = int(
43
41
  round(abs(math.log10(ConfigReader.EPSILON) - 1.0))
44
42
  )
45
- ConfigReader.SHOW_VERSION = config.getboolean("DEFAULT", "showVersion")
46
43
 
47
44
  if ConfigReader.DEBUG_PRINT:
48
45
  print(f"Debugging mode = {ConfigReader.DEBUG_PRINT}")
49
46
 
50
- if config.getboolean("DEFAULT", "author"):
51
- print("Author of python-fuzzyDL: Giuseppe Filippone")
52
-
53
47
  except FileNotFoundError:
54
48
  print(f"Error: File {config_file} not found.")
55
49
  except Exception as e:
@@ -1,4 +1,3 @@
1
- import collections.abc
2
1
  import enum
3
2
  import os
4
3
  import re
@@ -362,12 +361,12 @@ class FuzzyDLKeyword(enum.Enum):
362
361
  LUKASIEWICZ = pp.CaselessKeyword("lukasiewicz")
363
362
  ZADEH = pp.CaselessKeyword("zadeh")
364
363
  CLASSICAL = pp.CaselessKeyword("classical")
365
- SUM = pp.CaselessKeyword("+")
366
- SUB = pp.CaselessKeyword("-")
367
- MUL = pp.CaselessKeyword("*")
368
- LESS_THAN_OR_EQUAL_TO = pp.CaselessKeyword("<=")
369
- GREATER_THAN_OR_EQUAL_TO = pp.CaselessKeyword(">=")
370
- EQUALS = pp.CaselessKeyword("=")
364
+ SUM = pp.Literal("+")
365
+ SUB = pp.Literal("-")
366
+ MUL = pp.Literal("*")
367
+ LESS_THAN_OR_EQUAL_TO = pp.Literal("<=")
368
+ GREATER_THAN_OR_EQUAL_TO = pp.Literal(">=")
369
+ EQUALS = pp.Literal("=")
371
370
  STRING = pp.CaselessKeyword("*string*")
372
371
  BOOLEAN = pp.CaselessKeyword("*boolean*")
373
372
  INTEGER = pp.CaselessKeyword("*integer*")
@@ -376,7 +375,7 @@ class FuzzyDLKeyword(enum.Enum):
376
375
  def get_name(self) -> str:
377
376
  return re.sub(r"[\"\']+", "", self.value.name.lower())
378
377
 
379
- def get_value(self) -> pp.CaselessKeyword:
378
+ def get_value(self) -> typing.Union[pp.CaselessKeyword, pp.Literal]:
380
379
  return self.value
381
380
 
382
381
  def __eq__(self, value: object) -> bool:
@@ -384,6 +383,8 @@ class FuzzyDLKeyword(enum.Enum):
384
383
  return self.get_name() == value.lower()
385
384
  elif isinstance(value, pp.CaselessKeyword):
386
385
  return self.get_name() == value.name.lower()
386
+ elif isinstance(value, pp.Literal):
387
+ return self.get_name() == value.name.lower()
387
388
  elif isinstance(value, FuzzyDLKeyword):
388
389
  return self.get_name() == value.get_name()
389
390
  raise NotImplementedError
@@ -419,6 +420,6 @@ class FuzzyLogic(enum.StrEnum):
419
420
  return self.value
420
421
 
421
422
 
422
- KNOWLEDGE_BASE_SEMANTICS = FuzzyLogic.CLASSICAL
423
+ KNOWLEDGE_BASE_SEMANTICS: FuzzyLogic = FuzzyLogic.CLASSICAL
423
424
  MAXVAL: float = 2.147483647e12
424
425
  MAXVAL2: float = MAXVAL * 2
@@ -1,18 +1,59 @@
1
- import ast
2
- import datetime
3
1
  import functools
4
- import importlib
5
- import importlib.util
6
2
  import inspect
7
- import os
8
3
  import sys
9
- import time
10
4
  import types
11
5
  import typing
12
6
 
13
7
  from fuzzy_dl_owl2.fuzzydl.util.config_reader import ConfigReader
14
8
  from fuzzy_dl_owl2.fuzzydl.util.util import Util
15
9
 
10
+ FULL_CLASS_DEBUG_PRINT: bool = False
11
+
12
+
13
+ def debugging_wrapper(cls, func):
14
+ """
15
+ Debugging wrapper that prints before and after the method call.
16
+ """
17
+
18
+ is_static: bool = False
19
+ try:
20
+ is_static = isinstance(inspect.getattr_static(cls, func.__name__), staticmethod)
21
+ except:
22
+ pass
23
+
24
+ @functools.wraps(func)
25
+ def wrapped(*args, **kwargs):
26
+ Util.debug(
27
+ f"\t\t\t>>>>Entering {cls.__name__}:{func.__name__} with args={args if is_static else args[1:]}, kwargs={kwargs}"
28
+ )
29
+ result = func(*args, **kwargs)
30
+ Util.debug(
31
+ f"\t\t\t<<<<Leaving {cls.__name__}:{func.__name__} returned {result}"
32
+ )
33
+ return result
34
+
35
+ return wrapped
36
+
37
+
38
+ def class_debugging():
39
+ """
40
+ Decorator to wrap all methods of a class using debugging_wrapper.
41
+ """
42
+
43
+ def class_decorator(cls):
44
+ if FULL_CLASS_DEBUG_PRINT:
45
+ for attr_name in dir(cls):
46
+ attr = getattr(cls, attr_name)
47
+ # Only wrap instance methods
48
+ if isinstance(attr, types.FunctionType):
49
+ # Wrap the method
50
+ wrapped_method = debugging_wrapper(cls, attr)
51
+ setattr(cls, attr_name, wrapped_method)
52
+ return cls
53
+
54
+ return class_decorator
55
+
56
+
16
57
  def recursion_unlimited(func: typing.Callable):
17
58
  module: types.ModuleType = inspect.getmodule(func)
18
59
 
@@ -35,4 +76,4 @@ def recursion_unlimited(func: typing.Callable):
35
76
  sys.setrecursionlimit(orig_n)
36
77
  return result
37
78
 
38
- return wrapper
79
+ return wrapper
@@ -191,9 +191,11 @@ class FuzzyOwl2(object):
191
191
 
192
192
  def process_ontology_annotations(self) -> None:
193
193
  for ontology in self.ontologies:
194
- annotations: set[OWLAnnotation] = (
194
+ annotations: typing.Optional[set[OWLAnnotation]] = (
195
195
  ontology.getter.get_owl_ontology_annotations()
196
196
  )
197
+ if annotations is None:
198
+ continue
197
199
  for annotation in annotations:
198
200
  if annotation.annotation_property != self.fuzzy_label:
199
201
  continue
@@ -430,7 +432,7 @@ class FuzzyOwl2(object):
430
432
  Util.debug(f"Annotation for degree -> {annotation_str}")
431
433
  deg: float = FuzzyOwl2Parser.parse_string(annotation_str)[0]
432
434
  Util.debug(f"Degree for axiom -> {deg}")
433
- if not isinstance(deg, float):
435
+ if not isinstance(deg, constants.NUMBER):
434
436
  raise ValueError
435
437
  return deg
436
438
 
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fuzzy-dl-owl2
3
- Version: 1.0.2
4
- Summary:
3
+ Version: 1.0.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
7
7
  Author-email: filipponegiuseppe94@gmail.com
@@ -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.0,<2.0.0)
17
+ Requires-Dist: pyowl2 (>=1.0.1,<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)
@@ -66,7 +66,7 @@ The directory `dl-examples` contains a few examples of Knowledge Bases written u
66
66
 
67
67
  Since version 1.0.1 uses `Gurobi Optimizer` (see [gurobipy](https://support.gurobi.com/hc/en-us/articles/360044290292-How-do-I-install-Gurobi-for-Python)= for the Fuzzy DL reasoning, please create a GUROBI license to use this library.
68
68
 
69
- For the configuration, create a `CONFIG.ini` file in the same directory used for the execution of the library.
69
+ For the configuration, create a `CONFIG.ini` file in the same directory used for the execution of the library.
70
70
  Example of your execution directory:
71
71
  ```text
72
72
  your_directory
@@ -81,8 +81,6 @@ debugPrint = False
81
81
  relaxMilp = False
82
82
  epsilon = 0.001
83
83
  maxIndividuals = -1
84
- showVersion = False
85
- author = False
86
84
  ```
87
85
 
88
86
  | Configuration Variable | Description |
@@ -91,8 +89,6 @@ author = False
91
89
  | relaxMilp | Enable/disable MILP constraint relaxation. Important: The solution may be wrong by enabling this flag |
92
90
  | epsilon | Define the precision of the solution. For instance, epsilon = 0.001 means that the solution will be calculated with an accuracy to the third decimal place |
93
91
  | maxIndividuals | Define the maximal number of individuals to handle. The value -1 indicate that there is no maximum |
94
- | showVersion | Enable/disable the version print of the library |
95
- | author | Enable/disable the author print of the library |
96
92
 
97
93
 
98
94
 
@@ -329,6 +325,12 @@ fuzzy_dl_owl2
329
325
  └── util
330
326
  └── constants.py
331
327
  ```
328
+
329
+
330
+ # Test
331
+
332
+ The directory `test` contains the `unittest` files. In particular, the file `test_suite.py` contains all the test suite.
333
+ The directory `examples/TestSuite` contains all the knowledge bases used for the tests.
332
334
 
333
335
 
334
336
 
@@ -5,7 +5,7 @@ fuzzy_dl_owl2/fuzzydl/assertion/assertion.py,sha256=yk_yjbl6hnpJQDmjEK9EngoHaQah
5
5
  fuzzy_dl_owl2/fuzzydl/assertion/atomic_assertion.py,sha256=HfXKJwvEuHPvUVgPo-FlFo7JPPF7IOxg-3EQ2SIUuUs,506
6
6
  fuzzy_dl_owl2/fuzzydl/concept/__init__.py,sha256=ydLPXNhHQD0fvwXiCN9tJL67DB04PJFqeDRZD3I1Lgs,557
7
7
  fuzzy_dl_owl2/fuzzydl/concept/all_some_concept.py,sha256=dWnzEJNpChFuTowDLQ-_KBzgnMDsWGDxBgSlVcseDqE,2917
8
- fuzzy_dl_owl2/fuzzydl/concept/approximation_concept.py,sha256=bviAGedhVowsD81oHDm-Fszry3AlpvL9ozXP_aySOiw,5769
8
+ fuzzy_dl_owl2/fuzzydl/concept/approximation_concept.py,sha256=bxDO7rRNrRwoyv21Y6zs-7eytlD3LuZgrjedMP-ED90,6959
9
9
  fuzzy_dl_owl2/fuzzydl/concept/atomic_concept.py,sha256=vBOMkv8BuWa6EfRqQlYNZNfBCRM87omMdx0qcZsLTCQ,2648
10
10
  fuzzy_dl_owl2/fuzzydl/concept/choquet_integral.py,sha256=_3LJbQe2M1JEoscdiIPbEAixTwdd9JwEAWCmPtDNKy4,2268
11
11
  fuzzy_dl_owl2/fuzzydl/concept/concept.py,sha256=kqXDQ9JL5pl2im968Q0oK_FejJwuJlxC0GkDVkz1L3E,6318
@@ -13,16 +13,16 @@ fuzzy_dl_owl2/fuzzydl/concept/concrete/__init__.py,sha256=YFVyrRW4GuPReSC3aF5sAv
13
13
  fuzzy_dl_owl2/fuzzydl/concept/concrete/crisp_concrete_concept.py,sha256=QcJryH21vuontpw9TU_xDj9fYTk98U5PQehEuzhksKk,1607
14
14
  fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_concrete_concept.py,sha256=0930RSmc_PhPj8ZoPqixuf8lYy20L-Uu2QEnZROQ_4c,1596
15
15
  fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/__init__.py,sha256=n3F1MfKTr3C-ST1yiRDKdw_b6adqWNQqp26JlPL76KI,58
16
- fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/triangular_fuzzy_number.py,sha256=e0qNd77OkPESAc91KFIG5KauL3lR-IKY606AHzvCmg8,4164
16
+ fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/triangular_fuzzy_number.py,sha256=EFEGZKw85LldrddAKJuyU4Dcc2g3iblVp96d9cjT6BI,4212
17
17
  fuzzy_dl_owl2/fuzzydl/concept/concrete/left_concrete_concept.py,sha256=YDwk434lYo2RoRbmjr5T5knHLPxZpKOFxse4gQ0vn30,2015
18
18
  fuzzy_dl_owl2/fuzzydl/concept/concrete/linear_concrete_concept.py,sha256=8dG1-GqUM_bovYQJ3ckJUvhoB8AUUl3frWiNmPk32vw,2020
19
19
  fuzzy_dl_owl2/fuzzydl/concept/concrete/modified_concrete_concept.py,sha256=5PI5wwaRm31DIvOd0ayo5D20BgIUAepaD5Rkzy6lORs,2061
20
20
  fuzzy_dl_owl2/fuzzydl/concept/concrete/right_concrete_concept.py,sha256=6017uvh53z3J8SB_ANNMmEs6kpmn1bjv43n_u_9yFbs,1997
21
- fuzzy_dl_owl2/fuzzydl/concept/concrete/trapezoidal_concrete_concept.py,sha256=7UAFVMK2_phGl6H1ffphZJixcfZNid-jc-aKXZY6Dos,2638
21
+ fuzzy_dl_owl2/fuzzydl/concept/concrete/trapezoidal_concrete_concept.py,sha256=bn6VOa8b8wJ3Tfawpkj3otaedr-rxnNeC-SBTgQOOxo,2669
22
22
  fuzzy_dl_owl2/fuzzydl/concept/concrete/triangular_concrete_concept.py,sha256=-QQWFaeZ2TWC0FUmwMWkM8Rfj6Pq-EfZRyL_S67SSFw,2519
23
23
  fuzzy_dl_owl2/fuzzydl/concept/ext_threshold_concept.py,sha256=oKJwK9tIuYAxmJxLv7EqMEEUDXfiNYyG3FUzbOGiKBA,2642
24
24
  fuzzy_dl_owl2/fuzzydl/concept/has_value_concept.py,sha256=-NsRiaTzh4D1H7P9ZRmIRtvew0wZ_2DQiD7ptSecGB0,1595
25
- fuzzy_dl_owl2/fuzzydl/concept/implies_concept.py,sha256=jEREWHzWKPPNBTvurxcxl8muEmJEIhOYc1WRIeZVtAk,5184
25
+ fuzzy_dl_owl2/fuzzydl/concept/implies_concept.py,sha256=trEOpaf7CB8ZwDleR6ymhCI1vlGR87i27913OB-k1OU,5285
26
26
  fuzzy_dl_owl2/fuzzydl/concept/interface/__init__.py,sha256=Nj9tp2LOd06Ic_o0KUMxFT0sKGRWK_5fPn0nzS87UZM,349
27
27
  fuzzy_dl_owl2/fuzzydl/concept/interface/has_concept_interface.py,sha256=UOgqG0mQAm20WhnuGmyVJOhYNbZW-KrUXqLHWRcJmMg,406
28
28
  fuzzy_dl_owl2/fuzzydl/concept/interface/has_concepts_interface.py,sha256=7lHlk7OVeG-xDq92-tpWlXdTN-kJmkA6NQtAxXsxVG4,457
@@ -35,7 +35,7 @@ fuzzy_dl_owl2/fuzzydl/concept/modified/linearly_modified_concept.py,sha256=y1VuC
35
35
  fuzzy_dl_owl2/fuzzydl/concept/modified/modified_concept.py,sha256=ixCiqjjYJ0TzWGcLYPpq_zra2S4aQqk0v3IivLL7TDw,1712
36
36
  fuzzy_dl_owl2/fuzzydl/concept/modified/triangularly_modified_concept.py,sha256=vOfmTfffkk1qJtEwJnM8N3IkBZyrg0v68tG3yvHpZA0,1116
37
37
  fuzzy_dl_owl2/fuzzydl/concept/negated_nominal.py,sha256=osALiI91ryAyATdVwnr4BhhK4r5ToomX8UkF_lREvQE,1246
38
- fuzzy_dl_owl2/fuzzydl/concept/operator_concept.py,sha256=g7MYfJ7VELJXMFOF9FJgmrEhjHmGXMUT2ffIj1-4s1M,27252
38
+ fuzzy_dl_owl2/fuzzydl/concept/operator_concept.py,sha256=gip9Y9D_hDvQbq3UN8uaEK32oEscMM_TZadsZARwTlM,27466
39
39
  fuzzy_dl_owl2/fuzzydl/concept/owa_concept.py,sha256=f3qL6qPjLrnpoXkEYwXtFZox5VAFsL1JuxhFwXGlJYo,2092
40
40
  fuzzy_dl_owl2/fuzzydl/concept/qowa_concept.py,sha256=ykeY-iubzfHdEQiNMA3bubQnOMhJ8tiQYkCYJo7T788,2143
41
41
  fuzzy_dl_owl2/fuzzydl/concept/quasi_sugeno_integral.py,sha256=G8lwIrkeWZNx3SdVsYx4lq_0DIlwnsSYR-OTCD4HW1Y,1629
@@ -44,14 +44,14 @@ fuzzy_dl_owl2/fuzzydl/concept/string_concept.py,sha256=ghsBgO1N1_9g1xxHyQ8UUiwd9
44
44
  fuzzy_dl_owl2/fuzzydl/concept/sugeno_integral.py,sha256=pJ4UNGs1de9dGGEHDYL8SpQWCkOouBseus47POe0-E0,2827
45
45
  fuzzy_dl_owl2/fuzzydl/concept/threshold_concept.py,sha256=DgcqkGJncVBWq8ibvPWW3AfFt0DG6yq44DUtRm9tZJg,2678
46
46
  fuzzy_dl_owl2/fuzzydl/concept/truth_concept.py,sha256=ck0s0djtQKvAC0O95daW0Wj-jqnv67zdbl8UrByXUHw,2414
47
- fuzzy_dl_owl2/fuzzydl/concept/value_concept.py,sha256=JIrTG0cTlJV51Sj5DuOv0Dyo_LlQVhVCxNdV60UAMYE,2202
47
+ fuzzy_dl_owl2/fuzzydl/concept/value_concept.py,sha256=M5FDKsoZ3yqpRJWvjKc_knh3s7XSRzuhUbc2Jr8lH7U,2201
48
48
  fuzzy_dl_owl2/fuzzydl/concept/weighted_concept.py,sha256=CU9QD1wxB83RzFCRvY5f7vW-sB6FmStLYF2AlJeoJgg,1750
49
49
  fuzzy_dl_owl2/fuzzydl/concept/weighted_max_concept.py,sha256=sJC-llTM22k3MyIdWr2ts2yyQD0EpsIVOcrPIrm_E2U,2230
50
50
  fuzzy_dl_owl2/fuzzydl/concept/weighted_min_concept.py,sha256=S_0spN_ijtAYNq-CuKgurVuC7J9tefXG_45BMqbGoQw,2102
51
51
  fuzzy_dl_owl2/fuzzydl/concept/weighted_sum_concept.py,sha256=efVD_Cy60nd0is72pAjO6DnzWRsLg0q6cPvo5VwB0RU,2232
52
52
  fuzzy_dl_owl2/fuzzydl/concept/weighted_sum_zero_concept.py,sha256=hdQUkWA_xn-fD7F3a37KCtJrgJx3gUB9qCvGcgm59-A,2253
53
53
  fuzzy_dl_owl2/fuzzydl/concept_equivalence.py,sha256=sVzwJU0-rpDJwNG5gGjgelmqKujOPoVBsWl1ZfHDOTg,458
54
- fuzzy_dl_owl2/fuzzydl/concrete_feature.py,sha256=EBw9tlIHR0FvPVQUGAekkiItqeLo94TanUkGO0t_J3A,3276
54
+ fuzzy_dl_owl2/fuzzydl/concrete_feature.py,sha256=tWn9A1yaz2q97xGj1nF2lt15aNlPsemnzdSEWF6-28w,3434
55
55
  fuzzy_dl_owl2/fuzzydl/degree/__init__.py,sha256=dJiMu650kkRKaIbY_GHKnuF0TsiBvzvdeOe6hus8Ac4,273
56
56
  fuzzy_dl_owl2/fuzzydl/degree/degree.py,sha256=NelWpfw7UeCjc713m6tINo_fTyDMwdvVJbV0F11eTO8,1859
57
57
  fuzzy_dl_owl2/fuzzydl/degree/degree_expression.py,sha256=hfXdvJL4z0115xfLcKuFU32cAZtCqERv9kKQbZp-9DA,1597
@@ -61,29 +61,29 @@ fuzzy_dl_owl2/fuzzydl/domain_axiom.py,sha256=qPjeqmA7zQt6VT-bLtT82F74fiORPegQytd
61
61
  fuzzy_dl_owl2/fuzzydl/exception/__init__.py,sha256=IoYY5IQoU4UYyoB-dFOVLZyDvJN20kgZVBqWkF6J30w,135
62
62
  fuzzy_dl_owl2/fuzzydl/exception/fuzzy_ontology_exception.py,sha256=eH1ybBCx1QoZaf8PLCq1rC_3tiBRA-gKCwECTcUUuro,122
63
63
  fuzzy_dl_owl2/fuzzydl/exception/inconsistent_ontology_exception.py,sha256=ez0RQN4KGlNRcfB7IXfPz3bM86CFLl6zo-RRTBRpa_o,129
64
- fuzzy_dl_owl2/fuzzydl/feature_function.py,sha256=MXN8rU5moY4dWfXlfEAokEiWl_dpmcyY6OZOSN_-RaI,5898
65
- fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py,sha256=6W8RA5LZ-Y2XOuA_yGlDzP1Xot4WsBprTSBVPOouS14,44978
64
+ fuzzy_dl_owl2/fuzzydl/feature_function.py,sha256=KSQvCSYfJK5N6FFfDlyS1Y7UPHSYZNXzdYYZMWzXF8U,6399
65
+ fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py,sha256=lr4UTDmYsl8MJVwclBTGLrAyDqLqBl8OgCE4tuTvRRM,44989
66
66
  fuzzy_dl_owl2/fuzzydl/general_concept_inclusion.py,sha256=Noom35WAeJosPrliGd9_gvEtcK4BthazsSuZH-cxfyU,2380
67
67
  fuzzy_dl_owl2/fuzzydl/individual/__init__.py,sha256=zBCa24kE2nv08VgtphjLshpbGNEARUJgCdtyv9r6JGc,110
68
68
  fuzzy_dl_owl2/fuzzydl/individual/created_individual.py,sha256=HOo_UXjPPPtm7B0a7k90kE1veuR9gOCK5hp2f_aaJnY,7653
69
69
  fuzzy_dl_owl2/fuzzydl/individual/individual.py,sha256=FgtOmJwkPUKIOr-o8a1NqHepL-sN5fGe314e895DHYg,3846
70
70
  fuzzy_dl_owl2/fuzzydl/individual/representative_individual.py,sha256=C5ZG43Xy0Iz71S5IYPzaBGeT-fWIqQGpg85DPgU1NjM,1070
71
- fuzzy_dl_owl2/fuzzydl/knowledge_base.py,sha256=E-TSCwwM29LMH_nhyKJZDvMfX4c79FNC_JfnFmB7EGg,381384
71
+ fuzzy_dl_owl2/fuzzydl/knowledge_base.py,sha256=MmzpyLpiAkxZBbRJP2IywuS0A87lmv26lYv9RyTxN74,385654
72
72
  fuzzy_dl_owl2/fuzzydl/label.py,sha256=KD39rTIlg0XhDJSVqNC6t0Pu60MVfO8xNGSjrcJFtD0,1023
73
73
  fuzzy_dl_owl2/fuzzydl/milp/__init__.py,sha256=g2oFT2Ge8W5Li2kP2CJjpjJ1a0PRI2vDoDdzYDsEtDY,246
74
- fuzzy_dl_owl2/fuzzydl/milp/expression.py,sha256=uZq4erpPO0ryh6uMlAPMzSFUrU3M_rDvZ75uU1PCIB4,6102
74
+ fuzzy_dl_owl2/fuzzydl/milp/expression.py,sha256=j_77ddxfktzjRCRmjvew6zr5Rj8pmMfL2N0PvdpGfL4,6197
75
75
  fuzzy_dl_owl2/fuzzydl/milp/inequation.py,sha256=dQhRXj7xQm6021bUV58WPNnxH7EqsonPrWOCoCBqR5A,1631
76
- fuzzy_dl_owl2/fuzzydl/milp/milp_helper.py,sha256=65u7acdBJDPKVXiwDsvfCjDqiMs0r2BnBCqy2_uHXr4,30330
76
+ fuzzy_dl_owl2/fuzzydl/milp/milp_helper.py,sha256=Dfeh7eGknCez6Ku5m7wdxsdqJkSq4vtgfH93xth7ILM,30388
77
77
  fuzzy_dl_owl2/fuzzydl/milp/show_variables_helper.py,sha256=7y-lfhoERoE8qNSMr0cq_-Ezo46BGsNszp44YSVWA2A,5754
78
78
  fuzzy_dl_owl2/fuzzydl/milp/solution.py,sha256=suoE1F2XORwzP4pNm-6Ivf6eK5Z98KFxFUdarh1CjQk,1210
79
79
  fuzzy_dl_owl2/fuzzydl/milp/term.py,sha256=IDnmmpXIgewY9NkPwM1YFzkcp21umo4ZoPBzAhGdn8Q,2202
80
- fuzzy_dl_owl2/fuzzydl/milp/variable.py,sha256=RdxRHAXS5_zKFhqt1lysPlL6qm1rWS7mRZvwxsdmJi8,2662
80
+ fuzzy_dl_owl2/fuzzydl/milp/variable.py,sha256=_qqLZpOkXCaeyguQQWLIQvTPzyPaMNSpPIAL4T0A9C8,2725
81
81
  fuzzy_dl_owl2/fuzzydl/modifier/__init__.py,sha256=mgJml-9PVs566EYpwBxfmmiw8oPXiSgJRUyIX9hiSNA,126
82
82
  fuzzy_dl_owl2/fuzzydl/modifier/linear_modifier.py,sha256=Rn6q4ytIdTiCI-TRZIK5qjWSA4K3q78fYSrYxlQklVc,2022
83
83
  fuzzy_dl_owl2/fuzzydl/modifier/modifier.py,sha256=K1QG_i0eePq49RqyPsOCYRKonmD1QFzE0WwyxOBnymo,816
84
- fuzzy_dl_owl2/fuzzydl/modifier/triangular_modifier.py,sha256=MAfQ0w91tc1fw0FCdxHyt-RHXoRKo8GOfwBqDoCpUVc,2115
84
+ fuzzy_dl_owl2/fuzzydl/modifier/triangular_modifier.py,sha256=9z_oVC0QidpNCEk0FsN2EDzy7lDWTXl5dNGr3sc04j4,2131
85
85
  fuzzy_dl_owl2/fuzzydl/parser/__init__.py,sha256=vs0cN8a1ATeFx1J4evw6k7mWe4zOvba_xMO2eBXZ_gc,32
86
- fuzzy_dl_owl2/fuzzydl/parser/dl_parser.py,sha256=aJ8VfiAyfHLslKZCKtht4nu8izv7tE40v4Nw4C1VWCs,81810
86
+ fuzzy_dl_owl2/fuzzydl/parser/dl_parser.py,sha256=AonhuzmnFtPS1r1mgsEEzkiepRHCclm-3FJC5NaV3VA,95312
87
87
  fuzzy_dl_owl2/fuzzydl/primitive_concept_definition.py,sha256=jQxEqwqt-VuP58i90gfzcOge-rI3BC9zvqXJgUA7eno,2331
88
88
  fuzzy_dl_owl2/fuzzydl/query/__init__.py,sha256=4952zUtxF3VDI4TWDkpYdayP71DSowCsJzYAc_fOyGY,405
89
89
  fuzzy_dl_owl2/fuzzydl/query/all_instances_query.py,sha256=IgCmHvYMiEW3MWSt-IOr42KXwz-hgCGCC6beSt-lgLM,1867
@@ -91,7 +91,7 @@ fuzzy_dl_owl2/fuzzydl/query/bnp_query.py,sha256=4yosQ3C3sCGOprO4BzZfKwy6_RYggUVl
91
91
  fuzzy_dl_owl2/fuzzydl/query/defuzzify/__init__.py,sha256=fUbdT9Q0-5c-ArHS1yxLYuf00NCHyoUPSrjpeBQ25iU,197
92
92
  fuzzy_dl_owl2/fuzzydl/query/defuzzify/defuzzify_query.py,sha256=imIHtQ6tHaKas05C4UzavOdw-FeBx716dydBiGK4o8Y,3008
93
93
  fuzzy_dl_owl2/fuzzydl/query/defuzzify/lom_defuzzify_query.py,sha256=u9R2x8WtD9eyrYRD398qop83A-bI9TrIxPDztAsHmFQ,833
94
- fuzzy_dl_owl2/fuzzydl/query/defuzzify/mom_defuzzify_query.py,sha256=U6OVNiTXJHeaizBaHe6tf-_FGDMj6No_qdhoaIp9cN8,3785
94
+ fuzzy_dl_owl2/fuzzydl/query/defuzzify/mom_defuzzify_query.py,sha256=QeplrKFLtAqNxyB0LfXRWdvdtrskGXvJuPACIHbUBMo,3882
95
95
  fuzzy_dl_owl2/fuzzydl/query/defuzzify/som_defuzzify_query.py,sha256=7ktMy78qq42lKzt5cTiCXlhPII-E9EANBowkxAkQnSQ,808
96
96
  fuzzy_dl_owl2/fuzzydl/query/instance_query.py,sha256=5loSVw5NvTJXN0RC7lDWyVR0GEzagSp3Ts_MhF8WQvE,682
97
97
  fuzzy_dl_owl2/fuzzydl/query/kb_satisfiable_query.py,sha256=78tEbsDyCrvrNKV0wCAmPc0nPL-MaPQIVC0J1OHjFE4,1086
@@ -106,7 +106,7 @@ fuzzy_dl_owl2/fuzzydl/query/min/min_instance_query.py,sha256=8TZKQZQcLsbMUFFUwLZ
106
106
  fuzzy_dl_owl2/fuzzydl/query/min/min_query.py,sha256=xM5y9w9Q3ejiRZ-uqvuD6krACGRPRyNnaHVQy0JzAhc,996
107
107
  fuzzy_dl_owl2/fuzzydl/query/min/min_related_query.py,sha256=PMstZFTXN1VsKXMs6HXb3f3AvOV7RhE7HdGZGfJ0ezM,2263
108
108
  fuzzy_dl_owl2/fuzzydl/query/min/min_satisfiable_query.py,sha256=kF-MlpBE74OYT3tv69dThuI9GD6AH85hFXPcm9xePtI,3081
109
- fuzzy_dl_owl2/fuzzydl/query/min/min_subsumes_query.py,sha256=tqueYtIYtTbJWVuK_XalK7d8CE07oG-0vkQDj40PjWo,2805
109
+ fuzzy_dl_owl2/fuzzydl/query/min/min_subsumes_query.py,sha256=4oj3-2Fx7jBOvgXnl4EwmB9oPGcQNj43aKHmn1sZtm4,2805
110
110
  fuzzy_dl_owl2/fuzzydl/query/query.py,sha256=N0Fd6SdHipTNstyfJ-O-d9b4ZWhefGAwgQVwdU_oMe8,1063
111
111
  fuzzy_dl_owl2/fuzzydl/query/related_query.py,sha256=fLuUcJr6FoX6ChS2fSR7S9eze02otdWuqWTAcAEABeU,450
112
112
  fuzzy_dl_owl2/fuzzydl/query/satisfiable_query.py,sha256=dZ--DKOplSI9Cv72UtRYpRbJpetkmk5HMToOA4RZBZw,1231
@@ -118,12 +118,12 @@ fuzzy_dl_owl2/fuzzydl/restriction/has_value_restriction.py,sha256=DL-50TlD289OXV
118
118
  fuzzy_dl_owl2/fuzzydl/restriction/restriction.py,sha256=SyeFvaJeKcTe750eAbLoAVYkWTK_UjdqWr2Lw8OF1S0,948
119
119
  fuzzy_dl_owl2/fuzzydl/role_parent_with_degree.py,sha256=1J5dtlVbiascxHBwAJ7uc97IHnJke9RWqxq5rgrrkoA,282
120
120
  fuzzy_dl_owl2/fuzzydl/util/__init__.py,sha256=44tug6cK4CwfOR865-q1FOVN34TEDzfLlaevh5YMiGo,84
121
- fuzzy_dl_owl2/fuzzydl/util/config_reader.py,sha256=TQyWZ1EMqS8WteJfHUqQG-aloyxaZ7TJd32ox1k_0CU,2063
122
- fuzzy_dl_owl2/fuzzydl/util/constants.py,sha256=PV6fSOk8rrVJ_7qnZ9xFCcjBxXpMH3mvHN83XpNaH4I,12749
121
+ fuzzy_dl_owl2/fuzzydl/util/config_reader.py,sha256=8kyrfK-wQaiGrKfrLsiVr77jg1NRaviGniWOtQwrZRU,1797
122
+ fuzzy_dl_owl2/fuzzydl/util/constants.py,sha256=_BM9maPkVPzz-GjWjVHjPEtNOA72c5R4qjP9w-2bAdQ,12817
123
123
  fuzzy_dl_owl2/fuzzydl/util/util.py,sha256=5COC79TAJz8fNrRzXLbNpAT9rLd_0KrRI1OU-hob3oU,1903
124
- fuzzy_dl_owl2/fuzzydl/util/utils.py,sha256=h18QpDSRjitsVPta_zmRvHC8HUdfFwbFqol4oLANITs,1133
124
+ fuzzy_dl_owl2/fuzzydl/util/utils.py,sha256=TPVLEL9NJXgReuxEIOTEOVYqojSymg_-kyrLETXnYdo,2344
125
125
  fuzzy_dl_owl2/fuzzyowl2/__init__.py,sha256=C44P0-Sn35FQdVMqYLzeDWa5qPmokbcs8GPiD_zQaSg,153
126
- fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py,sha256=xe98T3nowcOK2VJ6gZpJqTxwH0qhLzdQz3yeJbKzdJU,71313
126
+ fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py,sha256=EAC_DXYa694h3pUZ9T_4Y_f60DjzPUs4VqIGbpLY5vo,71402
127
127
  fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2_to_fuzzydl.py,sha256=yWMhk3mpAmGfLSg6buEo8pC2G-Jczy1pgiy3riaZsZY,37033
128
128
  fuzzy_dl_owl2/fuzzyowl2/owl_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  fuzzy_dl_owl2/fuzzyowl2/owl_types/choquet_concept.py,sha256=ymnyNfvkvWA3y2UMXyPviD0U98vJ6jrX6zddj09SUoI,671
@@ -156,7 +156,7 @@ fuzzy_dl_owl2/fuzzyowl2/parser/__init__.py,sha256=fKaME_uuWyG5UB7VKD-nMV-j95lC1j
156
156
  fuzzy_dl_owl2/fuzzyowl2/parser/owl2_parser.py,sha256=5eGyRbYUQNH5ZTKCjsOYOsw9Ode4lUl8eUNK4jQGZSs,19683
157
157
  fuzzy_dl_owl2/fuzzyowl2/util/__init__.py,sha256=81quoggCuIypZjZs3bbf1Ty70KHdva5RGEJxi0oC57E,25
158
158
  fuzzy_dl_owl2/fuzzyowl2/util/constants.py,sha256=05eQLYTB4CxxUZ_T-sNG9FsH8hkrBMAh2y24oiQN8xY,3904
159
- fuzzy_dl_owl2-1.0.2.dist-info/LICENSE,sha256=er4Z7Ju3OzYUG5mbhh0krYVegIuv4PgehMzihVb2wpc,20131
160
- fuzzy_dl_owl2-1.0.2.dist-info/METADATA,sha256=UT7XY4U9-ZDxqYAB2NKl4hw7sBhFjKipW95ADW5d7pY,12777
161
- fuzzy_dl_owl2-1.0.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
162
- fuzzy_dl_owl2-1.0.2.dist-info/RECORD,,
159
+ fuzzy_dl_owl2-1.0.4.dist-info/LICENSE,sha256=er4Z7Ju3OzYUG5mbhh0krYVegIuv4PgehMzihVb2wpc,20131
160
+ fuzzy_dl_owl2-1.0.4.dist-info/METADATA,sha256=elZXmZ96SR3HkFCRcP_CEoojPQ_1UWauCWBuyiLMTvY,13057
161
+ fuzzy_dl_owl2-1.0.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
162
+ fuzzy_dl_owl2-1.0.4.dist-info/RECORD,,