1. About

GeniUS is a generic topic and user modeling library for the Social Semantic Web that enriches the semantics of social data and status messages particularly. Given a stream of messages, it allows for generating topic and user profiles that summarize the stream according to domain- and application-specific needs which can be specified by the requesting party.

2. Architecture of GeniUS

GeniUS is a generic library for topic and user modeling on the Social Semantic Web. Given textual user-generated content, GeniUS constructs semantic profiles that summarize the content of unstructured user data. With GeniUS, we aim to

GeniUS is composed of four sequential modules, which process the given Social Web content to construct the profile. It consists of the Item Fetcher, Enrichment, Weighting Function, and RDF Serialization. Moreover, there are means for customizing the profile construction based on the demands of the application that is using GeniUS to obtain profiles: Modeling Configuration and Filter. The figure below illustrates the architecture of GeniUS

3. Quick start for using GeniUS

We release GeniUS as alpha version for Java developers, who would like to test the user modeling strategies discussed in our paper: Generic User Modeling Library for the Social Semantic Web (alpha version) You can test the library on the dataset that we provide (See datasets)


Code Example Construct a domain specific user profile using semantic filtering functionality

List userIds = new ArrayList();
//select user for whom GeniUS constructs the user profile:
List queries = new ArrayList();
//specify a SPRQL query that filter out the concepts not related to DBPedia entity type: Software:
String sparql = "SELECT DISTINCT ?x WHERE {"
+ " ?x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Software>}";
queries.add(new QueryImpl(SpotlightUtility.DBPEDIA_SPARQL, sparql));
// specify the filter
Filter filter = new PriorFilterImpl(userIds, queries);
//specify the Item Fetcher to get data from local repository:
ItemsFetcher itemsFetcher = new ItemsFetcherFromDB(filter);
//specify the Enrichment method. We use SpotLight in this case:
Enrichment enrichment = new SpotlightEnrich(filter);
//adopt Term(Concept) Frequency as the weighting function:
WeightFunction weightScheme = new TF();
//specify the GeniUS configuration
GeniusConfiguration gConf = new GeniusConfiguration("genius-test-simple", weightScheme, enrichment, itemsFetcher);
//Construct the user profile
GenericModelingStrategy modelingStrat = new GenericModelingStrategy(gConf);
Map profile = modelingStrat.getProfile(gConf).getInterestsProfile();

4. Datasets

For analysis and experiments, we monitored 73 Twitter users of the Social Handle Archive (SoHArc) over a period of more than six months (from January 1st 2011 to July 7th). The dataset is available upon request.