Using Social Network Analysis, Geotemporal Reasoning and RDFS++ Reasoning for Business Intelligence

Jans Aasman

This page describes a half day tutorial being conducted at the 2007 International Semantic Web Conference in Busan, Korea, November 11 - 15. This turorial is open to all members of the ISWC community. All tutorial participants must pay the ISWC2007 tutorial fee, as well as the conference registration fee.



Most of the attention in the Semantic Web world is currently focused on using ontologies, rdfs and owl reasoning to get more value out of enterprise data. Many enterprise databases are full of information about people, companies, relationships between people and companies, places and events.  The Semantic Web literature also carries the promise of analyzing networks of people, networks of companies and events in time and space. This tutorial will show how Business Intelligence problems can be solved with a combination of basic semantic web reasoning and complementary techniques such as social network analysis and geotemporal reasoning. For this tutorial we will be using AllegroGraph but the concepts learned will transfer to other Semantic Web solutions.

1 Introduction

The goal of this half-day tutorial is to provide people with the understanding of how to express queries that involve rdfs++ reasoning, geospatial primitives, temporal primitives and social network concepts. For this tutorial we will assume that the attendee has some introductory knowledge of RDF(S), geospatial concepts and social network analysis. The tutorial will be based on AllegroGraph. Attendees that bring their laptop will receive a version of the software that they can use to interactively work with the tutorial on their own.

2  Tutorial

2.1 Using a Triple Store

Adding and deleting triples, and the requirements for getting triples out of the triple store. The entire tutorial is centered around an example database that contains information about people, places, and relationships between people.

2.2 RDFS++ Reasoning

We also will show a less complete but more efficient RDFS++ reasoner that can work with really large amounts of data. In RDFS++ practice Business Intelligence is done over large numbers and there is need for more scalable reasoning.

2.3 RDF-Prolog

Using RDF-Prolog to make rules on top of the triple store and the reasoner. RDF and OWL are powerful in themselves, but for more complex Business Intelligence questions you need a rule-based language. We will show how to use RDF-Prolog.


This query language has become the standard for RDF and RDF triplestores. AllegroGraph's Sparql is actually working on top of both the RDFS++ reasoner and the RDF prolog.

2.5 Geotemporal Queries

Learn how to write simple Geotemporal queries. We will first show how to add longitudes, latitudes and time information in the triple store so that our geotemporal primitives will work the most efficient way. Then we will show how to use basic primitives such as spatial and temporal bounding boxes in queries.

2.6 Social Networking Algorithms

Learn how to apply Social Networking Analysis algorithms. AllegroGraph comes with a library of Social Networking Analysis algorithms; most of them are described in Social Network Analysis 1. We will show some examples of how to find relationships between people, compute the strengths of groups; etc. Typical algorithms that we will discuss are both classical search algorithms and particular social network algorithms. Examples are depth-first, breadth-first, bidirectional, best-first, A*, in-degree, out-degree, nodal degree, ego group selection, density, actor degree centralization, group degree centralization, actor closeness, group closeness centrality, actor betweenness, group betweenness centrality, and cliques.

2.7 Prolog with SPARQL

We will show how to combine all of the above with Prolog and Sparql. As an example:

(select (?x ?y)

   (qs AlGore controls ?x ? ?triple-id)           / RDFS++ inference

   (q EPA beliefs ?triple-id ?(> .8))             / Deification and Range Query

   (q ?x is-at ?p1 ?time1)                        / Direct triple look up, time is named G

   (after ?time1 "2007-03-31T0:0:0")              / Temporal primitive

   (ego-group ?x 2 ?group)                        / Social networking analysis primitive

   (member-of  ?y ?group)                         / Plain prolog

   (q ?y is-at ?p2 ?time2)                        / Direct triple look up, time is named G

   (geodist-less ?p1 ?p2 12 kilometers)           / Geospational primitive

   (tempdist-less ?time1 ?time2 24 hours))        / Temporal primitive


1.  Wasserman and Faust: Social Network Analysis.  2006

Copyright © 2023 Franz Inc., All Rights Reserved | Privacy Statement Twitter