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

Line 7: Line 7:
 
<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" type="text/javascript"></script>
<script src="/wiki/index.php?title=Team:USTC-Software/js/semantic&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
+
 
  
 
     </head>
 
     </head>
 
     <body>
 
     <body>
        <div class="ui menu pointing fixed" id="menu">
+
<script src="/wiki/index.php?title=Team:USTC-Software/js/semantic&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>
            <div class="right menu">
+
                <div class="ui menu pointing fixed" id="menu">
                <a class="active item" data-menuanchor="firstPage" href="#firstPage">Page 1 </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" data-menuanchor="secondPage" href="#secondPage">Page 2</a>
+
                <div class="ui item dropdown">Project
                <a class="item" data-menuanchor="thirdPage" href="#thirdPage">Page 3</a>
+
<div class="menu">
            </div>
+
      <a class="item" href="Project.html">Overview</a>
        </div>
+
      <a class="item" href="Description">Description</a>
 +
<a class="item" href="Improve">Improve</a>
 +
      <a class="item" href="Future">In the Future</a>
 +
 
 +
    </div>
 +
</div>
 +
<a class="item" href="Attributions">Attribution</a>
 +
<div class="ui item dropdown">Demonstrate
 +
<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="ui grid">
             <div class="two wide column"></div>
+
             <div class="one wide column"></div>
             <div class="four wide column">
+
             <div class="three wide column">
 
                 <div class="ui secondary vertical pointing menu" id="leftnav" style="height: 100%;padding-top: 100px;width: 90%;">
 
                 <div class="ui secondary vertical pointing menu" id="leftnav" style="height: 100%;padding-top: 100px;width: 90%;">
 
                     <div class="item">
 
                     <div class="item">
                         <div class="header">Model</div>
+
                         <div class="header">Attributions</div>
 
                         <div class="menu">
 
                         <div class="menu">
                             <a class="item active leftnav-item">Human Practice</a>
+
                             <a class="item active leftnav-item">Developing</a>
                             <a class="item leftnav-item">Integrated Human Practice</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>
 
                 </div>
 
             </div>
 
             </div>
             <div class="ten wide column">
+
             <div class="twelve wide column">
 
                 <div class="inside-container" style="height: 100%;padding-top: 100px;">
 
                 <div class="inside-container" style="height: 100%;padding-top: 100px;">
                    <h1>Model</h1>
+
<h1>Model</h1>
                    <h3>Science and Technology Week</h3>
+
<p>There're two outstanding models supporting our project:</p>
                        <p>Science and Technology Week is is a large-scale, centralized science popularization campaign organized by the China University of Science and Technology. This year, Science and Technology Week attracted over ten thousand citizens to USTC, varying from innocent pupils, high school students and college students in biology-related majors to the public from all walks who may have limited knowledge of Synthetic Biology. Our team cooperated with Team USTC and offered visitors a feast of biological knowledge and a chance to cultivate interest in biology.</p>
+
<ul>
                        <p>We introduced elementary knowledge of genetics to citizens by poster presentation and our explanation, then showed them some basic experiment operation, like liquid relief, centrifugation and etc. We educate and inspire visitors' interest by allowing them to observe biochemical-related sections under a laboratory microscope. In addition, we distributed questionnaires to visitors to get their feedback on synthetic biology to improve our design of our software.</p>
+
<li><strong>Natural language processing (NLP)</strong> </li>
                        <div class="divider"></div>
+
<li><strong>Object-relational mapping (ORM)</strong></li>
                    <h3>Student Open Source Conference</h3>
+
<li><strong>WebSocket</strong></li>
                        <p>The Student Open Source Annual Meeting is the first open source technology summit in China that is organized by student organizations. The main theme of the conference is understanding, participating in, and contributing to open source. Our team signed up for this annual meeting.At the meeting, our team leader and a team member worked together to complete the report on our iGEM project. We introduced the iGEM competition and the synthetic biology to the audience.At the same time, we also introduced the positive significance of our project to synthetic biology to the audience. We received useful feedbacks and technology-improvement suggestions from audience.</p>
+
</ul>
<h1>Integrated Human Practice</h1>
+
<h2><strong>Natural language processing (NLP)</strong> </h2>
                    <h3>Asia-Pacific Conference in Taiwan</h3>
+
<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>We attended International Genetically Engineered Machine Conference held by National Chung Hsing University from July 30th to August 3rd 2018. Over 20 iGEM teams attended the conference and 5 members of our team was sent to Taiwan.</p>
+
<p>The ultimate goal of NLP is to enable computers to understand language as well as we do.</p>
                        <p>During the conference, the iGEMers communicated, changed ideas and learned from one another. The conference is not only a simple warm-up for the upcoming world championship in Boston, but an Asian regional platform for teams from different countries to exchange ideas and explore synthetic biology as well. All the teams made a project presentation and introduced their projects. In this way, we received useful feedbacks and technology-improvement suggestions from students and professors of other teams.</p>
+
<p>For example, we can use these keywords to search:</p>
                        <div class="divider"></div>
+
<p><code>molecular biology</code></p>
                    <h3>Software Promotion</h3>
+
<p>But NLP give us the power to get closer to what we actually want to search:</p>
                        <p>Since our software is an open and fantastic platform with practical functions for synthetic biologists, it’s of great importance to promote our software to synthetic biology related users.</p>
+
<p><code>molecular biology by Someone this year with #immunity</code></p>
                        <p>To find out whether our improvement above is useful or not, We packed up an alpha version distributing to schoolmates whose major is biology in September. And in October we packed a more advanced version to some igem teams worldwide. We introduced them to Bioeditor and its basic usage. After they had used this software for a while, most of them reported that it was quite useful. And then we have packed our completed version to the real synthetic biologists by now.</p>
+
<p>NLP can extract all the information and construct a query action:</p>
                </div>
+
<p><code>keyword: molecular biology
            </div>
+
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><img alt="image-20181017181227081" src="image-20181017181227081.png" /></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="ORM.svg" /></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="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/init&amp;action=raw&amp;ctype=text/javascript" type="text/javascript"></script>

Revision as of 15:49, 17 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.

image-20181017181227081

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.