Menu ▾ ▴

jit

Damian Gessler

Just-In-Time Ontology Editor

What is the JIT?

The JIT is the Just-in-Time Ontology Editor at sswap.info/jit. It allows you to enter ontology terms and use them immediately in your semantic web services. The terms are hosted on our servers and available to anyone on the Web.

The JIT allows you to create, share, and use ontologies at SSWAP's "SSWAP meet" (get it?). Each ontology is designated with a namespace.

Note: Namespaces are case-sensitive; "treeGenes" is not the same as "treegenes." This is in conformance with Semantic Web standards that even though Web servers may perform case-insensitive mappings, URLs are case-sensitive.

Can anyone use the JIT?

Yes. Anyone can read any ontology by either using the JIT or visiting the term's Web address directly. Anyone can host/edit an ontology for which they have permission to edit by first signing-in to their iPlant account. When you sign-in, you can create a namespace which becomes a unique part of your ontology's Web address. As the namespace owner, you can assign and de-assign other iPlant users with WRITE or ADMIN permission on the namespace:

  • Everyone and anyone has READ permission.
  • WRITE permission implies READ permission, and additionally allows the user to add/edit/remove terms.
  • ADMIN permission implies WRITE permission, and additionally allows the user to add/remove other users' permissions.
Hint
  • Manage your namespaces under the Permissions tab of Your Account from the sign-in menu.
  • Don't see a user's name to which you want to add permission? Have them sign-in once, thenceforth their name will be available.
Can I use the JIT for any ontology?

Yes, though note that the JIT is especially designed for ontologies as used for semantic web services. That means that every term gets its own dereferenceable URL. There is no one single file that contains all terms.

This has two significant advantages for semantic web services:

  1. Terms can be dereferenced to their definitions on an as-needed, on-demand basis. No need to read in a large, multi-megabyte file just to use a few terms.
  2. SSWAP automatically accesses and dereferences terms as they are needed, including a "cascading closure" to dereference terms that are referenced by other terms. Closure is limited by time and byte counters so as to perform within the few seconds of a Web transaction.
Hint
You rarely, if ever, need to use owl:imports when defining terms in the JIT. In general, let SSWAP's algorithms and internal caching decide what terms need dereferencing.
What is a URL?
A URL is a 'Uniform Resource Locator' which is essentially a Web address, just like you type into your Web browser. In the Semantic Web, ontology terms are designated by URIs (Uniform Resource Identifiers), which include URLs. If your ontology terms do not have URIs, they cannot be used in SSWAP.

What is "dereferencing?"
Dereferencing means accessing a term with an HTTP GET, just as if you typed the term's URL into your browser's address bar. If you can GET your term by typing its URL into your browser's address bar, then it can be used by RESTful semantic Web services.
If I use the JIT, can I also use other ontologies?

Yes. Terms both within and outside of SSWAPMeet can be logically connected to other terms, for example with rdfs:subClassOf, rdfs:subPropertyOf, rdfs:domain, rdfs:range, etc. To use terms from other ontologies, simply reference the term in either the convenient prefix:term format (called a QName) or with its full URL.

If your external ontology term uses a '#' instead of a '/' in its URL, it is not possible under RFC 3986 Sec 3.5 for a web server to GET just that term; dereferencing the term will download the entire resource identified by the URL prior to the '#'. If the content at the URL is not W3C OWL RDF/XML, the content will not be used by SSWAP; if the content is too large (e.g., a multi-megabyte ontology file), it may not be suitable for transaction-time semantic web services. We are currently employing special legacy handling for BioPortal ontologies, with full reasoning support by Winter 2013. See also /modularize.
How do I define a term in the JIT?

Write the term's definition in JSON. The JSON syntax we use is not just a transliteration for the resulting OWL, but a shorthand for writing Type and Property definitions for semantic web services. See the HTTP API and especially /makeType, /makeProperty, and /JSONSyntax for examples and more information.

Hint
  • To start a new term, sign-in, then optionally create a namespace for a new ontology, or in the Navigation Section select an existing namespace for which you have WRITE permission.
  • Press the button on the root namespace to add terms or sub-directories.
  • To define a term, edit the default JSON template or copy/paste JSON from an existing term.
  • To extend a term with logical implications (e.g., rdfs:subClassOf, rdfs:subPropertyOf), select the parent term in the Navigation section and press .
  • Use the 'Add New Tab' button to add a tab; you can keep multiple terms from different namespaces open at the same time by managing each term in its own tab.
Why JSON?

Two reasons:

  1. JSON is easy, and is known by many more people than RDF/XML. Manual writing of RDF/XML is error prone and best left as a serialization generated and consumed by machines.
  2. It allows us to insert a translation layer. W3 RDF/XML is the "official" recommended serialization for OWL, thus it is our standard for machine-to-machine transactions. But for the ontologist it is too low level. In some cases, the logical implications of using rdfs:subClassOf, owl:equivalentClass, and other constructs can be non-intuitive, and a casual change in usage can have substantial repercussions for reasoning. By having JIT entries in JSON, our HTTP API can interpret JSON constructs and create the best suited RDF/XML serialization.

Why don't you use JSON-LD or RDF/JSON?
Our goal is not to make you learn OWL written in JSON. It is to help you concentrate on ontology terms, with just a little knowledge of OWL. So the JSON HTTP API offers a simple syntax with which to write and edit terms.

How do I publish a term on the Web?

After signing-in, you will see Translate and Publish buttons. The Translate button becomes active when a JSON description is edited; the Publish button becomes active when the JSON has been successfully translated into RDF/XML. Press the Translate button to translate your JSON into RDF/XML. Press the Publish button to publish your term on the Web. The term can be used immediately.

Note: Pressing your browser's Back or Refresh button will log you out. We will change this behavior in a future release.
How can I tell others about my ontology terms?

Every term has a Share icon for Twitter, Facebook, and Google+; just click and post.