====== 4.3.8 Interoperability ====== [[dido:public:ra:1.4_req:2_nonfunc| Return to Non-Functional Requirements]] ===== About ===== [[https://www.isko.org/cyclo/interoperability#3.1]] [[dido:public:ra:xapend:xapend.a_glossary:i:interoperability]] is a characteristic of a product or system whose interfaces are completely understood to work with other products or systems, present or future, in either implementation or access, without any restrictions. There are different levels of interoperability. As one moves up the interoperability levels, the degree of interoperability increases in difficulty. The most difficult is the semantic level, in which two assets can communicate with little or no prep work using common detailed formal, machine readable [[dido:public:ra:xapend:xapend.a_glossary:o:ontology | Ontologies]] including a vocabulary of terms.
{{ :dido:public:ra:1.4_req:2_nonfunc:knowledgepyramidinteroperatbility.png?700 |}} The [[dido:public:ra:xapend:xapend.a_glossary:a:autopyramid|Automation Pyramid]] and Interoperability
==== Foundational or Technical Level ==== [[dido:public:ra:1.4_req:2_nonfunc:05_interoperability | return to Top]] The //Foundational// or //Technical Interoperability Level// is concerned with the most fundamental and basic kind of interoperability. It provides the "foundation" for all the higher levels of interoperability. It establishes the technical aspects of peer-to-peer interoperability that prevail regardless of hardware, [[dido:public:ra:xapend:xapend.a_glossary:o:os|operating system]], or [[dido:public:ra:xapend:xapend.a_glossary:m:midware|middleware]] platforms. The Foundational or Technical Interoperability Level is defined in terms of two perspectives: Data and System. * From the Data perspective, there is a clear, shared expectation for the contents, context and meaning of that data (e.g., [[dido:public:ra:xapend:xapend.a_glossary:b:bigendian]] or [[dido:public:ra:xapend:xapend.a_glossary:l:littleendian]], or size of an integer, or character set used) * From the system perspective the differences in computer technology are non-existent (e.g., [[dido:public:ra:xapend:xapend.a_glossary:00-9:16bit]], [[dido:public:ra:xapend:xapend.a_glossary:00-9:32bit]] and [[dido:public:ra:xapend:xapend.a_glossary:00-9:64bit]] processors. [[dido:public:ra:xapend:xapend.a_glossary:r:risc]] versus [[dido:public:ra:xapend:xapend.a_glossary:c:cisc]] computers, etc.). In a [[dido:public:ra:xapend:xapend.a_glossary:d:distsystem|Distributed System]], the network protocols are another part of the Foundational or Technical Level of interoperability (e.g., [[dido:public:ra:xapend:xapend.a_glossary:t:tcp]] and [[dido:public:ra:xapend:xapend.a_glossary:u:udp]] over [[dido:public:ra:xapend:xapend.a_glossary:i:ipaddr]], etc.). ==== Syntactic Level ==== [[dido:public:ra:1.4_req:2_nonfunc:05_interoperability | return to Top]] The //[[dido:public:ra:xapend:xapend.a_glossary:s:syntax]] Level// is concerned with the correct combination and [[dido:public:ra:xapend:xapend.a_glossary:s:sequence|sequence]] of the elements in a language and, in this context, as it applies to [[dido:public:ra:xapend:xapend.a_glossary:d:datastructure]] or a [[dido:public:ra:xapend:xapend.a_glossary:p:programlang]]. For example, in English, we do not say ''ball red large plastic'', we would say ''large, red plastic ball''. The first form is syntactically incorrect, the second form is not. Interoperability at the syntactical Level means two different systems can exchange information and be structurally equivalent. The interpretation of the syntactical data can be different (i.e., big to an ant is different than big to an elephant). The difference in interpretation is a semantic difference (see Semantic Level). ==== Domain or Structural Level ==== [[dido:public:ra:1.4_req:2_nonfunc:05_interoperability | return to Top]] The //[[dido:public:ra:xapend:xapend.a_glossary:d:domain_knowledge | Domain]] Level// is knowledge of a specific, specialized subject area, discipline or field. For example, there is specific [[dido:public:ra:xapend:xapend.a_glossary:d:domain_knowledge|domain knowledge]] in Chemistry, Organic Chemistry, Physics, Mathematics, or Statistics. A specific example might be the use of the word ''round''. ''Round'' has different meanings in the context of Poker, Math, Cheese, and the Military. This is in contrast to general knowledge, or domain-independent knowledge which, in general, refers to the common usage of a word, sometimes referred to as the dictionary usage of a word. The use of the word Domain or Domain knowledge is used within general purpose disciplines such as history, law, systems engineering or even computer science. People with knowledge in a generic area (i.e., law) might have specific domain knowledge in computers, electronics, computers or even specific computer architectures such as [[dido:public:ra:xapend:xapend.a_glossary:r:risc]]. ==== Semantic Level ==== [[dido:public:ra:1.4_req:2_nonfunc:05_interoperability | return to Top]] The //[[dido:public:ra:xapend:xapend.a_glossary:s:semantics | Semantic]] Level// is concerned with the meaning, relationship and restrictions on data and information described in the __Domain or Structural__ and __Syntactical__ Levels. At this level, computer systems exchange information unambiguously. The information exchanged might not be identical but there is a shared understanding between the two systems about the meaning of the information. Some examples of Semantic Interoperability are described by the ability of:(( Ontology Taxonomy Coordinating WG / OntacGlossary, Accessed 10 July 2020, [[http://colab.cim3.net/cgi-bin/wiki.pl?OntologyTaxonomyCoordinatingWG%2FOntacGlossary]] )): * Two independent programs with reasoning capability to arrive at the same conclusions from the same data * An information system, without additional human intervention, to perform the tasks for which it was designed through the exchange of relevant data with other systems((Note: mediated by formally specific definitions and axioms)), independently of how and what purpose this data was originally collected, stored and managed. * One system to use data from an external source (without prior planning) and still able to output useful (though not necessarily perfect) results. ===== DIDO Specifics ===== [[dido:public:ra:1.4_req:2_nonfunc:05_interoperability | return to Top]] : To be added/expanded in future revisions of the DIDO RA /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~