Register

Get yourself a username and password. Registering is completely free. While you can actually use many of the tools, with an account you can save your designs, edit custom data attributes, submit data offers to the marketplace, and more.

Design your data

A system in Smart API can take one or more of the three basic roles: A Server, a Client or a Notifier.

The data handling in each role is can be done with your own code or with the help of the pre-programmed library which you can either download here or include in your favorite IDE using a software distribution tool.

Test your system

Once you have your system running, test it against the protocol tester to make sure everything is running smoothly.

How to find data and devices - the Smart API Find registry

Smart API Find is a central directory that helps parties find a suitable API, such as a service provider for a given task. The registry itself does not contain data nor proxies data, therefore there is no central location whose security could be compromised or that would become a bottleneck, applications can work also without it

What the registry however does is that it helps tremendously when two previously unknown parties need to find each other parties to connect to. Not only is the registry the key in finding someone, the data in the registry is sufficient for autoconfiguring the connection, making it possible to create automatic API code that "just works".

How the distributed architecture works

Smart API is has been designed to be distributed architecture. There is no central location for data, a broker or an aggregator. Compatible peers may connect to each other in any configuration they wish.

Data is linked together with IDs so that different parties can collect the data they need and organize and process it as the need arises. For example one algorithm may need data from several locations to make a calculation, the Smart API library helps in finding and fetching the data in real-time.

A central directory called the Registry helps in coordinating the effort. Each API registers itself to the Registry and in this process uploads a recipe of itself that describes the inputs and outputs available.

Clients can then make queries to the registry to discover services that are suitable for their needs. A connection is then made. Smart API offers security and identity services to support this process in such a way that access can be authorized automatically and securely.

1. Create an API with the help of provided tools and the SeasObjects library. See an example
2. Register the API to the central registry for others to find. See an example
3. Create a client that reads data from compatible APIs. See an example
4. Search for services with APIs from the registry to download data and control things. See an example

How to use linked data

Modern data driven businesses nowadays depend highly on data that is not just a static set of values but a dynamic pool of knowledge that can be further molded and refined by each application. A key concept required in this process is linking. One set of data may be valuable for one given use case while another dataset is good for another use, but when combined, their combination can offer dozens of new opportunities for business operations. From logistics to travel and from publishing to social networks, all recent sources of competitive advantage have originated from novel ways of combining large datasets.

Smart API is desined ground up for such operations. A key concept in every data item is the URI, a unique identifier that can be used to link data items with each other at various levels. In Smart API URI's are everywhere, even in small details like the unit of a single measurement. In this manner Smart API not only offers fine grained possibilities for linking but also data definitions that are unambiguous and can be used for precise calculations and deductions over the dataset.

For a developer, this may seem somewhat overwhelming at first. Why do I have to put a URI to that too? But the development tools and libraries make the process easy and hide the vast majority of the details that would otherwise make development work slow. And once in place, the extra definitions really pay off.

Download software

Smart API is available for development in the form of a library that handles all the details of the protocol. All you need to do is configure the object library as a part of your system and handle the objects it creates. The SeasObjects documentation gives you step by step instructions on how to do this in practice.

Choose the appropriate package below depending on the programming language and, if applicable, operating system you use.

Smart API for Java

Install with Maven

To automatically download and compile SeasObjects as a part of your project with Maven add Smart API as a dependency from our Maven repository located at http://maven.smart-api.io.

To add the repository into your Maven project file (pom) add the snippet shown here.

To add the dependency into the pom, use the snippet shown here.

If you use an IDE, you can also add the repository and the dependency with the graphical interface of the IDE. For instance on Eclipse,

  1. In Package Explorer view, double-click the pom.xml file under your project folder. This will let you copy-paste the this XML snippet into the pom.xml.
  2. Right-click your Maven project in the Project Explorer view > click Maven > Add dependency. Set com.asema.seas as Group Id, SeasObjects as Artifact Id and the version of SeasObjects you want to use as Version. Then click Ok and Save.

Install from source

Download the source and build it. Build instructions for ant are included in the package.

Download Java source

Smart API for .Net

Install from NuGet

In Visual Studio on the Solution Explorer of your project, right click your project and then choose "Manage NuGet Packages...". Under Browse type "SmartAPI", then and click on "install" once found.

Install from source

Download the source package and open it as a project in Visual Studio. Build and link as a dependency to your own project

Download C# source

Smart API for Python

Install with PIP

Either with admin (root) rights to your machine or in a Python virtual environment type pip install SmartAPI to automatically include the Smart API library to your Python installation from Python Package Index.

Note that if you use Python virtualenv, you must run pip in that virtualenv.

Install from source

Download the source package and extract it. Then run "python setup.py install"

Download Python source

Smart API for C++

Install from source

Download the source package and compile as a part of your project

Download C++ source

Contribute

The Smart API information model has since inception been a collaborative effort. If you have expertise in the areas illustrated by the pictures below, join the effort to make it even better.

Hover on the images to see how you can contribute to the development.

If you are already a contributor to the model or would like to register as one, you can enter the model portal from the link below.

Smart API Model and Contributor Portal

Standardization

Making the work officially approved

Model development

Data model extensions and additions

Library programming

Implementation of the code that actually runs this.

Demonstrations

Real-life rollouts, tests and proofs of concept.

Documentation

Guides for programming by using the ready-made libraries and for digging deep into the world of semantics.

SeasObjects Programmer Guide

September 7, 2017 version 1.0

A user guide to the software library that implements the datamodel. This is an essential tool for any developer who wants to do system integration with the data model.

Smart API RDF Guide

June 26, 2016 version 0.9

An introduction to Resource Description Framework, RDF. A good primer for anyone looking to work with semantic data.

Smart API Datamodel

July 2 26, 2016 version 1.1

An in-depth look at the semantic model that powers the data exchange. Targeted at those who need to extend the data exchange beyond the basic features of the software library.