Synthetic Biology:Semantic web ontology: Difference between revisions

From OpenWetWare
Jump to navigationJump to search
 
(97 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This is a part of the effort to provide a standardized, extensible, scalable and '''machine-processable''' interface for the [http://parts.mit.edu/ Registry of Standard Biological Parts]. The ideas of the Semantic Web seem to provide a solution to this problem. The success of developing a Synthetic Biology ontology depends in part on a good definition of the [[BioBricks_abstraction_hierarchy | BioBricks abstraction hierarchy]].
{{Synthetic biology top}}


==Meetings==
<div style="padding: 10px; color: #000000; background-color: #ccccff; width:730px" >


===First meeting===
==Overview==
Held on Tuesday (9/20/05) at 3pm, room 68-674
This is a part of the effort to provide a standardized, extensible, scalable and machine-processable interface for the [http://parts.mit.edu/ Registry of Standard Biological Parts]. Semantic Web technologies seem to provide a solution to this problem. The success of developing a Synthetic Biology ontology depends in part on a good definition of the [[Synthetic Biology:Abstraction hierarchy | BioBricks abstraction hierarchy]].


====Participants====
==Meetings==
(please put your name here):
*First meeting
*[[User:Ilya|IS]]
:Tuesday (9/20/05) at 3pm, room 68-674; [[Synthetic Biology:SWO1minutes|minutes]]
*[[User:Jasonk|JK]]
*Second meeting
*[[Sriram Kosuri|SK]]
:Friday (9/23/05) at 10am, room 68-121; [[Synthetic Biology:SWO2minutes|minutes]]
*[[Reshma Shetty|RS]]
*[[User:Randy|Randy Rettberg]]
 
====To be discussed====
*[[BioBricks_abstraction_hierarchy | BioBricks abstraction hierarchy]]
*List of questions that the Registry should be able to handle (use cases)
 
====Notes====
''Revised and extended Ilya's notes.  Feel free to add/edit further.'' --[[User:Rshetty|Reshma]] 14:45, 23 Sep 2005 (EDT)
 
One of the lessons I took away from the first meeting is that there is not a one-size-fits-all ontology that we can use for the registry.  Depending on your perspective or what your goal is, there are different pieces of information that you care about and more importantly likely a different way of organizing the information.  For instance, if you are fabricating a system, then you likely care about basic parts and composite parts.  If I am assembling something then I would like to know what parts of my systems have already been assembled previously so that I can take advantage of those.  Now if instead I am a system designer, then I might care about getting the list of devices that meet certain performance characteristics.  I don't necessarily care whether these devices are made up of basic parts or composite parts.  If instead you are the person in charge of the Registry inventory, then you don't care just about part BBa_B0015, but rather every physical copy of BBa_B0015 and where it is located.  Thus, for each particular application, there is likely a slightly different hierarchy that makes it easy to ask your particular question of interest.  So for the registry semantic web ontology, we don't envision a single hierarchy but rather multiple parallel hierarchies each of which might be tailored for a different application space. 
 
Inevitably, we won't be able to predict every possible thing that someone will want to do with the registry.  Therefore, the best we can do is try to design the semantic web ontology in such a way that it makes it as easy as possible for other people to use the information in our registry.  The example Randy presented is that someone develops a method for computing mRNA stability.  They go and crawl the registry and predict the stability of every mRNA in the registry and list it somewhere.  Later, we could crawl the web and notice that someone has all this new information that points to our parts and point from our parts to their data.  In order to facilitate situations like these, we want to make the mapping of new ontologies onto our existing ontology as easy as possible so that others can make use of our information and we can make use of theirs. 
 
So how do the design decisions we make now affect the ease with which different ontologies can be mapped onto each other.  Well, you could imagine that you might run into problems if the lowest level of our ontology is not low enough.  For instance, if the lowest level (or most fundamental unit) of the registry ontology is a BioBrick part and its associated part number.  If someone later wanted to come along and create an inventory system, well then their job would be quite difficult because a single BioBrick part could have multiple physical instantiations.  There could be a copy in the Endy lab and one in the Knight lab and one at Caltech.  Thus, the group making the inventory system would have to figure out some way of mapping a single BioBrick part to multiple locations.  Perhaps this is doable.  But what happens if there is a mutation in the Knight lab copy of the part.  Do you associate that information with the BioBrick part or do you associate it with a particular location?  The answer that we came up with is that that information should be associated with a physical instance of a part.  That physical instance of a part has a property of a location and a particular sequence etc.
 
Our conclusion from this example is that in order to make the mapping of one ontology onto another as easy as possible is that we need to make the lowest level of the registry ontology as fundamental and basic as possible.  Thus our plan of action was to develop a list of primitives or atomic classes between which we could define relationships and move from the bottom to the top. 
 
Some of the parallel ontologies/hierarchies that might be useful are
*Physical ontology
**Basic parts: piece of DNA, has a sequence associated with it
**Composite parts: a series of basic parts and an assembly scheme
*Design ontology
**Parts: something with a particular molecular function
**Devices: something that can be composed with other devices
**Systems: something that can't be composed with other devices
*Assembly standards
**BioBricks standard assembly
**BioBricks++
**De novo synthesis
*Performance standards
**PoPS 1.0 standard (for instance)
*Inventory
 
Other related questions we had are ...
*How many classes of standards can you imagine: assembly standards, performance standards?
*Is a part restricted to one piece of DNA or can it span two?  Is it independent of the assembly scheme?
*A composite parts is defined not only by the list of basic parts but also the assembly method.  Are two composite parts the same if they contain the same basic parts?  Probably not.
*How should we define devices?
 
*Separate spaces or sets of hierarchies:
Physical (DNA sequence, assembly methods):
#BioBrick rdf:type rdfs:Class .
#Composite rdf:type #BioBrick .
#Basic rdf:type #BioBrick .
#Composite #contains #Basic .
Design (performance characteristics):
#Parts rdf:type rdfs:Class .
#Devices rdf:type rdfs:Class .
#Systems rdf:type rdfs:Class .
 
===Second meeting===
Proposed to be held on Friday (9/23/05) at 10am, room 68-121.<br/>
 
====Participants====
*[[User:Ilya|IS]]
*[[Reshma Shetty | RS]]
*[[Jason Kelly|JK]]
*[[Sriram Kosuri|SK]]
*[[Barry Canton|BC]]
 
====To be discussed====
Basic terms for describing the biological parts and their properties.
 
====Notes====
 
[[Synthetic Biology:SWO2minutes]]
 
==Registry features==
*[[Registry_Wish_List]]
*Subpart Search: search for parts that match a portion of this part or this sequence of parts. Software agent would take a part name and using the ontology definitions would query other registries via their semantic web interfaces (no need to know about schema: e.g., just say "need all <#part>s that match a <#component> of the given <#part>"). Software agent can search anyone's registry if they use a common ontology: simply follow URLs (or use query language) and add triples to the local RDF store.
*Superpart Search: search for parts that contain the given parts
*What about sub- and superpart searches in distributed registries?
*Search for function (case insensitive): repressor, reporter, inverter, etc.
*What are the available (instances of) parts? Are they used in any devices already? (saves time for constructing expression device). Problem: different names for exactly same DNA sequence
*What kinds of devices/systems have been built?
*?
 
==Semantic Web==
RDF/XML, RDF Schema and OWL
 
"an initiative to enable cross-platform data exchange and reuse through well-defined ontologies and a common XML-based framework."
 
"The goal of the Semantic Web initiative is to create a universal medium for the exchange of data where data can be shared and processed by automated tools as well as by people." [10]
 
*allows to model real things, not just documents or database tables (knowledge representation)
*consists of statements about resources in the form of triples:
SUBJECT -> PROPERTY -> VALUE
-OR-
SUBJECT -> PREDICATE -> OBJECT
*identifies every resource with a globally unique URI: don't say "color", say <http://example.com/2005/std6#col>
*allows “serendipitous reuse”: integration with data sources in other fields (“web join”)
 
===Resources===
#A No-Nonsense Guide to Semantic Web Specs for XML People [http://www.betaversion.org/~stefano/linotype/news/57/ Part I] and [http://www.betaversion.org/~stefano/linotype/news/78/ Part II] - good intro for those familiar with XML
#[http://www.w3.org/2001/sw/ W3C Semantic Web Activity] (links to RDF, OWL, etc)
#[http://www.xml.com/lpt/a/2000/11/01/semanticweb/index.html Semantic Web primer] from 2000 at xml.com
#[http://www.w3.org/2005/Talks/0517-boit-tbl/ Berners-Lee - Semantic Web Life Sciences - BioIT World]
#[http://www.w3.org/2003/Talks/05-gartner-tbl/ Web Services - Semantic Web by Tim-Berners Lee]
#[http://www.amk.ca/talks/2004-12-02/ Introduction to the Semantic Web and RDF by A.M. Kuchling]
#[[Wikipedia:Semantic_web | Wikipedia article on Semantic Web]]
#[http://www.w3.org/2001/sw/BestPractices/Tutorials Semantic Web tutorials from W3C]
#[http://www.w3.org/2000/10/swap/doc/ Semantic Web tutorial using N3]
#[http://www.w3.org/2000/10/swap/Primer Primer: Getting into RDF & Semantic Web using N3]
#[http://www.consortiuminfo.org/bulletins/semanticweb.php Semantic Web: interview with Tim Berners-Lee]
#[http://www.w3.org/2004/01/sws-pressrelease W3C press release]
#[http://www.w3.org/DesignIssues/ Design Issues @ W3C] - web architecture and metadata
#[http://groups.csail.mit.edu/dig/2005/09/6.898/ Notions & Notations of the Semantic Web] - MIT 6.898 Fall Seminar Course
#[http://www.rundom.com/extensibility/?feed=96 Semantic Web news aggregator]
 
==Resource Description Framework (RDF)==
Used for making statements about facts
'''<http://www.example.org/index.html>'''  has a '''creator''' whose value is '''John Smith'''
the RDF terms for the various parts of the statement are:
*the ''subject'' is the URL <http://www.example.org/index.html>
*the ''predicate'' is the word "creator"
*the ''object'' is the phrase "John Smith"
 
===Resources===
#[http://www.w3.org/TR/rdf-primer/ RDF Primer at W3C]
#[http://en.wikipedia.org/wiki/Resource_Description_Framework Wikipedia page]
#[http://www.w3.org/RDF/ RDF @ W3C] - a lot of links to resources
#[http://www.xmltraining.com/rdf-made-easy.html RDF Made Easy] - a short tutorial
#[http://jena.sourceforge.net/tutorial/RDF_API Intro to RDF and Jena RDP API]
#[http://www.w3.org/Consortium/Offices/Presentations/RDFTutorial/ RDF Tutorial @ W3C] - a lengthy presentation
#[http://safari.oreilly.com/0596002637 Practical RDF] - O'Reilly book, decent but not great
#[http://www.w3.org/RDF/FAQ RDF FAQ @ W3C]
#[http://www.w3.org/TR/rdf-dawg-uc/ RDF Data Access Use Cases and Requirements]
#[http://www.w3.org/DesignIssues/RDB-RDF.html Relational Databases on the Semantic Web]
#[http://www710.univ-lyon1.fr/~champin/rdf-tutorial/ RDF Tutorial] from the University of Lyon
#[http://www.w3.org/TR/rdf-concepts/ RDF Concepts and Abstract Syntax]
#[http://www.w3.org/TR/rdf-mt/ RDF semantics]
#[http://www.w3.org/TR/rdf-testcases/ RDF Test Cases]
#[http://www.w3.org/TR/rdf-syntax-grammar/ RDF/XML Syntax Specification]
#[http://www.schemaweb.info/schema/SchemaInfo.aspx?id=1 RDF Vocabulary Reference]
===Software===
*[http://www.w3.org/RDF/Validator RDF Validator]
*[http://4suite.org/ 4Suite™]: an open-source platform for XML and RDF processing
 
==RDF Schema==
*‘semantically extends’ RDF to enable us to talk about classes of resources, and the properties that will be used with them
*provides the means to describe application specific RDF vocabularies
*provides schema information as additional descriptions of resources, but does not prescribe how these descriptions should be used by an application
*describes classes (corresponds to the generic concept of a Type or Category) and properties
 
RDF schemas differ somewhat from XML schemas (such as DTDs or W3C XML Schemas) in that they do not define a permissible syntax but instead classes, properties, and their interrelation: they operate directly at the data model level, rather than the syntax level
 
===Resources===
#[http://www.w3.org/TR/rdf-schema/ RDF Vocabulary Description Language 1.0: RDF Schema] - W3C Recommendation
#[http://www.schemaweb.info/schema/SchemaInfo.aspx?id=2 RDF Schema Vocabulary Reference]
===Software===
*[http://www.w3.org/2002/06/rdfs2html RDF Schema formatter] - extracts human readable information from a RDF Schema
 
 
==Web Ontology Language (OWL)==
Used to define relationships between vocabularies and other constraints. As the Semantic Web is inherently distributed, OWL must allow for information to be gathered from distributed sources.
 
OWL adds the ability to indicate when two classes or properties are identical.
OWL declarations provide additional information to let rule-checking and theorem-proving systems work with RDF data.
* e.g. the 'ancestor' property is transitive.
* If (X ancestor Y) and (Y ancestor Z) are true, a system could infer that (X ancestor Z) is also true.
 
===Resources===
#[http://en.wikipedia.org/wiki/Web_Ontology_Language Wikipedia page]
#[http://www.w3.org/2004/OWL/ OWL @ W3C] - links
#[http://www.w3.org/TR/owl-guide/ OWL Web Ontology Language Guide]
#[http://www.w3.org/TR/owl-features/  OWL Web Ontology Language Overview]
#[http://www.w3.org/TR/owl-ref/ OWL Web Ontology Language Reference]
#[http://www.w3.org/TR/owl-semantics/ OWL Web Ontology Language Semantics and Abstract Syntax]
#[http://www.schemaweb.info/schema/SchemaInfo.aspx?id=60 OWL Vocabulary reference]
#[http://www.w3.org/2001/sw/WebOnt/impls OWL Implementations as of December 2003 (Historical)]
#[http://www.w3.org/TR/owl-absyn/ OWL Web Ontology Language Semantics and Abstract Syntax]
 
===Software===
*[http://www.mindswap.org/2004/SWOOP/ OWL Ontology Browser and Editor]
 
==Query==
 
===Resources===
#[http://www.w3.org/2001/11/13-RDF-Query-Rules/ RDF Query Survey] - query language survey
#[http://librdf.org/query Redland Rasqal RDF Query Demonstration]
====RDQL====
#[http://www.w3.org/Submission/RDQL/ RDQL - A Query Language for RDF]
#[http://phpxmlclasses.sourceforge.net/rdql.html RDQL Tutorial] from phpxmlclasses project
#[http://jena.sourceforge.net/tutorial/RDQL/index.html A Programmer's Introduction to RDQL] - Jena tutorial
====SPARQL====
#[http://www.w3.org/TR/rdf-sparql-query/ SPARQL Query Language for RDF]
#[http://www.w3.org/TR/rdf-sparql-XMLres/ SPARQL Query Results XML Format]
 
==Ontologies==
Essentially, a formal description of objects and their interrelationships
Described using RDF Schema and/or OWL.
 
Examples:
#[http://dublincore.org/ Dublin Core] provides a vocabulary to describe bibliographic metadata
#*Namespace: http://purl.org/dc/elements/1.1/
#*Properties: title, creator, publisher, identifier
#[http://geneontology.org/ Gene Ontology] provides a controlled vocabulary to describe gene and gene product attributes in any organism. GO terms are organized in directed acyclic graphs (DAGs), which differ from hierarchies in that a 'child' (more specialized term) can have many 'parents' (less specialized terms). GO terms are connected by 'is a' (generalizations) and 'part of' (composition) relationships.
#*Namespace: ftp://ftp.geneontology.org/pub/go/xml/dtd/go.dtd
#*Properties: name, definition, isa, association, evidence
#[http://song.sourceforge.net/so.shtml Sequence Ontology]: features on a nucleotide or protein sequence
#[http://www.biopax.org/ BioPAX]: biological pathway data
#[http://www.uniprot.org/ UniProt] (planning)
#[http://sbml.org/documents/ SBML] uses [http://www.cellml.org/specifications/archive/metadata/20011102/cellml_metadata_specification.html CellML metadata] to describe its elements. See also a [http://www.sbml.org/forums/index.php?t=msg&goto=1435&rid=0#msg_1435 message] on SBML forum.
#[http://biomodels.net/ BioModels] database and Systems Biology Ontologies (SBO) project
#[http://obo.sourceforge.net/ Open Biomedical Ontologies]
#[http://anil.cchmc.org/Bio-Ontologies.html Bio-Ontologies]
#[http://www.bioinfo.de/isb/2002/02/0017/main.html Ontologies for molecular biology and bioinformatics]


Diagram of synthetic biology ontology v0.01 (developed using existing terminology described on the [http://parts2.mit.edu/r/parts/partsdb/index.cgi Registry website]):
==Resources==
[[Image:SBOv0.01.png]]
*[[Synthetic_Biology:Semantic_web_ontology/Design|Design]]
 
*[[Synthetic_Biology:Semantic_web_ontology/Semantic_Web|Semantic Web]]
===Resources===
**[[Synthetic_Biology:Semantic_web_ontology/RDF|RDF]]
#[http://dimer.tamu.edu/GO/wiki GO annotation wiki] (from [[User:Skosuri|Sri]])
**[[Synthetic_Biology:Semantic_web_ontology/RDF_Schema|RDF Schema]]
#[http://www.schemaweb.info/ RDF Schemas directory]
**[[Synthetic_Biology:Semantic_web_ontology/OWL|OWL]]
#[http://protege.stanford.edu/publications/ontology_development/ontology101-noy-mcguinness.html Ontology Development 101: A Guide to Creating Your First Ontology]
**[[Synthetic_Biology:Semantic_web_ontology/Query|Query Languges]]
===Software===
**[[Synthetic_Biology:Semantic_web_ontology/SWRL|Rule Languages (SWRL)]]
*Ontology editors
*[[Synthetic_Biology:Semantic_web_ontology/Web Services|Web Services]]
**[http://protege.stanford.edu Protégé] is a free, open source ontology editor and knowledge-base framework
*[[Synthetic_Biology:Semantic_web_ontology/REST|REST]]
**[http://oiled.man.ac.uk/ OilEd] is an ontology editor allowing the user to build ontologies using DAML+OIL
*[[Synthetic_Biology:Semantic_web_ontology/Agents|Agents]]
**[http://ontolingua.stanford.edu/ Ontolingua]
*[[Synthetic_Biology:Semantic_web_ontology/Examples|Examples]]
**[http://www.ksl.stanford.edu/software/chimaera/ Chimaera] is a software system that supports users in creating and maintaining distributed ontologies on the web
*[[Synthetic_Biology:Semantic_web_ontology/Software|Software]]
 
*[[Synthetic_Biology:Semantic_web_ontology/Knowledge_representation|Knowledge representation]]
==Implementation==
*Persistent RDF store (MySQL + Jena)
*Possible architecture of the Registry: http://www.w3.org/2005/Talks/0517-boit-tbl/#[19]


==Miscellaneous==
==Miscellaneous==
*[http://www.w3.org/TR/webarch/ Architecture of the World Wide Web, Volume One]
*[http://www.w3.org/TR/webarch/ Architecture of the World Wide Web, Volume One]
*[http://www.nodalpoint.org/node/1645 Object-oriented biology] - application of object-oriented paradigm to Gene  
*[http://www.w3.org/DesignIssues/Overview.html Design Issues for the World Wide Web]
*[[Receiver_Definition]]
**[http://www.w3.org/DesignIssues/HTTP-URI.html What do HTTP URIs Identify?]
Ontology
*[http://dig.csail.mit.edu/ Decentralized Information Group] @ CSAIL
*[[BioBricks|BioBricks]]: protocols and standards.
*[http://www.nodalpoint.org/node/1645 Object-oriented biology] - application of object-oriented paradigm to Gene (from nodalpoint.org)
*[http://www.synberc.org/ SynBERC]: [[SynBERC|Synthetic Biology Engineering Research Center]] is a multi-institution research effort to lay the foundation for synthetic biology, which aims to build biological components and assemble them into integrated systems to accomplish specific tasks
**[[SynBERC:MIT|MIT SynBERC]]
*[[Registry_of_Standard_Biological_Models|Registry of Standard Biological Models]]
*[[DOI|DOI & LSID info]]
*[http://researchweb.watson.ibm.com/journal/sj/402/haas.html IBM DiscoveryLink] provides users with a virtual database to which they can pose arbitrarily complex queries, even though the actual data needed to answer the query may originate from several different sources, and none of those sources, by itself, is capable of answering the query (data integration)
*[http://mitdatacenter.org/ The Data Center at the Massachusetts Institute of Technology] is a new initiative charged with researching and developing the languages, protocols, and technologies to integrate data and models across global networks.


Contact: [[User:Ilya|Ilya Sytchev]]
Contact: [[User:Ilya|Ilya Sytchev]]
</div>
{{Synthetic biology bottom}}

Latest revision as of 00:31, 26 September 2007

Home        About        Conferences        Labs        Courses        Resources        FAQ       

Overview

This is a part of the effort to provide a standardized, extensible, scalable and machine-processable interface for the Registry of Standard Biological Parts. Semantic Web technologies seem to provide a solution to this problem. The success of developing a Synthetic Biology ontology depends in part on a good definition of the BioBricks abstraction hierarchy.

Meetings

  • First meeting
Tuesday (9/20/05) at 3pm, room 68-674; minutes
  • Second meeting
Friday (9/23/05) at 10am, room 68-121; minutes

Resources

Miscellaneous

Contact: Ilya Sytchev

This site is hosted on OpenWetWare and can be edited by all members of the Synthetic Biology community.
Making life better, one part at a time.