Facebook to Semantic Web

In the focus of my Context Computation Algorithm I have used the Friend of a Friend (FOAF) Ontology to extract the context information. That was fine for myself, because I have a pretty complete FOAF file that is public available, but a hurdle if the algorithm should work for generic end users. For this reason I have developed a small Facebook App that extracts the profile information to FOAF and the Wall entries to SIOC. Although it is a quick hack and not a nice planned software, it works pretty well and could directly used by the context computation algorithm and the Android FOAF Viewer. It is also published in the Facebook App Directory. If the interest in the App grows I consider to improve it and provide an API for third party software use.

Facebook FOAF Generator: No Storage, No Logging, No Temporary Files



Fork me on GitHub
Posted in Uncategorized

Mikrokopter Project – Codename “Sigimera”

As you may know, if you follow the activity of Networld, our projects are fast changing and mainly only proof-of-concepts or projects with the purpose to improve the skills of the members. More general speaking we have a wide range of started project that are not really finished.

Now we have another great looking project… it is all about autonomous drones. On the base of the mirkokopter.de chipsets we fiddle on a Quadrokopter Prototype that final purpose should be to find human beings in crisis areas (e.g. after snow-slides or earthquakes).

The role of Networld is to develop a ground station that is able to evaluate the gained raw data, classify them and decide how to coordinate the helper on the ground and support them with useful information (e.g. picture of the ground, hotspots where hurt people are, …). As you can see on mikrokopter.de the hard- and software of the Quadrokopter is pretty good working. That allows as to focus on more higher level parts such as reasoning on the base of real time information from the drone. As reference platform we will use a Android Client (Smartphone and later maybe a Tablet) that allows us to control the Quadrokopter manually and in a later step semi-automatic.

In my eyes it is not a total new project from our perspective. As in our “Future House” project the main component is the context evaluation and the meaningful reasoning on this gained data. That means before we can work on a smart home or drone we have to focus the context handling part and build than on the base of the developed algorithms and implementation the software that suites for the concrete scenario.

Sometimes you have to make a detour to reach your goal.



Posted in Development, Future House, Mikrokopter, Mobile Devices, Networld, Research Tagged , ,

FOAFViewer – Current Version v0.10

The v0.10 of the Android FOAFViewer exists now for approximately 6 months, but I have never presented here. The only blog entry about the FOAFViewer is the very first, very trivial and ugly prototype. So lets start with a short feature overiew:

  • Cleaner Interface.
  • Recursive Iteration over the friend relationships.
  • Caching mechanism (not the images) for offline view of your FOAF profile and that of your friends.
  • Location visualization with one click.
  • Share your FOAF link over all supported channels that are able to share text (e.g. bluetooth, short message, email, …)
  • Link to further information for the interests
  • Make a phone call directly from the application (starts the dialer app)
  • Fixed bug with Froyo 2.2
  • Not supported yet (very buggy) is the ability to add a FOAF profile to your contacts.

FOAFViewer Mainscreen

FOAFViewer Profile

Project Website: with more screenshots, installation package, more information…
Sourcecode: repos



Posted in Development, Mobile Devices, Semantic Web Tagged , , ,

Future House: Splitting the project into subparts

Through the complexity of the “Future House” framework the project was split into three sub projects:

  • PCA (Personal Cyber Agent): The central control unit that is responsible for the smartness and information gathering/evaluation.
  • Identity ProviderA central identification framework that should manage the authorization/authentication of all agent that are related to a environment (such as the house).
  • Mobile Drone: On the base of a mikrokopter we are planning to build a semi-automatic drone that could be used for different tasks (e.g. communication, surveillance, …). This drone should be controlled by the PCA.

At the moment the Identity Provider, shortly IdP, is developed on the base of the SAML2 specification. The purpose of this component is to track user in the domestic environment to enrich the context information with real time information about the agents and there behaviour. The gained information are only saved in the local repository without connection to the outside world. Additional to assure no information leak the connection are secured with TLS and X.509 certification (the same implementation as used for the personal cyber agent).



Posted in Future House, Research Tagged , , , ,

Future House Project – Component: Personal Cyber Agent

During the last few days our team has worked on the idea of smart home technology (intelligence seams to be a too strong term at the moment). Our approach covers the higher level control of low level systems, such as light intensity, temperature, device data and other user context information gained from the house scenario. Concrete that means we work on a central control unit that is able to collect all relevant data, evaluate and classify them and reason about it. The concrete scenarios are not quiet clear at the moment, but there is a intensive ongoing discussion about it what we are able to do with the current technology. The used technology is the LOD model (Linked Open Data) in combination with the own, house intern, semantic data sets. If needed (not sure at the moment) RDF/OWL is extended with other, more powerful, ontologies.

The current sub project of the “Future House” project is called “Personal Cyber Agent”, shortly pca. The main goal of this component is to collect the data and to perform reasoning steps to automatically react on user preferences. The current focus is to build a stable base software system that is able to collect and return the information in a suitable and secure manner. For this purpose the underlying communication layer uses the SOAP protocol specification in combination with RDF/OWL data and WS-Security (WSSE). Through high security needs the authentication, authorization and encryption, signature is build on the base of X.509 certificates.

The achieved goals sounds at the moment very naive in relation with the major goal, but the current work is used as base system for all future development. With the help of the modular architecture it should be very flexible for extension. That makes the reasoning part independent from the underlying technology, such as KNX (EN 50090, ISO/IEC 14543).

PCA – Source Code



Posted in Artificial Intelligence, Future House, Research Tagged , , , ,

Secure, Hidden and Intelligent Communication in the area of Semantic Web.

During my work in the last few days I have begun to write a security framework that hides the complexity of WS-Security on the base of SOAP. The work has inspired me to think about possible use cases that are go behind the securing of simple web services. One such approach that comes in mind is the creation of an intelligent and secure instant messaging on the base of WS-Security, SOAP and Linked Open Data. The approach is nothing new (see SILC protocol), but the underlying technology allows to optimize such a newly created protocol with intelligent reasoning features such as:

  • Conversation Analysis: With the help of semantic annotation the conversation between two or more person could be analyzed. For example: What is the thematic of the talk? Who talks with whom?. On the base of this information helper modules could provide useful services, such as a link to the problem solution if the conversation tries to solve some problems or more detailed information about the other person (link to FOAF files!?!).
  • Pretending Conversation: The unencrypted part could be pretend a talk and the SOAP message could piggyback the real, sensitive conversation in encrypted form. The pretending of a talk is possible through the conversation analysis of previous talks. So a useful conversation could simulated.

These two categories are only two of a lot of new possibilities that could be gained by a semantic annotated and secured chat protocol. The idea may triggers problems through the practical implementations but is worth looking into. The nice thing about such a protocol is the possibility to use well-known technology to improve the user experience.

For the SOAP Security Framework look at our git repository, also available in our maven repository. At the moment it’s only a wrapper around the WSS4J library that makes the handling of security features easier, but in the near future the library will be maybe expanded with useful gimmicks.



Posted in Research, Semantic Web Tagged , , , , ,

RFID Two Way Access Control System

On the base of the SmartCard Handler library I have development a simple access control system. The major idea behind the library is that additional to the UID (that should be unique for each card) a SHA-512 hash value of a random generated passphrase is stored on the card. For the developing I use Mifare 1K card and as reader my HID Omnikey 5321v2.

The additional security effect is gained through the idea that not the card nor the server (computer with attached reader) has all information available in clear text.

The following information are stored on the entities:

  • Server: sha512(cardUID) and passphrase
  • Card: cardUID and sha512(passphrase)

The implemented library that uses the presented approach offers a method for the passphrase change. During the call a random generated token (random are not only the characters, but also the length) is written into the servers database and the SHA-512 hash value to the card. That makes it possible to change on every access (or from time to time) the passphrase.

The approach adds a additional layer of security to RFID authentication mechanism that is only base on the UID of the cards. Although I can not give a guarantee that the approach is under all circumstances secure. For example the random generate is only pseudo random and the database should be protected against intruder. Another point is that the whole system has to be implemented in a secure way. If the initiating of new card is public available for the user the whole mechanism breaks.

If you found a major security flaw on the approach (or on the implementation) please let me know. In the meantime the library is only a simple way yo protect non critical areas and a example how to use the SmartCard Handler.

Published as package in the SmartCard Library.



Posted in Development Tagged , , , , ,

SmartCard Handler – Java Library

SmartCard Handler, shortly named SCHandler, is a library that abstracts the handling of smart cards. The underlying code base uses the newly created package java.smartcardio.* (since SUN Java 1.6). Currently there are no dependencies of third part libraries. That makes the code very portable.

Precondition

On the Hardware site:

  • Smartcard Reader: I use a Omnikey 5321 USB that supports RFID (13.56 Mhz) and contact smart cards.
  • Contactless or contact smart card: I use Mifare 1K cards for RFID and the FSFE card (is a OpenPGP card) for contact smart card.

On the software site:

  • Java 1.6: During my tests the free implementation IcedTea6 had no support for the javax.smartcardio.* package.

Currently there is a very basic implementation for the Mifare1K and the FSFE card. The abstraction was implementation on the base of the specification, that is available for the two card types.

Source Code (GitWeb)



Posted in Development Tagged , , , , ,

Semantic Crawler Library

During my work over the last months I have written at least three times code that parses FOAF files. Always slightly different with different frameworks (Jena, Jaxen) on different platforms. Now I have decided to consolidate at least the parsing in a central library.

The library with the name Semantic Crawler or shortly scrawler should not only parse FOAF file but also the other main ontologies. It’s more a parser than a crawler.

Advantage

  • Able to skip the parsing step and use directly the class representation. Only needed the URL/IRI of the RDF file.
  • Easier use of Semantic Web Technology for Software Engineers and Programmer.
  • Easy to extend the parsing step.
  • OpenSource (as all stuff on this website)
  • More time for the essential parts of Semantic Web programs. For example: Reasoning

Interface Example

For the interface I have introduced Java Annotations to be able to generate from the object a RDF file. For this purpose there is not enough to store the raw data, but also the meta data how the sub tree has looked liked before the parsing.

A RDF file that represent the Java interface should look like the following example (only a excerpt with the data shown also in the interface):

The automatic transformation from Java Object to RDF with the help of the annotation is not written yet.

The Java Annotations describes at the moment only the classes and the properties. The implemented interface is only the first approach to handle efficiently the transformation from Java to RDF and back. The name value and the lat/long values are returned from the methods.

  • subNodeDeep:

Indicates how far the node is away from the root node (described by value). 1 (one) means that the subNode is a child, 2 (two) means that is the child of a child.

  • subNodeType/type:

The type that could be stored in this node. Possible values: RESOURCE, ROOTNODE, LITERAL, RESOURCE_LITERAL, UNDEFINED

  • ontoURI:

The URI to the ontology. Stored in the Ontolgies class.

Example for Programmers/Software Engineers

GIT WebAccess

The library is a maven project. The two important maven commands for the project are listed below:

  • mvn package

Creates the library as jar, the sources as jar and the JavaDoc as jar.

  • mvn site

Creates a website with useful information.

If you want to learn what ontologies are supported and what values you can gain from such a RDF file you should read the JavaDoc and/or look into the interface package to.networld.scrawler.interfaces. Is possible that not all interfaces have an implementation, but I am working on it.

Now to the interesting part. The following code reads out my Name from my FOAF file and prints it to the STDOUT. The following code is only an excerpt of the important part.

Looks easy? That was the intention to write a simple library that could be used in more complex and more interesting application.

Please feel free to contact me if you have question or improvements. I will try to answer or to fix it. And of course let me know in what application you use my library. And keep in mind that at the moment the best working parts is the parsing of FOAF files but I will for sure extend the library with other useful ontologies.



Posted in Semantic Web Tagged , , , , , , , ,

Semantic Dive Logbook – DiveDroid

Last week I have started a dive logbook for android phones on the base of my Scuba Dive Ontology. On the base of RDF files that looks similar than the following excerpt, the logbook shows the dives in a suitable form and interlinked with appropriate information and actions.

The URIs to the pictures are not really nice and bound to the device (path is written statically to the file). This is a compromise that I have made to assure that your dive informations are offline available and you don’t have to download it to a public space.

The following screenshots are taken from the first version and should give you a good overview how the application looks like.

Dive Collection List

Shows the dive collection that you have stored.

Dive Profile

A single dive profile



Posted in Mobile Devices, Semantic Web Tagged , , , , ,