Skip to content
Andruid Kerne edited this page May 29, 2014 · 10 revisions

Welcome to the BigSemanticsService wiki!

Big Semantics Service is a RESTful interface to the Meta-Metadata structured web semantics - in the form of XML or JSON.

You will need to set up a development environment.

Table of Contents

About

Meta-Metadata is a language and software architecture for representing the rich metadata structures of the world's information. It transforms the wild web into a structured type system and ontology of semantics facilitating extraction, manipulation, visualization and embodiment of the world's data.

The BigSemantics Service provides RESTful access to the powerful meta-metadata semantics system through HTTP requests, returning for JSON or XML representations of the meta/metadata resources.

Resource identification and request methods are described in the following sections.

The XML or JSON representations can be deserialized into a wide set of S.IM.PL. supported programming languages (Java / C# / Python, to name a few), thus greatly reducing the development effort and providing a platform agnostic framework for rich semantics based applications.

REST API Resources

The service is available on ecology-service.

The URI template for the requesting the resources is:
http://ecology-service.cs.tamu.edu/BigSemanticsService/resource.representation?url=source_url

  • resource : metadata or mmd
  • format : xml or json
  • source_url : percent-encoded url of the information source [1][2]
To get a metadata graph, the URI becomes:
http://ecology-service.cs.tamu.edu/BigSemanticsService/resource.representation?url=source_url&span=span
  • span : span of the linked metadata graph (breadth-first)
Meta-metadata can be requested with name parameter as well, if developer is aware of the same.
This is faster as the request is not redirected.
http://ecology-service.cs.tamu.edu/BigSemanticsService/resource.representation?name=mmd_name
  • mmd_name : name of the meta-metadata, as defined in the wrapper
Examples:
http://ecology-service.cs.tamu.edu/BigSemanticsService/metadata.xml?url=http://www.amazon.com/gp/product/B0050SYS5A/
http://ecology-service.cs.tamu.edu/BigSemanticsService/mmd.xml?url=http://ecologylab.net
http://ecology-service.cs.tamu.edu/BigSemanticsService/mmd.xml?name=document

Tutorial

A client for a RESTful service can be constructed in several possible ways. Few of them are listed here:

  • Jersey Client API [3]
  • Upcoming JAX-RS 2.0 [defining]
  • .NET Framework [4]
  • Using cURL or Wget
  • Or, using Web Browser as a client
An example code for accessing the service with the Jersey client:
Client c = Client.create();
c.setFollowRedirects(true);

WebResource r = c.resource(uri);
ClientResponse response = r.get(ClientResponse.class);

deserialization:

String entity = response.getEntity(String.class);
(Metadata)scope.deserialize(entity, StringFormat.XML);

A spec for the response code and message is available at spreadsheet. This specification applies to OODSS version of the semantic service as well.

Test Suite

A test suite is available at https://github.com/ecologylab/BigSemanticsService/tree/master/BigSemanticsService/test which contains meta/metadata test cases. They can be run individually or as a suite using the TestRunner by adding BasicTest references of the desired testcases.

The tests check for the response codes and the response message and in case of valid content, compare the meta/metadata to locally generated versions. A concurrent test runner would also be added to the suite.

Also see Perf Testing.

Admin

Administrator utilities include logger and deployment script.

Logs include the information of meta/metadata requests received, result and time taken. It will also include local document collection and DB cache information.

Ant script is provided for building and deploying the latest version to the main server. With sufficient privileges, it is possible to hot-deploy the latest version of the service just by executing the deploy target of this script. See Deployment for details.