LSDIS > Projects > SemDis > API

Semantic Discovery: Discovering Complex Relationships in Semantic Web

A NSF Medium ITR project

The SemDis API is a simple yet flexible set of Interfaces that are intended to be a basis for implementations for RDF data access suitable for the type of algorithms being developed in the SemDis project.

Java Interfaces of SemDis API - Version 0.3

Java Implementation of SemDis API (main-memory, Version 0.5)

  • Compiled JAR for immediate use: semdisImpl_v0_5.jar
  • Source code: zipped ant project (note that various needed jar files would have to be placed in the 'lib' directory; the jar of semdisAPI, and other needed jar files: icu4j_3_0.jar, xercesImpl.jar, xml-apis.jar, jena.jar(v2.3), commons-logging.jar, commons-lang-2.1.jar)

Sample Code

  • Testing some of the methods after loading an ontology (instances+schema) Test_1.java, Compiling it from command line: javac -classpath semdisAPI.jar;jena.jar;semdisImpl.jar;. Test_1.java
    Running it from command line: java -classpath semdisAPI.jar; jena.jar;semdisImpl.jar; xercesImpl.jar; icu4j_3_0.jar;. Test_1
    (The code of Jena (v2.3) needed is ARP, contained in jena.jar)
  • Converter from an IOntologyModel to rdf/xml serialization RdfWriter.java

About SemDis API

  • In the SemDis project, processing of data is very focused on path, relationships, etc., which is reflected in this API. The design is based on clearly separating literals, instances, classes, and relationships.
  • Various aspects of BRAHMS RDF Store influenced the design of SemDis API. In fact, the undelying UML model is the same. Thus, this Java implementation can be used for quick prototyping and later ported into C++ Brahms implementation whenever loading large RDF datasets is required. Alternatively, the Java bindings of Brahms can be used as well.
  • Also: we have an implementation of SemDis API that 'wraps' the API of Semagix Freedom. Additionally, we have almost completed development of a few REST-like methods that provide access to RDF data in a very similar way to this API, in fact, it uses this Java implementation in the back-end. For availability of these tools, and other quetions/comments/feedback/etc, please contact Boanerges Aleman-Meza

DISCLAIMER: The code is provided as such. No guarantees are made in respect to its functionality and bug fixes will be solved depending according to current time limitations.


This material is based upon work supported by the National Science Foundation under Grant No. IIS-0325464 titled "SemDis: Discovering Complex Relationships in Semantic Web". Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.