CHEAR Team Report Week 11 :
Team : Yue Liu (Robin)
Zhicheng Liang (Jason)
Anirudh Prabhu
John Sheehan
Project Website Link : https://sites.google.com/site/oe2016chear/
Write a joint report on the results of your efforts – including discussion of any remaining challenges in your SPARQL Queries, the results of your testing with Oops!, and a discussion of the ontology you selected to import and depend on, including why you chose to reuse that (what you found of value) and the challenges you encountered.
SPARQL Queries
discussion of any remaining challenges in your SPARQL Queries
In question 2, What’s the similar variable in the stress-wheeze association study for the smoking exposure factor in the obesity-asthma association study? I wrote a query that was supposed to give Passive smoking and postnatal ETS exposure as answers. In order to find the socalled “similar” variable, we search for those subject classes that are subclasses of a same class:
PREFIX chear:<http://tw.rpi.edu/web/Courses/Ontologies/2016/OE_11_CHEAR_GROUP/>
PREFIX chear_individuals:<http://tw.rpi.edu/web/Courses/Ontologies/2016/OE_11_CHEAR_GROUP_INDIVIDUALS/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select distinct ?o2 ?o3 ?o4
where {
{
chear_individuals:StressWheezeAssociationStudy chear:hasResource ?o .
?o chear:hasSubject ?o2 .
?o2 rdf:type ?p1 .
?p1 rdfs:subClassOf ?o3 .
FILTER NOT EXISTS {?p1 rdfs:subClassOf chear:Subject}
}
UNION
{
chear_individuals:ObesityAsthmaAssociationStudy chear:hasResource ?o1 .
?o1 chear:hasSubject ?o4 .
?o4 rdf:type ?p2.
?p2 rdfs:subClassOf ?o3 .
FILTER NOT EXISTS {?p2 rdfs:subClassOf chear:Subject}
}
}
While i tried this query and i surprisingly found this query has more meaningful results than we expected, which includes other subjects that are similar. I think this is where Linked data shows its capability.
Results of Oops! Testing
We ran both the base and individual ontologies through Oops! The screenshots for both are below
Oops output for Base Ontology
According to Oops!, there were many issues with our ontology. Oops mentioned that a lot of annotations we're missing. But this was because oops only looked for rdfs:label and rdfs:comment. We replaced all annotations from rdfs to skos, oops did not seem to catch that. The unconnected ontology elements were taken care of as per the suggestions given by oops!. The two classes that were unused or removed and the other unconnected classes were fixed by adding domains and ranges. After a discussion with the team, we decided that disjointness was not needed in the case of in the case of our ontology. There were many classes missing domains and ranges in our ontology, we added the necessary information. Oops also mentioned that inverse relationships were not explicitly declared, we decided not to act on that because we do not use the inverse of the mentioned properties in our competency questions. We changed the definition of the class that Oops said was recursive, but the definition is still recursive according to Oops. We checked the conditions mentioned by Oops and took precautions to abide by them, but still the definition has been deemed recursive by Oops!.The equivalent classes suggested by Oops were not really equivalent in our ontology, so we chose to ignore it. We added License information for both the base and individual ontology.
Oops output for the Individual Ontology
The Individuals Ontology did not have any major issues. The “Untyped Class” pitfall was for time ontology which was imported directly. And the license declaration was added as in the base ontology.
Features needed for Oops! : A feature that stops Oops from Evaluating imported ontologies and a feature that lets you select specific pitfalls you are interested in testing out against your ontology. For example, we did not want to add disjointness our ontology, so running pitfalls test for that would be pointless as it would always pop up as a red flag.
Results of Ontology Evaluation Using Protege
Base ontology:
Individuals ontology:
What we found: The results from ontology evaluation tab in Protege give us a series of statistic data about our ontology, such as naming conventions, class hierarchy, property hierarchy, property restrictions, similar concepts, and so on. From these data, we can better evaluate our ontology in details and find existing errors or problems.
External Ontology
Instead of using external ontology as a direct import in this round, based on our discussion with Prof. McGuinness. We would come up with a plan on transferring our concepts in Body Mass and Subjects/Topics into CHEAR properties as an enrichment/extension and eventually merge our ontology into the big CHEAR ontology.
Modifications to the Ontology :
● Revised the ontology by adding domains and ranges for all the properties.
● Two unused classes Medical Field and Chemical were removed.
● Added a license to our ontology headers according to the feedback we got from Oops!.
● Fixed the labels to be lower camel case unless they are proper names.
Use Case Revisions: The use case has been updated accordingly based on what answers to the competency questions we obtained using sparql query.
Team Website:
The team website has been updated with the latest version of the ontology, presentation, and report.