Science Environment for Ecological Knowledge
Ecoinformatics site parent site of Partnership for Biodiversity Informatics site parent site of SEEK - Home
Science Environment for Ecological Knowledge









 

 

 



KRSMS Semantic Annotation Language

This is version 74. It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]


Intended audience

This document is intended for SEEK and Kepler developers. It is a DRAFT DESIGN DOCUMENT and does not reflect functionality as it currently exists in Kepler or SEEK. Comments and feedback are appreciated.

Introduction

This page describes an interchange syntax that can be used to express semantics types.

KR/SMS Semantic Types

A semantic type classifies and constrains the semantic, as opposed to structural interpretation of a resource. Datasets, actors (also known as services), and actor input and output ports are examples of resources that may have semantic types within SEEK.

A semantic type is expressed as a set of semantic annotations. A semantic annotation assigns objects of a resource a "meaning" via ontology expressions (that is, using ontology terms), thus serving to "link" or "glue" a portion of a resource to a portion of an ontology. In this way, the semantic interpretation of a resource (its semantic type) is built from the annotations of its parts.

Semantic types can be expressed using the following XML representation:

<sms:SemanticType id="..." xmlns:sms="http://seek.ecoinformatics.org/sms">
 
   <sms:Label name="..." resource="..."/>

   ...

   <sms:Annotation object="..." meaning="..."/>

   ...

</sms:SemanticType>

A semantic type is required to have a unique identifier, which is given by the id attribute. The identifier should (preferably) be represented as an LSID, where the semantic type is managed as an LSID data object.

Labels

Labels within a semantic-type description provide a mechanism to identify and name the resources and ontology terms used in the corresponding annotations. A Label element assigns the value of the name attribute to the associated resource identified by the resource attribute value. Each Label element is required to have exactly one name and resource attribute. A SemanticType element must contain at least two Label elements: one identifying an actor or dataset and the other identifying an ontology term. Further, no two Label elements within a semantic type may have the same name attribute value.

The first label shown below associates a dataset to the name crops and the second label associates an ontology concept to the name Biodiversity.

<sms:Label name="crops" resource="KBS019-003"/>

<sms:Label name="Biomass" resource="http://seek.ecoinformatics.org/seek/ontos/Biodiversity#Biomass"/>

Annotations

An annotation asserts that an object of a resource has a particular meaning according to definitions within an ontology. The object and meaning attributes of an Annotation element relate the associated object and ontology expressions, respectively. We provide a uniform annotation language for identifying resource objects and specifying ontology expressions.

Some resources (in particular, data sets and actors with input/output ports) can have complex data structures. For example, a data set typically is structured according to a schema, which specifies among other things a relation name (that is, the name of the table) and names for each attribute of the relation. Actor ports can also have complex structure, including arbitrary nesting of relations. The annotation language facilitates the selection of the various objects of structured resources.

The annotation language has two forms: a simple "shorthand" syntax, and a more complex, full syntax. For resources and their objects, the simple syntax permits the following two types of expressions given a resource label T and attribute name A:

T

T.A

The expression T represents each main part, or object, of the resource. We assume that a resource label represents one or more concrete data structures. For example, for a dataset resource, the label denotes a collection of tuples (the tuples in the data table); for an actor, the label represents each instance of the actor; and so on.

Consider the following partially filled in semantic type definition:

<sms:SemanticType id="st1" xmlns:sms="http://seek.ecoinformatics.org/sms">

  <sms:Label name="Crops" resource="KBS019-003"/>

  <sms:Annotation object="Crops" meaning="..."/>
 
  <sms:Annotation object="Crops.biomass" meaning="..."/>

  <sms:Annotation ojbect="Crops.spp" meaning="..."/>
 
  <sms:Annotation ojbect="Crops.year" meaning="..."/>

  <sms:Annotation ojbect="Crops.station" meaning="..."/>

</sms:SemanticType>

  • How to give the annotation of a resource as a dl-style expression, preferably in the same language
  • Discuss/explain what a resource dentoes, e.g., is it a name that denotes a set of instances (e.g., a dataset/table name denotes a set of instances, where an instance is a row in the table). What about for actors?
  • Discuss/explain that the "structure" language is generic and can represent many data models (ptolemy types, relational, even xml).
  • Describe the language step-by step, without a grammar :)

Examples

Comments



Go to top   More info...   Attach file...
This particular version was published on 03-Mar-2005 15:41:02 PST by SDSC.bowers.