Skip to content
carueda edited this page Jan 1, 2015 · 15 revisions

Some manual interaction

For specification and tests, see here.

Note: this is work in progress!

Start mongo if not already running, for example:

$ mkdir ~/orr-ont-base-directory/mongo-dbpath
$ mongod --dbpath ~/orr-ont-base-directory/mongo-dbpath

Start orr-ont:

$ cd orr-ont
$ ./sbt 'container:start'

Make sure /etc/orront.conf has the corresponding mongo connection parameters.

The interaction below in on the command line using httpie.

Users

Get users:

(if not already in the database, the 'admin' user is automatically created when orr-ont starts)

$ http get http://localhost:8080/user
HTTP/1.1 200 OK
Content-Length: 58
Content-Type: application/json;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

[
    {
        "registered": "2015-01-01T02:09:53Z",
        "userName": "admin"
    }
]

Create a user:

$ http -a admin:admin post localhost:8080/user userName=calvin firstName=Cal lastName=Vin password=hobbes
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=1las7tn57t38llnd5rl0hzw7g;Path=/
Transfer-Encoding: chunked

{
    "registered": "2015-01-01T02:14:29Z",
    "userName": "calvin"
}

Get all users:

$ http get http://localhost:8080/user
HTTP/1.1 200 OK
Content-Length: 116
Content-Type: application/json;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

[
    {
        "registered": "2015-01-01T02:09:53Z",
        "userName": "admin"
    },
    {
        "registered": "2015-01-01T02:14:29Z",
        "userName": "calvin"
    }
]

Organizations

Create an organization:

http -a admin:admin post localhost:8080/org orgName=mmi name="mmi project"  members:='["calvin"]'
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=1el864q41r9mt13dde2otjrbph;Path=/
Transfer-Encoding: chunked

{
    "orgName": "mmi",
    "registered": "2015-01-01T02:16:15Z"
}

Get all organizations:

$ http get localhost:8080/org
HTTP/1.1 200 OK
Content-Length: 76
Content-Type: application/json;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

[
    {
        "name": "mmi project",
        "orgName": "mmi",
        "registered": "2015-01-01T02:16:15Z"
    }
]

Get an organization:

$ http get localhost:8080/org/mmi
HTTP/1.1 200 OK
Content-Length: 74
Content-Type: application/json;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

{
    "name": "mmi project",
    "orgName": "mmi",
    "registered": "2015-01-01T02:16:15Z"
}

Ontologies

Register a new ontology:

$ http -a admin:admin -f post localhost:8080/ont uri=http://ont1 name=example orgName=mmi userName=calvin  file@src/test/resources/test.rdf format=rdf
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=dpof8q8qqolewrjh5pp0chiy;Path=/
Transfer-Encoding: chunked

{
    "registered": "2015-01-01T02:18:12Z",
    "uri": "http://ont1",
    "version": "20141231T181812"
}

Register a new version of the ontology above:

$ http -a admin:admin -f put localhost:8080/ont uri=http://ont1 userName=calvin file@src/test/resources/test.rdf format=rdf
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=rgxjr8i75wj21nfv0uqi7x0nf;Path=/
Transfer-Encoding: chunked

{
    "updated": "2015-01-01T02:22:56Z",
    "uri": "http://ont1",
    "version": "20141231T182256"
}
$ http get localhost:8080/ont
HTTP/1.1 200 OK
Content-Length: 82
Content-Type: application/json;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

[
    {
        "name": "",
        "uri": "http://ont1",
        "versions": [
            "20141231T182256",
            "20141231T181812"
        ]
    }
]

Get an ontology in N3:

http get localhost:8080/ont\?uri=http://ont1\&format=n3
HTTP/1.1 200 OK
Content-Length: 268
Content-Type: text/n3;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

@base          <http://ont1> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix myont: <http://localhost:8080/ont/myorg/myont/> .

<myont:hobbes>  a  <Character> .

<myont:calvin>  a        <Character> ;
        myont:hasFriend  <myont:hobbes> .

Post a self-hosted ontology:

A self-hosted ontology is simply one whose URI has the service URL as a prefix. For example, if the service is located at http://mmisw.org/ont/ then an ontology with URI http://mmisw.org/ont/myontology will be self-hosted.

http -a admin:admin -f post localhost:8080/ont uri=http://localhost:8080/ont/mmi/selfhosted name="self-hosted entry" orgName=mmi userName=calvin file@src/test/resources/test.rdf format=rdf
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=amzk4xmjpebu1q5blyayp5taa;Path=/
Transfer-Encoding: chunked

{
    "registered": "2015-01-01T02:26:18Z",
    "uri": "http://localhost:8080/ont/mmi/selfhosted",
    "version": "20141231T182618"
}

Get a self-hosted ontology (with direct request to its URL):

$ http get http://localhost:8080/ont/mmi/selfhosted
HTTP/1.1 200 OK
Content-Length: 310
Content-Type: application/rdf+xml;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

<?xml version="1.0" ?>
<rdf:RDF xmlns:myont="http://localhost:8080/ont/myorg/myont/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <Character rdf:about="myont:calvin">
        <myont:hasFriend rdf:resource="myont:hobbes"/>
    </Character>
    <Character rdf:about="myont:hobbes">
    </Character>
</rdf:RDF>

#### Get self-hosted ontology in a particular format:
$ http get http://localhost:8080/ont/mmi/selfhosted\?format\=n3
HTTP/1.1 200 OK
Content-Length: 297
Content-Type: text/n3;charset=UTF-8
Server: Jetty(8.1.8.v20121106)

@base          <http://localhost:8080/ont/mmi/selfhosted> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix myont: <http://localhost:8080/ont/myorg/myont/> .

<myont:hobbes>  a  <Character> .

<myont:calvin>  a        <Character> ;
        myont:hasFriend  <myont:hobbes> .

Change name of a version of an ontology:

$ http -a admin:admin -f put localhost:8080/ont uri=http://localhost:8080/ont/mmi/selfhosted version=20141231T182618 userName=calvin name="self-hosted entry (renamed)"
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=1169sqb2i02kyfvl5l0vith6i;Path=/
Transfer-Encoding: chunked

{
    "updated": "2015-01-01T02:26:18Z",
    "uri": "http://localhost:8080/ont/mmi/selfhosted",
    "version": "20141231T182618"
}

Unregister a particular ontology version:

$ http -a admin:admin delete localhost:8080/ont\?uri=http://ont1\&version=20141231T181812\&userName=calvin
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=1orei8lwy7odz4799is90nzia;Path=/
Transfer-Encoding: chunked

{
    "removed": "2015-01-01T02:31:12Z",
    "uri": "http://ont1",
    "version": "20141231T181812"
}

Unregister whole ontology entry:

(just omit the version parameter)

$ http -a admin:admin delete localhost:8080/ont\?uri=http://ont1\&userName=calvin
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
REMOTE_USER: admin
Server: Jetty(8.1.8.v20121106)
Set-Cookie: JSESSIONID=ioyndg7035sejynjtql99hih;Path=/
Transfer-Encoding: chunked

{
    "removed": "2015-01-01T02:32:25Z",
    "uri": "http://ont1"
}
Clone this wiki locally