Difference between revisions of "Team:USTC-Software/Model"

 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<!DOCTYPE html>
 
 
<html>
 
<html>
  <head>
+
<head>
     <script src="/wiki/index.php?title=Team:USTC-Software/js/jquery&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
+
     <script src="/wiki/index.php?title=Team:USTC-Software/js/jquery&amp;action=raw&amp;ctype=text/javascript"
 +
            type="text/javascript"></script>
 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.7/jquery.fullpage.css" rel="stylesheet">
 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.7/jquery.fullpage.css" rel="stylesheet">
 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/semantic.min.css" rel="stylesheet">
 
     <link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.1/semantic.min.css" rel="stylesheet">
  
 
     <link href="/wiki/index.php?title=Team:USTC-Software/css/style&amp;action=raw&amp;ctype=text/css" rel="stylesheet">
 
     <link href="/wiki/index.php?title=Team:USTC-Software/css/style&amp;action=raw&amp;ctype=text/css" rel="stylesheet">
     <script src="/wiki/index.php?title=Team:USTC-Software/js/fullpage&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
+
     <script src="/wiki/index.php?title=Team:USTC-Software/js/fullpage&amp;action=raw&amp;ctype=text/javascript"
  </head>
+
            type="text/javascript"></script>
  
  <body>
 
    <script src="/wiki/index.php?title=Team:USTC-Software/js/semantic&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
 
  
    <div class="ui menu pointing fixed" id="menu">
+
</head>
      <a class=" item" href="index.html"><img style="width:6em" src="https://static.igem.org/mediawiki/2018/4/42/T--USTC-Software--logo3.jpg"></a>
+
<body>
      <div class="ui item dropdown">Project
+
<script src="/wiki/index.php?title=Team:USTC-Software/js/semantic&amp;action=raw&amp;ctype=text/javascript"
<div class="menu">
+
        type="text/javascript"></script>
  <a class="item" href="Project.html">Overview</a>
+
<div class="ui menu pointing fixed" id="menu">
  <a class="item" href="Description">Description</a>
+
    <a class=" item" href="index.html"><img style="width:6em" src="https://static.igem.org/mediawiki/2018/4/42/T--USTC-Software--logo3.jpg"></a>
  <a class="item" href="Improve">Improve</a>
+
    <div class="ui item dropdown">Project
  <a class="item" href="Future">In the Future</a>
+
        <div class="menu">
 
+
            <a class="item" href="Project.html#Overview">Overview</a>
</div>
+
            <a class="item" href="Project.html#Motivation">Motivation</a>
      </div>
+
            <a class="item" href="Improve">Improve</a>
      <a class="item" href="Attributions">Attribution</a>
+
            <a class="item" href="Implementation">Implementation</a>
      <div class="ui item dropdown">Demonstrate
+
        </div>
<div class="menu">
+
  <a class="item" href="Demonstrate#Overview">Overview</a>
+
  <a class="item" href="Demonstrate#Motivation">Motivation</a>
+
</div>
+
      </div>
+
      <div class="ui item dropdown">Human Practice
+
<div class="menu">
+
  <a class="item" href="Human_Practices#Science and Technology Week">Science and Technology Week</a>
+
  <a class="item" href="Human_Practices#Student Open Source Conference">Student Open Source Conference</a>
+
  <a class="item" href="Human_Practices#Asia-Pacific Conference in Taiwan">Asia-Pacific Conference in Taiwan</a>
+
  <a class="item" href="Human_Practices#Software Promotion">Software Promotion</a>
+
</div>
+
      </div>
+
      <div class="ui item dropdown">Implementation
+
<div class="menu">
+
  <a class="item" href="Implementation">Overview</a>
+
</div>
+
      </div>
+
      <div class="ui item dropdown">Model
+
<div class="menu">
+
  <a class="item" href="Model#Overview">Overview</a>
+
  <a class="item" href="Model#Motivation">Motivation</a>
+
</div>
+
      </div>
+
      <div class="ui item dropdown">Medal
+
<div class="menu">
+
  <a class="item" href="Medal#Overview">Overview</a>
+
  <a class="item" href="Medal#Motivation">Motivation</a>
+
</div>
+
      </div>
+
      <a class="ui item" href="Team.html">Team</a>
+
      <a class="ui item" href="ValidatedContribution">ValidatedContribution
+
      </a>
+
 
     </div>
 
     </div>
     <div class="ui grid"><div class="one wide column"></div><div class="three wide column"><div class="ui secondary vertical pointing menu" id="leftnav" style="height: 100%;padding-top: 100px;width: 90%;"><div class="header">Model</div><div class="menu"><a class="item leftnav-item" href="#header1">Natural language processing (NLP) </a><a class="item leftnav-item" href="#header2">Object-relational mapping (ORM)</a><a class="item leftnav-item" href="#header3">WebSocket</a></div></div></div><div class="twelve wide column"><div class="inside-container" style="height: 100%;padding-top: 100px;"><div>
+
    <a class="item" href="Attributions">Attribution</a>
    <h1>Model</h1>
+
     <div class="ui item dropdown">Demonstrate
    <p>There're two outstanding models supporting our project:</p>
+
        <div class="menu">
    <ul>
+
            <a class="item" href="Demonstrate#Overview">Overview</a>
      <li><strong>Natural language processing (NLP)</strong> </li>
+
            <a class="item" href="Demonstrate#Motivation">Motivation</a>
      <li><strong>Object-relational mapping (ORM)</strong></li>
+
        </div>
      <li><strong>WebSocket</strong></li>
+
    </div>
    </ul>
+
    <div class="ui item dropdown">Human Practice
    <h2 id="header1"><strong>Natural language processing (NLP)</strong> </h2>
+
        <div class="menu">
    <p>Natural language processing (NLP) is an area of computer science and artificial intelligence that is concerned with the interaction between computers and humans in natural language.</p>
+
            <a class="item" href="Human_Practices#Science and Technology Week">Science and Technology Week</a>
    <p>The ultimate goal of NLP is to enable computers to understand language as well as we do.</p>
+
            <a class="item" href="Human_Practices#Student Open Source Conference">Student Open Source Conference</a>
    <p>For example, we can use these keywords to search:</p>
+
            <a class="item" href="Human_Practices#Asia-Pacific Conference in Taiwan">Asia-Pacific Conference in Taiwan</a>
    <p><code>molecular biology</code></p>
+
            <a class="item" href="Human_Practices#Software Promotion">Software Promotion</a>
    <p>But NLP give us the power to get closer to what we actually want to search:</p>
+
        </div>
    <p><code>molecular biology by Someone this year with #immunity</code></p>
+
    </div>
    <p>NLP can extract all the information and construct a query action:</p>
+
    <div class="ui item dropdown">Model
    <p><code>keyword: molecular biology
+
        <div class="menu">
author: Someone
+
            <a class="item" href="Project.html#Overview">Overview</a>
time: this year
+
            <a class="item" href="Project.html#Motivation">Motivation</a>
label: #immunity</code></p>
+
        </div>
    <p>In our project, we use an open-source software named <strong>Stanford CoreNLP</strong> (https://stanfordnlp.github.io/CoreNLP/) to parse the search string.</p>
+
    </div>
    <p><img alt="image-20181017181227081" src="https://static.igem.org/mediawiki/2018/9/91/T--USTC-Software--image-20181017181227081.png" /></p>
+
    <div class="ui item dropdown">Medal
    <p>CoreNLP provides many underlying models so that we can get analysis information to construct more expressive and more human-friendly query.</p>
+
        <div class="menu">
    <div class="divider"></div>
+
            <a class="item" href="Medal#Overview">Overview</a>
    <h2 id="header2"><strong>Object-relational mapping (ORM)</strong></h2>
+
            <a class="item" href="Medal#Motivation">Motivation</a>
    <p>Object-Relational Mapping (ORM) allows us to work with objects and have them saved to the database automatically. It can greatly simplify create-read-update-delete (CRUD) operations and make our code more comprehensive.</p>
+
        </div>
    <p>ORM makes our <code>user</code>,<code>report</code>,<code>notice</code> and more models easy to query, to list and to link to each other.</p>
+
    </div>
    <p><img alt="ORM.svg" src="https://static.igem.org/mediawiki/2018/5/5d/T--USTC-Software--ORM.svg" /></p>
+
    <a class="ui item" href="Team.html">Team</a>
    <p>In our project, we use <strong>Django ORM</strong> with MySQL backend as the underlying models to provide fast and flexible queries.</p>
+
    <div class="ui item dropdown" href="ValidatedContribution">ValidatedContribution
    <div class="divider"></div>
+
        <div class="menu">
    <h2 id="header3"><strong>WebSocket</strong></h2>
+
            <a class="item" href="ValidatedContribution#Overview">Overview</a>
    <p>WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The HTML5 WebSockets specification defines an API that enables web pages to use the WebSockets protocol for two-way communication with a remote host. It introduces the WebSocket interface and defines a full-duplex communication channel that operates through a single socket over the Web. HTML5 WebSockets provide an enormous reduction in unnecessary network traffic and latency compared to the unscalable polling and long-polling solutions that were used to simulate a full-duplex connection by maintaining two connections.</p>
+
            <a class="item" href="ValidatedContribution#Feedback">Feedback</a>
    <p><img alt="websocket.jpg" src="https://static.igem.org/mediawiki/2018/f/f0/T--USTC-Software--websocket.jpg" /></p>
+
            <a class="item" href="ValidatedContribution#Getting Started">Getting Started</a>
    <p>In out project, we use WebSocket protocol to push our notifications. The WebSocket protocol makes the new notifications even real-time fast to be received.</p>
+
            <a class="item" href="ValidatedContribution#Apply An Account">Apply An Account</a>
  </div>
+
            <a class="item" href="ValidatedContribution#Edit A New Report">Edit A New Report</a>
     </div></div></div><script src="/wiki/index.php?title=Team:USTC-Software/js/init&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
+
            <a class="item" href="ValidatedContribution#Intelligent Search Engine">Intelligent Search Engine</a>
     <script src="/wiki/index.php?title=Team:USTC-Software/js/all&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
+
            <a class="item" href="ValidatedContribution#Society">Society</a>
  </body>
+
            <a class="item" href="ValidatedContribution#For More Information">For More Information</a>
 +
        </div>
 +
    </div>
 +
</div>
 +
 
 +
<div class="ui grid">
 +
    <div class="one wide column"></div>
 +
    <div class="three wide column">
 +
        <div class="ui secondary vertical pointing menu" id="leftnav"
 +
            style="height: 100%;padding-top: 100px;width: 90%;">
 +
            <div class="item">
 +
                <div class="header">Attributions</div>
 +
                <div class="menu">
 +
                    <a class="item active leftnav-item">Developing</a>
 +
                    <a class="item leftnav-item">Support</a>
 +
                    <a class="item leftnav-item">iGEM Foundation</a>
 +
                    <a class="item leftnav-item">Project</a>
 +
                    <a class="item leftnav-item">Human Practice</a>
 +
                </div>
 +
            </div>
 +
        </div>
 +
    </div>
 +
    <div class="twelve wide column">
 +
        <div class="inside-container" style="height: 100%;padding-top: 100px;">
 +
            <h1>Model</h1>
 +
            <p>There're two outstanding models supporting our project:</p>
 +
            <ul>
 +
                <li><strong>Natural language processing (NLP)</strong></li>
 +
                <li><strong>Object-relational mapping (ORM)</strong></li>
 +
                <li><strong>WebSocket</strong></li>
 +
            </ul>
 +
            <h2><strong>Natural language processing (NLP)</strong></h2>
 +
            <p>Natural language processing (NLP) is an area of computer science and artificial intelligence that is
 +
                concerned with the interaction between computers and humans in natural language.</p>
 +
            <p>The ultimate goal of NLP is to enable computers to understand language as well as we do.</p>
 +
            <p>For example, we can use these keywords to search:</p>
 +
            <p><code>molecular biology</code></p>
 +
            <p>But NLP give us the power to get closer to what we actually want to search:</p>
 +
            <p><code>molecular biology by Someone this year with #immunity</code></p>
 +
            <p>NLP can extract all the information and construct a query action:</p>
 +
            <p><code>keyword: molecular biology
 +
                author: Someone
 +
                time: this year
 +
                label: #immunity</code></p>
 +
            <p>In our project, we use an open-source software named <strong>Stanford CoreNLP</strong>
 +
                (https://stanfordnlp.github.io/CoreNLP/) to parse the search string.</p>
 +
     
 +
            <p>CoreNLP provides many underlying models so that we can get analysis information to construct more
 +
                expressive and more human-friendly query.</p>
 +
            <div class="divider"></div>
 +
            <h2><strong>Object-relational mapping (ORM)</strong></h2>
 +
            <p>Object-Relational Mapping (ORM) allows us to work with objects and have them saved to the database
 +
                automatically. It can greatly simplify create-read-update-delete (CRUD) operations and make our code
 +
                more comprehensive.</p>
 +
            <p>ORM makes our <code>user</code>,<code>report</code>,<code>notice</code> and more models easy to query, to
 +
                list and to link to each other.</p>
 +
            <p><img alt="ORM.svg" src="https://static.igem.org/mediawiki/2018/9/91/T--USTC-Software--image-20181017181227081.png"/></p>
 +
            <p>In our project, we use <strong>Django ORM</strong> with MySQL backend as the underlying models to provide
 +
                fast and flexible queries.</p>
 +
            <div class="divider"></div>
 +
            <h2><strong>WebSocket</strong></h2>
 +
            <p>WebSocket is a computer communications protocol, providing full-duplex communication channels over a
 +
                single TCP connection. The HTML5 WebSockets specification defines an API that enables web pages to use
 +
                the WebSockets protocol for two-way communication with a remote host. It introduces the WebSocket
 +
                interface and defines a full-duplex communication channel that operates through a single socket over the
 +
                Web. HTML5 WebSockets provide an enormous reduction in unnecessary network traffic and latency compared
 +
                to the unscalable polling and long-polling solutions that were used to simulate a full-duplex connection
 +
                by maintaining two connections.</p>
 +
            <p><img alt="websocket.jpg" src="https://static.igem.org/mediawiki/2018/f/f0/T--USTC-Software--websocket.jpg"/></p>
 +
            <p>In out project, we use WebSocket protocol to push our notifications. The WebSocket protocol makes the new
 +
                notifications even real-time fast to be received.</p></div>
 +
     </div>
 +
</div>
 +
    <script src="/wiki/index.php?title=Team:USTC-Software/js/init&amp;action=raw&amp;ctype=text/javascript"
 +
            type="text/javascript"></script>
 +
     <script src="/wiki/index.php?title=Team:USTC-Software/js/all&amp;action=raw&amp;ctype=text/javascript"
 +
            type="text/javascript"></script>
 +
</body>
 
</html>
 
</html>

Latest revision as of 04:00, 18 October 2018

Model

There're two outstanding models supporting our project:

  • Natural language processing (NLP)
  • Object-relational mapping (ORM)
  • WebSocket

Natural language processing (NLP)

Natural language processing (NLP) is an area of computer science and artificial intelligence that is concerned with the interaction between computers and humans in natural language.

The ultimate goal of NLP is to enable computers to understand language as well as we do.

For example, we can use these keywords to search:

molecular biology

But NLP give us the power to get closer to what we actually want to search:

molecular biology by Someone this year with #immunity

NLP can extract all the information and construct a query action:

keyword: molecular biology author: Someone time: this year label: #immunity

In our project, we use an open-source software named Stanford CoreNLP (https://stanfordnlp.github.io/CoreNLP/) to parse the search string.

CoreNLP provides many underlying models so that we can get analysis information to construct more expressive and more human-friendly query.

Object-relational mapping (ORM)

Object-Relational Mapping (ORM) allows us to work with objects and have them saved to the database automatically. It can greatly simplify create-read-update-delete (CRUD) operations and make our code more comprehensive.

ORM makes our user,report,notice and more models easy to query, to list and to link to each other.

ORM.svg

In our project, we use Django ORM with MySQL backend as the underlying models to provide fast and flexible queries.

WebSocket

WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The HTML5 WebSockets specification defines an API that enables web pages to use the WebSockets protocol for two-way communication with a remote host. It introduces the WebSocket interface and defines a full-duplex communication channel that operates through a single socket over the Web. HTML5 WebSockets provide an enormous reduction in unnecessary network traffic and latency compared to the unscalable polling and long-polling solutions that were used to simulate a full-duplex connection by maintaining two connections.

websocket.jpg

In out project, we use WebSocket protocol to push our notifications. The WebSocket protocol makes the new notifications even real-time fast to be received.