Objects

struct CowlObject

The root pseudo-class.

CowlAny *cowl_retain(CowlAny *object)

Retains the specified object.

Note

You must release the returned object via cowl_release().

Parameters:
  • object – The object.

Returns:

Retained object.

void cowl_release(CowlAny *object)

Releases the specified object.

Parameters:
  • object – The object.

CowlObjectType cowl_get_type(CowlAny *object)

Gets the type of the specified object.

Parameters:
  • object – The object.

Returns:

The type.

bool cowl_is_primitive(CowlAny *object)

Checks whether the specified object is a primitive.

Parameters:
  • object – The object

Returns:

True if the object is a primitive, false otherwise.

bool cowl_is_entity(CowlAny *object)

Checks whether the specified object is an entity.

Parameters:
  • object – The object

Returns:

True if the object is an entity, false otherwise.

bool cowl_is_axiom(CowlAny *object)

Checks whether the specified object is an axiom.

Parameters:
  • object – The object

Returns:

True if the object is an axiom, false otherwise.

bool cowl_is_cls_exp(CowlAny *object)

Checks whether the specified object is a class expression.

Parameters:
  • object – The object

Returns:

True if the object is a class expression, false otherwise.

bool cowl_is_obj_prop_exp(CowlAny *object)

Checks whether the specified object is an object property expression.

Parameters:
  • object – The object

Returns:

True if the object is an object property expression, false otherwise.

bool cowl_is_data_prop_exp(CowlAny *object)

Checks whether the specified object is a data property expression.

Parameters:
  • object – The object

Returns:

True if the object is a data property expression, false otherwise.

bool cowl_is_individual(CowlAny *object)

Checks whether the specified object is an individual.

Parameters:
  • object – The object

Returns:

True if the object is an individual, false otherwise.

bool cowl_is_data_range(CowlAny *object)

Checks whether the specified object is a data range.

Parameters:
  • object – The object

Returns:

True if the object is a data range, false otherwise.

CowlIRI *cowl_get_iri(CowlAny *object)

Returns the IRI of the object, if it is identified by one.

Parameters:
  • object – The object.

Returns:

IRI or NULL.

CowlString *cowl_get_ns(CowlAny *object)

Returns the namespace of the object’s IRI.

Parameters:
  • object – The object.

Returns:

IRI namespace or NULL.

CowlString *cowl_get_rem(CowlAny *object)

Returns the remainder of the object’s IRI.

Parameters:
  • object – The object.

Returns:

IRI remainder or NULL.

CowlVector *cowl_get_annot(CowlAny *object)

Returns the object’s annotations.

Parameters:
  • object – The object.

Returns:

The annotations, or NULL if the object has no annotations.

CowlString *cowl_to_string(CowlAny *object)

Returns the string representation of the specified object.

Note

You must release the returned object via cowl_release().

Parameters:
  • object – The object.

Returns:

String representation, or NULL on error.

CowlString *cowl_to_debug_string(CowlAny *object)

Returns a debug string representation of the specified object.

The debug string includes internal details such as the object’s address, type and reference count.

Note

You must release the returned object via cowl_release().

Parameters:
  • object – The object.

Returns:

String representation, or NULL on error.

bool cowl_equals(CowlAny *lhs, CowlAny *rhs)

Equality function.

Parameters:
  • lhs – LHS of the equality relation.

  • rhs – RHS of the equality relation.

Returns:

True if the equality relation holds, false otherwise.

bool cowl_equals_iri_string(CowlAny *object, UString iri_str)

Checks if the object has an IRI that matches the specified string.

Parameters:
  • object – The object.

  • iri_str – IRI string.

Returns:

True if the object has an IRI that matches the string, false otherwise.

bool cowl_is_reserved(CowlAny *object)

Checks whether the object is reserved, i.e.

if its IRI is in the reserved vocabulary.

Parameters:
  • object – The object.

Returns:

True if the object is reserved, false otherwise.

ulib_uint cowl_hash(CowlAny *object)

Hash function.

Parameters:
  • object – The object.

Returns:

The hash value.

bool cowl_iterate_primitives(CowlAny *object, CowlPrimitiveFlags flags, CowlIterator *iter)

Iterates over the primitives referenced by the specified object.

Parameters:
  • object – The object.

  • flags – Iteration flags.

  • iter – The iterator.

Returns:

True if the iteration was completed, false if it was stopped.

void cowl_release_all(...)

Releases the specified objects.

Parameters:
  • ... – The objects.

Object types

enum CowlObjectType

Represents the type of CowlObject.

Values:

enumerator COWL_OT_STRING

CowlString - String.

enumerator COWL_OT_VECTOR

CowlVector - Vector.

enumerator COWL_OT_TABLE

CowlTable - Hash table.

enumerator COWL_OT_IRI

CowlIRI - IRI.

enumerator COWL_OT_LITERAL

CowlLiteral - Literal.

enumerator COWL_OT_FACET_RESTR

CowlFacetRestr - Facet restriction.

enumerator COWL_OT_ONTOLOGY

CowlOntology - Ontology.

enumerator COWL_OT_MANAGER

CowlManager - Ontology manager.

enumerator COWL_OT_SYM_TABLE

CowlSymTable - Symbol table.

enumerator COWL_OT_ISTREAM

CowlIStream - Ontology input stream.

enumerator COWL_OT_OSTREAM

CowlOStream - Ontology output stream.

enumerator COWL_OT_ANNOTATION

CowlAnnotation - Annotation.

enumerator COWL_OT_ANNOT_PROP

CowlAnnotProp - Annotation property.

enumerator COWL_OT_A_DECL

CowlDeclAxiom - Declaration.

enumerator COWL_OT_A_DATATYPE_DEF

CowlDatatypeDefAxiom - Datatype definition.

enumerator COWL_OT_A_SUB_CLASS

CowlSubClsAxiom - Subclass.

enumerator COWL_OT_A_EQUIV_CLASSES

CowlNAryClsAxiom - Equivalent classes.

enumerator COWL_OT_A_DISJ_CLASSES

CowlNAryClsAxiom - Disjoint classes.

enumerator COWL_OT_A_DISJ_UNION

CowlDisjUnionAxiom - Disjoint union.

enumerator COWL_OT_A_CLASS_ASSERT

CowlClsAssertAxiom - Class assertion.

enumerator COWL_OT_A_SAME_IND

CowlNAryIndAxiom - Same individual.

enumerator COWL_OT_A_DIFF_IND

CowlNAryIndAxiom - Different individuals.

enumerator COWL_OT_A_OBJ_PROP_ASSERT

CowlObjPropAssertAxiom - Object property assertion.

enumerator COWL_OT_A_NEG_OBJ_PROP_ASSERT

CowlObjPropAssertAxiom - Negative object property assertion.

enumerator COWL_OT_A_DATA_PROP_ASSERT

CowlDataPropAssertAxiom - Data property assertion.

enumerator COWL_OT_A_NEG_DATA_PROP_ASSERT

CowlDataPropAssertAxiom - Negative data property assertion.

enumerator COWL_OT_A_SUB_OBJ_PROP

CowlSubObjPropAxiom - Object subproperty.

enumerator COWL_OT_A_INV_OBJ_PROP

CowlInvObjPropAxiom - Inverse object properties.

enumerator COWL_OT_A_EQUIV_OBJ_PROP

CowlNAryObjPropAxiom - Equivalent object properties.

enumerator COWL_OT_A_DISJ_OBJ_PROP

CowlNAryObjPropAxiom - Disjoint object properties.

enumerator COWL_OT_A_FUNC_OBJ_PROP

CowlObjPropCharAxiom - Functional object property.

enumerator COWL_OT_A_INV_FUNC_OBJ_PROP

CowlObjPropCharAxiom - Inverse functional object property.

enumerator COWL_OT_A_SYMM_OBJ_PROP

CowlObjPropCharAxiom - Symmetric object property.

enumerator COWL_OT_A_ASYMM_OBJ_PROP

CowlObjPropCharAxiom - Asymmetric object property.

enumerator COWL_OT_A_TRANS_OBJ_PROP

CowlObjPropCharAxiom - Transitive object property.

enumerator COWL_OT_A_REFL_OBJ_PROP

CowlObjPropCharAxiom - Reflexive object property.

enumerator COWL_OT_A_IRREFL_OBJ_PROP

CowlObjPropCharAxiom - Irreflexive object property.

enumerator COWL_OT_A_OBJ_PROP_DOMAIN

CowlObjPropCharAxiom - Object property domain.

enumerator COWL_OT_A_OBJ_PROP_RANGE

CowlObjPropCharAxiom - Object property range.

enumerator COWL_OT_A_SUB_DATA_PROP

CowlSubDataPropAxiom - Data subproperty.

enumerator COWL_OT_A_EQUIV_DATA_PROP

CowlNAryDataPropAxiom - Equivalent data properties.

enumerator COWL_OT_A_DISJ_DATA_PROP

CowlNAryDataPropAxiom - Disjoint data properties.

enumerator COWL_OT_A_FUNC_DATA_PROP

CowlFuncDataPropAxiom - Functional data property.

enumerator COWL_OT_A_DATA_PROP_DOMAIN

CowlDataPropDomainAxiom - Data property domain.

enumerator COWL_OT_A_DATA_PROP_RANGE

CowlDataPropRangeAxiom - Data property range.

enumerator COWL_OT_A_HAS_KEY

CowlHasKeyAxiom - Has key.

enumerator COWL_OT_A_ANNOT_ASSERT

CowlAnnotAssertAxiom - Annotation assertion.

enumerator COWL_OT_A_SUB_ANNOT_PROP

CowlSubAnnotPropAxiom - Annotation subproperty.

enumerator COWL_OT_A_ANNOT_PROP_DOMAIN

CowlAnnotPropDomainAxiom - Annotation property domain.

enumerator COWL_OT_A_ANNOT_PROP_RANGE

CowlAnnotPropRangeAxiom - Annotation property range.

enumerator COWL_OT_CE_CLASS

CowlClass - class.

enumerator COWL_OT_CE_OBJ_SOME

CowlObjQuant - “some values from” object property restriction.

enumerator COWL_OT_CE_OBJ_ALL

CowlObjQuant - “all values from” object property restriction.

enumerator COWL_OT_CE_OBJ_MIN_CARD

CowlObjCard - “minimum cardinality” object property restriction.

enumerator COWL_OT_CE_OBJ_MAX_CARD

CowlObjCard - “maximum cardinality” object property restriction.

enumerator COWL_OT_CE_OBJ_EXACT_CARD

CowlObjCard - “exact cardinality” object property restriction.

enumerator COWL_OT_CE_OBJ_HAS_VALUE

CowlObjHasValue - “has value” object property restriction.

enumerator COWL_OT_CE_OBJ_HAS_SELF

CowlObjHasSelf - “has self” object property restriction.

enumerator COWL_OT_CE_DATA_SOME

CowlDataQuant - “some values from” data property restriction.

enumerator COWL_OT_CE_DATA_ALL

CowlDataQuant - “all values from” data property restriction.

enumerator COWL_OT_CE_DATA_MIN_CARD

CowlDataCard - “min cardinality” data property restriction.

enumerator COWL_OT_CE_DATA_MAX_CARD

CowlDataCard - “max cardinality” data property restriction.

enumerator COWL_OT_CE_DATA_EXACT_CARD

CowlDataCard - “exact cardinality” data property restriction.

enumerator COWL_OT_CE_DATA_HAS_VALUE

CowlDataHasValue - “has value” data property restriction.

enumerator COWL_OT_CE_OBJ_INTERSECT

CowlNAryBool - Intersection of class expressions.

enumerator COWL_OT_CE_OBJ_UNION

CowlNAryBool - Union of class expressions.

enumerator COWL_OT_CE_OBJ_COMPL

CowlObjCompl - Complement of a class expression.

enumerator COWL_OT_CE_OBJ_ONE_OF

CowlObjOneOf - Enumeration of individuals.

enumerator COWL_OT_DPE_DATA_PROP

CowlDataProp - Data property.

enumerator COWL_OT_DR_DATATYPE

CowlDatatype - Datatype.

enumerator COWL_OT_DR_DATATYPE_RESTR

CowlDatatypeRestr - Datatype restriction.

enumerator COWL_OT_DR_DATA_INTERSECT

CowlNAryData - Intersection of data ranges.

enumerator COWL_OT_DR_DATA_UNION

CowlNAryData - Union of data ranges.

enumerator COWL_OT_DR_DATA_COMPL

CowlDataCompl - Complement of data ranges.

enumerator COWL_OT_DR_DATA_ONE_OF

CowlDataOneOf - Enumeration of literals.

enumerator COWL_OT_I_ANONYMOUS

CowlAnonInd - Anonymous individual.

enumerator COWL_OT_I_NAMED

CowlNamedInd - Named individual.

enumerator COWL_OT_OPE_OBJ_PROP

CowlObjProp - Object property.

enumerator COWL_OT_OPE_INV_OBJ_PROP

CowlInvObjProp - Inverse object property.

enumerator COWL_OT_COUNT

Number of enum values.

enumerator COWL_OT_FIRST

First enum value.

enumerator COWL_OT_FIRST_A

First axiom type.

enumerator COWL_OT_LAST_A

Last axiom type.

enumerator COWL_OT_FIRST_CE

First class expression type.

enumerator COWL_OT_LAST_CE

Last class expression type.

enumerator COWL_OT_FIRST_OPE

First object property expression type.

enumerator COWL_OT_LAST_OPE

Last object property expression type.

enumerator COWL_OT_FIRST_I

First individual type.

enumerator COWL_OT_LAST_I

Last individual type.

enumerator COWL_OT_FIRST_DR

First data range type.

enumerator COWL_OT_LAST_DR

Last data range type.

UString cowl_object_type_to_ustring(CowlObjectType type)

Returns a human-readable string representation of the specified object type.

Note

You must not modify or free the returned string.

Parameters:
  • type – Object type.

Returns:

String representation, or NULL on error.

CowlString *cowl_object_type_to_string(CowlObjectType type)

Returns a human-readable string representation of the specified object type.

Note

You must release the returned object via cowl_release().

Parameters:
  • type – Object type.

Returns:

String representation, or NULL on error.

Placeholder types

These types are used throughout the API anywhere any pseudo-subclass of the specified type is accepted. Note that they are just a hint to the programmer, as they are not enforced at runtime. Passing incompatible objects is undefined behavior.

typedef void CowlAny

Placeholder for any CowlObject.

typedef void CowlAnyAnnotValue

Placeholder for any CowlAnnotValue.

typedef void CowlAnyAxiom

Placeholder for any CowlAxiom.

typedef void CowlAnyClsExp

Placeholder for any CowlClsExp.

typedef void CowlAnyDataPropExp

Placeholder for any CowlDataPropExp.

typedef void CowlAnyDataRange

Placeholder for any CowlDataRange.

typedef void CowlAnyEntity

Placeholder for any CowlEntity.

typedef void CowlAnyIndividual

Placeholder for any CowlIndividual.

typedef void CowlAnyPrimitive

Placeholder for any CowlPrimitive.

typedef void CowlAnyObjPropExp

Placeholder for any CowlObjPropExp.