Category: SemWeb

Final year projects for 2015/16

My projects this year will typically use a number of state of art technologies, including semantic web tools, NOSQL data stores and machine learning.  These technologies will support a number of highly adaptive and reactive project areas.

Intelligent Adaptive Advertising

A typical electronic advertising screen (in a shop window) will display advertisements at a particular place for a particular time period. This project will investigate how advertising can adapt to groups of people walking in front of a pervasive screen. Machine learning approaches will be used to determine the impact of changes (e.g. movement of the advertisement viewers). The project will utilise the Microsoft Kinect sensor to determine human positioning (infer context) and adapt the screen accordingly. The Kinect API will be used to gather data and Amazon’s cloud infrastructure will be used for predictive analytics.  How can motion capture and predictive analytics be used to optimise advertising?

Mobile Trading Environments
A number of financial markets exist that allow users to trade shares, currencies (FX), futures, options and bonds etc. (e.g. LMAX or TradeWeb). These markets typically rely on the matching of buyers with sellers or the real-time access to particular asset prices. This project will investigate how micro-markets can be initiated using mobile technology (e.g. Smart Phones). The project will require you to develop both client and server code to support trading users. Further experience of smart phone development will be gained, along with NOSQL data stores and messaging. A particular market or group of markets could be chosen by the student (e.g. a typical financial market or an advertising market). The project will start by choosing a novel micro market to address.

Haptic controlled Robotics

Controlling the environment using your own movement can have a number of benefits. This project will investigate how a mobile devices can be used to control a remote robot. This project could be undertaken by a two person team – one student focusing on the sensing and the other on the robot control. A number of sensors and mobile devices are available for use. The project will start with experimental work, identifying the sensitivity of the device and designing an associated event model. The project could use event processing, cloud and Web service technology.

Augmented Reality Educational Gaming
This project will investigate how one or more games came be used to extend the educational experience and environment. The educational context can be chosen by the student – primary, secondary, higher or other education. It is envisaged that the student will develop a game using Android and Google Cardboard APIs. How can games make novel use of the smart phone sensors? How could a game be used to help students joining a University at the start of year 1? How can gaming be used to test and simulate ideas (virtual lab or business)? One of more of these questions could form part of the project.  The project will start by focusing on the problem being addressed and experimenting with augmented reality glasses.

 Augmented Heritage Experience Applications

This project will investigate how smart phones can be used to interact with artistic or heritage content (typically supplied by museums).  The project will explore how content can be produced (by museum or artists) and then delivered to user in the physical environment (e.g. accessing a painting from where it was painted).  The mobile application should consider the multi-disciplinary user and provide innovative media tailed to the user.  The project will start by selecting the context (e.g. museum or art) and investigating current content.  New media could be created in tools such as Blender or Unity3D.

 Analysing public mood and emotion using social media

A number of academic papers have investigated the public mood or emotional state through the analysis of twitter feeds. Some have looked at the correlation to financial markets. This project will extend some of this work and look at mix of social media and markets. One use of such approach could be the prediction of the FTSE100 index. The project will involve the development of server based (web service or cloud) software that is able to read and analyse a number of data feeds – producing models of the source data and associated predictions. The project could (if the student is interested) also have a strong visualisation or semantic web component.

Agent based simulation using open data

This project will involve the construction of an agent based simulation model from one of the many open data sites (e.g. health, economic or traffic data) in order to predict a future state or states.  The project will need to use open data to build a simulation model using manual or automated approaches (such as clustering or classification).  The model will then be executed in a recognised simulation tool or within a student coded simulation model. The coded simulation model could be produced in a functional language such a Clojure (if you are interested in learning a new language).

Agent based hospital simulation using NFC/RFID data

This project will involve the construction of an agent based simulation model from a physical model of a hospital (build already and containing Phidget sensors) in order to predict future movement and/or optimise movement.  The project will use a physical model of Mount Vernon hospital to build a simulation model using manual or automated approaches (such as clustering or classification).  The model will then be executed in a recognised simulation tool or within a student coded simulation model. The coded simulation model could be produced in a functional language such a Clojure (if you are interested in learning a new language).

Advertisements

Playing with Sparql – proximity based service queries

Playing with SPARQL, after downloading Joseki and Protégé:

Steps 1 – Copied books.n3 (and an edited version newbooks.n3) to a web server (see From below):

PREFIX dc:      <http://purl.org/dc/elements/1.1/>
SELECT ?book ?title
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/newbooks.n3>
WHERE
  { ?book dc:title ?title }

Returns a book list!

Step 2 – Create a service list that uses DC – call this servicedc.n3

PREFIX dc:      <http://purl.org/dc/elements/1.1/>
SELECT ?service ?title ?creator
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/servicedc.n3>
WHERE
  { ?service dc:title ?title }

// Creator is empty?

Step 3 – change DB to UBIS (an OWL ontology) and use ServiceName Place

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?ServiceName
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?service ubi:ServiceName ?ServiceName
}

Step 4 – Display Place

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?ServiceName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?service ubi:ServiceName ?ServiceName .
    ?loc   ubi:Place       ?Place
}

Step 4 – Add a clause – place = IBM
 
PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?ServiceName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?service ubi:ServiceName ?ServiceName .
    ?loc   ubi:Place       ?Place
    FILTER regex(?Place, “IBM”)

}

// Odd – all places set to IBM – expecting only 1

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?ServiceName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?loc   ubi:Place  “IBM” .
    ?loc   ubi:Place  ?Place .
}

// This just returns IBM – getting nearer

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?ServiceName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?loc   ubi:Place  “IBM” .
    ?loc   ubi:Place  ?Place .
    ?loc ubi:ServiceName ?ServiceName .
}

// Now just to get the service name

Step 5 – Change Place to Object and Proximity (IBM Foyer, 80)

Data:

@prefix ubi:       <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#> .
@prefix ns:        <http://example.org/ns#> .
@prefix :          <http://example.org/services/> .

:service1
    ubi:CapabilityName  “getRates” ;
    ubi:Object     “Foyer” ;
    ubi:Proximity    50 ;
    ubi:Place                    “IBM” .
   
:service2
    ubi:CapabilityName “getRates” ;
    ubi:Object                 “Foyer” ;
    ubi:Proximity   30 ;
    ubi:Place                   “BBC” .
   
:service3
    ubi:CapabilityName “getRates” ;
    ubi:Object                “Trader1” ;
    ubi:Proximity  5 ;
    ubi:Place                  “MS” .

Query:

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?service ?CapabilityName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?loc   ubi:Place  “IBM” .
    ?loc   ubi:Object “Foyer” .
    ?loc   ubi:Place  ?Place .
    ?loc   ubi:CapabilityName ?CapabilityName .
    ?loc   ubi:Proximity ?Proximity .
    FILTER (?Proximity < 80) .

}

Step – Move Service Name, Object and Proximity as subclasses of Service concept class (& try some of above queries)

Worked with same sparql!

PREFIX ubi:        <http://people.brunel.ac.uk/~csstdjb/ontology/UBIS.owl#>
SELECT ?CapabilityName ?Place
FROM <http://people.brunel.ac.uk/~csstdjb/ontology/SSS.n3>
WHERE
{
    ?loc   ubi:Place  “IBM” .
    ?loc   ubi:Object “Foyer” .
    ?loc   ubi:Place  ?Place .
    ?loc   ubi:CapabilityName ?CapabilityName .
    ?loc   ubi:Proximity ?Proximity .
    FILTER (?Proximity < 80) .

}

This is the start of a paper I will be presenting as ESBE 2009 (at MCIS 2009).

Next – the old problem of selecting all that are either a specific class or its subclasses….