Giter Site home page Giter Site logo

usc-nsl / sage Goto Github PK

View Code? Open in Web Editor NEW
13.0 5.0 3.0 1.08 MB

SAGE disambiguates protocol description in an IETF RFC document, then converts the disambiguated protocol description into executable protocol implementation.

License: BSD 3-Clause "New" or "Revised" License

Makefile 1.07% C++ 22.36% Shell 12.53% Python 55.18% C 8.86%
nlp protocol-specification disambiguation

sage's Introduction

SAGE

Overview | Installation | Usage | Caveats and Limitations | License

Overview

This tool is used to disambiguate protocol descriptions in IETF RFC documents, then to convert disambiguated protocol descriptions into executable protocol implementation.

SAGE introduces semi-automated protocol processing across multiple protocol specifications. SAGE includes domain-specific extensions to semantic parsing and automated discovery of ambiguities and enables disambiguation; SAGE can convert these specs to code.

For more information, please refer to the ACM SIGCOMM21 paper.

Installation

There are 2 ways to use SAGE.

Usage

Run SAGE

To start SAGE, execute the following command:

./sage -i <rfc.txt> -p <PROTOCOL>
  • rfc.txt: This is the specification text file you would like SAGE to parse
  • PROTOCOL: This is the protocol name you would like to name for the generated header and code files

An example of the command is:

./sage -i igmp.txt -p igmp

This command will parse the input igmp.txt text file, and the protocol specified inside the text file is IGMP protocol. The output header and code file will have IGMP as the prefix of file names.

During execution SAGE provides detailed logs about the process: currently processed sentence, number of logical forms, ..., and lastly, the generated code.

Run our experiments and tests

To easily recreate some of our results, we packed our SIGCOMM experiments with ready-to-run shell scripts. For details, see scripts/sigcomm21.

Additional ready-to-run test scripts are available in scripts/tests.

Add support for additional protocols

SAGE is able to parse a number of protocols, and adding support for additional protocols is still in progress. For more details, we provide another README for introuductions of configurations and an illustration example.

Caveats and Limitations

SAGE is an experimental software under heavy development with limitations:

  • Small number of protocols/RFCs are supported
  • No single config file
  • Slow execution due to limited scalability (mostly single-core execution)

Developers

License

SAGE is a free software and licensed under the 3-Clause BSD license.

sage's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  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.