| Literature DB >> 25762923 |
Abstract
The article deals with and discusses two main approaches in building semantic structures for electrophysiological metadata. It is the use of conventional data structures, repositories, and programming languages on one hand and the use of formal representations of ontologies, known from knowledge representation, such as description logics or semantic web languages on the other hand. Although knowledge engineering offers languages supporting richer semantic means of expression and technological advanced approaches, conventional data structures and repositories are still popular among developers, administrators and users because of their simplicity, overall intelligibility, and lower demands on technical equipment. The choice of conventional data resources and repositories, however, raises the question of how and where to add semantics that cannot be naturally expressed using them. As one of the possible solutions, this semantics can be added into the structures of the programming language that accesses and processes the underlying data. To support this idea we introduced a software prototype that enables its users to add semantically richer expressions into a Java object-oriented code. This approach does not burden users with additional demands on programming environment since reflective Java annotations were used as an entry for these expressions. Moreover, additional semantics need not to be written by the programmer directly to the code, but it can be collected from non-programmers using a graphic user interface. The mapping that allows the transformation of the semantically enriched Java code into the Semantic Web language OWL was proposed and implemented in a library named the Semantic Framework. This approach was validated by the integration of the Semantic Framework in the EEG/ERP Portal and by the subsequent registration of the EEG/ERP Portal in the Neuroscience Information Framework.Entities:
Keywords: EEG/ERP portal; electrophysiology; object-oriented code; ontology; semantic framework; semantic web
Year: 2015 PMID: 25762923 PMCID: PMC4340193 DOI: 10.3389/fninf.2015.00003
Source DB: PubMed Journal: Front Neuroinform ISSN: 1662-5196 Impact factor: 4.081
UML, OWL and Java Features Comparision.
| Class, atomic type, property ownedAttribute | owl:Class | ||
| Instance | Individual | Class instance | OWL owl:individual class independent |
| Owned attribute, association | owl:DataTypeProperty, owl:ObjectProperty | Class attributes: primitive data types/objects | OWL has only global attributes |
| Subclass, generalization | owl:subclass, owl:subproperty | Java does not support multiple inheritance | |
| Enumeration | owl:oneOf | ||
| Disjoint | owl:disjointWith, owl:unionOf | One object always an instance of exactly one class, but we should pay attention to class inheritance | |
| Multiplicity | owl:MinCardinality, owl:MaxCardinality | – | |
| Package | Ontology | ||
| Dependency | RDF:property | Methods parameters or return value | |
| – | owl:intersectionOf, owl:unionOf, owl:complementOf, owl:DifferentFrom, owl:AllDifferentFrom, owl:allValuesFrom, owl:someValuesFrom, owl:SameAs | – |
Figure 1Practical examples of Java code, OWL, and UML Features. (A) Definitions of classes with primitive and object properties. (B) Definitions of inheritance and enumeration. (C) Definitions of union classes.
OWL Mapping of Java Annotations.
| @EquivalentClass | <owl:equivalentClass rdf:resource=“ |
| (“ | |
| @EquivalentProperty | <owl:equivalentProperty rdf:resource=“ |
| (“ | |
| @Symmetric | <rdf:type rdf:resource=“ |
| @Inverse | <owl:inverseOf rdf:resource=“ |
| (“ | |
| @AllValuesFrom | <owl:allValuesFrom rdf:resource=“ |
| (“ | |
| @Transitive | <rdf:type rdf:resource= “ |
| @AllDifferent | <rdf:type rdf:resource=“ |
| (“ | |
| @DifferentFrom | <owl:differentFrom rdf:resource=“ |
| (“ | |
| @SameAs | <owl:sameAs rdf:resource=“ |
| (“ | |
| @Cardinality(1) | <owl:cardinality rdf:datatype=“ |
| @MaxCardinality(1) | <owl:maxCardinality rdf:datatype=“ |
| @MinCardinality(1) | <owl:minCardinality rdf:datatype=“ |
| @SomeValuesFrom | <owl:someValuesFrom rdf:resource=“ |
| (“ |
Figure 2Component Diagram of the Semantic Framework. The Semantic Framework reads a list of input JavaBeans using an implemented reader based on Java Reflection API (SUN, 2006). This list passes through two parsers. The first one reads a JavaBean structure; the second one reads supplemented annotations. The parsers create an internal JenaBean representation. This representation is read by Jena API, which provides an ontology model processed by an OWL API. The OWL API implements existing OWL syntaxes and provides methods for serializing the ontology model.
Figure 3Class Diagram of the Semantic Framework Interface. Actor1 represents a client program. The client uses the interface JenaBeanExtension having the method getOntologyDocument that returns an ontology document in a stream. The returned stream can be serialized into supported formats by an OwlApi interface calling the convertToSemanticStandard method.
Figure 4Integration of the Semantic Framework in the EEG/ERP Portal. The EEG/ERP Portal is a layered architecture designed according to a Model-View-Controller design pattern. The data layer obtains Javabeans from a relational database. The application layer is controlled by the set of Controllers which process user requests originated from a web browser. The specific controller (Semantic Controller) processes ontology document requests. This controller calls the integrated Semantic Framework through Semantic Factory and returns a serialized ontology document to the user's web browser.
Figure 5Semantic Framework Integration. A user (e.g., OWL reasoner) works with the SemanticMulticontroller interface. This controller has two methods, getOntology and getOntologyOwlApi. A required output syntax is passed to the methods as a part of the HttpServletRequest parameter. The Semantic Framework is called within the methods of the implemented SemanticFactory Interface.
Figure 6Protége Visualization. The left column shows ontology classes. All classes are subclasses of a superclass Thing. The right window shows the class Person. The class descriptions (EquivalentClass) and properties (e.g., researchGroups - each person is a member of at least one research group) are transformed from the enriched JavaBean (see Listing 1.3). The class instances (e.g., Person_0) are originally obtained from the relational database.
Figure 7EEG/ERP Portal in the NIF Registry. The list of experiments stored in the EEG/ERP Portal is shown in the NIF registry at link https://www.neuinfo.org/mynif/search.php?q=eegbase&t=indexable&list=cover&nif=nif-0000-08190-1. The list contains direct hyperlinks to the experiments stored in the EEG/ERP Portal. When a user clicks on a hyperlink, he/she is redirected to the EEG/ERP Portal.
JavaBean Person.
|
|
OWL Individual.
|
|
Annotated Java Bean.
|
|
OWL Serialization of Annotated Java Bean.
|
|