System Modeling Language

July 14, 2014

SysMoLan is a system modeling language that differ from already known SysML, Modelica, AADL, system dynamics, etc. It:

  • fact-oriented (not object-oriented). Like ArchiMate, not SysML
  • have strong support of system thinking (concepts of system, module and interfaces, component and links, allocation, stakeholders, etc.)
  • ontology-based (think about ISO 15926 and 4D dimensionalism)
  • pattern-based (query language inside)
  • will be using ideas from OMG Essence, ISO 81346, ISO 42010, etc.

SysMoLan is a hot topic in INCOSE Russian chapter. TechInvestLab is experimenting in providing a tool support for it.

I created a special website devoted to SysMoLan development:

Today TechInvestLab released version 1.4 of .15926 Editor. You can take this freeware here:

There were 1351 issues closed since version 1.31 that was published almost 6 months ago. Main focus of this release was simplicity of usage. We have two main features here:

1. Spreadsheet (MS Excel) adapter. Its target data model is described with patterns using available reference data (classes and templates). Mapping from spreadsheet data model (column structure) to patterns is established in a convenient table interface, and adapter transforms spreadsheet data to ISO 15926 compliant RDF. Data processing capabilities of MS Excel allow to work with the complicated data base exports (e.g. with formulae), smoothly bringing relational/table data to Semantic Web domain.

2. From this release several data verification tests are built in the Editor. Basic compliance to data model restrictions (as defined by Part 2 and template definitions) is verified for relational entities. Typing and classification verification is implemented across the project, to facilitate this disjointness and membership restriction inheritance was inferred for Part 2 type tree.

Other improvements are numerous. Enhancing in usability include local URI search, new pattern-based “engineering” data view, built-in UUID support for data entities created in the Editor, and direct access to UUID generator. It is now much easier to work on complex data projects with project-wide property and module name management. The Editor can read Turtle files now. Documentation was rearranged into several volumes for ease of use, and complete Russian interface is now included in the Editor to demonstrate its potential for localization.”

We already started work on version 1.5 to add web-framework Flask ( to the Editor. We pan to demonstrate new mapping functionality of the Editor 1.4, together with our solution for Linked Data of not released yet alfa version 1.5  at the 29th March of 2014 Hakathon Event of Ontology Summit. Our project is «Reference data for Anime and Manga: Semantic Linking and Publushing of Diverse Data-Sets» (see it in overall international Hackathon project list here:

Today TechInvestLab released version 1.3 of .15926 Editor. You can take this freeware here:

There were 181 issues closed since version 1.2 that was published almost 7 months ago. This version is a huge step from research to industrial  grade software: more compliance to semantic web and ISO 15926 standards, performance boost up to 5 times, completeness of software documentation, brand new user interface. There was not too many crashes in previous versions but new release appear even more robust. We know that previous versions was used in multiple research and prototype projects and hope that version 1.3 can be used in industrial applications.

I am glad that among a dozen ISO 15926 related software our .15926 Editor have multiple unique features. E.g. we support structural diff/merge that is needed for ontology configuration management (aka ontology evolution). There are not too much semantic web software packages can do it but .15926 Editor can provide it to ISO 15926 data in addition to common RDF/OWL files. If needed it can be adapted to other kinds of ontology formats. Here is example of diff/merge view:


Work with this structural diff/merge is very similar to work with review of some kind of Office: approve one change, approve another, than undo second approval, then approve a couple of other differences. This is Office-like editing with review mode and undo-redo with not-Office-like type of data. Then we can program on the fly approval of all 23678 changes in Python console (e.g. approve only those that fit to some kind of condition). Bonus to diff/merge feature is a possibility to send only diff instead of huge full ISO 15926 file (e.g. diff between 2 versions of PCA RDL).

We plan that this uniqueness of .15926 Editor will be developing towards “most smart” ISO 15926 software. Patterns support is already one of the best in this emerging software class. Right now you can define your patterns in Python but soon it will be possible with plain RDF. “Pattern recognition” is always was term from artificial intelligence domain. While we have now only “pattern matching” in our architecture understandable where we can add pattern recognition algorithm. Slowly we approaching more intellectual processing in every version.

Computer is not only video cam and audio recorder, not only blog syndication supporting device. Computer can and should think. AI investment bubble already starting and will be greater than internet bubble. .15926 Editor is TechInvestLab’s pass to this smart future.

Big data and deep learning are very breakthrough technologies but both need thoroughly modeled data to begin with. And after of statistical analysis stage it should be theory formation. Civilization is progressed with formalisms, not correlations. .15926 Editor is a development in this formal logic direction but with close attention to traditional numeric analisys (scientific software). Python is the language of choice for scientific computing now. .15926 Editor is capable to perform classical ontological and classical numerical processing. Hope we will find customer that need such a work. We are ready to perform it.

Main new features of this .15926 Editor 1.3 release are:

  • Change management for semantic data: comparison of data sources, building of a structural diff, change review and acceptance. This is just a starting point to change and configuration management processes for reference and project data which can be supported on .15926 Platform.
  • Smart copy, cut and paste – context-aware entity and property transfer between data sources and easy transfer of text data to other applications.
  • Greatly improved work with template definitions. We’ve often received complaints that the Editor can not work with data sources containing both template definitions and class reference data. The Editor was also restricting access to templates on RDF level, hiding from user all complexities of OWL class structure and properties. Now restrictions for work with template definitions are removed. We’ve introduced uniform opening of data sources, search for template definitions in all data sources (local or SPARQL), and supported arbitrary relationships and properties for templates.
  •  Improved restriction enforcement for specialized templates.

Other interesting new features include:

  • Speed increase up to 5 times for loading of big data sources. Work with files compressed by GZIP without unpacking.
  • SPARQL queries to remote endpoints are available through Editor’s console and incorporated in SearchLan for use in scripts and extensions.
  • User-control of UUID prefix in URI generator.
  • Menu optimized for work with multiple projects and many data sources, including shortcuts to recently opened projects and sources. File handling is improved with direct drag-n-drop to the Project from Windows environment. Access to documentation from menu.
  • National language localization started, Russian interface included (incomplete). We’re ready to collaborate on other languages!

And we are proud to announce migration to a new interface library (Python Qt) resulting in a new look and feel of the program and opening possibilities for future interface development. Enjoy new interface of the program, including extended set of data entity icons for better visualization of ontology.

.15926 Editor v.1.2 released!

February 22, 2013

Yesterday we (TechInvestLab) released .15926 Editor version 1.2. We position it as software environment for ISO 15926 that is like Protege for ordinary OWL ontologies. You may download it here (it is freeware):

Main feature of this version is user-defined patterns. You can define your own patterns which are now multi-role and may have several options, and use them in search queries. Our test “dictionary” implementation supports patterns for many possible areas of use: template expansion/contraction, pattern modelling, pattern mapping, etc. Predefined pattern set and documentation contain examples of patterns from JORD mapping methodology and from IIP project of iRING User Group. This is how you can define e.g. “classification” pattern:

'name': 'Classification',
'signature': {'classifier': 'is classified by', 'classified': 'is classifier of',
'classofclassifier': 'is class of member', 'classofmember': 'is class of classifier'},
'options': [ 
    {'type': p7tpl.ClassificationOfIndividual,          'classifier': 'hasClass',           'classified': 'hasIndividual'},
    {'type': p7tpl.ClassificationOfClass,               'classifier': 'hasClassClassifier', 'classified': 'hasClass'},
    {'type': p7tpl.ClassificationOfRelationship,        'classifier': 'hasRelation',        'classified': 'hasPair'},
    {'type': p7tpl.ClassificationOfClassOfIndividual,   'classifier': 'hasClassClassifier', 'classified': 'hasClass'},
    {'type': p7tpl.ClassificationOfClassOfRelationship, 'classifier': 'hasClassClassifier', 'classified': 'hasClass'},
    {'type': part2.ClassOfClassification, 'classofmember': 'hasClassOfClassified', 'classofclassifier': 'hasClassOfClassifier'},
    {'type': p7tpl.ClassOfClassification, 'classofmember': 'hasClassOfClassified', 'classofclassifier': 'hasClassOfClassifier'},

    {'name':       'ClassificationTemplate',    
    'type':        p7tpl.Classification,
                        'classifier':  'hasClassifier',
                        'classified':  'hasClassified',
                        'expansion':       'ClassificationTemplAxiom'},

                        {'name'  : 'ClassificationTemplAxiom',
        'type' : part2.Classification, 
        'classifier' : 'hasClassifier', 
        'classified' : 'hasClassified',}

Here is a screenshot of “out of the box” example patterns visualisation for pump from JORD RDL:


We now have new level of compliance to ISO 15926-8 requirements for RDF/OWL template format. But we still can read multiple non-compiant data, and this reading not constrained only to OWL files. Open-source extension for import of template definitions from Excel table used to populate iRING Tools software is included. And you can add extensions for you favorite data formats, this is only easier since previous version (we have more in our API for extensions development).

Also registration and creation of custom object properties for non-standard representation of relationships is allowed and their visualization is improved (the Editor can now be used as a
general-purpose RDF/XML editing software if need arises, with allowing search and editing by all object and data properties at RDF level). Find you “ordinary OWL ontology” in and open it with .15926 Editor! Or open biology ontology from in next pane to JORD RDL to work on something like “heart properties of a pump” or vice versa :-)

We plan to use this version in ontology hackaton/clinic during Ontology Summit 2013. We are registered for participation (–MikeDean-PeterYim_20130221.pdf) with our russian-speaking community (announce in Russian:

In the release version 1.2 we closed 53 issues and there was not so many bugs among them. We implemented many new features that not mentioned in this post.

We actively used for software development, not only for configuration management with Git but also for issue tracking with web-based issue tracker of GitHub. We have distributed software development team that resides in Moscow and Saint-Petersburg. Now we want to add in next version 1.3 of our .15926 Editor a set of GitHub-enabled collaborative ontology engineering features (commit to Git, version control with diff function for ontology, issue tracking).

.15926 Editor v.1.1 is here!

November 19, 2012

Today was released .15926 Editor v.1.1, feature release of our ISO 15926 ontology platform (take this freeware here:

Main feature of this release is extensively documented API for developing of ISO 15926 mapping adapters (“extensions”, think of plug-ins) according to iRING architecture “ISO 15926 outside”. There are several samples of such an adapters for different file formats (.xlsx, JSON, .txt with example of creation new type of editable view panel within user-defined extension). This extensions can be not only importers and exporters, editors and browsers of different formats. Same API can be used to extend .15926 Editor with validators, reasoners, natural language processors and other “semantic” and “classic AI” stuff. This is rather serious software, documentation for version 1.1 have more than 150 pages.

Software have Python 2.7 REPL with dynamic importing of Python modules (e.g. you can say “import nltk” and have all the power of NLTK software and data along with ISO 15926 ontology programming). We support “exploratory programming” methodology that is mean emphasizing programming and scripting languages over point-and-click interfaces. One of first usage of this feature from 3rd party developers is generation of Python snippets for ISO 15926 visual diagrams with DiagramDesigner of Roman Riabenko. This snippets in .15926 Editor produce valid Part 8 RDF/OWL file that correspond to graph diagram. Download ISO 15926 DiagramDesigner version (alpha) from and full English documentation from

We also published small amount of reference data that needed for our samples and examples in RDL sandbox SPARQL endpoint ( . Link to our public RDL was added to menu with other known to us ISO 15926-compliant RDLs.

We have better packaging, i.e. Windows installer and update checker to users not miss our next releases.

Sure, there are numerous interface improvements and bug-fixes.

Now we have plans to strengthen work with ISO 15926 patterns in the next release of .15926 Editor. Our software will be smarter.


We at TechInvestLab have experience of introducing of ISO 15926 to general public (not professional ontologists) in self-education mode. It required very special reading sequence (in Russian this is in more details at   

 I. Theory for general understanding.   

 1. Read a book of Chris Partridge “Business Objects: Re-Engineering for Re-Use” (while this book has no references to ISO 15926 or any other language or software or standard). This is mandatory reading for all beginners. In Russian we have video about 4D vs 3D ontology that we recommend as addition for 7th Chapter of this book. Try to find something equal to support 4D understanding (it is very tricky).   

 2. Only then you should read “An Introduction to ISO 15926″ issued by FIATECH consortium —

3. Then you should read first part of book of Matthew West “Developing High Quality Data Models”: (second part of this book is HQDM specific data model, you need not to read it. First part is mandatory).  

4. Read thesis of Andries van Renssen “Gellish. A Generic Extensible Ontological Language”: This is also not about ISO 15926 and not even 4D but there are many interesting things about relations and table format. Take ideas about table data representation and usage of ontology in engineering.  Take no ontology from this book (except very good set of relations).   

This is about 1200 pages (about 4 month for 4 hours/day or reading).   

Many people stops here. This is general education in engineering approach to ontology.   

II. Now you are ready to mastering knowledge of ISO 15926 as a standard.   

1. Read ISO 15926 Part 2 (this is upper ontology, 201 type of entities). 241 pages.   

2. Read 47 pages of draft of ISO 15926 Part 6 (RDL management).

3. Take  .15926 Editor (freeware, . Have fun browsing PCA RDL (about 2.7mln triples for near 50000 concepts like “centrifugal pump” — you can prefer do it online from SPARQL endpoint or load from OWL file that take about 1 minute 20 second on a notebook with our Editor). Spend not too much time for this. This is like reading Encyclopedia, only to get understanding.    

4. Read ISO 15926 Part 7 (templates in logic language Plan 9), 126 pages and Part 8 (templates in OWL). 

5. Now try to see examples from — now you have a chance to understand it. We have several examples of engineering data in .15926 Editor samples directory. See also sample diagrams on Up to this moment you will find multiple examples from different sources.

6. Read “ISO 15926 outside” methodology for reference data engineering: — 18 pages.    

7. Subscribe for community “ISO 15926″ in LinkedIn and read discussions. Read (implementations hub) and news at   

This is about 500 pages and many diagrams to understand. 2 month.

Most of people stops here. If you are not scared, proceed to real thing.   

III. Now you are ready to do you first ISO 15926 systems federation project.

Join somebody with ISO 15926 experience to supervise you modeling activity and tool chain mastering (e.g. TechInvestLab with .15926 Platform tool chain).

Welcome to the ontology-based systems federation community of practice! You have “yellow belt” qualification at this point.

After 3 year you will have “black belt” master level and can participate at Modeling Meeting of POCSCaesar Association.

This is valid for general public while for more experienced developers this self-education sequence can be passed really fast! made release of .15926 Editor v1.0 as a freeware. The Editor is intended to become for ISO 15926 data what Protégé became for OWL data – a primary free tool for data exploration and creation. It can be downloaded here:

.15926 Editor is one of realizations of iRING architecture ( This is first ISO 15926 software that  included voluntary JORD requirements Compliance Report in its documentation.

With .15926 Editor v1.0 you can
•    Browse ISO 15926-2 upper ontology and use it in three different namespaces:  JORD/PCA RDL, legacy RDS/WIP or ISO 15926-8.
•    Search and navigate all public ISO 15926 SPARQL-endpoints,
… or any other ISO 15926 endpoint you like, with authorization capabilities,
… including search for legacy RDS/WIP identifiers.
•    Search, navigate and edit reference data files distributed publicly, including ISO 15926-4, JORD/PCA RDL and ISO 15926-8 templates,
… or any other ISO 15926 files you like.
•    Create from scratch your own reference classes and templates (or project data including template instances),
… in forms ready for file exchange or upload to triple store,
… generating URI in your namespaces using UUID compliant with RFC 4122 / ITU-T X.667 / ISO/IEC 9834-8,
•    Build complex data project from local files and endpoints, bringing reference data, template definitions and project data together for integrated navigation and verification, customizing namespaces and meta-data attributes.
•    Design and run intricate semantic queries or whole data mining and data verification algorithms for ISO 15926 data,
… using the power of Python general purpose programming language through full-featured REPL environment,
… and accessing APIs of various .15926 Platform components to read, analyze and change reference and project data.
•    Visualize broad set of predefined data patterns and search for patterns in your data.
•    Make conversion of reference and project data from TabLan.15926 data description tables (.xlsx) to ISO 15926.
•    Import reference data from JSON files created by engineering catalog application (third party).
•    Explore (with somewhat limited capabilities) large datasets of non ISO 15926 data,
… OpenCYC knowledge base, for example.

This is how .15926 Editor recognize and show ontology patterns in JORD reference data library:

Most of the contemporary ontology-related applications suppose point-and-click interface, but .15926 Editor combine easy multi-window mouse clicking with the power of interactive text-based Python query exploration and creation of ISO 15926 data. Assume you have a need to send an email to a colleague with designations of all reference data entities on JORD RDL which are instances of Scale and have “celsius” in their labels. It can be done with this script in Python console of .15926 Editor:

outfile = file(‘scales_celsius.txt’, ‘w’)

scales=find(type=part2.Scale, label=icontains(‘celsius’))

for entity in scales:

    designations=find(id=entity, hasDesignation=out)

    for property in designations:

       outfile.write(entity+’ : ‘+property+’\n’)


Results will be in scales_celsius.txt file in the main program folder.

Or let’s analyze patterns of data in RDL to identify all possible instances of the p7tpl template ClassOfCauseOfBeginningOfClassOfIndividual and form list of possible signatures in a separate file. Run the following script:

outfile = file(‘COCOBOCOI_sign.txt’, ‘w’)

begun=find(type=part2.ClassOfCauseOfBeginningOfClassOfIndividual, hasClassOfBegun=out)

for elem1 in begun:

    causer=find(hasClassOfBegun=elem1, hasClassOfCauser=out)

    for elem2 in causer:



and look for COCOBOCOI_sign.txt  file in the main program folder.

The Editor as an example of .15926 Platform application is not designed to support any particular data integration workflow for specific engineering life cycle processes. Specific applications that take care of diversity of specific CAD/CAM/PLM/ERP/EAM/CRM/etc. data format and support needed format-specific Readers and Writers should be built on .15926 Platform with usage of it semantic graph Builder API (for Readers) and semantic graph Scanner API (for Scanners) that supported by the Platform. Mapping components are integrated in .15926 Platform environment as Python modules, with possibility to access external or internal pattern mapping descriptions and direct access to APIs of source/target data bases.

Russian and English language community for .15926 discussions now have more than 100 subscribers:


Get every new post delivered to your Inbox.