Giter Club home page Giter Club logo

expressir's Introduction

Expressir: EXPRESS in Ruby

Gem Version Build Status

Purpose

Expressir (“EXPRESS in Ruby”) is a Ruby parser for EXPRESS and a set of Ruby tools for accessing ISO EXPRESS data models.

Architecture

Expressir consists of 3 parts:

  1. Parsers. A parser allows Expressir to read EXPRESS files, including:

    • EXPRESS data modelling language (ISO 10303-11:2007)

    • EXPRESS data modelling language in XML (STEPmod)

    • EXPRESS XML (ISO 10303-28:2007) “Industrial automation systems and integration — Product data representation and exchange — Part 28: Implementation methods: XML representations of EXPRESS schemas and data, using XML schemas”)

  2. Data model. The data model (lib/expressir/express) is the Ruby data model that fully represents an EXPRESS data model.

  3. Converters. A converter transforms the EXPRESS Ruby data model into an interoperable export format, including:

    • EXPRESS data modelling language (ISO 10303-11:2007)

    • W3C OWL

    • OMG SysML (XMI 2.1, XMI 2.5)

    • OMG UML 2 (XMI 2.1)

    • OMG UML 2 for Eclipse (XMI 2.1)

Usage

This gem ships with a CLI tool. To check what’s available you can simply run the script directly from exe/expressir, by default it will display some usage instructions.

./exe/expressir

Commands:
  expressir help [COMMAND]  # Describe available commands or one specific command
  expressir version         # The Expressir Version

Development

We are following Sandi Metz’s Rules for this gem, you can read the description of the rules here All new code should follow these rules. If you make changes in a pre-existing file that violates these rules you should fix the violations as part of your contribution.

Setup

Clone the repository.

git clone https://github.com/metanorma/expressir

Setup your environment.

bin/setup

Run the test suite

bin/rspec

Installation

Add this line to your application’s Gemfile:

gem "expressir"

And then execute:

$ bundle install

Or install it yourself as:

$ gem install expressir

Contributing

First, thank you for contributing! We love pull requests from everyone. By participating in this project, you hereby grant Ribose Inc. the right to grant or transfer an unlimited number of non exclusive licenses or sub-licenses to third parties, under the copyright covering the contribution to use the contribution by all means.

Here are a few technical guidelines to follow:

  • Open an issues to discuss a new feature.

  • Write tests to support your new feature.

  • Make sure the entire test suite passes locally and on CI.

  • Open a Pull Request.

  • Squash your commits after receiving feedback.

  • Party!

License

Expressir is distributed under the BSD 2-clause license.

Expressir is built on code originally from the NIST Reeper project.

The NIST Reeper license is reproduced below:

This software was funded by NIST and developed by EuroSTEP. Pursuant to title 17 Section 105 of the United States Code this software is not subject to copyright protection and is in the public domain.

We would appreciate acknowledgment if the software is used. Links to non-Federal Government Web sites do not imply NIST endorsement of any particular product, service, organization, company, information provider, or content.

Credits

Expressir is created using the structure and examples provided by the NIST Reeper software on Sourceforge.

expressir's People

Contributors

abunashir avatar camobap avatar ronaldtse avatar w00lf avatar zakjan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.