Commit aa632f17 authored by Francisco Jesús Acién Pérez's avatar Francisco Jesús Acién Pérez
Browse files

adding projects

parent 035194df
---
layout: project
# Name of your project
title: BARMAS
# Short description of the project
subtitle: Bayesian ARgumentation Multi-Agent System
# When the project started
startDate: ~
# When the project finished
finishDate: ~
# State of the project
state: In progress
# Unique identifier of your project
id: ewetasker
github: https://github.com/gsi-upm/BARMAS
gitlab: ~
docs: ~
demo: ~
logo: ~
pypi: ~
docker: ~
# Uncomment the categories where your project fit in
categories:
- agent-and-social-simulation
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
# - Linked-Data-and-Semantic-Technologies
# - Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- networks-simulation
- Bayesian-reasoning
- Java
- Maven
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
Bayesian ARgumentation Multi-Agent System.
---
layout: project
# Name of your project
title: Big Tweet
# Short description of the project
subtitle: Agent-based social simulator for rumor spreading models and rumor control strategies in Twitter.
# When the project started
startDate: ~
# When the project finished
finishDate: ~
# State of the project
state: In progress
# Unique identifier of your project
id: big-tweet
github: https://github.com/gsi-upm/bigtweet
gitlab: ~
docs: https://github.com/gsi-upm/BigTweet/tree/master/documentation
demo: ~
logo: ~
pypi: ~
docker: ~
# Uncomment the categories where your project fit in
categories:
- agent-and-social-simulation
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
# - Linked-Data-and-Semantic-Technologies
# - Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- social-simulation
- twitter
- Java
- social-networks
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
BigTweet is an agent-based social simulator for rumor spreading models and rumor control strategies in Twitter with support for Big Data technologies.
![Screenshot](/projects/big-tweet/BigTweetGUI.png)
---
layout: project
# Name of your project
title: DrEWE
# Short description of the project
subtitle: Intelligent platform for task automation.
# When the project started
startDate: ~
# When the project finished
finishDate: ~
# State of the project
state: In progress
# Unique identifier of your project
id: drewe
github: https://github.com/gsi-upm/DrEWE
gitlab: ~
docs: ~
demo: ~
logo: ~
pypi: ~
docker: ~
# Uncomment the categories where your project fit in
categories:
- agent-and-social-simulation
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
# - Linked-Data-and-Semantic-Technologies
# - Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- ewe
- php
- semantic
- IoT
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
DrEWE is a task automation platform. It works in a similar way to [IFTTT](http://www.ifttt.com), [Zapier](http://www.zapier.com) or [CloudWork](http://www.cloudwork.com) but with a main big difference, the semantic approach. It uses a new ontology or standardized schema for managing the evented web named [EWE](http://www.gsi.dit.upm.es/ontologies/ewe/); the [Drools Expert](https://www.jboss.org/drools/) rule engine to process low level events and create high level events; [SPIN](http://spinrdf.org/) SPARQL Syntax to process this high level events and order actions; [GSN](http://sourceforge.net/projects/gsn/) middleware as an Event Network and a huge variety of scripts and applications that generates events and proccesses actions, such as Raspberry Pi scripts or Node.js applications.
![DrEWE intro](https://dl.dropboxusercontent.com/u/25002167/EWE%20repo/DrEWE%20full%20-%20DrEWE%20intro.png)
Another main feature that makes DrEWE different is the complex event processing. This means that rules are no longer *if this then that*, instead, DrEWE enables powerful features like after, during, before and coincides statements. For example, *if there is a programmed meeting for subjects A and B, and ten minutes before the meeting they both go into the laboratory: trigger the event 'meeting started' and perform all the necessary tasks, like tweet about it or take a photo to prove that the meeting is going on.*
### The semantic point
As we all know, a number of prominent web sites, mobile and desktop applications feature rule-based task automation. Typically, these services provide users the ability to define which action should be executed when some event is triggered. Some examples of this simple task automation could be “When I am mentioned in Twitter, send me an email”, “When I am within 500 meters from this place, check-in in Foursquare”, or “Turn Bluetooth on when I leave work”. We call them Task Automation Service (TAS). Some TASs allow users to share the rules they have developed, so that other users can reuse these tools and tailor them to their own preferences.
Task Automation is a rising area: recently lots of different web services and mobile-apps focus their business on this topic. Although the concept is not new, several changes on the state of technology support the success of these services and applications. Among them, the massive publishing of third-party APIs on the Cloud, providing access to their services is a key factor that unchained this mushrooming.
So, if all these task automation services could be standardized under the EWE ontology, we would have interoperability between each platform and we would find really interesting features, such as compatibility for task rules no matter the source, or a huge semantic database that will provide all the advantages that big data is bringing to our lives.
## Submodules
DrEWE consists of five main modules or projects that can be found under the subtrees of this project.
### [GCalendar-DrEWE](https://github.com/carloscrespog/GCalendar-DrEWE)
A Node.js module that simplifies the use of RESTful Google Calendar API without any interaction with the user, it retrieves all events on a given calendar and sends them to a GSN server. Before sending the events, it checks if it has already been added to the server.
This module only needs the Google Calendar credentials to be configured and once started, it will periodically make calls to the Google calendar API, collect the events and process them to insert in our events' network: GSN.
### [Berries-DrEWE](https://github.com/carloscrespog/DrEWE/tree/master/Berries)
This subtree contains Raspberry scripts and modules that communicate with GSN and/or SPIN to produce events, make actions and handle requests. Under this subtree we'll find the software needed to perform the following actions:
- Generate events when somebody inserts the Id card at the entrance of the laboratory, retrieving all the info and submitting it to GSN
- Take photos with a Raspberry camera board periodically or under request
- Serve these photos to the network via HTTP
- Generate periodically events with the current light value, so it is possible to know whether the light is on inside the laboratory.
### [GSN-DrEWE](https://github.com/carloscrespog/DrEWE/tree/master/GSN)
GSN is a middleware (extensible software infrastructure) for rapid deployment and integration of heterogeneous wireless sensor networks. In this project, we have implemented it as an Event Network. Under this subtree we only have committed the parts that differ from the main project and the instructions to make it work.
In DrEWE project, we use GSN as an event network that is a little bit different than the sensor network GSN used to be. Some features that an event network may have:
- **Accessible entry points:** for that purpose, we use the GSN remote push wrapper. This wrapper deploys an entry point via HTTP request PUT, so the modules in charge of generate events simply have to make this type of request and the events will be pushed into our event network.
- **Accessible exit points:** one of the main features of GSN, is that all the data can be retrieved, by default, via HTTP request from any point of the network by simple HTTP GET request that are detailed under the [GSN](https://github.com/carloscrespog/DrEWE/tree/master/GSN) subtree.
- **Timed database:** one of the features of events is that they are timed. By default, GSN provides a timestamp column for each type of data that it receives. This timestamp is used by the following modules (the rule engines) for complex event reasoning in order to provide extreme potential.
- **Directionable access:** this means that one application in the network is able to subscribe to one or more channels and retrieve only the information that it needs. For example, one application that only wants to know who enters the laboratory and doesn't care about the light level. Furthermore, this represents an abstraction layer for the next step: inserting the events into a CEP rule engine.
### [Drools-DrEWE](https://github.com/carloscrespog/DrEWE/tree/master/Drools)
This is the module in charge of processing events and ordering actions. It consists of two different rule engines that work together: the Drools-based engine and the SPIN-based engine. Each of them has a purpose and a reason to be here in DrEWE:
The Drools engine is a well known rule engine that provides Complex Event Processing thanks to its Fusion module. Although, once deployed this module comes with a software that automatically retrieve the data inside GSN and push it into Drools as timed events, enabling us to use all the powerful CEP features.
The SPIN engine is a bit tricky because the SPIN API itself only comes with an SPARQL inference module. That means that SPARQL inferences need to be run constantly over a semantic model and put that inferenced triples into a new model, check that model and act consequently. All this is implemented in this module and also represents the semantic approach of DrEWE task automation service, making a proficient use of the rdf [Apache Jena software](http://jena.apache.org/).
### [NodeEvented-DrEWE](https://github.com/carloscrespog/DrEWE/tree/master/NodeEvented)
This Node.js module is in charge of generating events and processing actions. It is connected with the Drools module and the GSN module. It provides several features that are detailed under this subtree.
It is written in Node and uses the main advantage of this modern programming language: the low latency. So once a rule is triggered under the Drools or SPIN engine, it only will take fractions of a second to perform high level actions such as posting a tweet, commanding the camera to take a picture or making the bot say something.
## Architecture
Under this diagram, you can see the DrEWE arquitecture at a glance
![DrEWE full](https://dl.dropboxusercontent.com/u/25002167/EWE%20repo/DrEWE%20full%20-%20DrEWE%20repo.png)
For a detailed explanation of each module, you can visit each subproject's repository by clicking in each folder of this repo or by clicking in the headings of the Submodules section.
---
layout: project
# Name of your project
title: Episteme
# Short description of the project
subtitle: Episteme UI developed with knockout.js
# When the project started
startDate: ~
# When the project finished
finishDate: ~
# State of the project
state: In progress
# Unique identifier of your project
id: ewetasker
github: https://github.com/gsi-upm/Episteme
gitlab: ~
docs: ~
demo: ~
logo: ~
pypi: ~
docker: ~
# Uncomment the categories where your project fit in
categories:
# - agent-and-social-simulation
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
- Linked-Data-and-Semantic-Technologies
- Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- semantic-web
- visualization
- Java
- Javascript
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
Episteme UI developed with knockout.js
---
layout: project
title: Ewetasker emotion aware automation platform
# Name of your project
title: Ewetasker
subtitle: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
# Short description of the project
subtitle: Emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules.
startDate: 2019-12-05
# When the project started
startDate: ~
# When the project finished
finishDate: ~
state: En progreso
# State of the project
state: In progress
# Unique identifier of your project
id: ewetasker
github: gsi-upm/ewe-tasker
gitlab: ewetasker/ewetasker
github: https://github.com/gsi-upm/ewe-tasker
gitlab: https://lab.gsi.upm.es/ewetasker/ewetasker
docs: http://ewetasker.readthedocs.io
demo: http://ewetasker.cluster.gsi.dit.upm.es/
logo: https://raw.githubusercontent.com/gsi-upm/ewe-tasker/master/www/img/ewetasker.jpg
......@@ -28,6 +34,7 @@ categories:
- Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- ewe
- pearl
......@@ -36,18 +43,33 @@ tags:
- semantic
- IoT
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
- sematch
- gsitk
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
- ewetasker-server
- ewetasker-webclient
# - ewetasker-server
# - ewetasker-webclient
---
EWE Tasker is an emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules. It is capable of enable semantic automation rules in a smart environment allowing the user to configure his own automation rules in an easy way. This platform is divided in two modules: Ewetasker Server module, and Ewetasker Web Client module.
EWE Tasker is an emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules. It is capable of enable semantic automation rules in a smart environment allowing the user to configure his own automation rules in an easy way. This platform is divided in two modules: Ewetasker Server module, and Ewetasker Web Client module.
EWE Tasker is an emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules. It is capable of enable semantic automation rules in a smart environment allowing the user to configure his own automation rules in an easy way. This platform is divided in two modules: Ewetasker Server module, and Ewetasker Web Client module.
EWE Tasker is an emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules. It is capable of enable semantic automation rules in a smart environment allowing the user to configure his own automation rules in an easy way. This platform is divided in two modules: Ewetasker Server module, and Ewetasker Web Client module.
EWE Tasker is an emotion aware automation platform based on semantic ECA (Event-Condition-Action) rules. It is capable of enable semantic automation rules in a smart environment allowing the user to configure his own automation rules in an easy way. This platform is divided in two modules: Ewetasker Server module, and Ewetasker Web Client module.
Nowadays we are surrounded by smart devices whose goal is to make our lives easier. However, the configuration and the adaptation of them to the users becomes a problem when the number of involved devices increase. For this reason, Ewetasker provides a task automation platform for controlling and configurating smart devices.
![Ewetasker](ewetasker_intro.png)
## Ewetasker for users
Ewetasker web application provides an easy way to automate tasks in smart environments. Through its interface its is possible to parameterize the features of a smart device by creating channels following the EWE ontology.
Channels define devices which can generate Events (sensors), provide Actions (actuators) or both. Once having the channels, Ewetasker allows users to create automation rules. This rules are defined as an "Event-Condition-Action" (ECA) rules. When they are triggered by an event, Ewetasker generates a response with the corresponding Action.
To make the most out of Ewetasker, its neccesary to install the Ewetasker Android App. It allows to manage events and actions of channels like Bluetooth, WiFi or Presence. This smartphone application is available in Google Play store.
In this documentation we are going to introduce this framework, detailing the global architecture of the project and explaining each module functionality. Finally, we will make a tutorial to know its working and its functions since the installation until using it. A demo video about Ewetasker is available
[here](https://www.youtube.com/watch?v=k19_dF6LXCo&t=23s)
---
layout: project
title: GSI Crawler Semantic Framework
subtitle: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
# Name of your project
title: GSI Crawler
startDate: 2019-12-05
# Short description of the project
subtitle: Innovative and useful framework which aims to extract information from web pages enriching following semantic approaches.
# When the project started
startDate: ~
# When the project finished
finishDate: ~
state: En progreso
# State of the project
state: In progress
# Unique identifier of your project
id: gsicrawler
github: gsi-upm/gsicrawler
gitlab: gsicrawler/gsicrawler
github: https://github.com/gsi-upm/gsicrawler
gitlab: https://lab.gsi.upm.es/gsicrawler/gsicrawler
docs: http://gsicrawler.readthedocs.io/en/latest/
demo: http://gsicrawler.cluster.gsi.dit.upm.es/
logo: http://gsicrawler.readthedocs.io/en/latest/_static/logo-gsi-crawler.png
......@@ -24,15 +32,30 @@ categories:
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
# - Linked-Data-and-Semantic-Technologies
- Web-and-Service-engineering
- Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- ewe
- scraping
- luigi
- newspaper
- semantic-web
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
GSI Crawler is an innovative and useful framework which aims to extract information from web pages enriching following semantic approaches. At the moment, there are three available platforms: Twitter, Reddit and News. The user interacts with the tool through a web interface, selecting the analysis type he wants to carry out and the platform that is going to be examined.
![Dashboard](crawler1.png)
---
layout: project
title: GSITK NLP machine learning driven projects
# Name of your project
title: GSITK
subtitle: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
# Short description of the project
subtitle: Scikit-learn library that eases the development process on NLP machine learning driven projects.
startDate: 2019-12-05
# When the project started
startDate: ~
# When the project finished
finishDate: ~
state: En progreso
# State of the project
state: In progress
# Unique identifier of your project
id: gsitk
github: gsi-upm/gsitk
gitlab: gsitk/gsitk
github: https://github.com/gsi-upm/gsitk
gitlab: https://lab.gsi.upm.es/gsitk/gsitk
docs: ~
demo: ~
logo: https://avatars0.githubusercontent.com/u/2894736?s=200&v=4
logo: ~
pypi: https://pypi.org/project/gsitk/
docker: ~
......@@ -28,15 +35,80 @@ categories:
# - Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- ewe
- sklearn
- pipelines
- preprocessing
- simon
- sentiment
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos:
# - ewetasker-server
# - ewetasker-webclient
---
gsitk is a library on top of scikit-learn that eases the development process on NLP machine learning driven projects. It uses numpy, pandas and related libraries to easy the development.
_gsitk_ is a library on top of scikit-learn that eases the development process on NLP machine learning driven projects.
It uses _numpy_, _pandas_ and related libraries to easy the development.
_gsitk_ manages datasets, features, classifiers and evaluation techniques, so that writing an evaluation pipeline results fast and simple.
## Installation and use
### Installation
_gsitk_ can be installed via pip, which is the recommended way:
```
pip install gsitk
```
Alternatively, gsitk can be installed by cloning this repository.
### Using _gsitk_
_gsitk_ saves into disk the datasets and some other necessary resources.
By default, all these data are stored in `/data`.
The environment variable `$DATA_PATH` can be set in order to specify an alternative directory.
## Feature extractors
### SIMON feature extractor
_gsitk_ includes the implementation of the SIMON feature extractor.
To use it, two things are needed:
- A sentiment lexicon
- A word embeddings model that is _gensim_ compatible.
For example, using only the lexicon from [Bing Liu](https://dl.acm.org/citation.cfm?id=1014073) and a [embeddings model](https://code.google.com/archive/p/word2vec/) that is in the current directory:
```python
from gsitk.features import simon
from nltk.corpus import opinion_lexicon
from gensim.models.keyedvectors import KeyedVectors
lexicon = [list(opinion_lexicon.positive()), list(opinion_lexicon.negative())]
embedding_model = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True)
simon_transformer = simon.Simon(lexicon=lexicon, n_lexicon_words=200, embedding=embedding_model)
# simon_transformer has the fit() and transform() methods, so it can be used in a Pipeline
```
To enhance performance, it is recommendable to use a more complete scikit-learn pipe that implements normalization and feature selection in conjuction with the SIMON feature extraction.
```python
from gsitk.features import simon
simon_model = simon.Simon(lexicon=lexicon, n_lexicon_words=200, embedding=embedding_model)
model = simon.simon_pipeline(simon_transformer=simon_model, percentile=25)
gsitk manages datasets, features, classifiers and evaluation techniques, so that writing an evaluation pipeline results fast and simple.
# model also implemtens fit() and transform()
```
---
layout: project
# Name of your project
title: Maia
# Short description of the project
subtitle: Evented and agent-oriented architecture platform.
# When the project started
startDate: ~
# When the project finished
finishDate: ~
# State of the project
state: In progress
# Unique identifier of your project
id: maia
github: https://github.com/gsi-upm/Maia
gitlab: ~
docs: ~
demo: ~
logo: ~
pypi: ~
npm: https://www.npmjs.com/package/maia
docker: ~
# Uncomment the categories where your project fit in
categories:
- agent-and-social-simulation
# - IR-and-Sentiment-Analysis
# - Big-Data-and-Machine-Learning
# - Linked-Data-and-Semantic-Technologies
# - Web-and-Service-engineering
# - Other-projects
# Some tags of your project such as programming language, topix, etc.
tags:
- Java
- nodejs
- agents
- MASON
# If your project inherit from other, or if it is very close to other project
# put here base file name of the other project. Ej: ewetasker.md -> ewetasker
related:
# - sematch
# - gsitk
# If your project has a demo, put here the base file name of the demo.
# Ej: ewetasker-server.md -> ewetasker-server
demos: