Document

advertisement
Assignment
3: Semantic E-Science Fall 2011.
Air Quality Group Ontology Project.
November 14, 2011.
Group members: William Gill.
Apurv Tiwari.
Rohan Dhruva.
Linyun Fu.
Charisma-F.A.L.
1) The contributions of our group members towards the project are:

Apurva Tiwari: Ontology creation
He worked on developing the Threshold ontology and Pollutant ontology. These
ontologies will be useful in neatly organizing the data.

Charisma Ladiwala: Data acquisition
She worked on finding the thresholds for different pollutants via the EPA website. She
also found the calculator for converting the concentration of pollutants into AQI. She also
provided the provenance data for all used sources and processes involved.

Linyun Fu: Systems Administration
He explored the LOGD Air quality data and helped a lot in crucial data conversion
processes. He also helped us with his expertise in using the ontology tools.

Rohan Dhruva: Use case & Documentation
He developed the use case and other documentation for the project. He also worked on
developing questions to be answered by the ontology.

William Gill: Front End
He incorporated all the air quality data into a chloropleth map which was highly detailed
and represented the data by county. He was also responsible for creating an attractive
map using EPA colors.
2)
A) The knowledge that is intended to be encoded is as follows:
1.) The air quality data of various counties in the New York State including
individual concentrations of all the pollutants which are recognized by the Environmental
Protection Agency and California Standards for Air Quality.
2.) To study the asthma data of various counties and trying to find some
correlation between the air quality and how it affects the asthma patients.
Sources and Starting Points:
1.) Environmental Protection Agency: www.epa.gov/
2.) California Ambient Air Quality Standards: www.arb.ca.gov
B.) Knowledge Encoding requires us to organize, create, capture or distribute knowledge and
ensure its availability for future users. For this reason, in terms of provenance information, we plan
to include the date and time of information retrieval, the time period over which the data was
obtained, the place of information retrieval, and the method used for obtaining the information.
Sources:
1.) Environmental Protection Agency: www.epa.gov/
2.) California Ambient Air Quality Standards: www.arb.ca.gov
The provenance requires us to answer 7 questions:
1.) What: The data is about the concentrations of various pollutants in the state of New York.
2.) When: It has been collected from January 1987 to June 2011.
3.) Where: Data is for the state of New York.
4.) How: Collected by various stations located in various parts of the state.
5.) Which: High Volume Samplers are used to measure the contaminants. The description of the
data collecting instruments is available in the data itself.
6.) Why: The data has been collected to keep track of the pollutants and their concentrations over
a period of time.
7.) Who: The EPA collected the data over a period of 15 years.
C.) The validation that was applied was the reasoner in Protege’. The Fact++ reasoner was
employed to check the validity of the Ontology. Also, it was used in the air quality portal, which
gave proper results.
In our group, the Ontology was designed by Apurva, who passed it on to William and Linyun for
validation.
The ontology designed to capture the threshold is as follows:
<?xml version="1.0"?>
<!DOCTYPE Ontology [
<!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
<!ENTITY xml "http://www.w3.org/XML/1998/namespace" >
<!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
<!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>
<Ontology xmlns="http://www.w3.org/2002/07/owl#"
xml:base="http://www.semanticweb.org/ontologies/2011/10/Ontology1320904706321.owl"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
ontologyIRI="http://www.semanticweb.org/ontologies/2011/10/Ontology1320904706321.owl">
<Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
<Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
<Prefix name="" IRI="http://www.w3.org/2002/07/owl#"/>
<Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
<Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
<Declaration>
<Class IRI="#CO"/>
</Declaration>
<Declaration>
<Class IRI="#Ca"/>
</Declaration>
<Declaration>
<Class IRI="#Mg"/>
</Declaration>
<Declaration>
<Class IRI="#NH4"/>
</Declaration>
<Declaration>
<Class IRI="#NO3"/>
</Declaration>
<Declaration>
<Class IRI="#Na"/>
</Declaration>
<Declaration>
<Class IRI="#SO2"/>
</Declaration>
<Declaration>
<Class IRI="#SO4"/>
</Declaration>
<Declaration>
<Class IRI="#Threshold"/>
</Declaration>
<Declaration>
<ObjectProperty IRI="#hasElement"/>
</Declaration>
<Declaration>
<DataProperty IRI="#Unit"/>
</Declaration>
<Declaration>
<DataProperty IRI="#hasCAValue"/>
</Declaration>
<Declaration>
<DataProperty IRI="#hasValue"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Ammonia"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#CO"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Ca"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Calcium"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#CarbonMonoOxide"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Magnesium"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Mg"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#NH3"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#NO4"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Na"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Nitrate"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Nitric_Acid"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#S"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#SO2"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#SO4"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Sodium"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Sulfate"/>
</Declaration>
<Declaration>
<NamedIndividual IRI="#Sulphur"/>
</Declaration>
<EquivalentClasses>
<Class IRI="#CO"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#CO"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasCAValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;integer">20</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;integer">31</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#Ca"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#Ca"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasCAValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">0.07</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">0.25</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#Mg"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#Mg"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">1.13</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">1.75</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#NH4"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#NH3"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">0.100</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">0.15</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#NO3"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#NO4"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">1.35</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">1.50</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#Na"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#Na"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">3.75</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">4.12</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#SO2"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#S"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">.1177</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;double">0.56</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#SO4"/>
<ObjectIntersectionOf>
<Class abbreviatedIRI=":Thing"/>
<ObjectHasValue>
<ObjectProperty IRI="#hasElement"/>
<NamedIndividual IRI="#SO4"/>
</ObjectHasValue>
<DataSomeValuesFrom>
<DataProperty IRI="#hasCAValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;integer">25</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
<DataSomeValuesFrom>
<DataProperty IRI="#hasValue"/>
<DatatypeRestriction>
<Datatype abbreviatedIRI="xsd:double"/>
<FacetRestriction facet="&xsd;minInclusive">
<Literal datatypeIRI="&xsd;integer">21</Literal>
</FacetRestriction>
</DatatypeRestriction>
</DataSomeValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<SubClassOf>
<Class IRI="#CO"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#Ca"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#Mg"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#NH4"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#NO3"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#Na"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#SO2"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#SO4"/>
<Class IRI="#Threshold"/>
</SubClassOf>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Ammonia"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#CO"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Ca"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Calcium"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#CarbonMonoOxide"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Magnesium"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Mg"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Na"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Nitrate"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Nitric_Acid"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#SO2"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#SO4"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Sodium"/>
</ClassAssertion>
<ClassAssertion>
<Class abbreviatedIRI=":Thing"/>
<NamedIndividual IRI="#Sulfate"/>
</ClassAssertion>
<SameIndividual>
<NamedIndividual IRI="#Ammonia"/>
<NamedIndividual IRI="#NH3"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#CO"/>
<NamedIndividual IRI="#CarbonMonoOxide"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#Ca"/>
<NamedIndividual IRI="#Calcium"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#Magnesium"/>
<NamedIndividual IRI="#Mg"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#NO4"/>
<NamedIndividual IRI="#Nitrate"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#Na"/>
<NamedIndividual IRI="#Sodium"/>
</SameIndividual>
<SameIndividual>
<NamedIndividual IRI="#S"/>
<NamedIndividual IRI="#Sulphur"/>
</SameIndividual>
<DataPropertyDomain>
<DataProperty IRI="#Unit"/>
<DataSomeValuesFrom>
<DataProperty IRI="#Unit"/>
<Datatype abbreviatedIRI="rdfs:Literal"/>
</DataSomeValuesFrom>
</DataPropertyDomain>
<DataPropertyRange>
<DataProperty IRI="#hasCAValue"/>
<Datatype abbreviatedIRI="xsd:double"/>
</DataPropertyRange>
<DataPropertyRange>
<DataProperty IRI="#hasValue"/>
<Datatype abbreviatedIRI="xsd:double"/>
</DataPropertyRange>
</Ontology>
<!-- Generated by the OWL API (version 3.2.3.1824) http://owlapi.sourceforge.net -->
3) A) The various starting points and resources used in developing the use case are listed as follows:
•
The thresholds for different pollutants:
http://www.epa.gov/airnow/aqi_brochure_08-09.pdf
It is called ‘A Guide to Air Quality and Health’.
Provided by: U.S. Environmental Protection Agency
Office of Air Quality Planning and Standards
Outreach and Information Division
Research Triangle Park, NC.
Date posted : August 2009
We collected it from the website on 10/30/2011 at 8:32 pm for the purpose of declaring air with
specific AQI’s safe or unsafe for asthma patients.
•
Converting concentration to AQI- Calculator:
http://airnow.gov/index.cfm?action=resources.conc_aqi_calc
It is called the ‘AQI calculator: AQI to concentration.’
Provided by: U.S. Environmental Protection Agency
Office of Air Quality Planning and Standards
Outreach and Information Division
Research Triangle Park, NC.
Date posted: August 2009.
We collected it from the website on 10/30/2011 at 8:35 pm because it is good to know what the
AQI is by finding it from the concentrations of the air quality data. This will help us compare it
with the threshold levels and then determine if the air is safe or unsafe.
•
Air quality statistics and data ( Status and Trends) 2005-2009:
http://www.epa.gov/airtrends/factbook.html
It is called the ‘Air Quality Monitoring Information.’
Provided by: U.S. Environmental Protection Agency
Office of Air Quality Planning and Standards
Outreach and Information Division
Research Triangle Park, NC.
Updated on: December 17, 2010.
We collected the data on 10/31/2011 at 6:20 pm so that we could study the trends and
concentrations of the air pollutants over the 5 years and then use that data to create the trends for
the current data that we procure.
•
Asthma Hospital Discharges - Rate per 10,000 Population, Total – Ten Year trend:
http://www.health.ny.gov/statistics/ny_asthma/hosp/asthma6.htm
Provided by: Department of Health, NY State.
2007-2009 SPARCS
Data as of: October, 2010.
Revised in: September 2011.
We collected the data on 11/3/2011 at 9:36 am so that we could know which areas in NY show
maximum possibility of having unsafe air for asthma patients.
•
About Asthma Emergency Department Visit Data, Hospital Discharge Data and
Deaths
http://www.health.ny.gov/statistics/ny_asthma/read.htm#2About
Provided by: Department of Health, NY State.
SPARCS .
Data as of: October, 2010.
Revised in: June 2009.
We collected it on 11/3/2011 at 10:20 am so that we could learn about the asthma emergency
department visits, asthma hospital discharges and discharge rate, and asthma deaths and death
rates. This data could be used to link areas in NY with poor air quality to asthma death rates.
B) The primary goal of the prototype implementation was to reduce the amount of prior
knowledge required for users to gather information about air quality and its effects. To support
that goal, a choropleth map was created using the PolyMaps API to present air quality data.
Additional data, including asthma hospitalization rates (in NYS) is provided by hovering over an
area.
A PHP-based proxy was built to support dynamic JavaScript powered maps calling data from
resources (a SPARQL endpoint) located on a remote server. The proxy was designed to hold the
majority of a SPARQL query and add specific parameters specified by the client as http GET
queries. The built query is sent to the SPARQL endpoint as an HTTP POST for maximum web
compatibility. The results are returned to the client as a JSON object for use in mapping and
other display functions.
Air quality data is collected at sampling locations (points), however, it is desirable to express that
data as an area. Thus, air quality data is displayed at a county-by-county level. Since a county
may have multiple sampling stations, the SPARQL query uses aggregate functions to calculate a
county air quality average. The PolyMaps API is supplied with county outlines represented in
geoJSON format from http://mbostock.github.com/d3/ex/choropleth.html.
To answer the use case question requiring time, a time slider was added. The slider allows the
user to navigate through time and visually observe seasonal differences between regions.
Currently, each slide action results in the PHP proxy making a tcp hit against the triplestore. This
interaction could be made faster by a caching mechanism.
At any point, if the user hovers over a county with the pointer, additional queries are made to
provide additional information. Currently, in asthma data is available for New York State. This
data is graphed on an X Y plane with X being state asthma hospitalization rates (with the min
and max graph values set with data from the triplestore and Y being the average air quality for
that county.
C)

Question a: How does the Air Quality of place X compare with the average air quality of
New York State and what possible risks are posed by the air at place X.
To stipulate the size of the data, we concentrate on comparing other places with New
York State. This type of information can be used in general for people who are looking to
move to another place. For example, a person moving from California to New York can use
this application to know which county to move to.
Result: To Be Decided.

Question b: In place X, which season poses the lowest airborne risks for a person with
asthma wishing to conduct outdoor actives?
This question was framed keeping in mind the travelers and outdoor enthusiasts. For
example, a person who is interested in hiking or rock climbing can select the best route or
area to focus on, keeping in mind his health restrictions. The same person can also select
which time of the year is best for this visit/activity.
4)
For the presentation on November 14, 2011, each group member will speak for 5 minutes
on the various processes involved and the various aspects of the use case and project.
Download