The Geosemantics framework skeleton consists of two components:

 

A- Services Framework:-

It consists of three layers:

  1. Knowledge-base

    1. It uses JenaTDB to develop a graph database to store ontologies and Standard Names.

  2. Knowledge management:

    1. Reasoner: 

      1.  It validates  the categories and datatypes of the SN stored in the Knowledge-base.
      2.  Pellet reasoner will be used but, we can add more reasoners such as KAON2
    2. Semantic processor: 

      1. It identifies semantic similarity and matching between resources (semantic search for SN, matching between models and data, matching between models)
      2. A resources matchmaker script is required 
      3. It provides semantic mediation between SN based on SKOS standards 
      4. SPARQL query 
    3. Logic ingestion:

      1. Bulk upload of SN to the SNW
      2.  Grouping of SN and identification of the crosswalks to create the Linked Vocabularies network
      3. Annotation of a SN in its original schema.

    4. Registrar:

      1. It is a catalog for storing information about external resources including services, data, models, and SN (e.g. the database of Geosoft)
      2. It provides a form to register a new resource
  3. Web services:

    1. Semantic Annotation Service (SAS):

      1. It contains five functions, each function needs to be linked with specific standard
      2. Spatial Annotation: It connects to the GML standards to bring predicates and objects associated with a specific geometric shape (http://www.opengeospatial.org/standards/gml
      3. Temporal Annotation: Same as above but using predicates and objects from the time ontology(http://www.w3.org/TR/owl-time/)  
      4. Standard Names Annotation: It brings an object from the related stand name schema (e.g. CSDMS standard names ontology) 
      5. Provenance Annotation: It connects with provenance ontology to annotate simulation results (http://www.w3.org/TR/prov-o/)  
      6. Statistical data Annotation: it uses predicates and objects from RDF Data Cube Vocabulary to annotate statistical data (http://www.w3.org/TR/vocab-data-cube/
      7. Encapsulated annotation: Similar to the SNA but this function needs to be connected with our triple store to bring the attributes of a SN, such as units. 

    2. Resources Alignment Service (RAS):

      1. It checks the consistency of the attributes of quantities exchanged between two resources (model and/or data) 
      2. Variable names: It finds synonymous of a SN using SKOS or NGram  
      3.  Unit conversion: converts units of exchanged items based on SWEET unit ontology and NetCDF unit schema. SWEET is used to address URL-based units and NetCDF is used to address string-based 
      4. Temporal Alignment: This function can do the temporal alignment between two variables using CSDMS and OpenMI external packages 
      5. Spatial Alignment: same as above but for spatial attributes of two variables 
      6. Variable Type: This function checks the type of variables and can do conversion (e.g. string to float) 
      7. File Type: Same as above but for the text-based files (RAS/FT). It may call the Brown Dog service to convert file types 

    3. Knowledge Discovery Service (KDS):

      1.  Searches resources: it searches Clowder for resources. This function needs to add more search functions in the Cloweder API such as search by metadata and spatial predicates  
      2.  Finds a resource graph: It searches in the registered database for data and models that are related to a specific resource 
      3. Data Networks: It  pragmatically aggregates data around environmental events 
      4. Model to Model annotation: It annotates models that can be coupled together based on their attributes 
      5. Model to Data: It identifies serviced models that can run on a specific data and annotate and assemble the related data that are required to complete a simulation 

    4. Knowledge Integration Service (KIS): 

      1. It is internal service to collect vocabularies from the SNW and recommend relationships between controlled vocabularies
      2. Imports annotated SN from the Wiki: This function imports the attributes that are associated with a SN in the wiki database (Fusaki) and store them in the JenaTDB 
      3. Updates the wiki with relationships between SN: This function return grouped and linked Standard Names based on their attributes and update pages that are associated with the related SNs. 
      4. Ingests SN Thesaurus: Convert SN in an ontology to a wiki page 

B- Standard Names Wiki (SNW):-

  1. http://ecgs-dev.ncsa.illinois.edu/wiki
  2. It has three levels of annotation: Primary, Secondary, and Inferred annotations as shown in the below figure
  3. The annotation is implemented in a SN annotation wiki template