ontolearn.refinement_operators

Refinement Operators for refinement-based concept learners.

Module Contents

Classes

LengthBasedRefinement

A top-down length based ("no semantic information leveraged) refinement operator in ALC.

ModifiedCELOERefinement

A top down/downward refinement operator in SHIQ(D).

ExpressRefinement

A top-down refinement operator in ALCHIQ(D).

class ontolearn.refinement_operators.LengthBasedRefinement(knowledge_base: KnowledgeBase, use_inverse: bool = False, use_data_properties: bool = False, use_card_restrictions: bool = False, card_limit=3, use_nominals: bool = True)[source]

Bases: ontolearn.abstracts.BaseRefinement

A top-down length based (“no semantic information leveraged) refinement operator in ALC.

static from_iterables(cls, a_operands, b_operands)[source]
refine_top() Iterable[source]

Refine Top Class Expression

apply_union_and_intersection_from_iterable(cont: List) Iterable[source]

Create Union and Intersection OWL Class Expressions. 1. Create OWLObjectIntersectionOf via logical conjunction of cartesian product of input owl class expressions. 2. Create OWLObjectUnionOf class expression via logical disjunction pf cartesian product of input owl class

expressions.

Repeat 1 and 2 until all concepts having max_len_refinement_top reached.

refine_atomic_concept(class_expression: owlapy.class_expression.OWLClassExpression) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine_complement_of(class_expression: owlapy.class_expression.OWLObjectComplementOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine_object_some_values_from(class_expression: owlapy.class_expression.OWLObjectSomeValuesFrom) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine_object_all_values_from(class_expression: owlapy.class_expression.OWLObjectAllValuesFrom) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine_object_union_of(class_expression: owlapy.class_expression.OWLObjectUnionOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine_object_intersection_of(class_expression: owlapy.class_expression.OWLClassExpression) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

refine(class_expression) Iterable[owlapy.class_expression.OWLClassExpression][source]

TODO:CD:

class ontolearn.refinement_operators.ModifiedCELOERefinement(knowledge_base: KnowledgeBase, value_splitter: AbstractValueSplitter | None = None, max_child_length: int = 10, use_negation: bool = True, use_all_constructor: bool = True, use_inverse: bool = True, use_card_restrictions: bool = True, use_numeric_datatypes: bool = True, use_time_datatypes: bool = True, use_boolean_datatype: bool = True, card_limit: int = 10)[source]

Bases: ontolearn.abstracts.BaseRefinement[ontolearn.search.OENode]

A top down/downward refinement operator in SHIQ(D).

__slots__ = ('max_child_length', 'use_negation', 'use_all_constructor', 'use_inverse',...
kb: KnowledgeBase
value_splitter: AbstractValueSplitter | None
max_child_length: int
use_negation: bool
use_all_constructor: bool
use_card_restrictions: bool
use_numeric_datatypes: bool
use_time_datatypes: bool
use_boolean_datatype: bool
card_limit: int
max_nr_fillers: DefaultDict[owlapy.owl_property.OWLObjectPropertyExpression, int]
dp_splits: Dict[owlapy.owl_property.OWLDataPropertyExpression, List[owlapy.owl_literal.OWLLiteral]]
generator: ConceptGenerator
refine_atomic_concept(ce: owlapy.class_expression.OWLClass, max_length: int, current_domain: owlapy.class_expression.OWLClassExpression | None = None) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refinement operator implementation in CELOE-DL-learner, distinguishes the refinement of atomic concepts and start concept(they called Top concept). [1] Concept learning, Lehmann et. al

  1. Generate all subconcepts given C, Denoted by (SH_down(C)),

(2) Generate {A AND C | A in SH_down(C)}, (2) Generate {A OR C | A in SH_down(C)}, (3) Generate {not A | A in SH_down(C) AND_logical not exist B in T : B sqsubset A}, (4) Generate restrictions, (5) Intersect and union (1),(2),(3),(4), (6) Create negation of all leaf_concepts.

(***) The most general relation is not available.

Parameters:
  • ce – Atomic concept to refine.

  • max_length – Refine up to this concept length.

  • current_domain – Domain.

Returns:

Iterable of refined concepts.

refine_complement_of(ce: owlapy.class_expression.OWLObjectComplementOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:complementOf.

Parameters:

ce (OWLObjectComplementOf) – owl:complementOf - class expression.

Returns:

Iterable of refined concepts.

refine_object_some_values_from(ce: owlapy.class_expression.OWLObjectSomeValuesFrom, max_length: int) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:someValuesFrom.

Parameters:
  • ce (OWLObjectSomeValuesFrom) – owl:someValuesFrom class expression.

  • max_length (int) – Refine up to this concept length.

Returns:

Iterable of refined concepts.

refine_object_all_values_from(ce: owlapy.class_expression.OWLObjectAllValuesFrom, max_length: int) Iterable[owlapy.class_expression.OWLObjectAllValuesFrom][source]

Refine owl:allValuesFrom.

Parameters:
  • ce (OWLObjectAllValuesFrom) – owl:allValuesFrom - class expression.

  • max_length (int) – Refine up to this concept length.

Returns:

Iterable of refined concepts.

refine_object_min_card_restriction(ce: owlapy.class_expression.OWLObjectMinCardinality, max_length: int) Iterable[owlapy.class_expression.OWLObjectMinCardinality][source]

Refine owl:minCardinality.

Parameters:
  • ce (OWLObjectMinCardinality) – owl:minCardinality - class expression.

  • max_length (int) – Refine up to this concept length.

Returns:

Iterable of refined concepts.

refine_object_max_card_restriction(ce: owlapy.class_expression.OWLObjectMaxCardinality, max_length: int) Iterable[owlapy.class_expression.OWLObjectMaxCardinality][source]

Refine owl:maxCardinality.

Parameters:
  • ce (OWLObjectMaxCardinality) – owl:maxCardinality - class expression.

  • max_length (int) – Refine up to this concept length.

Returns:

Iterable of refined concepts.

refine_object_union_of(ce: owlapy.class_expression.OWLObjectUnionOf, max_length: int, current_domain: owlapy.class_expression.OWLClassExpression | None) Iterable[owlapy.class_expression.OWLObjectUnionOf][source]

Refine owl:unionOf.

Given a node corresponding a concepts that comprises union operation: 1) Obtain two concepts A, B, 2) Refine A and union refinements with B, 3) Repeat (2) for B.

Parameters:
  • ce (OWLObjectUnionOf) – owl:unionOf - class expression.

  • current_domain (OWLClassExpression) – Domain.

  • max_length (int) – Refine up to this concept length.

Returns:

Iterable of refined concepts.

refine_object_intersection_of(ce: owlapy.class_expression.OWLObjectIntersectionOf, max_length: int, current_domain: owlapy.class_expression.OWLClassExpression | None) Iterable[owlapy.class_expression.OWLObjectIntersectionOf][source]

Refine owl:intersectionOf.

Parameters:
  • ce (OWLObjectIntersectionOf) – owl:intersectionOf - class expression.

  • current_domain (int) – Domain.

Returns:

Iterable of refined concepts.

refine_data_some_values_from(ce: owlapy.class_expression.OWLDataSomeValuesFrom) Iterable[owlapy.class_expression.OWLDataSomeValuesFrom][source]

Refine owl:someValuesFrom for data properties.

Parameters:

ce (OWLDataSomeValuesFrom) – owl:someValuesFrom - class expression.

Returns:

Iterable of refined concepts.

refine_data_has_value(ce: owlapy.class_expression.OWLDataHasValue) Iterable[owlapy.class_expression.OWLDataHasValue][source]

Refine owl:hasValue.

Parameters:

ce (OWLDataHasValue) – owl:hasValue - class expression.

Returns:

Iterable of refined concepts.

refine(ce: owlapy.class_expression.OWLClassExpression, max_length: int, current_domain: owlapy.class_expression.OWLClassExpression | None = None) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine a given concept.

Parameters:
  • ce – Concept to refine.

  • max_length – Refine up to this concept length.

  • current_domain – Domain.

Returns:

Iterable of refined concepts.

class ontolearn.refinement_operators.ExpressRefinement(knowledge_base, downsample: bool = True, expressivity: float = 0.8, sample_fillers_count: int = 5, value_splitter: AbstractValueSplitter | None = None, max_child_length: int = 10, use_inverse: bool = True, use_card_restrictions: bool = True, use_numeric_datatypes: bool = True, use_time_datatypes: bool = True, use_boolean_datatype: bool = True, card_limit: int = 10)[source]

Bases: ModifiedCELOERefinement

A top-down refinement operator in ALCHIQ(D).

__slots__ = ('expressivity', 'downsample', 'sample_fillers_count', 'generator')
expressivity: float
downsample: bool
sample_fillers_count: int
generator: ConceptGenerator
refine_atomic_concept(ce: owlapy.class_expression.OWLClass) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine atomic concept. :param ce: Atomic concept to refine.

Returns:

Iterable of refined concepts.

refine_complement_of(ce: owlapy.class_expression.OWLObjectComplementOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:complementOf.

Parameters:

ce (OWLObjectComplementOf) – owl:complementOf - class expression.

Returns:

Iterable of refined concepts.

refine_object_some_values_from(ce: owlapy.class_expression.OWLObjectSomeValuesFrom) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:someValuesFrom.

Parameters:

ce (OWLObjectSomeValuesFrom) – owl:someValuesFrom class expression.

Returns:

Iterable of refined concepts.

refine_object_all_values_from(ce: owlapy.class_expression.OWLObjectAllValuesFrom) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:allValuesFrom.

Parameters:

ce (OWLObjectAllValuesFrom) – owl:allValuesFrom - class expression.

Returns:

Iterable of refined concepts.

refine_object_min_card_restriction(ce: owlapy.class_expression.OWLObjectMinCardinality) Iterable[owlapy.class_expression.OWLObjectMinCardinality][source]

Refine owl:allValuesFrom.

Parameters:

ce (OWLObjectAllValuesFrom) – owl:allValuesFrom - class expression.

Returns:

Iterable of refined concepts.

refine_object_max_card_restriction(ce: owlapy.class_expression.OWLObjectMaxCardinality) Iterable[owlapy.class_expression.OWLObjectMaxCardinality][source]

Refine owl:maxCardinality.

Parameters:

ce (OWLObjectMaxCardinality) – owl:maxCardinality - class expression.

Returns:

Iterable of refined concepts.

refine_object_union_of(ce: owlapy.class_expression.OWLObjectUnionOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:unionOf.

Parameters:

ce (OWLObjectUnionOf) – owl:unionOf - class expression.

Returns:

Iterable of refined concepts.

refine_object_intersection_of(ce: owlapy.class_expression.OWLObjectIntersectionOf) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine owl:intersectionOf.

Parameters:

ce (OWLObjectIntersectionOf) – owl:intersectionOf - class expression.

Returns:

Iterable of refined concepts.

refine_data_some_values_from(ce: owlapy.class_expression.OWLDataSomeValuesFrom) Iterable[owlapy.class_expression.OWLDataSomeValuesFrom][source]

Refine owl:someValuesFrom for data properties.

Parameters:

ce (OWLDataSomeValuesFrom) – owl:someValuesFrom - class expression.

Returns:

Iterable of refined concepts.

refine_data_has_value(ce: owlapy.class_expression.OWLDataHasValue) Iterable[owlapy.class_expression.OWLDataHasValue][source]

Refine owl:hasValue.

Parameters:

ce (OWLDataHasValue) – owl:hasValue - class expression.

Returns:

Iterable of refined concepts.

refine(ce, **kwargs) Iterable[owlapy.class_expression.OWLClassExpression][source]

Refine a given concept.

Parameters:

ce – Concept to refine

Returns:

Iterable of refined concepts.