f-PocketKRHyper
f-PocketKRHyper is a fuzzy semantic reasoner, which for the purposes of the LinkedTV EU project is employed 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:
Description
The algorithmic foundation of f-PocketKRHyper 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. Its expressivity lies within the tractable DLP fragment. f-PocketKRHyper has extended Pocket KRHyper to fuziness and has made improvements on the original implementation efficiency-wise and with respect to disjunction handling. Since its first extension, the original J2ME implementation was transformed back to JavaSE, while maintaining the original implementation's principles of a lightweight and efficient algorithm, capable of performing reasoning services in limited resource devices.
Within CERTH it has been extended to fuzziness (along with several other algorithmic optimizations), handling fuzzy concept assertions and weighted concepts. It currently supports:
- Fuzziness in concept assertions. Crisp semantics supported as assertions with degree ≥ 1.
- Crisp role assertions
- Weighted concepts
The general inferencing services provided by f-PocketKRHyper are:
- Subsumption
- Fuzzy entailment
The supported semantics can be found here.
f-PocketKRHyper recommendation services in LinkedTV
f-PocketKRHyper 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:
- Semantic matching of user profiles to multimedia content.
- Concept filtering via interest propagation over a dedicated personalisation-centric concept space.
Implementation of these services include:
- Adaptation to the LinkedTV knowledge space and extension to include instances in the user profile (instances were limited to semantic content descriptions).
- Refutation of content or concepts deemed as uninteresting to the given user, based on his profile-incorporated disinterests.
To support filtering services, f-PocketKRHyper needs as input a reference knowledge base (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). All the input is expressed in a variant of the KRSS ontological notation. Examples can be found in the supportive tool for semantic user profile construction developed within LinkedTV, namely 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 fragment (an extension of the DLP fragmet to OWL 2 expressivity) and fuzzy role assertions. On the semantic filtering level, concept filtering will be extended with an option of a degree decay factor along each propagation step of the interests along the reference knowledge base.
Demonstrator
A video demonstrator of the concept and content filtering services 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: http://160.40.50.224:8182/api/) until integrated onto the LinkedTV platform.
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}
- Description: GET /api/content_filtering?uid={uid}
- HTTP method: GET
- Content-Type: application/json
- URI: http://160.40.50.224:8182/api/content_filtering?uid={uid}
- Example of response:
{
"[{"Degree":"0.6723999999999999","URL":"www.example.org","cid":"silbermond_seed_content_chapter"}]",
"[{"Degree":"0.6723999999999999","URL":"www.example.org","cid":"stilbruch_20120322_silber_m"}]",
"[{"Degree":"0.6723999999999999","URL":"www.example.org","cid":"silbermondclubconzert"}]",
"[{"Degree":"0.6051599999999999","URL":"www.example.org","cid":"radioberlin_silbermond"}]",
"[{"Degree":"0.6051599999999999","URL":"www.example.org","cid":"www_silbermond_de"}]",
"[{"Degree":"0.6051599999999999","URL":"www.example.org","cid":"radioberlin_silbermond_eine"}]"
}
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 list of concepts from a dedicated concept space onto which the given user's interests are propagated.
GET /api/concept_filtering?uid={uid}
- Description: GET /api/concept_filtering?uid={uid}
- HTTP method: GET
- Content-Type: application/json
- URI: http://160.40.50.224:8182/api/concept_filtering?uid={uid}
- Example of response:
{
[{Degree":1.00,"Concept":"location"}],
[{Degree":0.82,"Concept":"agent"}],
[{Degree":1.00,"Concept":"intangible"}],
[{Degree":0.82,"Concept":"music_organization"}],
[{Degree":0.76,"Concept":"AND sports_club user_location"}],
[{Degree":1.00,"Concept":"person"}],
[{Degree":1.00,"Concept":"sports_club"}],
[{Degree":0.68,"Concept":"lifestyle_leisure"}],
[{Degree":0.68,"Concept":"leisure"}],
[{Degree":1.00,"Concept":"user_dimensions"}],
[{Degree":1.00,"Concept":"sports_event"}],
[{Degree":0.68,"Concept":"recreation"}],
[{Degree":1.00,"Concept":"context_dimensions"}],
[{Degree":0.51,"Concept":"AND olympics athlete"}],
[{Degree":1.00,"Concept":"spatio-temporal"}],
[{Degree":1.00,"Concept":"athlete"}],
[{Degree":0.68,"Concept":"crafting"}],
[{Degree":1.00,"Concept":"sports_agent"}],
[{Degree":0.82,"Concept":"band"}],
[{Degree":1.00,"Concept":"olympics"}],
[{Degree":0.68,"Concept":"hobby"}],
[{Degree":1.00,"Concept":"event"}],
[{Degree":0.68,"Concept":"topics"}],
[{Degree":1.00,"Concept":"sports_organization"}],
[{Degree":1.00,"Concept":"domain_dependent_dimensions"}],
[{Degree":0.54,"Concept":"weather"}],
[{Degree":1.00,"Concept":"user_location"}],
[{Degree":0.82,"Concept":"organization"}],
}
Downloads
To be released soon.