The Geosemantics framework skeleton consists of two components:
- Services framework to include the services and their related components. Play framework (https://www.playframework.com/) is used to create the services framework.
- Standard Names wiki (SNW) to annotate SN and allow the crosswalks between them. Semantic Media Wiki (https://semantic-mediawiki.org/) is used to create the wiki system.
A- Services Framework:-
It consists of three layers:
Knowledge-base:
It uses JenaTDB to develop a graph database to store ontologies and Standard Names.
Knowledge management:
Reasoner:
- It validates the categories and datatypes of the SN stored in the Knowledge-base.
- Pellet reasoner will be used but, we can add more reasoners such as KAON2
Semantic processor:
- It identifies semantic similarity and matching between resources (semantic search for SN, matching between models and data, matching between models)
- A resources matchmaker script is required
- It provides semantic mediation between SN based on SKOS standards
- SPARQL query
Logic ingestion:
- Bulk upload of SN to the SNW
- Grouping of SN and identification of the crosswalks to create the Linked Vocabularies network
- Annotation of a SN in its original schema.
Registrar:
- It is a catalog for storing information about external resources including services, data, models, and SN (e.g. the database of Geosoft)
- It provides a form to register a new resource
Web services:
Semantic Annotation Service (SAS):
- It contains five functions, each function needs to be linked with specific standard
- 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)
- Temporal Annotation: Same as above but using predicates and objects from the time ontology(http://www.w3.org/TR/owl-time/)
- Standard Names Annotation: It brings an object from the related stand name schema (e.g. CSDMS standard names ontology)
- Provenance Annotation: It connects with provenance ontology to annotate simulation results (http://www.w3.org/TR/prov-o/)
- 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/)
- 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.
Resources Alignment Service (RAS):
- It checks the consistency of the attributes of quantities exchanged between two resources (model and/or data)
- Variable names: It finds synonymous of a SN using SKOS or NGram
- 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
- Temporal Alignment: This function can do the temporal alignment between two variables using CSDMS and OpenMI external packages
- Spatial Alignment: same as above but for spatial attributes of two variables
- Variable Type: This function checks the type of variables and can do conversion (e.g. string to float)
- File Type: Same as above but for the text-based files (RAS/FT). It may call the Brown Dog service to convert file types
Knowledge Discovery Service (KDS):
- 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
- Finds a resource graph: It searches in the registered database for data and models that are related to a specific resource
- Data Networks: It pragmatically aggregates data around environmental events
- Model to Model annotation: It annotates models that can be coupled together based on their attributes
- 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
Knowledge Integration Service (KIS):
- It is internal service to collect vocabularies from the SNW and recommend relationships between controlled vocabularies
- 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
- 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.
Ingests SN Thesaurus: Convert SN in an ontology to a wiki page
B- Standard Names Wiki (SNW):-
- http://ecgs-dev.ncsa.illinois.edu/wiki
- It has three levels of annotation: Primary, Secondary, and Inferred annotations as shown in the below figure
- The annotation is implemented in a SN annotation wiki template