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
Java Interfaces of SemDis API - Version 0.3
Java Implementation of SemDis API (main-memory, Version 0.5)
Compiled JAR for immediate use:
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)
Testing some of the methods after loading an ontology
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
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
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.