- 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`.
EntityContext
uri :: String fields :: Set<ContextField<VT>> values(ContextField<VT> field) :: Set<VT>
ContextField<VT>
uri :: String valueType :: Class<VT> weighted :: boolean <<additional metadata>>
Weighted
weight :: double
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
EntityContextProvider
boolean knowsEntity(Sugestion suggestion)
EntityContext getContext(Sugestion suggestion)
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
1. 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)
2. 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
3. Clerezza based
- `EntityContextProvider based on TripleCollection
- `EntityContext` based on GraphNode
4. Sesame based
5. Jena based
6. Blueprint/Tinkerpop based
- as this uses a property graph it could even support `Weighted`
- adperezmorales also used Tinkerpop for his Disambiguation engine (
STANBOL-1156)
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`.
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`.
This service will provide `EntityContext` information for Entities
EntityContextProvider boolean knowsEntity(Sugestion suggestion) EntityContext getContext(Sugestion suggestion)
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 ...)
1. Entityhub based
2. Lucene/Solr based
3. Clerezza based
4. Sesame based
5. Jena based
6. Blueprint/Tinkerpop based
STANBOL-1156)