fuzzy-dl-owl2 1.0.2__py3-none-any.whl → 1.0.3__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.
- fuzzy_dl_owl2/fuzzydl/concept/approximation_concept.py +35 -10
- fuzzy_dl_owl2/fuzzydl/concept/concrete/fuzzy_number/triangular_fuzzy_number.py +2 -1
- fuzzy_dl_owl2/fuzzydl/concept/concrete/trapezoidal_concrete_concept.py +1 -0
- fuzzy_dl_owl2/fuzzydl/concept/implies_concept.py +14 -11
- fuzzy_dl_owl2/fuzzydl/concept/operator_concept.py +10 -6
- fuzzy_dl_owl2/fuzzydl/concept/value_concept.py +1 -1
- fuzzy_dl_owl2/fuzzydl/concrete_feature.py +7 -1
- fuzzy_dl_owl2/fuzzydl/feature_function.py +16 -2
- fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py +1 -1
- fuzzy_dl_owl2/fuzzydl/knowledge_base.py +494 -358
- fuzzy_dl_owl2/fuzzydl/milp/expression.py +4 -2
- fuzzy_dl_owl2/fuzzydl/milp/milp_helper.py +3 -2
- fuzzy_dl_owl2/fuzzydl/milp/variable.py +3 -0
- fuzzy_dl_owl2/fuzzydl/modifier/triangular_modifier.py +1 -1
- fuzzy_dl_owl2/fuzzydl/parser/dl_parser.py +1465 -1210
- fuzzy_dl_owl2/fuzzydl/query/defuzzify/mom_defuzzify_query.py +14 -7
- fuzzy_dl_owl2/fuzzydl/query/min/min_subsumes_query.py +2 -2
- fuzzy_dl_owl2/fuzzydl/util/config_reader.py +0 -6
- fuzzy_dl_owl2/fuzzydl/util/constants.py +10 -9
- fuzzy_dl_owl2/fuzzydl/util/utils.py +48 -7
- fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py +1 -1
- {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.3.dist-info}/METADATA +9 -7
- {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.3.dist-info}/RECORD +25 -25
- {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.3.dist-info}/LICENSE +0 -0
- {fuzzy_dl_owl2-1.0.2.dist-info → fuzzy_dl_owl2-1.0.3.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
|
-
|
|
66
|
-
sol1: Solution = cloned.optimize(
|
|
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(
|
|
69
|
-
|
|
70
|
-
|
|
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(
|
|
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
|
|
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.
|
|
33
|
+
elif self.type == LogicOperatorType.ZADEH:
|
|
34
34
|
conc: Concept = ImpliesConcept.zadeh_implies(self.c2, self.c1)
|
|
35
|
-
else: # LogicOperatorType.
|
|
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.
|
|
366
|
-
SUB = pp.
|
|
367
|
-
MUL = pp.
|
|
368
|
-
LESS_THAN_OR_EQUAL_TO = pp.
|
|
369
|
-
GREATER_THAN_OR_EQUAL_TO = pp.
|
|
370
|
-
EQUALS = pp.
|
|
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
|
|
@@ -430,7 +430,7 @@ class FuzzyOwl2(object):
|
|
|
430
430
|
Util.debug(f"Annotation for degree -> {annotation_str}")
|
|
431
431
|
deg: float = FuzzyOwl2Parser.parse_string(annotation_str)[0]
|
|
432
432
|
Util.debug(f"Degree for axiom -> {deg}")
|
|
433
|
-
if not isinstance(deg,
|
|
433
|
+
if not isinstance(deg, constants.NUMBER):
|
|
434
434
|
raise ValueError
|
|
435
435
|
return deg
|
|
436
436
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: fuzzy-dl-owl2
|
|
3
|
-
Version: 1.0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 1.0.3
|
|
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
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
65
|
-
fuzzy_dl_owl2/fuzzydl/fuzzydl_to_owl2.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
122
|
-
fuzzy_dl_owl2/fuzzydl/util/constants.py,sha256=
|
|
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=
|
|
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=
|
|
126
|
+
fuzzy_dl_owl2/fuzzyowl2/fuzzyowl2.py,sha256=YYYayCmOPA5mfjMCAFZSiNe1pyn8arr5CIALiTMTGu8,71324
|
|
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.
|
|
160
|
-
fuzzy_dl_owl2-1.0.
|
|
161
|
-
fuzzy_dl_owl2-1.0.
|
|
162
|
-
fuzzy_dl_owl2-1.0.
|
|
159
|
+
fuzzy_dl_owl2-1.0.3.dist-info/LICENSE,sha256=er4Z7Ju3OzYUG5mbhh0krYVegIuv4PgehMzihVb2wpc,20131
|
|
160
|
+
fuzzy_dl_owl2-1.0.3.dist-info/METADATA,sha256=a39NDTTTe5Fq035nuUf-yCLjoB-dTTyLMeTSHzlR_Io,13057
|
|
161
|
+
fuzzy_dl_owl2-1.0.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
162
|
+
fuzzy_dl_owl2-1.0.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|