Knowledge base

struct TmeKB

Models a knowledge base.

Warning

Unless otherwise stated, TmeSemDesc instances returned by the KB must not be mutated unless they have been copied beforehand (via e.g. tme_sem_desc_copy()), since they generally directly reference its internal data structures.

Loading

void tme_kb_load_individuals(TmeKB *kb, TmeAxiomProvider const *provider, TmeABoxEntryType type)

Loads all the individuals obtained from an axiom provider.

Parameters
  • kb: KB instance.

  • provider: Axiom provider.

  • type: Type of the loaded individuals.

void tme_kb_load_individual(TmeKB *kb, TmeEntityPtr individual, TmeSemDesc *desc, TmeABoxEntryType type)

Loads an individual into the ABox.

Parameters
  • kb: KB instance.

  • individual: Individual identifier.

  • desc: Semantic description of the specified individual.

  • type: Type of the loaded individual.

void tme_kb_unload_individual(TmeKB *kb, TmeEntityPtr individual)

Unloads the specified individual from the ABox.

Parameters
  • kb: KB instance.

  • individual: Individual to unload.

void tme_kb_unload_individuals(TmeKB *kb, TmeABoxEntryType type, Vector_TmeEntityPtr *unloaded)

Unloads all the individuals of a certain type.

Parameters
  • kb: KB instance.

  • type: Type of the individuals to unload.

  • [out] unloaded: Unloaded individuals.

void tme_kb_tell_individual_type(TmeKB *kb, TmeEntityPtr individual, TmeABoxEntryType type)

Sets the type of the specified individual.

Parameters
  • kb: KB instance.

  • individual: Individual whose type should be set.

  • type: Type of the individual.

Querying

tme_uint_t tme_kb_get_tbox_size(TmeKB *kb)

Returns the number of concepts in the TBox.

Return

Number of concepts in the TBox.

Parameters
  • kb: KB instance.

tme_uint_t tme_kb_get_abox_size(TmeKB *kb)

Returns the number of individuals in the ABox.

Return

Number of individuals in the ABox.

Parameters
  • kb: KB instance.

tme_uint_t tme_kb_get_individuals_count(TmeKB *kb, TmeABoxEntryType type)

Returns the number of individuals of the specified type.

Return

Number of individuals of the specified type.

Parameters
  • kb: KB instance.

  • type: Individual type.

void tme_kb_get_concepts(TmeKB *kb, Vector_TmeEntityPtr *concepts)

Returns all the concepts in the TBox.

Parameters
  • kb: KB instance.

  • [out] concepts: TBox concepts.

void tme_kb_get_individuals(TmeKB *kb, Vector_TmeEntityPtr *individuals)

Returns all the individuals in the ABox.

Parameters
  • kb: KB instance.

  • [out] individuals: ABox individuals.

void tme_kb_get_individuals_type(TmeKB *kb, Vector_TmeEntityPtr *resources, Vector_TmeEntityPtr *requests)

Returns all the individuals in the ABox, split in resources and requests.

Parameters
  • kb: KB instance.

  • [out] resources: Resource individuals.

  • [out] requests: Request individuals.

void tme_kb_get_tbox(TmeKB *kb, UHash_TmeEntityTable *tbox)

Returns the TBox concepts and their normalized descriptions.

Parameters
  • kb: KB instance.

  • [out] tbox: TBox concepts and their normalized descriptions.

void tme_kb_get_abox(TmeKB *kb, UHash_TmeEntityTable *abox)

Returns the ABox individuals and their normalized descriptions.

Parameters
  • kb: KB instance.

  • abox: ABox individuals and their normalized descriptions.

void tme_kb_get_abox_type(TmeKB *kb, UHash_TmeEntityTable *resources, UHash_TmeEntityTable *requests)

Returns the ABox split in resources and requests.

Parameters
  • kb: KB instance.

  • [out] resources: Resource individuals and their normalized descriptions.

  • [out] requests: Request individuals and their normalized descriptions.

TmeVocabulary tme_kb_get_vocabulary(TmeKB *kb)

Returns the vocabulary.

Return

Vocabulary instance.

Parameters
  • kb: KB instance.

TmeSemDesc *tme_kb_normalized_concept(TmeKB *kb, TmeEntityPtr concept)

Returns the unfolded and normalized semantic description of the specified concept.

Return

Normalized description.

Parameters
  • kb: KB instance.

  • concept: Concept whose description should be retrieved.

TmeSemDesc *tme_kb_normalized_individual(TmeKB *kb, TmeEntityPtr individual)

Returns the unfolded and normalized semantic description of the specified individual.

Return

Normalized description.

Parameters
  • kb: KB instance.

  • individual: Individual whose description should be retrieved.

bool tme_kb_sem_desc_normalize(TmeKB *kb, TmeSemDesc *desc)

Performs the unfolding and CNF normalization of the specified description.

Return

True if the description is satisfiable, false otherwise.

Parameters
  • kb: KB instance.

  • desc: Semantic description to normalize.

void tme_kb_sem_desc_fold(TmeKB *kb, TmeSemDesc *desc)

Folds the specified description.

Parameters
  • kb: KB instance.

  • desc: Semantic description to fold.

Iteration

void tme_kb_iterate_tbox(TmeKB *kb, TmeTBoxIterator *iter)

Iterates over the TBox.

Parameters
  • kb: KB instance.

  • iter: TBox iterator.

void tme_kb_iterate_abox(TmeKB *kb, TmeABoxIterator *iter)

Iterates over the ABox.

Parameters
  • kb: KB instance.

  • iter: ABox iterator.

void tme_kb_iterate_individuals_type(TmeKB *kb, TmeABoxEntryType type, TmeABoxIterator *iter)

Iterates over all the individuals of the specified type.

Parameters
  • kb: KB instance.

  • type: Individual type.

  • iter: ABox iterator.

void tme_kb_iterate_concept_ptrs(TmeKB *kb, TmeKBConceptIterator *iter)

Iterates over all the concepts in the TBox, ignoring their descriptions.

Parameters
  • kb: KB instance.

  • iter: Concept iterator.

void tme_kb_iterate_individual_ptrs(TmeKB *kb, TmeKBIndividualIterator *iter)

Iterates over all the individuals in the ABox, ignoring their descriptions.

Parameters
  • kb: KB instance.

  • iter: Individual iterator.

void tme_kb_iterate_individual_ptrs_type(TmeKB *kb, TmeABoxEntryType type, TmeKBIndividualIterator *iter)

Iterates over all the individuals of the specified type, ignoring their description.

Parameters
  • kb: KB instance.

  • type: Individual type.

  • iter: Individual iterator.

ABox entries

typedef uint8_t TmeABoxEntryType

Represents the type of an individual with regards to semantic matchmaking tasks.

In this context, an individual can be either a resource, a request, or both.

TME_AET_NONE

Neither a resource nor a request.

TME_AET_RESOURCE

Resource.

TME_AET_REQUEST

Request.

TME_AET_ANY

Both resource and request at the same time.