Making SWO Satisfiable

Over the past few days I have been working to fix the approximately 170 unsatisfiable classes that were present in SWO. The vast majority of these were due to improper linking of software classes directly to a data format specification, rather than to a data class. One change is detailed below, and the rest of the classes are just named, although the process to fix them was similar.

Unsatisfiable classes: Data is disjoint with “data format specification”, but an axiom on the class uses “has specified data input” (which has a range of data) with a class from “data format specification”.

Affxparser: has specified data input’ some (BPMAP or ‘CDF binary format’ or CEL)
In order to fix this, I created a defined class called Affymetrix-Compliant Data which included any data classes whose format specification is published by Affymetrix, and set all of (CDF binary format, CDF ASCII format, CEL binary format, CEL ASCII format, CHP binary format, BPMAP, BAR) as published by Affymetrix. Resulting modifications to swo_data are:

Class: 'Affymetrix-compliant data'
Annotations:
 label "Affymetrix-compliant data"@en,
 IAO_0000115 "Affymetrix-compliant data is data produced in a format compatible with Affymetrix software. This is a defined class where other data classes will be inferred to be members if they have a data format specification which has been published by Affymetrix.",
 creator "Allyson Lister"
EquivalentTo:
 SWO_0004002 some
 ('data format specification'
 and (SWO_0004004 value SWO_0000023))
SubClassOf:
 data

And I added the axiom “SWO_0004004 value SWO_0000023” (is published by value Affymetrix) to the following classes: CDF binary format, CDF ASCII format, CEL binary format, CEL ASCII format, CHP binary format, BPMAP, BAR.
Then, back in swo_core, the final linkup to affxparser made modifications to that class as follows:

'has specified data input' only 'Affymetrix-compliant data'
'has specified data input' some 'Affymetrix-compliant data'

Domains and ranges were added to is published by as follows:

 Domain:
 'data format specification'
 or software
Range:
 organization

If it turns out that anything else needs to be added to the range of is published by, then we can either 1) remove the constraint on domain, 2) add that class to the domain constraint, or 3) specialise to sub-properties with single class domains and leave the top is published by property undomained.

Similar changes as those above were made to the following classes: affy, affyContam, affyio, affylmGUI, affyPara, affypdnn, affyPLM, affyQCReport, affyTiling, altcdfenvs, annaffy, annotationTools, aroma.light, arrayMvout, arrayQualityMetrics, BAC, betr, bgx, bgafun, bioDist, biomaRT, Category, cghMCR, convert, copa, cosmo, cosmoGUI, crimm, ctc, daMA, dyebias, ecolitk, edd, exonmap, factDesign, fbat, fdrame, flagme, flowQ, flowClust, flowCore, flowFlowJo, flowStats, flowUtils, flowViz, gaga, gcrma, gene2pathway, genefilter, geneRecommender, GeneticsBase, GeneticsPed, genomeIntervals, globaltest, goTools, gpls, graph, hexbin, hypergraph, idiogram, iterativeBMAsurv, keggorth, lapmix, limma, limmaGUI, logicFS, logitT, lumi, maCorrPlot, maDB, makecdfenv, makePlatformDesign, marray, matchprobes, metaArray, metahdep, microRNA, miRNApath, multtest, nnNorm, nudge, occugene, oligo, oneChannelGUI, ontoTools, pamr, panp, parody, pcaMethods, pcot2, pdInfoBuilder, pdmclass, pgUtils, pickgene, pkgDepTools, plgem, plw, ppiStats, prada, preprocessCore, puma, qpgraph, rama, RankProd, rbsurv, Rdbi, RdbiPgSQL, Rdisop, rflowcyt, Rgraphviz, Ringo, Rintact, RLMM, RMAExpress, RMAExpress 2.0, RMAExpress quantification, RMAGEML, rMAT, ROC, RpsiXML, Rredland, rsbml, rtracklayer, Rtreemix, Ruuid, RwebServices, safe, sagenhaft, SAGx, SBMLR, ScISI, seqLogo, ShortRead, simpleaffy, sizepower, SLGI, SLqPCR, SMAP, snapCGH, SNPchip, snpMatrix, SPIA, splicegear, splots, spotSegmentation, sscore, ssize, SSPA, TargetSearch, tilingArray, timecourse, topGO, tspair, twilight, TypeInfo, VanillaICE, vbmp, weaver, webbioc, xcms, xmapbridge, xps, XDE.

Inferred to be a member of a disjoint class
Affymetrix Software

 ('is specified data output of' some
 ('Software publishing process'
 and ('has participant' value Affymetrix)))
 or ('is specified data output of' some
 ('Software development process'
 and ('has participant' value Affymetrix)))

This class is asserted as member of software, but inferred to be member of Data due to usage of is specified data output of . Fixed by changing the entire axiom to

software and 'is published by' value Affymetrix

Bioconductor Software

 ('is specified data output of' some
 ('Software publishing process'
 and ('has participant' value Bioconductor)))
 or ('is specified data output of' some
 ('Software development process'
 and ('has participant' value Bioconductor)))

This class is asserted as member of software, but inferred to be member of Data due to usage of is specified data output of . Fixed by changing the entire axiom to

software and 'is published by' value Bioconductor

Reconciling Annotation Labels

I have also replaced all references to definition_citation (about 214 cases) and definition_editor (270 cases) in the various OWL files. These annotation labels were replaced with IAO 19 (definition source) and dc:creator (definition editor). This matches how the rest of the ontology was already, and the design decision that was made a year ago. Many of the single quotes around existing single-word class labels were also removed, as they were unnecessary.

Obsoleting is_published_by

All references to is_published_by (SWO_0000395) were replaced with is published by (SWO_0004004), and SWO_0000395 was obsoleted.

Advertisements
This entry was posted in data format specification, modeling, ontology, software. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s