[ 
https://issues.apache.org/jira/browse/STANBOL-1245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13852794#comment-13852794
 ] 

Rupert Westenthaler commented on STANBOL-1245:
----------------------------------------------

A current prototype (implemented by Sebastian Schaffert) separates the problem 
in two things (modules)

1. A RepositoryService: OSGI Bundle that includes all the required dependencies 
for the  Apache Marmotta Kiwi TripleStore. This module provide a 
KiwiRepositoryService with a getter for the Sesame Repository

2. A KiwiYardComponent: that depends on the KiwiRepositoryService, configures 
the existing SesameYard implementation (provided by STANBOL-1169) and register 
this instance as OSGI service.

This design nicely decouples specifics of different Sesame Repository 
implementations from the need of the SesameYard to consume a Repository 
instance. 

However this design still requires the KiwiRepositoryService interface to be 
shared between the two modules. By applying the principles of the OSGI 
Whiteboard Pattern this can get further improved. Applying this pattern to this 
problem would mean to get rid of the KiwiRepositoryService but instead directly 
registering a Sesame Repository Instance as OSGI service.

This would allow a SesameYardComponent to track registered Sesame Repository 
instances and therefore being totally independent from the modules that 
provides the Repository.

With this design the SesameYardComponent could be included directly in the 
module providing the SesameYard. In addition the SesameYardComponent could be 
used with any SesameRepository instance. 

The KiwiYardRepository would be also an OSGI component taking the necessary 
configuration (db_url, user, pwd, ...), initialising the Repository and 
registering it as OSGI Service.

The only thing that needs to be shared is the name of the OSGI property used to 
filter for SesameRepository instances. The suggestion is to use the class name 
of the Repository interface and appending ".name" to it. This would allow to 
configure a SesameYard just by providing the name of the repository.

As additional feature the SesameYardComponent could also allow to parse a user 
provided Filter string. This would allow to filter for any property but require 
users to know the Filter language used by OSGI (actually the LDAP filter 
language).


> Provide SesameYard for the Marmotta Kiwi Triplestore
> ----------------------------------------------------
>
>                 Key: STANBOL-1245
>                 URL: https://issues.apache.org/jira/browse/STANBOL-1245
>             Project: Stanbol
>          Issue Type: Sub-task
>          Components: Entityhub
>            Reporter: Rupert Westenthaler
>
> Provide a OSGI Component that allows to configure a SesameYard that uses the 
> Marmotta Kiwi Repository as Sesame Repository.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to