LiFR, previously known as f-PocketKRHyper after the crisp reasoner it has extended, is a Lighweight Fuzzy semantic Reasoner, which for the purposes of the LinkedTV EU project is employed and extended to perform content and concept filtering based on semantic descriptions of a user profile and content items. It is released under the GNU LGPL.

Jump to:


LiFR Semantics and Syntax

LiFR Services in LinkedTV

Future Extensions

LiFR in LinkedTV demonstrator

LinkedTV concept and content filtering REST API






The algorithmic foundation of LiFR lies in the crisp reasoner it has extended: the Pocket KRHyper mobile reasoner. Thus it is a first-order model generating reasoner implementing the hyper-tableaux calculus. DL reasoning in Pocket KRHyper is performed through translating DLs axioms to first order clauses, as portrayed in the translation primitives of Pocket KRHyper. The original Description Logic (DL) interface provided by Pocket KRHyper was extended to support added semantics and fuzzy operators’ transformation into the native first order clausal implementation. 

LiFR has extended Pocket KRHyper to fuzziness and has made improvements on the original implementation efficiency-wise and with respect to disjunction handling. The first extension within CERTH, named then f-PocketKRHyper, was a J2ME application like its crisp predecessor. Since then, it was transformed to JavaSE with an interest in rendering it capable of multi-platform implementations, while maintaining the original implementation's principles of a lightweight and efficient algorithm, capable of performing reasoning services in limited resource devices, such as smartphones, tablets, set-top boxes etc.

The general inferencing services provided by LiFR are:

Extending Pocket KRHyper, LiFR’s default reasoning service consists in the generation of all models that satisfy the input fuzzy knowledge base, thereby providing native support for the computation of the global GLB, i.e the GLB for all combinations of individuals and concepts.

LiFR Semantics and Syntax

LiFR supports fuzzy DLP (f-DLP) semantics, except that as of yet fuzzy assertions are restricted to concepts only, with an added support for weighted concept modifiers, while role assertions are treated as crisp with an imposed membership degree of ≥ 1.0 .

f-DLP is the fuzzy extension of DLP, a tractable knowledge representation fragment, closely related to the OWL 2 RL profile, that combines classical DLs with Logic Programs (LP), thus combining ontologies with rules.  The crisp operations intersection, union and implication, are extended to fuzzy sets and performed by t-norm, t-conorm and implication functions respectively. The fuzzy set operations of LiFR follow the operators of Zadeh fuzzy logic.

LiFR Semantics

LiFR Semantics

LiFR's syntax follows a variant of the KRSS ontological notation. The choice of the implementation syntax is two-fold:

LiFR syntax

LiFR Syntax

Where C, D are concepts (classes), R, S are roles (object properties), a, b are individuals and d, w ∈ [0,1] denote the membership degree of a concept assertion and the modifier weight of a concept respectively. In case of crisp assertions a degree of  d ≥ 1.0 is imposed and respectively if no weight modifier is defined, a w of 1.0 is assumed.

Note that:

LiFR services in LinkedTV

LiFR has been ongoing work of CERTH-ITI through several past projects and for the purposes of LinkedTV it has been extended as a personalised and contextualised recommendation service to enable mainly:

Several other services have been employed within LinkedTV based on LiFR's basic inferencing services, like mappings retrieval within the LUMO mappings ontology and topic detection in semantic user and content profiles based on the LUMO ontology.

Regarding the main filtering service,  by appending information about a user’s preferences, formulated with formal semantics, based on a given domain ontology, LiFR can decide whether a given content item matches the user profile and to what degree, based on the fuzzy annotation metadata that accompany the content item and modified by the weight indicating the user’s level of preference to a concept.

Implementation of these services include:

To support filtering services, LiFR needs as input a reference domain ontology (within LinkedTV a dedicated ontology was developed to cover the networked media domain, namely LUMO), a semantic user profile and a set of semantic descriptions of content items to be considered for recommendation (the latter only for content filtering). Examples of user profiles and  content profiles in the KRSS variant syntax can be found in the supportive tool for semantic user profile construction developed within LinkedTV, Linked Profiler.

Future extensions

Additional extensions planned within LinkedTV include the extension of the reasoner's expressivity to cover the entirety of the OWL 2 RL profile and fuzzy role assertions. On the semantic filtering level for LinkedTV, several extensions are considered, like extending concept filtering with an option of a degree decay factor along each propagation step of the interests along the reference knowledge base and/or adding conditionals support in the inferencing logic.

LiFR in LinkedTV Demonstrator

A video demonstrator of the concept and content filtering services in the context of LinkedTV can be found here.

An online demo page, illustrating real-time content and concept filtering in the scope of LinkedTV, as well as topic detection within media content, using the LiFR reasoner, can be found here


Content and concept filtering REST API

LinkedTV content and concept filtering services via semantic reasoner are supported by a REST API, currently hosted on a CERTH-ITI server (base URI:

Content filtering

Invokes and returns the results of the process of filtering several content items based on a given user profile, i.e. a list of content items, ranked according to the estimated preference of the given user.

GET /api/content_filtering?uid={uid}


Concept filtering

Invokes and returns the results of the process of retrieving all concepts of interest to a user based on a given profile, i.e. an unranked (at the moment, future implementation will see to ranking it) list of concepts from a dedicated concept space onto which the given user's interests are propagated.

GET /api/concept_filtering?uid={uid}


 [{Degree":0.76,"Concept":"AND sports_club user_location"}],
 [{Degree":0.51,"Concept":"AND olympics athlete"}],


To be released soon.


For LiFR related issues, please contact dorothea [at] iti [dot] gr.

For LinkedTV related issues, please contact bmezaris [at] iti [dot] gr.