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

Rupert Westenthaler edited comment on STANBOL-1183 at 10/21/13 1:29 PM:
------------------------------------------------------------------------

# Entity Disambiguation Context

Describes the disambiguation context known for an Entity. An `EntityContext` 
may have several `ContextField<VT>`. Those fields may represent different types 
of contexts (e.g. spacial, social, ...). An EntityContext defines values of 
type `<VT>` for a given `ContextField`. Optionally those values can be 
`Weighted`.

{code}
    EntityContext
        uri :: String // the URI of the entity
        fields :: Set<ContextField<VT>> //fields present in the context
        values(ContextField<VT> field) :: Set<VT>

    ContextField<VT>
        uri :: String // the property of the field
        valueType :: Class<VT> // the generic type of values
        weighted :: boolean  //if VT implements Weighted
        <<additional metadata>>

    Weighted /* used for values with weight */
        weight :: double //the weight
{code}

The value MUST BE available via the "toString() :: String" method of the 
`ContextField#valueType` property. This will allow valueType agnostic 
implementations. For simple implementations `java.lang.String` can be used as 
`valueType`.

# EntityContextProvider

This service will provide `EntityContext` information for Entities

{code}
    EntityContextProvider
        boolean knowsEntity(Sugestion suggestion)
        EntityContext getContext(Sugestion suggestion)
{code}

EntityContextProvider will also need to have some additional OSGI properties to 
allow engines to filter for them (e.g. a name). Properties might also be 
implementation specific (e.g. the Entityhub Site name ...)

# Possible Implementations

* Entityhub based
    * Entityhub Site based implementation of the `EntityContextProvider`
    * Entityhub Representation based implementation of the `EntityContext`
    * No support for `Weighted`possible
    * Entityhub Indexing Tool can be used to generate contexts. Especially 
LDPath can be very useful for the creation of those)
    * Also Yards backed by RDF triple stores could be used (Clerezza, Sesame)

* Lucene/Solr based
    * `EntityContextProvider` based on simple get requests. Provider needs to 
be configured with the ContextField#uri to Solr field name mappings.
    * SolrDocument based implementation of `EntityContext`
    * No support for `Weighted`possible

* Clerezza based
   * `EntityContextProvider based on TripleCollection
   * `EntityContext` based on GraphNode

* Sesame based
* Jena based

* Blueprint/Tinkerpop based
   * as this uses a property graph it could even support `Weighted`
   * [~adperezmorales] also used Tinkerpop for his Disambiguation engine 
(STANBOL-1156) 



was (Author: rwesten):
# Entity Disambiguation Context

Describes the disambiguation context known for an Entity. An `EntityContext` 
may have several `ContextField<VT>`. Those fields may represent different types 
of contexts (e.g. spacial, social, ...). An EntityContext defines values of 
type `<VT>` for a given `ContextField`. Optionally those values can be 
`Weighted`.

{code}
    EntityContext
        uri :: String // the URI of the entity
        fields :: Set<ContextField<VT>> //fields present in the context
        values(ContextField<VT> field) :: Set<VT>

    ContextField<VT>
        uri :: String // the property of the field
        valueType :: Class<VT> // the generic type of values
        weighted :: boolean  //if VT implements Weighted
        <<additional metadata>>

    Weighted /* used for values with weight */
        weight :: double //the weight
{code}

The value MUST BE available via the "toString() :: String" method of the 
`ContextField#valueType` property. This will allow valueType agnostic 
implementations. For simple implementations `java.lang.String` can be used as 
`valueType`.

# EntityContextProvider

This service will provide `EntityContext` information for Entities

{code}
    EntityContextProvider
        boolean knowsEntity(Sugestion suggestion)
        EntityContext getContext(Sugestion suggestion)
{code}

EntityContextProvider will also need to have some additional OSGI properties to 
allow engines to filter for them (e.g. a name). Properties might also be 
implementation specific (e.g. the Entityhub Site name ...) 

> Stanbol Disambiguation API
> --------------------------
>
>                 Key: STANBOL-1183
>                 URL: https://issues.apache.org/jira/browse/STANBOL-1183
>             Project: Stanbol
>          Issue Type: New Feature
>            Reporter: Rupert Westenthaler
>
> Module providing an API for implementing disambiguation enhancement engines.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to