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
- provide a flexible and extensible library that is able to serve different applications;
- produce semantically meaningful profiles to enhance the interoperability of profiles between applications;
- customize the construction of user profiles according on the information needs of different applications.
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:
userIds.add(6281952);
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.