The following content is part of the Ontology Working Group. Ontology Working Group projects are:
Internal links are created by using square brackets. You can either just give a SbvrEditorProject or use an additional SBVR Editor Project.
The goal of the Semantics of Business Vocabulary and Rules (SBVR) Editor Project is to create an environment that facilitates the development of formal vocabularies using the OMG November 2013 version 1.2 of the Semantics of Business Vocabulary and Rules (SBVR) Specification found at: http://www.omg.org/spec/SBVR/1.2
Based on the Governance, Risk and Compliance Technology Centre (GTCTC) work On The Road to Regulatory Ontologies
The following use cases were developed using the OT Visualization site which provides an excellent interactive tool of the flow of data between two OT clients and a server. In this use case, there are three actors:
Alice and Bob are actively editing the same document, Lorem ipsum. The As alice and Bob edit the document a series of operations for those edits is sent to the OT Server. The OT Server mediates the edits and sends edits back to Alice and Bob.
The initial demonstration looks like this:
Step | Description | Server Test | Alice Text | Bob |
---|---|---|---|---|
1 | Initial State | Lorem ipsum | Lorem ipsum | Lorem ipsum |
2 | Alice moves the cursor to position 6, just after the 'm' and types ' A1' | Lorem ipsum | Lorem A1 ipsum | Lorem ipsum |
3 | Bob moves the cursor to position 6, just after the 'm' and types ' B1' | Lorem ipsum | Lorem A1 ipsum | Lorem B1 ipsum |
4 | Bob moves the cursor to the end of the line after ipsum and adds ' B2' | Lorem ipsum | Lorem A1 ipsum | Lorem B1 ipsum B2 |
5 | Server processes Alice's first operation (see step 2) | Lorem ipsum | Lorem A1 ipsum | Lorem B1 ipsum B2 |
6 | Alice processes first in-bound queue | Lorem ipsum | Lorem A1 ipsum | Lorem B1 ipsum B2 |
7 | Alice moves cursor to the beginning of the line and types 'A2 ' | Lorem ipsum | A2 Lorem A1 ipsum | Lorem B1 ipsum B2 |
8 | Server processes Alice's second operation (see step 2) | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 ipsum B2 |
9 | Server processes Bob's first operation (see step 3) | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 ipsum B2 |
10 | Bob processes first of Alice's operations | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 ipsum B2 |
11 | Bob processes second of Alice's operations | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
12 | Alice processes third in-bound queue | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
13 | Alice processes Bob's change from inbound queue | Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
14 | Server processes next Alice operation from inbound queue | A2 Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
15 | Alice processes next inbound queue | A2 Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
16 | Bob processes next inbound queue | A2 Lorem A1 ipsum | A2 Lorem A1 ipsum | Lorem B1 A1 ipsum B2 |
17 | Bob processes next inbound queue | A2 Lorem A1 ipsum | A2 Lorem A1 ipsum | A2 Lorem B1 A1 ipsum B2 |
18 | Server processes Bob's third change | A2 Lorem B1 A1 ipsum B2 | A2 Lorem A1 ipsum | A2 Lorem B1 A1 ipsum B2 |
19 | Alice processes next inbound queue | A2 Lorem B1 A1 ipsum B2 | A2 Lorem B1 A1 ipsum B2 | A2 Lorem B1 A1 ipsum B2 |
20 | Bob processes last inbound queue | A2 Lorem B1 A1 ipsum B2 | A2 Lorem B1 A1 ipsum B2 | A2 Lorem B1 A1 ipsum B2 |
The final demonstration looks like this:
The following two files help provided a step by step use-case.
The following diagram captures the normative “as-is” architecture for the OT server. Initially, there are three main actors:
All three have the same copy of the Lorem ipsum document
. Each of the end-users (i.e., Alice and Bob) indicate that they are synchronized with the OT Server. As edits are
made by Alice or Bob, the operations are placed into an operation buffer. The state is changed from Synchronized to Waiting. When the server is ready, it accepts one of the
operations that are awaiting processing from either of the editors (i.e., Alice or Bob). The edit operations are applied to the Server's version of Lorem ipsum docment
and
a virtual cursor of where changes have been made is kept on the server. The server then prepares an operation to be sent to all the editors.
Each of the editors can collect the outstanding edits from the server and apply the edits to their own copy of Lorem ipsum document
if necessary. If the operation is its own
outstanding operation, then the operation is ignored (its already applied to the local document), the operation stored in the local Await buffer is removed and the next
queued operation in the Ops buffer becomes the new Await Buffer value awaiting the OT Server's retrieval.
If the operation taken fro mthe queue is not its own operation (i.e., an operation from Alice received by Bob), then the operation is applied to its own copy of Loren ipsum document
.
When all the operations have been drained from each of the editor's operation buffer and there are no more operations stored in the Editor's quues, then everything returns to the initial state as depicted in the diagram.
The following diagram captures the normative “to-be” architecture using multiple OT servers (referred to as engines) connected together using DDS. Each editor (Alice and Bob) have their copy of the OT engine that is listening and publishing on DDS topics. The DDS QoS parameters are set so that one of the OT engines is the “master” and the others are redundant backups that only get used during a failover situation where one of the engines is down or the connection to it fails.
The QoS policies are defined in the OMG DDS Specification or can be found online at: RTI QoS Policies
QoS Parameter | Area | Value |
---|---|---|
Durability | Volatility | |
History | Volatility | |
Reader Data Lifcycle | Volatility | |
Lifespan | Volatility | |
Entity Foctory | Infrastructure | |
Resource Limits | Infrastructure | |
Reliability | Delivery | |
Time based Filter | Delivery | |
Deadline | Delivery | |
Content Filters | Delivery | |
User Data | User QoS | |
Topic Data | User QoS | |
Group Data | User QoS | |
Partition | Presentation | |
Destination | Presentation | |
Destination Order | Presentation | |
Ownership | Redundancy | SHARED |
Ownership Strngth | Redundancy | 0..1,000,000 |
Liveliness | Redundancy | DDS_AUTOMATIC_LIVELINESS_QOS |
Latency Budget | Transport | |
Transport Priority | Transport |
QoS Parameter | Area | Value |
---|---|---|
Durability | Volatility | |
History | Volatility | |
Reader Data Lifcycle | Volatility | |
Lifespan | Volatility | |
Entity Foctory | Infrastructure | |
Resource Limits | Infrastructure | |
Reliability | Delivery | |
Time based Filter | Delivery | |
Deadline | Delivery | |
Content Filters | Delivery | |
User Data | User QoS | |
Topic Data | User QoS | |
Group Data | User QoS | |
Partition | Presentation | |
Destination | Presentation | |
Destination Order | Presentation | |
Ownership | Redundancy | |
Ownership Strngth | Redundancy | |
Liveliness | Redundancy | |
Latency Budget | Transport | |
Transport Priority | Transport |
QoS Parameter | Area | Value |
---|---|---|
Durability | Volatility | |
History | Volatility | |
Reader Data Lifcycle | Volatility | |
Lifespan | Volatility | |
Entity Foctory | Infrastructure | |
Resource Limits | Infrastructure | |
Reliability | Delivery | |
Time based Filter | Delivery | |
Deadline | Delivery | |
Content Filters | Delivery | |
User Data | User QoS | |
Topic Data | User QoS | |
Group Data | User QoS | |
Partition | Presentation | |
Destination | Presentation | |
Destination Order | Presentation | |
Ownership | Redundancy | |
Ownership Strngth | Redundancy | |
Liveliness | Redundancy | |
Latency Budget | Transport | |
Transport Priority | Transport |
Acronym | Term | Definition | Reference |
---|---|---|---|
Angualr JS | |||
Big Data | |||
CSS | Cascading Style Sheet | CSS is the language for describing the presentation of Web pages, including colors, layout, and fonts. It allows one to adapt the presentation to different types of devices, such as large screens, small screens, or printers. CSS is independent of HTML and can be used with any XML-based markup language. | W3C HTML and CSS |
CFR | Code of Federal Regulations | ||
CoffeeScript | |||
COTS | Commercial Off-the-Shelf | ||
DDS | Data Distribution Service | ||
DOM | Document Object Model | ||
ECMA | ECMA Script | ||
Hadoop | |||
GTCTC | Governance, Risk and Compliance Technology Centre | ||
HDFS | Hadoop Distributed File System | ||
HTML | Hypertext Markup Language |
| W3C HTML and CSS |
HTTP | Hypertext Transfer Protocol | ||
Java | |||
JS | JavaScript | ||
Linux | |||
MANET | Mobile Ad hoc Networking | ||
NLP | Natural Language Processor | ||
Node JS | |||
NWK | Node Web Kit | ||
ontology | |||
OS | operating System | ||
OT | Operational Transformation | Operational Transformation (OT) is a technology for supporting collaborative computing functions and applications. OT has a rich set of collaboration capabilities and has been used to support a wide range of applications. | Operational Transformation FAQ |
OSX | Mac OS X | ||
Postgres | PostgreSQL | ||
RTI | Real-Time Innovations | ||
SBVR | Semantics of Business Vocabulary and Rules | ||
ShareJS | |||
SME | Subject Matter Expert | ||
SQL | Structured Query Language | ||
TCP | Transmission Control Protocol | ||
Ubuntu | |||
TinyMCE | Tiny Moxiecode Content Editor | ||
UDP | User Datagram Protocol | ||
Vocabulary | |||
WebHDFS | |||
Windows | |||
XML | Extensible Markup Language |
The software developed for this project will fall under the MIT License Copyright. For reference the License follows:
The MIT License (MIT) Copyright (c) 2015 Jackrabbit Consulting, Inc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.