Boost logo

Boost :

Subject: [boost] Proposal for semantic graph : Boost Mentors, please comment on it
From: Chinmaya Poswalia (chinmaya.poswalia_at_[hidden])
Date: 2010-03-31 08:45:54


*Need For Semantic Graph*

First thing I would like to mention is that semantic graph is not merely a
graph with links and nodes. It’s a graph in which nodes links can be of
different data types and similarly links. It's a graph of interconnected
things that is machine-understandable, its meaning or "semantics" can be
explicitly represented on any common database, just like its data. This is
the real way to make social networks, applications, libraries and
information/data open. Merely opening up their API's is just the first step.

Through it, applications can start using the functions and properties
written in other languages.

Since the Semantic Library makes data-integration easier, it will ultimately
be widely adopted and will cater most to the community. Simply put,
applications that wish to access or integrate data in the modern age can
more easily be done. That alone is reason enough to use this library.

Summarising the above

Ø Making data more accessible, connectable, and reusable across
applications would be a huge benefit.

Ø Ability to do more sophisticated reasoning across data.

Ø Applications in which its use can directly be seen is World Wide Web.

Please refer the above link for more detail.

http://novaspivack.typepad.com/nova_spivacks_weblog/2007/11/defining-the-se.html

http://www.signosemio.com/rastier/a_graphe.asp

*Project Proposal*

[dog] <- (ERG) <- [bite] -> (ACC) -> [man] <----------------------
Semantic Graph

Here dog, bite and man all are of different types and ERG and ACC are the
relations where

ERG -> *corresponds to the ergative case (the agent of an action)*

ACC-> to* the accusative case (the patient of an action, the one affected by
it)*

I am aiming to make the first steps towards the conceptualization and
formulation of Semantics Graphs for the Boost Graph Library (BGL).

*1) **Node Data Structure*

Node should have a container to store data and an array of functions whose
scope will be limited to only process the data of its own node and attached
links. These nodes can process their data individually and this
functionality would be defined by the functions which user would provide
through the array of functions and can transmit request for processing to
another nodes through links joined to them. Nodes will also contain the
pointer to all the links leaving it.

*2) **Link Data Structure*

Links apart from containing data it will contain some defined constants
whose actions value would be provided at the start time and should. These
constants would define the relation between the nodes it is connecting to.
Majorly relations would include of the following types like who is the agent
of action, who is the recipient of action, which is the proposed result of
the action, what is the final result, what is the beneficiary action and who
is the beneficent of the action, who is the comparing element and who is
being compared.

The following paper clearly states what semantic graph is mathematically.
http://www.revue-texto.net/Parutions/Livres-E/Hebert_AS/12.Semantic-Graph.pdf

*3) **Algorithms For Traversal of The Graph*

Here I want to state that I found a library for semantic graphs which is in
the CLI library. It can be obtained at

http://www.codesynthesis.com/~boris/tmp/cli/cli-0.0.2+dep.tar.bz2>

The basic algorithm of Traversal can be used but here since the nodes and
links are of different data types, this can be implemented with the help of
a void pointer. Once we reaches a node, we will mark it explore and the will
move to the links that leaves it. This will even provide the functionality
to enable us to find a link.

How knowledge will be represented and how what variables and functions need
to be implemented, these issues and their solution are clearly stated in the
following research paper.

http://www.edmondchow.com/pubs/SS105ChowE.pdf

An application of semantic sub-graph involving knowledge representation and
text summarisation is given in the following paper written under Microsoft
Research.

http://nl.ijs.si/isjt04/zbornik/sdjt04-05leskovec.pdf

Please note the fact that through this way, i think the space occupied by
the graph is minimal as it only depends on the containers used by the user.
We just used 3 pointers for linking the nodes.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk