You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(33) |
Sep
(30) |
Oct
(27) |
Nov
(59) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(67) |
Feb
(44) |
Mar
(70) |
Apr
(73) |
May
(119) |
Jun
(31) |
Jul
(92) |
Aug
(86) |
Sep
(76) |
Oct
(152) |
Nov
(156) |
Dec
(85) |
2008 |
Jan
(111) |
Feb
(121) |
Mar
(107) |
Apr
(102) |
May
(45) |
Jun
(65) |
Jul
(62) |
Aug
(133) |
Sep
(56) |
Oct
(56) |
Nov
(17) |
Dec
(15) |
2009 |
Jan
(10) |
Feb
(5) |
Mar
(10) |
Apr
(14) |
May
(49) |
Jun
(94) |
Jul
(67) |
Aug
(23) |
Sep
(9) |
Oct
(92) |
Nov
(26) |
Dec
(51) |
2010 |
Jan
(105) |
Feb
(83) |
Mar
(52) |
Apr
(59) |
May
(68) |
Jun
(71) |
Jul
(127) |
Aug
(49) |
Sep
(91) |
Oct
(27) |
Nov
(33) |
Dec
(26) |
2011 |
Jan
(26) |
Feb
(45) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(15) |
Jul
(45) |
Aug
(33) |
Sep
(50) |
Oct
(22) |
Nov
(10) |
Dec
(21) |
2012 |
Jan
(33) |
Feb
(24) |
Mar
(36) |
Apr
(60) |
May
(60) |
Jun
(43) |
Jul
(114) |
Aug
(19) |
Sep
(35) |
Oct
(24) |
Nov
(64) |
Dec
(12) |
2013 |
Jan
(54) |
Feb
(58) |
Mar
(51) |
Apr
(46) |
May
(21) |
Jun
(29) |
Jul
(25) |
Aug
(25) |
Sep
(13) |
Oct
(7) |
Nov
(14) |
Dec
(27) |
2014 |
Jan
(10) |
Feb
(7) |
Mar
(16) |
Apr
(14) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(11) |
Sep
(5) |
Oct
(11) |
Nov
(11) |
Dec
(4) |
2015 |
Jan
(52) |
Feb
(27) |
Mar
(22) |
Apr
(17) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: <mg...@us...> - 2007-05-15 19:00:09
|
Revision: 595 http://svn.sourceforge.net/obo/?rev=595&view=rev Author: mgibson Date: 2007-05-15 12:00:03 -0700 (Tue, 15 May 2007) Log Message: ----------- can now config how you want master/template config to interact with local and how often (always,on update) and you can no put in an overriding url to use for master/template config - this allows one to more easily add the config in as now you can just use the subversion http and subversion it in and also allows for changing config without having to muck with the webstart jar where they are jammed in <master-to-local-config mode="WIPEOUT" when="ALWAYS" overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/birn.cfg" /> Modified Paths: -------------- phenote/trunk/conf/birn.cfg phenote/trunk/conf/ncbo.cfg phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd phenote/trunk/conf/zfin-standalone.cfg phenote/trunk/jars/phenoteconfigbeans.jar phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/ConfigWriter.java phenote/trunk/src/java/phenote/main/CommandLine.java phenote/trunk/src/java/phenote/main/Phenote.java phenote/trunk/src/java/phenote/util/FileUtil.java Modified: phenote/trunk/conf/birn.cfg =================================================================== --- phenote/trunk/conf/birn.cfg 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/conf/birn.cfg 2007-05-15 19:00:03 UTC (rev 595) @@ -1,8 +1,9 @@ -<phenote-configuration version="1.3-beta1" xmlns="phenote/config/xml"> +<phenote-configuration xmlns="phenote/config/xml"> <!-- wipeout always means that the master will always wipeout the local copy in this mode modifying the local is useless --> - <master-to-local-config mode="WIPEOUT_ALWAYS"/> + <master-to-local-config mode="WIPEOUT" when="ALWAYS" + overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/birn.cfg" /> <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> @@ -34,7 +35,7 @@ file="http://www.berkeleybop.org/ontologies/obo-all/cell/cell.obo" /> </field> - <field name="Type?(forEntity 1?)" enable="true"/> + <field name="Type? (eg Tissue)" enable="true"/> <field name="Quality" syntax-abbrev="Q" enable="true"> <ontology file="http://www.berkeleybop.org/ontologies/obo-all/quality/quality.obo"/> Modified: phenote/trunk/conf/ncbo.cfg =================================================================== --- phenote/trunk/conf/ncbo.cfg 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/conf/ncbo.cfg 2007-05-15 19:00:03 UTC (rev 595) @@ -1,5 +1,10 @@ <?xml version="1.3.1" encoding="UTF-8"?> -<ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> + +<ns:phenote-configuration xmlns:ns="phenote/config/xml"> + + <ns:master-to-local-config mode="UPDATE" when="ON_VERSION_CHANGE" + overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/ncbo.cfg" /> + <ns:log config-file="conf/log4j-standalone.xml"/> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/conf/phenote-config.rnc 2007-05-15 19:00:03 UTC (rev 595) @@ -18,10 +18,13 @@ } ## specify how the master config interacts with local/cached config -## WIPEOUT_ALWAYS master will always wipe out local every run -## UPDATE_WITH_VERSION_CHANGE (default) update/merge master with local on version change +## WIPEOUT master will always wipe out local every run +## UPDATE (default) update/merge master with local +## when is ALWAYS,ON_VERSION_CHANGE,INIT master-to-local-config = element master-to-local-config { - attribute mode { xsd:string } + attribute mode { xsd:string }, + attribute when { xsd:string }, + attribute overriding-master-url { xsd:string } } queryable-dataadapter = element queryable-dataadapter { Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/conf/phenote-config.xsd 2007-05-15 19:00:03 UTC (rev 595) @@ -20,6 +20,8 @@ <xs:element name="master-to-local-config"> <xs:complexType> <xs:attribute name="mode" use="required" type="xs:string"/> + <xs:attribute name="when" use="required" type="xs:string"/> + <xs:attribute name="overriding-master-url" use="required" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="queryable-dataadapter"> Modified: phenote/trunk/conf/zfin-standalone.cfg =================================================================== --- phenote/trunk/conf/zfin-standalone.cfg 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/conf/zfin-standalone.cfg 2007-05-15 19:00:03 UTC (rev 595) @@ -1,5 +1,10 @@ <?xml version="1.3.1" encoding="UTF-8"?> -<ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> + +<ns:phenote-configuration xmlns:ns="phenote/config/xml"> + + <ns:master-to-local-config mode="UPDATE" when="ON_VERSION_CHANGE" + overriding-master-url="http://obo.svn.sourceforge.net/viewvc/*checkout*/obo/phenote/trunk/conf/zfin-standalone.cfg" /> + <ns:log config-file="conf/log4j-standalone.xml"/> @@ -7,15 +12,16 @@ enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> - <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> + <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/> <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> - <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <ns:update-timer timer="4"/><!--set to 0 if you want to bypass the check; time in seconds--> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> + <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"> @@ -28,7 +34,8 @@ <ns:ontology name="ZF" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="zebrafish_anatomy"/> - <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="GO" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo"/> </ns:field> <ns:field name="Stage" syntax-abbrev="T" enable="true"> @@ -36,7 +43,8 @@ </ns:field> <ns:field name="Quality" syntax-abbrev="Q" enable="true"> - <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> + <ns:ontology name="PATO" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo"/> </ns:field> <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"> @@ -45,7 +53,7 @@ <ns:ontology name="ZF" file="zebrafish_anatomy.obo" repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fish" namespace="zebrafish_anatomy"/> - <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="GO" file="gene_ontology.obo"/> </ns:field> <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"> Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-15 19:00:03 UTC (rev 595) @@ -49,13 +49,17 @@ /** enabled & disabled */ private List<FieldConfig> allFields = new ArrayList<FieldConfig>(); private String logConfigFile = "conf/log4j.xml"; // default log config file + // maybe should be using xmlbean where possible? private boolean uvicGraphEnabled = false; // default false for now private boolean termHistoryEnabled = false; //default to false for now private boolean autoUpdateEnabled = true; //default to true if not in config private int updateTimer = 0; //default is to not wait private String reposUrlDir; private String version; - private String masterToLocalConfigMode; + //private String masterToLocalConfigMode; + //private MasterToLocalConfig masterToLocalBean; + private PhenoteConfiguration phenoConfigBean; // cache the xml parse bean?? + private boolean configInitialized = false; private final static String myphenoteFile = "my-phenote"; @@ -221,15 +225,16 @@ } - /** ConfigMode INNER CLASS */ + /** ConfigMode INNER CLASS - outer class? */ private class ConfigMode { - private String mode = ""; + //private String mode = ""; //private boolean updateWithNewVersion=false; private boolean masterExists = true; private URL masterUrl; private File localFile; //dotConfFile; private boolean cmdLineWipeout=false; + private MasterToLocalConfig masterToLocalBean; private ConfigMode(String masterConfig,boolean merge,boolean cmdLineWipeout) throws ConfigException { @@ -247,29 +252,85 @@ if (!masterExists && !localFile.exists()) throw new ConfigException("Cfg file doesnt exist in app nor .phenote/conf"); - if (masterExists) { - Config cfg = new Config(); - try { - cfg.parseXmlFile(masterConfig); - if (cfg.masterToLocalConfigMode != null) - mode = cfg.masterToLocalConfigMode; - } catch (ConfigException x) {} // do nothing? err msg? - } + parseModeXml(masterConfig); } + + private void parseModeXml(String masterConfig) throws ConfigException { + if (!masterExists) return; + Config cfg = new Config(); + try { + cfg.parseXmlFile(masterConfig); + //if (cfg.masterToLocalConfigMode != null) mode = cfg.masterToLocalConfigMode; + if (cfg.phenoConfigBean == null) return; + masterToLocalBean = cfg.phenoConfigBean.getMasterToLocalConfig(); + //mode = masterToLocalBean.getMode() + loadMasterOverrideUrl(); + } catch (ConfigException x) {} // do nothing? err msg? + } + + /** if have master override - load it! */ + private void loadMasterOverrideUrl() { + if (!haveXmlBean()) return; + String urlString = getXmlBean().getOverridingMasterUrl(); + if (urlString==null) return; + try { + URL u = new URL(urlString); // throws MalformedURLEx + u.openStream(); // throws IOEx + masterUrl = u; // no exception thrown - we're ok + masterExists = true; // actually this has to be true silly + } catch (Exception e) {} // masterUrl not set + } + + private boolean haveXmlBean() { return masterToLocalBean != null; } + private MasterToLocalConfig getXmlBean() { return masterToLocalBean; } + private boolean isWipeout() { if (!masterExists) return false; if (!localFileExists()) return true; // init if (cmdLineWipeout) return true; - return mode.equals("WIPEOUT_ALWAYS"); + return configIsWipeout(); //mode.equals("WIPEOUT"); //return (!dotConfFile.exists() || overwritePersonalCfg) } + private boolean configIsWipeout() { + if (!haveXmlBean() || masterToLocalBean.getMode() == null) + return false; + return masterToLocalBean.getMode().equals("WIPEOUT"); + } + /** not sure if this belongs in this class?? */ private void doWipeout() throws ConfigException { + + if (!isAlways() && versionSame()) { + sameVersionMessage("writing over"); + return; + } + doWipeoutMessage(); + // this shouldnt be copy!!! read in write out to get version! copyUrlToFile(masterUrl,localFile); // Ex put method in inner class? } + private void sameVersionMessage(String type) { + System.out.println("Template & local config have same version "+phenoteVersion()+ + ", not "+type+" local cfg"); + } + + private boolean versionSame() throws ConfigException { + if (!localFileExists()) return false; + Config localCfg = new Config(); + localCfg.parseXmlFile(localFileString()); + return versionSame(localCfg.version); + } + + private String phenoteVersion() { return PhenoteVersion.versionString(); } + + private boolean versionSame(String version) { + if (version == null) return false; + if (PhenoteVersion.versionString() == null) return false; + return (version.equals(phenoteVersion())); + } + private void doWipeoutMessage() { String s = !localFileExists() ? " does not exist" : " getting overwritten"; System.out.println(localFile+s+" Copying "+masterUrl); @@ -281,18 +342,27 @@ else return true; // for now... } private boolean isUpdateWithNewVersion() { - return isUpdate(); // for now + return isUpdate() && !isUpdateAlways(); // for now } private boolean isUpdateAlways() { - return isUpdate() && !isUpdateWithNewVersion(); // always false at moment + if (!isUpdate()) return false; //!isUpdateWithNewVersion(); + return isAlways(); } + private boolean isAlways() { + if (!haveXmlBean()) return false; + String when = masterToLocalBean.getWhen(); + if (when == null) return false; + return when.equals("ALWAYS"); + } + + private boolean isUpdateable(String version) { + if (!isUpdate()) return false; if (isUpdateAlways()) return true; if (!isUpdateWithNewVersion()) return false; // version - if (version == null) return false; - return (!version.equals(PhenoteVersion.versionString())); + return !versionSame(version); } @@ -363,7 +433,8 @@ //String version = PhenoteVersion.versionString();//newCfg.version //if (mode.isUpdateWithNewVersion() && version != null && version.equals(oldCfg.version)) { if (!mode.isUpdateable(oldCfg.version)) { - System.out.println("System & user config same version, not updating cfg"); + //System.out.println("System & user config same version, not updating cfg"); + mode.sameVersionMessage("updating"); return; } else @@ -575,23 +646,24 @@ PhenoteConfigurationDocument pcd = PhenoteConfigurationDocument.Factory.parse(configUrl);//configFile); pcd.validate(); //??? - PhenoteConfiguration pc = pcd.getPhenoteConfiguration(); + phenoConfigBean = pcd.getPhenoteConfiguration(); - version = pc.getVersion(); + version = phenoConfigBean.getVersion(); - MasterToLocalConfig m = pc.getMasterToLocalConfig(); - if (m != null && m.getMode() != null) - masterToLocalConfigMode = m.getMode(); + //MasterToLocalConfig m +// = phenoConfigBean.getMasterToLocalConfig(); +// if (m != null && m.getMode() != null) +// masterToLocalConfigMode = m.getMode(); // LOG CONFIG FILE - Log log = pc.getLog(); + Log log = phenoConfigBean.getLog(); if (log != null && log.getConfigFile() != null) { logConfigFile = log.getConfigFile(); } // DATA ADAPTERS <dataadapter name="phenoxml" enable="true"/> - Dataadapter[] adapters = pc.getDataadapterArray(); + Dataadapter[] adapters = phenoConfigBean.getDataadapterArray(); for (Dataadapter da : adapters) { DataAdapterConfig dac = new DataAdapterConfig(da); addAdapConfig(dac); @@ -599,7 +671,7 @@ //addDataAdapterFromString(name); } - QueryableDataadapter[] queryAdaps = pc.getQueryableDataadapterArray(); + QueryableDataadapter[] queryAdaps = phenoConfigBean.getQueryableDataadapterArray(); for (QueryableDataadapter da : queryAdaps) { QueryableAdapConfig qac = new QueryableAdapConfig(da); addQueryAdapCfg(qac); @@ -607,32 +679,32 @@ // GRAPH - UvicGraph gr = pc.getUvicGraph(); + UvicGraph gr = phenoConfigBean.getUvicGraph(); if (gr != null) uvicGraphEnabled = gr.getEnable(); // TERM HISTORY - TermHistory history = pc.getTermHistory(); + TermHistory history = phenoConfigBean.getTermHistory(); if (history != null) termHistoryEnabled = history.getEnable(); // AUTO UPDATE OF ONTOLOGIES - AutoUpdateOntologies autoUpdate = pc.getAutoUpdateOntologies(); + AutoUpdateOntologies autoUpdate = phenoConfigBean.getAutoUpdateOntologies(); if (autoUpdate != null) autoUpdateEnabled = autoUpdate.getEnable(); // TIMER for UPDATE OF ONTOLOGIES - UpdateTimer time = pc.getUpdateTimer(); + UpdateTimer time = phenoConfigBean.getUpdateTimer(); if (time != null) updateTimer = time.getTimer().intValue(); // Repos url dir - OboRepository or = pc.getOboRepository(); + OboRepository or = phenoConfigBean.getOboRepository(); if (or != null && or.getUrlDir() != null) reposUrlDir = or.getUrlDir(); // FIELDS - Field[] fields = pc.getFieldArray(); + Field[] fields = phenoConfigBean.getFieldArray(); for (Field f : fields) { makeFieldConfig(f); } Modified: phenote/trunk/src/java/phenote/config/ConfigWriter.java =================================================================== --- phenote/trunk/src/java/phenote/config/ConfigWriter.java 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/src/java/phenote/config/ConfigWriter.java 2007-05-15 19:00:03 UTC (rev 595) @@ -16,6 +16,10 @@ import phenote.dataadapter.DataAdapterI; import phenote.main.PhenoteVersion; +/** Im realizing now ive done this all wrong - as theres really 2 redundant datamodels + for the config - the xml beans, and phenotes own and there really should be just + the xml beans - then you dont have to do all this back & forth between them + hindsight is 20 20 */ class ConfigWriter { private Config config; Modified: phenote/trunk/src/java/phenote/main/CommandLine.java =================================================================== --- phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-15 19:00:03 UTC (rev 595) @@ -174,7 +174,7 @@ super("inputFile",'f',true,"filename",help); } public void execute() throws Exception { - //System.out.println("executing input fileConf command option "+getArg()); + //System.out.println("executing input file command option "+getArg()); getReadOptions().setFilename(getArg()); setAdapterForFile(getReadOptions(), false); } Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-15 19:00:03 UTC (rev 595) @@ -150,7 +150,7 @@ private void doCommandLine(String[] args) { try { commandLine.setArgs(args); } // sets config if specified catch (Exception e) { // no log yet - sys.out - System.out.println("Command line read failed: "+e); e.printStackTrace();} + System.out.println("Command line read failed: "+e); }//e.printStackTrace(); // no config set from command line use default if (!Config.inst().isInitialized()) { try { Config.inst().loadDefaultConfigFile(); } Modified: phenote/trunk/src/java/phenote/util/FileUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/FileUtil.java 2007-05-14 23:10:35 UTC (rev 594) +++ phenote/trunk/src/java/phenote/util/FileUtil.java 2007-05-15 19:00:03 UTC (rev 595) @@ -72,6 +72,8 @@ private static String sep(String a, String b) { return a + FILE_SEPARATOR + b; } + + /** split into findMaster?ConfigUrl & findOboUrl!!! */ public static URL findUrl(String filename) throws FileNotFoundException { List<URL> possibleUrls = getPossibleUrls(filename); for (URL u : possibleUrls) { @@ -87,7 +89,9 @@ // suffix - or who cares? // ok this is even sillier as it will look in .phenote for obo files and not for // conf files - which is what the app wants but really there needs to be 2 different - // methods - this is sheer laziness! + // methods - this is sheer laziness! also with separate methods can print out + // better error message + // split into getPossibleMaster?ConfigUrls & getPossibleOboUrls private static List<URL> getPossibleUrls(String filename) { List<URL> urls = new ArrayList(5); // hmmm - should full path go last? can be problem with running from @@ -106,6 +110,7 @@ return urls; } + // make an inner class for this? private static void addFile(String filename,List<URL> urls) { try { URL u = new File(filename).toURL(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-14 23:10:33
|
Revision: 594 http://svn.sourceforge.net/obo/?rev=594&view=rev Author: nlw Date: 2007-05-14 16:10:35 -0700 (Mon, 14 May 2007) Log Message: ----------- modified the display of the 'replaced by' and 'consider' terms in the TermInfo box for obsoletes. Modified Paths: -------------- phenote/trunk/src/java/phenote/util/HtmlUtil.java Modified: phenote/trunk/src/java/phenote/util/HtmlUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-05-14 16:58:38 UTC (rev 593) +++ phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-05-14 23:10:35 UTC (rev 594) @@ -88,22 +88,32 @@ } if (oboClass.isObsolete()) { Set obsReplacements = oboClass.getReplacedBy(); + StringBuffer replace = new StringBuffer(); + boolean replaceFlag = false; + boolean considerFlag = false; ObsoletableObject obsObj; for (Iterator it = obsReplacements.iterator(); it.hasNext(); ) { obsObj = (ObsoletableObject)it.next(); + replaceFlag = true; if (obsObj!=null) { - sb.append(makeRow(makeLeftCol(italic("replaced by:"))+makeRightCol(bold(termLink(obsObj))))); + replace.append(termLink(obsObj)+"<br>"); } } + if (replaceFlag) + sb.append(makeRow(makeLeftCol(bold(italic("Replaced by:")))+makeRightCol(replace.toString()))); + Set obsConsiders = oboClass.getConsiderReplacements(); + StringBuffer considers = new StringBuffer(); for (Iterator it = obsConsiders.iterator(); it.hasNext(); ) { obsObj = (ObsoletableObject)it.next(); + considerFlag = true; if (obsObj!=null) { - sb.append(makeRow(makeLeftCol(italic("consider replacing with:"))+makeRightCol(bold(termLink(obsObj))))); + considers.append(termLink(obsObj)+"<br>"); } } - - } + if (considerFlag) + sb.append(makeRow(makeLeftCol(bold(italic("Consider using:")))+makeRightCol(considers.toString()))); + } sb.append(makeRow(makeLeftCol(bold("ID"))+makeRightCol(oboClass.getID()))); String synonyms = makeSyns(true, oboClass.getSynonyms()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-14 16:58:38
|
Revision: 593 http://svn.sourceforge.net/obo/?rev=593&view=rev Author: mgibson Date: 2007-05-14 09:58:38 -0700 (Mon, 14 May 2007) Log Message: ----------- fixed bug where config wasnt loading if didnt have master that i broke - thanks to nicole for spotting Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/main/CommandLine.java phenote/trunk/src/java/phenote/main/Phenote.java phenote/trunk/src/java/phenote/util/FileUtil.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-12 01:23:57 UTC (rev 592) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-14 16:58:38 UTC (rev 593) @@ -223,12 +223,14 @@ /** ConfigMode INNER CLASS */ private class ConfigMode { + private String mode = ""; //private boolean updateWithNewVersion=false; private boolean masterExists = true; private URL masterUrl; private File localFile; //dotConfFile; private boolean cmdLineWipeout=false; + private ConfigMode(String masterConfig,boolean merge,boolean cmdLineWipeout) throws ConfigException { this.cmdLineWipeout = cmdLineWipeout; @@ -245,14 +247,14 @@ if (!masterExists && !localFile.exists()) throw new ConfigException("Cfg file doesnt exist in app nor .phenote/conf"); - Config cfg = new Config(); - cfg.parseXmlFile(masterConfig); - if (cfg.masterToLocalConfigMode != null) - mode = cfg.masterToLocalConfigMode; -// if (overwrite || mode.equals("WIPEOUT_ALWAYS")) -// wipeoutAlways = true; -// else -// updateWithNewVersion = true; // for now + if (masterExists) { + Config cfg = new Config(); + try { + cfg.parseXmlFile(masterConfig); + if (cfg.masterToLocalConfigMode != null) + mode = cfg.masterToLocalConfigMode; + } catch (ConfigException x) {} // do nothing? err msg? + } } private boolean isWipeout() { if (!masterExists) return false; @@ -274,6 +276,7 @@ } private boolean isUpdate() { + if (!masterExists) return false; // cant update without master if (isWipeout()) return false; else return true; // for now... } @@ -704,6 +707,11 @@ } } + +// if (overwrite || mode.equals("WIPEOUT_ALWAYS")) +// wipeoutAlways = true; +// else +// updateWithNewVersion = true; // for now // private File getMyPhenoteCfgFile() { // return new File(FileUtil.getDotPhenoteDir(),"my-phenote.cfg"); // } Modified: phenote/trunk/src/java/phenote/main/CommandLine.java =================================================================== --- phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-12 01:23:57 UTC (rev 592) +++ phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-14 16:58:38 UTC (rev 593) @@ -156,6 +156,7 @@ private void loadDefaultConfig(String m, ConfigException e) { System.out.println("Yikes! Failed to "+m+" config file "+e+" gonna try " +"loading default config"); + //e.printStackTrace(); try { Config.inst().loadDefaultConfigFile(); } catch (ConfigException ce) { System.out.println("bummer - even default config fails. uh oh "+ce); @@ -173,7 +174,7 @@ super("inputFile",'f',true,"filename",help); } public void execute() throws Exception { - //System.out.println("executing input file command option "+getArg()); + //System.out.println("executing input fileConf command option "+getArg()); getReadOptions().setFilename(getArg()); setAdapterForFile(getReadOptions(), false); } Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-12 01:23:57 UTC (rev 592) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-14 16:58:38 UTC (rev 593) @@ -150,7 +150,7 @@ private void doCommandLine(String[] args) { try { commandLine.setArgs(args); } // sets config if specified catch (Exception e) { // no log yet - sys.out - System.out.println("Command line read failed"+e); } + System.out.println("Command line read failed: "+e); e.printStackTrace();} // no config set from command line use default if (!Config.inst().isInitialized()) { try { Config.inst().loadDefaultConfigFile(); } Modified: phenote/trunk/src/java/phenote/util/FileUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/FileUtil.java 2007-05-12 01:23:57 UTC (rev 592) +++ phenote/trunk/src/java/phenote/util/FileUtil.java 2007-05-14 16:58:38 UTC (rev 593) @@ -85,6 +85,9 @@ // this is muddling config and obo - probably should be 2 methods? or be smart about // suffix - or who cares? + // ok this is even sillier as it will look in .phenote for obo files and not for + // conf files - which is what the app wants but really there needs to be 2 different + // methods - this is sheer laziness! private static List<URL> getPossibleUrls(String filename) { List<URL> urls = new ArrayList(5); // hmmm - should full path go last? can be problem with running from This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-05-12 01:23:56
|
Revision: 592 http://svn.sourceforge.net/obo/?rev=592&view=rev Author: cmungall Date: 2007-05-11 18:23:57 -0700 (Fri, 11 May 2007) Log Message: ----------- Modified Paths: -------------- obolog/trunk/examples/ro.obolog obolog/trunk/obolog.kif Modified: obolog/trunk/examples/ro.obolog =================================================================== --- obolog/trunk/examples/ro.obolog 2007-05-12 01:01:34 UTC (rev 591) +++ obolog/trunk/examples/ro.obolog 2007-05-12 01:23:57 UTC (rev 592) @@ -4,6 +4,8 @@ (label OBO_REL__adjacent_to "adjacent_to") (subrelation OBO_REL__adjacent_to OBO_REL__relationship) (holds_temporally_between snap__Continuant snap__Continuant) +(all_some OBO_REL__adjacent_to) +(holds_for_all_times OBO_REL__adjacent_to) (comment OBO_REL__adjacent_to "Note that adjacent_to as thus defined is not a symmetric relation, in contrast to its instance-level counterpart. For it can be the case that Cs are in general such as to be adjacent to instances of C1 while no analogous statement holds for C1s in general in relation to instances of C. Examples are: nuclear membrane adjacent_to cytoplasm; seminal vesicle adjacent_to urinary bladder; ovary adjacent_to parietal pelvic peritoneum") (text_definition OBO_REL__adjacent_to "C adjacent to C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c and c' are in spatial proximity") (text_definition_xref OBO_REL__adjacent_to PMID__15892874) @@ -20,6 +22,7 @@ (instance_level_inverse OBO_REL__contained_in OBO_REL__contains) (instance_level_inverse OBO_REL__contained_in OBO_REL__contains) (holds_temporally_between snap__Continuant snap__Continuant) +(all_some OBO_REL__contained_in) (comment OBO_REL__contained_in "Containment obtains in each case between material and immaterial continuants, for instance: lung contained_in thoracic cavity; bladder contained_in pelvic cavity. Hence containment is not a transitive relation. If c part_of c1 at t then we have also, by our definition and by the axioms of mereology applied to spatial regions, c located_in c1 at t. Thus, many examples of instance-level location relations for continuants are in fact cases of instance-level parthood. For material continuants location and parthood coincide. Containment is location not involving parthood, and arises only where some immaterial continuant is involved. To understand this relation, we first define overlap for continuants as follows: c1 overlap c2 at t =def for some c, c part_of c1 at t and c part_of c2 at t. The containment relation on the instance level can then be defined (see definition):") (text_definition OBO_REL__contained_in "C contained_in C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c located_in c' at t, and it is not the case that c *overlaps* c' at t. (c' is a conduit or cavity.)") (text_definition_xref OBO_REL__contained_in PMID__15892874) @@ -30,6 +33,7 @@ (instance_level_inverse OBO_REL__contains OBO_REL__contained_in) (instance_level_inverse OBO_REL__contains OBO_REL__contained_in) (holds_temporally_between snap__Continuant snap__Continuant) +(all_some OBO_REL__contains) (relation OBO_REL__derived_into) (label OBO_REL__derived_into "derived_into") @@ -37,6 +41,7 @@ (instance_level_inverse OBO_REL__derived_into OBO_REL__derives_from) (instance_level_inverse OBO_REL__derived_into OBO_REL__derives_from) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__derived_into) (transitive OBO_REL__derived_into) (relation OBO_REL__derives_from) @@ -45,6 +50,7 @@ (instance_level_inverse OBO_REL__derives_from OBO_REL__derived_into) (instance_level_inverse OBO_REL__derives_from OBO_REL__derived_into) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__derives_from) (transitive OBO_REL__derives_from) (comment OBO_REL__derives_from "Derivation as a relation between instances. The temporal relation of derivation is more complex. Transformation, on the instance level, is just the relation of identity: each adult is identical to some child existing at some earlier time. Derivation on the instance-level is a relation holding between non-identicals. More precisely, it holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. Thus we will have axioms to the effect that from c derives_from c1 we can infer that c and c1 are not identical and that there is some instant of time t such that c1 exists only prior to and c only subsequent to t. We will also be able to infer that the spatial region occupied by c as it begins to exist at t overlaps with the spatial region occupied by c1 as it ceases to exist in the same instant.") (text_definition OBO_REL__derives_from "Derivation on the instance level (*derives_from*) holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. We say that one class C derives_from class C' if instances of C are connected to instances of C' via some chain of instance-level derivation relations. Example: osteocyte derives_from osteoblast. Formally: C derives_immediately_from C' if and only if: given any c and any t, if c instantiates C at time t, then there is some c' and some t', such that c' instantiates C' at t' and t' earlier-than t and c *derives_from* c'. C derives_from C' if and only if: there is an chain of immediate derivation relations connecting C to C'.") @@ -81,6 +87,8 @@ (instance_level_inverse OBO_REL__has_part OBO_REL__part_of) (holds_temporally_between snap__Continuant snap__Continuant) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__has_part) +(holds_for_all_times OBO_REL__has_part) (transitive OBO_REL__has_part) (anti_symmetric OBO_REL__has_part) (reflexive OBO_REL__has_part) @@ -91,6 +99,7 @@ (instance_level_inverse OBO_REL__has_participant OBO_REL__participates_in) (instance_level_inverse OBO_REL__has_participant OBO_REL__participates_in) (holds_temporally_between span__Occurrent snap__Continuant) +(all_some OBO_REL__has_participant) (comment OBO_REL__has_participant "Has_participant is a primitive instance-level relation between a process, a continuant, and a time at which the continuant participates in some way in the process. The relation obtains, for example, when this particular process of oxygen exchange across this particular alveolar membrane has_participant this particular sample of hemoglobin at this particular time.") (text_definition OBO_REL__has_participant "P has_participant C if and only if: given any process p that instantiates P there is some continuant c, and some time t, such that: c instantiates C at t and c participates in p at t") (text_definition_xref OBO_REL__has_participant PMID__15892874) @@ -100,6 +109,7 @@ (subrelation OBO_REL__has_proper_part OBO_REL__has_part) (instance_level_inverse OBO_REL__has_proper_part OBO_REL__proper_part_of) (instance_level_inverse OBO_REL__has_proper_part OBO_REL__proper_part_of) +(proper OBO_REL__has_proper_part) (transitive OBO_REL__has_proper_part) (relation OBO_REL__improper_part_of) @@ -147,6 +157,7 @@ (transitive_over OBO_REL__located_in OBO_REL__part_of) (transitive_over OBO_REL__located_in OBO_REL__part_of) (holds_temporally_between snap__Continuant snap__Continuant) +(all_some OBO_REL__located_in) (transitive OBO_REL__located_in) (reflexive OBO_REL__located_in) (comment OBO_REL__located_in "Location as a relation between instances: The primitive instance-level relation c located_in r at t reflects the fact that each continuant is at any given time associated with exactly one spatial region, namely its exact location. Following we can use this relation to define a further instance-level location relation - not between a continuant and the region which it exactly occupies, but rather between one continuant and another. c is located in c1, in this sense, whenever the spatial region occupied by c is part_of the spatial region occupied by c1. Note that this relation comprehends both the relation of exact location between one continuant and another which obtains when r and r1 are identical (for example, when a portion of fluid exactly fills a cavity), as well as those sorts of inexact location relations which obtain, for example, between brain and head or between ovum and uterus") @@ -159,6 +170,7 @@ (instance_level_inverse OBO_REL__location_of OBO_REL__located_in) (instance_level_inverse OBO_REL__location_of OBO_REL__located_in) (holds_temporally_between snap__Continuant snap__Continuant) +(all_some OBO_REL__location_of) (transitive OBO_REL__location_of) (reflexive OBO_REL__location_of) @@ -167,6 +179,8 @@ (subrelation OBO_REL__overlaps OBO_REL__relationship) (holds_temporally_between snap__Continuant snap__Continuant) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__overlaps) +(holds_for_all_times OBO_REL__overlaps) (symmetric OBO_REL__overlaps) (reflexive OBO_REL__overlaps) (synonym OBO_REL__overlaps "has_common_part_with") @@ -179,6 +193,8 @@ (instance_level_inverse OBO_REL__part_of OBO_REL__has_part) (holds_temporally_between snap__Continuant snap__Continuant) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__part_of) +(holds_for_all_times OBO_REL__part_of) (transitive OBO_REL__part_of) (anti_symmetric OBO_REL__part_of) (reflexive OBO_REL__part_of) @@ -192,6 +208,7 @@ (instance_level_inverse OBO_REL__participates_in OBO_REL__has_participant) (instance_level_inverse OBO_REL__participates_in OBO_REL__has_participant) (holds_temporally_between snap__Continuant span__Occurrent) +(all_some OBO_REL__participates_in) (relation OBO_REL__preceded_by) (label OBO_REL__preceded_by "preceded_by") @@ -199,6 +216,7 @@ (instance_level_inverse OBO_REL__preceded_by OBO_REL__precedes) (instance_level_inverse OBO_REL__preceded_by OBO_REL__precedes) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__preceded_by) (transitive OBO_REL__preceded_by) (comment OBO_REL__preceded_by "An example is: translation preceded_by transcription; aging preceded_by development (not however death preceded_by aging). Where derives_from links classes of continuants, preceded_by links classes of processes. Clearly, however, these two relations are not independent of each other. Thus if cells of type C1 derive_from cells of type C, then any cell division involving an instance of C1 in a given lineage is preceded_by cellular processes involving an instance of C. The assertion P preceded_by P1 tells us something about Ps in general: that is, it tells us something about what happened earlier, given what we know about what happened later. Thus it does not provide information pointing in the opposite direction, concerning instances of P1 in general; that is, that each is such as to be succeeded by some instance of P. Note that an assertion to the effect that P preceded_by P1 is rather weak; it tells us little about the relations between the underlying instances in virtue of which the preceded_by relation obtains. Typically we will be interested in stronger relations, for example in the relation immediately_preceded_by, or in relations which combine preceded_by with a condition to the effect that the corresponding instances of P and P1 share participants, or that their participants are connected by relations of derivation, or (as a first step along the road to a treatment of causality) that the one process in some way affects (for example, initiates or regulates) the other.") (text_definition OBO_REL__preceded_by "P preceded_by P' if and only if: given any process p that instantiates P at a time t, there is some process p' such that p' instantiates P' at time t', and t' is earlier than t. ") @@ -210,6 +228,7 @@ (instance_level_inverse OBO_REL__precedes OBO_REL__preceded_by) (instance_level_inverse OBO_REL__precedes OBO_REL__preceded_by) (holds_atemporally_between span__Occurrent span__Occurrent) +(all_some OBO_REL__precedes) (transitive OBO_REL__precedes) (relation OBO_REL__proper_part_of) @@ -217,6 +236,7 @@ (subrelation OBO_REL__proper_part_of OBO_REL__part_of) (instance_level_inverse OBO_REL__proper_part_of OBO_REL__has_proper_part) (instance_level_inverse OBO_REL__proper_part_of OBO_REL__has_proper_part) +(proper OBO_REL__proper_part_of) (transitive OBO_REL__proper_part_of) (text_definition OBO_REL__proper_part_of "As for part_of, with the additional constraint that subject and object are distinct") (text_definition_xref OBO_REL__proper_part_of PMID__15892874) Modified: obolog/trunk/obolog.kif =================================================================== --- obolog/trunk/obolog.kif 2007-05-12 01:01:34 UTC (rev 591) +++ obolog/trunk/obolog.kif 2007-05-12 01:23:57 UTC (rev 592) @@ -2,11 +2,7 @@ ;; upper case for universals, lower case for instances ;; - but remember, most KIF implementations are case insenstivite -;; ============================== -;; instantiation -;; ============================== - ;; **************************************** ;; (instance_of ?instance ?Universal ?time) ;; **************************************** @@ -15,7 +11,7 @@ ;; this is not necessary for processes? (=> (and (instance_of ?i ?X ?t) - (is_a ?X ?Y)) ;; TODO - change to OBO_REL:is_a? + (is_a ?X ?Y)) (instance_of ?i ?Y ?t)) ;; **************************************** @@ -39,13 +35,13 @@ ;; (all_some ?relation) ;; (all_times ?relation) ;; **************************************** -;; EXAMPLE: (all_some_all_times part_of) (holds part_of cell_nucleus cell) +;; EXAMPLE: (all_some part_of all_times part_of) (holds part_of cell_nucleus cell) ;; ;; most relations follow the OBO-RO all-some pattern ;; ie ALL instances of U1 stand in relation ?rel to SOME instance U2 at ALL times (=> (and (all_some ?rel) - (all_times ?rel) + (holds_for_all_times ?rel) (holds ?rel ?U1 ?U2) (instance_of ?i1 ?U1 ?t)) (exists (?i2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-05-12 01:01:32
|
Revision: 591 http://svn.sourceforge.net/obo/?rev=591&view=rev Author: cmungall Date: 2007-05-11 18:01:34 -0700 (Fri, 11 May 2007) Log Message: ----------- Added Paths: ----------- obolog/trunk/examples/bfo.obolog obolog/trunk/examples/ro.obolog Added: obolog/trunk/examples/bfo.obolog =================================================================== --- obolog/trunk/examples/bfo.obolog (rev 0) +++ obolog/trunk/examples/bfo.obolog 2007-05-12 01:01:34 UTC (rev 591) @@ -0,0 +1,376 @@ +(obolog_version "0.01") + +(universal bfo__Entity) +(label bfo__Entity "entity") + +(universal snap__Continuant) +(label snap__Continuant "continuant") +(is_a snap__Continuant bfo__Entity) +(disjoint_union span__Occurrent) +(class_metadata snap__Continuant has_example "a heart" xsd__string) +(class_metadata snap__Continuant has_example "a person" xsd__string) +(class_metadata snap__Continuant has_example "a symphony orchestra" xsd__string) +(class_metadata snap__Continuant has_example "the color of a tomato" xsd__string) +(class_metadata snap__Continuant has_example "the disposition of blood to coagulate" xsd__string) +(class_metadata snap__Continuant has_example "the lawn and atmosphere in front of our building" xsd__string) +(class_metadata snap__Continuant has_example "the mass of a cloud" xsd__string) +(synonym snap__Continuant "endurant") +(text_definition snap__Continuant "An entity that exists in full at any time in which it exists at all, persists through time while maintaining its identity and has no temporal parts.") + +(universal snap__DependentContinuant) +(label snap__DependentContinuant "dependent_continuant") +(is_a snap__DependentContinuant snap__Continuant) +(disjoint_union snap__IndependentContinuant snap__SpatialRegion) +(class_metadata snap__DependentContinuant has_example "the color of a tomato" xsd__string) +(class_metadata snap__DependentContinuant has_example "the disposition of fish to decay" xsd__string) +(class_metadata snap__DependentContinuant has_example "the function of the heart to pump blood" xsd__string) +(class_metadata snap__DependentContinuant has_example "the liquidity of blood" xsd__string) +(class_metadata snap__DependentContinuant has_example "the mass of a cloud" xsd__string) +(class_metadata snap__DependentContinuant has_example "the role of being a doctor" xsd__string) +(class_metadata snap__DependentContinuant has_example "the smell of mozzarella" xsd__string) +(synonym snap__DependentContinuant "mode") +(synonym snap__DependentContinuant "property") +(synonym snap__DependentContinuant "trope") +(text_definition snap__DependentContinuant "A continuant that inheres in or is borne by other entities.") + +(universal snap__Disposition) +(label snap__Disposition "disposition") +(is_a snap__Disposition snap__RealizableEntity) +(disjoint_union snap__Function snap__Role) +(class_metadata snap__Disposition has_example "the disposition of a patient with a weakened immune system to contract disease" xsd__string) +(class_metadata snap__Disposition has_example "the disposition of a vase to brake if dropped" xsd__string) +(class_metadata snap__Disposition has_example "the disposition of blood to coagulate" xsd__string) +(class_metadata snap__Disposition has_example "the disposition of metal to conduct electricity." xsd__string) +(class_metadata snap__Disposition has_example "the disposition of vegetables to decay when not refrigerated" xsd__string) +(text_definition snap__Disposition "A realizable entity that essentially causes a specific process or transformation in the object in which it inheres, under specific circumstances and in conjunction with the laws of nature. A general formula for dispositions is: X (object) has the disposition D to (transform, initiate a process) R under conditions C.") + +(universal snap__FiatObjectPart) +(label snap__FiatObjectPart "fiat_object_part") +(is_a snap__FiatObjectPart snap__IndependentContinuant) +(disjoint_union snap__Object snap__ObjectAggregate snap__ObjectBoundary snap__Site) +(class_metadata snap__FiatObjectPart has_example "the dorsal and ventral surfaces of the body" xsd__string) +(class_metadata snap__FiatObjectPart has_example "the east side of Saarbruecken" xsd__string) +(class_metadata snap__FiatObjectPart has_example "the lower right portion of a human torso" xsd__string) +(class_metadata snap__FiatObjectPart has_example "upper and lower lobes of the left lung" xsd__string) +(synonym snap__FiatObjectPart "fiat substance part") +(text_definition snap__FiatObjectPart "An independent continuant that is part of an object but is not demarcated by any physical discontinuities.") + +(universal snap__Function) +(label snap__Function "function") +(is_a snap__Function snap__RealizableEntity) +(disjoint_union snap__Disposition snap__Role) +(class_metadata snap__Function has_example "the digestive function of the stomach to nutriate the body" xsd__string) +(class_metadata snap__Function has_example "the function of a birth canal to enable transport" xsd__string) +(class_metadata snap__Function has_example "the function of a computer program to compute mathematical equations" xsd__string) +(class_metadata snap__Function has_example "the function of a hammer to drive in nails" xsd__string) +(class_metadata snap__Function has_example "the function of a judge in a court of law" xsd__string) +(class_metadata snap__Function has_example "the function of an automobile to provide transportation" xsd__string) +(class_metadata snap__Function has_example "the function of reproduction in the transmission of genetic material" xsd__string) +(class_metadata snap__Function has_example "the function of the heart in the body to pump blood" xsd__string) +(text_definition snap__Function "A realizable entity the manifestation of which is an essentialy end-directed activity of a continuant entity in virtue of that continuant entity being a specific kind of entity in the kind or kinds of contexts that it is made for.") + +(universal snap__IndependentContinuant) +(label snap__IndependentContinuant "independent_continuant") +(is_a snap__IndependentContinuant snap__Continuant) +(disjoint_union snap__DependentContinuant snap__SpatialRegion) +(class_metadata snap__IndependentContinuant has_example "a chair" xsd__string) +(class_metadata snap__IndependentContinuant has_example "a heart" xsd__string) +(class_metadata snap__IndependentContinuant has_example "a leg" xsd__string) +(class_metadata snap__IndependentContinuant has_example "a person" xsd__string) +(class_metadata snap__IndependentContinuant has_example "a symphony orchestra" xsd__string) +(class_metadata snap__IndependentContinuant has_example "an organism" xsd__string) +(class_metadata snap__IndependentContinuant has_example "the bottom right portion of a human torso" xsd__string) +(class_metadata snap__IndependentContinuant has_example "the lawn and atmosphere in front of our building" xsd__string) +(synonym snap__IndependentContinuant "substantial entity") +(text_definition snap__IndependentContinuant "A continuant that is a bearer of qualities and realizable entities, in which other entities inhere and which itself cannot inhere in anything.") + +(universal snap__Object) +(label snap__Object "object") +(is_a snap__Object snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__ObjectAggregate snap__ObjectBoundary snap__Site) +(class_metadata snap__Object has_example "a chair" xsd__string) +(class_metadata snap__Object has_example "a heart" xsd__string) +(class_metadata snap__Object has_example "a lung" xsd__string) +(class_metadata snap__Object has_example "an apple" xsd__string) +(class_metadata snap__Object has_example "an organism" xsd__string) +(synonym snap__Object "substance") +(text_definition snap__Object "A independent continuant that is spatially extended, maximally self-connected and self-contained (the parts of a substance are not separated from each other by spatial gaps) and possesses an internal unity. The identity of substantial objects is independent of that of other entities and can be maintained through time and through loss and gain of parts and qualities.") + +(universal snap__ObjectAggregate) +(label snap__ObjectAggregate "object_aggregate") +(is_a snap__ObjectAggregate snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectBoundary snap__Site) +(class_metadata snap__ObjectAggregate has_example "a collection of random bacteria" xsd__string) +(class_metadata snap__ObjectAggregate has_example "a flock of geese" xsd__string) +(class_metadata snap__ObjectAggregate has_example "a group of commuters on the subway" xsd__string) +(class_metadata snap__ObjectAggregate has_example "a heap of stones" xsd__string) +(class_metadata snap__ObjectAggregate has_example "the patients in a hospital" xsd__string) +(synonym snap__ObjectAggregate "substance aggregate") +(text_definition snap__ObjectAggregate "An independent continuant that is a mereological sum of separate objects and possesses non-connected boundaries.") + +(universal snap__ObjectBoundary) +(label snap__ObjectBoundary "object_boundary") +(is_a snap__ObjectBoundary snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__Site) +(class_metadata snap__ObjectBoundary has_example "the outer surface of a cell or cell wall" xsd__string) +(class_metadata snap__ObjectBoundary has_example "the surface of the earth" xsd__string) +(class_metadata snap__ObjectBoundary has_example "the surface of the interior of the stomach" xsd__string) +(class_metadata snap__ObjectBoundary has_example "the surface of the skin" xsd__string) +(comment snap__ObjectBoundary "Boundaries are theoretically difficult entities to account for, however the intuitive notion of a physical boundary as a surface of some sort (whether inside or outside of a thing) will generally serve as a good guide for the use of this universal.") +(synonym snap__ObjectBoundary "substance boundary") +(text_definition snap__ObjectBoundary "An independent continuant that is a lower dimensional part of a spatial entity, normally a closed two-dimensional surface. Boundaries are those privileged parts of objects that exist at exactly the point where the object is separated off from the rest of the existing entities in the world.") + +(universal snap__OneDimensionalRegion) +(label snap__OneDimensionalRegion "one_dimensional_region") +(is_a snap__OneDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__ThreeDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) +(class_metadata snap__OneDimensionalRegion has_example "an edge of a cube-shaped part of space" xsd__string) +(class_metadata snap__OneDimensionalRegion has_example "the part of space that is a line stretching from one end of absolute space to the other" xsd__string) +(text_definition snap__OneDimensionalRegion "A spatial region with one dimension.") + +(universal snap__Quality) +(label snap__Quality "quality") +(is_a snap__Quality snap__DependentContinuant) +(disjoint_union snap__RealizableEntity) +(class_metadata snap__Quality has_example "the ambient temperature of air" xsd__string) +(class_metadata snap__Quality has_example "the circumference of a waist" xsd__string) +(class_metadata snap__Quality has_example "the color of a tomato" xsd__string) +(class_metadata snap__Quality has_example "the mass of a piece of gold" xsd__string) +(class_metadata snap__Quality has_example "the shape of a nose" xsd__string) +(class_metadata snap__Quality has_example "the weight of a chimpanzee" xsd__string) +(text_definition snap__Quality "A dependent continuant that is exhibited if it inheres in an entity or entities at all (a categorical property).") + +(universal snap__RealizableEntity) +(label snap__RealizableEntity "realizable_entity") +(is_a snap__RealizableEntity snap__DependentContinuant) +(disjoint_union snap__Quality) +(class_metadata snap__RealizableEntity has_example "the disposition of blood to coagulate" xsd__string) +(class_metadata snap__RealizableEntity has_example "the disposition of metal to conduct electricity" xsd__string) +(class_metadata snap__RealizableEntity has_example "the function of the reproductive organs" xsd__string) +(class_metadata snap__RealizableEntity has_example "the role of being a doctor" xsd__string) +(text_definition snap__RealizableEntity "A dependent continuant that inheres in continuants and are not exhibited in full at every time in which it inheres in an entity or group of entities. The exhibition or actualization of a realizable entity is a particular manifestation, functioning or process that occurs under certain circumstances.") + +(universal snap__Role) +(label snap__Role "role") +(is_a snap__Role snap__RealizableEntity) +(disjoint_union snap__Disposition snap__Function) +(class_metadata snap__Role has_example "the role of a biological grandfather as legal guardian in the context of a system of laws" xsd__string) +(class_metadata snap__Role has_example "the role of a chemical compound in an experiment" xsd__string) +(class_metadata snap__Role has_example "the role of a drug in the treatment of a disease" xsd__string) +(class_metadata snap__Role has_example "the role of a patient relative as defined by a hospital administrative form" xsd__string) +(class_metadata snap__Role has_example "the role of a person as a surgeon" xsd__string) +(class_metadata snap__Role has_example "the role of a tree in maintaining stability in an ecosystem" xsd__string) +(class_metadata snap__Role has_example "the role of a woman as a legal mother in the context of system of laws" xsd__string) +(class_metadata snap__Role has_example "the role of an artificial heart in pumping blood" xsd__string) +(class_metadata snap__Role has_example "the role of ingested matter in digestion" xsd__string) +(text_definition snap__Role "A realizable entity the manifestation of which brings about some result or end that is not essential to a continuant in virtue of the kind of thing that it is but that can be served or participated in by that kind of continuant in some kinds of natural, social or institutional contexts.") + +(universal snap__Site) +(label snap__Site "site") +(is_a snap__Site snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__ObjectBoundary) +(class_metadata snap__Site has_example "a blood vein" xsd__string) +(class_metadata snap__Site has_example "a city" xsd__string) +(class_metadata snap__Site has_example "a nasal cavity" xsd__string) +(class_metadata snap__Site has_example "an environment" xsd__string) +(class_metadata snap__Site has_example "canals" xsd__string) +(class_metadata snap__Site has_example "sinuses" xsd__string) +(class_metadata snap__Site has_example "the interior of the aorta" xsd__string) +(class_metadata snap__Site has_example "the location of the battle of Austerlitz" xsd__string) +(class_metadata snap__Site has_example "the lumen of the gastrointestinal tract" xsd__string) +(class_metadata snap__Site has_example "the room in which one is located" xsd__string) +(class_metadata snap__Site has_example "the top of one\u2019s desk including the things that are on it and the atmosphere surrounding them." xsd__string) +(class_metadata snap__Site has_example "ventricles" xsd__string) +(comment snap__Site "Sites should not be confused with spatial regions. Sites characteristically have a filling or medium and are capable of altering their spatial location (moving from one spatial region to another) without altering their identity.") +(text_definition snap__Site "An independent continuant consisting of a characteristic spatial shape in relation to some arrangement of other continuants and of the medium which is enclosed in whole or in part by this characteristic spatial shape. Sites are entities that can be occupied by other continuants.") + +(universal snap__SpatialRegion) +(label snap__SpatialRegion "spatial_region") +(is_a snap__SpatialRegion snap__Continuant) +(disjoint_union snap__DependentContinuant snap__IndependentContinuant) +(class_metadata snap__SpatialRegion has_example "parts of the sum total of all space in the universe" xsd__string) +(class_metadata snap__SpatialRegion has_example "the sum total of all space in the universe" xsd__string) +(comment snap__SpatialRegion "Spatial regions should not be confused with sites. Spatial regions exist as parts of pure or absolute space, have a dimensionality and a shape but require no filling in order to exist and are also immobile.") +(text_definition snap__SpatialRegion "An independent continuant that is neither bearer of qualities nor inheres in any other entities.") + +(universal snap__ThreeDimensionalRegion) +(label snap__ThreeDimensionalRegion "three_dimensional_region") +(is_a snap__ThreeDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) +(class_metadata snap__ThreeDimensionalRegion has_example "a cube-shaped part of space" xsd__string) +(class_metadata snap__ThreeDimensionalRegion has_example "a sphere-shaped part of space" xsd__string) +(text_definition snap__ThreeDimensionalRegion "A spatial region with three dimensions.") + +(universal snap__TwoDimensionalRegion) +(label snap__TwoDimensionalRegion "two_dimensional_region") +(is_a snap__TwoDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__ZeroDimensionalRegion) +(class_metadata snap__TwoDimensionalRegion has_example "the surface of a cube-shaped part of space" xsd__string) +(class_metadata snap__TwoDimensionalRegion has_example "the surface of a rectilinear planar figure-shaped part of space" xsd__string) +(class_metadata snap__TwoDimensionalRegion has_example "the surface of a sphere-shaped part of space" xsd__string) +(text_definition snap__TwoDimensionalRegion "A spatial region with two dimensions.") + +(universal snap__ZeroDimensionalRegion) +(label snap__ZeroDimensionalRegion "zero_dimensional_region") +(is_a snap__ZeroDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__TwoDimensionalRegion) +(class_metadata snap__ZeroDimensionalRegion has_example "a point" xsd__string) +(text_definition snap__ZeroDimensionalRegion "A spatial region with no dimensions.") + +(universal span__ConnectedSpatiotemporalRegion) +(label span__ConnectedSpatiotemporalRegion "connected_spatiotemporal_region") +(is_a span__ConnectedSpatiotemporalRegion span__SpatiotemporalRegion) +(disjoint_union span__ScatteredSpatiotemporalRegion) +(class_metadata span__ConnectedSpatiotemporalRegion has_example "the spatial and temporal location of an individual organism\u2019s life" xsd__string) +(class_metadata span__ConnectedSpatiotemporalRegion has_example "the spatial and temporal location of the development of a fetus" xsd__string) +(text_definition span__ConnectedSpatiotemporalRegion "A space time region that has temporal and spatial dimensions such that all points within the spatiotemporal region are mediately or immediately connected to all other points within the same space time region.") + +(universal span__ConnectedTemporalRegion) +(label span__ConnectedTemporalRegion "connected_temporal_region") +(is_a span__ConnectedTemporalRegion span__TemporalRegion) +(disjoint_union span__ScatteredTemporalRegion) +(class_metadata span__ConnectedTemporalRegion has_example "the 1970s years" xsd__string) +(class_metadata span__ConnectedTemporalRegion has_example "the time from the beginning to the end of a heart attack" xsd__string) +(class_metadata span__ConnectedTemporalRegion has_example "the time taken up by cellular meiosis" xsd__string) +(text_definition span__ConnectedTemporalRegion "A temporal region every point of which is mediately or immediately connected with every other point of which.") + +(universal span__FiatProcessPart) +(label span__FiatProcessPart "fiat_process_part") +(is_a span__FiatProcessPart span__ProcessualEntity) +(disjoint_union span__Process span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) +(class_metadata span__FiatProcessPart has_example "chewing during a meal" xsd__string) +(class_metadata span__FiatProcessPart has_example "the middle part of a rainstorm" xsd__string) +(class_metadata span__FiatProcessPart has_example "the most interesting part of Van Gogh\u2019s life" xsd__string) +(class_metadata span__FiatProcessPart has_example "the worst part of a heart-attack" xsd__string) +(text_definition span__FiatProcessPart "A processual entity that is part of a process but that does not have bona fide beginnings and endings corresponding to real discontinuities.") + +(universal span__Occurrent) +(label span__Occurrent "occurrent") +(is_a span__Occurrent bfo__Entity) +(disjoint_union snap__Continuant) +(class_metadata span__Occurrent has_example "a surgical operation as processual context for a nosocomical infection" xsd__string) +(class_metadata span__Occurrent has_example "the life of an organism" xsd__string) +(class_metadata span__Occurrent has_example "the most interesting part of Van Gogh\u2019s life" xsd__string) +(class_metadata span__Occurrent has_example "the spatiotemporal context occupied by a process of cellular meiosis" xsd__string) +(class_metadata span__Occurrent has_example "the spatiotemporal region occupied by the development of a cancer tumor" xsd__string) +(synonym span__Occurrent "perdurant") +(text_definition span__Occurrent "An entity that has temporal parts and that happens, unfolds or develops through time. Sometimes also called perdurants.") + +(universal span__Process) +(label span__Process "process") +(is_a span__Process span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) +(class_metadata span__Process has_example "the life of an organism" xsd__string) +(class_metadata span__Process has_example "the process of cell-division" xsd__string) +(class_metadata span__Process has_example "the process of sleeping" xsd__string) +(text_definition span__Process "A processual entity that is a maximally connected spatio-temporal whole and has bona fide beginnings and endings corresponding to real discontinuities.") + +(universal span__ProcessAggregate) +(label span__ProcessAggregate "process_aggregate") +(is_a span__ProcessAggregate span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessBoundary span__ProcessualContext) +(class_metadata span__ProcessAggregate has_example "a process of digestion and a process of thinking taken together" xsd__string) +(class_metadata span__ProcessAggregate has_example "the beating of the hearts of each of seven individuals in the room" xsd__string) +(class_metadata span__ProcessAggregate has_example "the playing of each of the members of an orchestra" xsd__string) +(text_definition span__ProcessAggregate "A processual entity that is a meriological sum of processes and possesses non-connected boundaries.") + +(universal span__ProcessBoundary) +(label span__ProcessBoundary "process_boundary") +(is_a span__ProcessBoundary span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessualContext) +(class_metadata span__ProcessBoundary has_example "birth" xsd__string) +(class_metadata span__ProcessBoundary has_example "death" xsd__string) +(class_metadata span__ProcessBoundary has_example "the detaching of a finger in an industrial accident" xsd__string) +(class_metadata span__ProcessBoundary has_example "the final separation of two cells at the end of cell-division" xsd__string) +(class_metadata span__ProcessBoundary has_example "the forming of a synapse" xsd__string) +(class_metadata span__ProcessBoundary has_example "the incision at the beginning of a surgery" xsd__string) +(class_metadata span__ProcessBoundary has_example "the onset of REM sleep" xsd__string) +(text_definition span__ProcessBoundary "A processual entity that is the fiat or bona fide instantaneous temporal process boundary.") + +(universal span__ProcessualContext) +(label span__ProcessualContext "processual_context") +(is_a span__ProcessualContext span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessBoundary) +(class_metadata span__ProcessualContext has_example "a clinical trial as processual context for the discovery of a new treatment or drug" xsd__string) +(class_metadata span__ProcessualContext has_example "a routine check-up as processual context for the finding of a tumor" xsd__string) +(class_metadata span__ProcessualContext has_example "a surgical operation as processual context for a nosocomical infection" xsd__string) +(comment span__ProcessualContext "setting") +(text_definition span__ProcessualContext "An occurrent consisting of a characteristic spatial shape inhering in some arrangement of other occurrents. Processual contexts are characteristically entities at or in which other occurrents can be located or occur.") + +(universal span__ProcessualEntity) +(label span__ProcessualEntity "processual_entity") +(is_a span__ProcessualEntity span__Occurrent) +(disjoint_union span__SpatiotemporalRegion span__TemporalRegion) +(class_metadata span__ProcessualEntity has_example "the course of a disease" xsd__string) +(class_metadata span__ProcessualEntity has_example "the flight of a bird" xsd__string) +(class_metadata span__ProcessualEntity has_example "the life of an organism" xsd__string) +(class_metadata span__ProcessualEntity has_example "the process of meiosis" xsd__string) +(text_definition span__ProcessualEntity "An occurrent that exists in time by occurring or happening, has temporal parts and always involves and depends on some entity.") + +(universal span__ScatteredSpatiotemporalRegion) +(label span__ScatteredSpatiotemporalRegion "scattered_spatiotemporal_region") +(is_a span__ScatteredSpatiotemporalRegion span__SpatiotemporalRegion) +(disjoint_union span__ConnectedSpatiotemporalRegion) +(class_metadata span__ScatteredSpatiotemporalRegion has_example "the space and time occupied by the individual games of the World Cup" xsd__string) +(class_metadata span__ScatteredSpatiotemporalRegion has_example "the space and time occupied by the individual liaisons in a romantic affair" xsd__string) +(text_definition span__ScatteredSpatiotemporalRegion "A space time region that has spatial and temporal dimensions and every spatial and temporal point of which is not connected with every other spatial and temporal point of which.") + +(universal span__ScatteredTemporalRegion) +(label span__ScatteredTemporalRegion "scattered_temporal_region") +(is_a span__ScatteredTemporalRegion span__TemporalRegion) +(disjoint_union span__ConnectedTemporalRegion) +(class_metadata span__ScatteredTemporalRegion has_example "the time occupied by the individual games of the World Cup" xsd__string) +(class_metadata span__ScatteredTemporalRegion has_example "the time occupied by the individual liaisons in a romantic affair" xsd__string) +(text_definition span__ScatteredTemporalRegion "A temporal region every point of which is not mediately or immediately connected with every other point of which.") + +(universal span__SpatiotemporalInstant) +(label span__SpatiotemporalInstant "spatiotemporal_instant") +(is_a span__SpatiotemporalInstant span__ConnectedSpatiotemporalRegion) +(disjoint_union span__SpatiotemporalInterval) +(class_metadata span__SpatiotemporalInstant has_example "the space time region occupied by a single instantaneous temporal slice (part) of a process" xsd__string) +(text_definition span__SpatiotemporalInstant "A connected space time region at a specific moment.") + +(universal span__SpatiotemporalInterval) +(label span__SpatiotemporalInterval "spatiotemporal_interval") +(is_a span__SpatiotemporalInterval span__ConnectedSpatiotemporalRegion) +(disjoint_union span__SpatiotemporalInstant) +(class_metadata span__SpatiotemporalInterval has_example "the space time region occupied by a process or by a fiat processual part" xsd__string) +(text_definition span__SpatiotemporalInterval "A connected space time region that endures for more than a single moment of time.") + +(universal span__SpatiotemporalRegion) +(label span__SpatiotemporalRegion "spatiotemporal_region") +(is_a span__SpatiotemporalRegion span__Occurrent) +(disjoint_union span__ProcessualEntity span__TemporalRegion) +(class_metadata span__SpatiotemporalRegion has_example "the spatiotemporal context occupied by a process of cellular meiosis" xsd__string) +(class_metadata span__SpatiotemporalRegion has_example "the spatiotemporal region occupied by a human life" xsd__string) +(class_metadata span__SpatiotemporalRegion has_example "the spatiotemporal region occupied by the development of a cancer tumor" xsd__string) +(comment span__SpatiotemporalRegion "This is the time and space within which occurrents exist. Occurrents exist in space and time in a different way from that in which continuants do and thus the space and time in which they exist is itself different. Spatiotemporal regionu2019s importance is primarily theoretical and it will not be used often in most domain ontology applications.") +(text_definition span__SpatiotemporalRegion "An occurrent at or in which processual entities can be located.") + +(universal span__TemporalInstant) +(label span__TemporalInstant "temporal_instant") +(is_a span__TemporalInstant span__ConnectedTemporalRegion) +(disjoint_union span__TemporalInterval) +(class_metadata span__TemporalInstant has_example "right now" xsd__string) +(class_metadata span__TemporalInstant has_example "the moment at which a child is born" xsd__string) +(class_metadata span__TemporalInstant has_example "the moment at which a finger is detached in an industrial accident" xsd__string) +(class_metadata span__TemporalInstant has_example "the moment of death" xsd__string) +(text_definition span__TemporalInstant "A connected temporal region comprising a single moment of time.") + +(universal span__TemporalInterval) +(label span__TemporalInterval "temporal_interval") +(is_a span__TemporalInterval span__ConnectedTemporalRegion) +(disjoint_union span__TemporalInstant) +(class_metadata span__TemporalInterval has_example "any continuous temporal duration during which a process occurs" xsd__string) +(text_definition span__TemporalInterval "A connected temporal region lasting for more than a single moment of time.") + +(universal span__TemporalRegion) +(label span__TemporalRegion "temporal_region") +(is_a span__TemporalRegion span__Occurrent) +(disjoint_union span__ProcessualEntity span__SpatiotemporalRegion) +(class_metadata span__TemporalRegion has_example "the duration of a surgical procedure" xsd__string) +(class_metadata span__TemporalRegion has_example "the moment of death" xsd__string) +(class_metadata span__TemporalRegion has_example "the time it takes to run a marathon" xsd__string) +(comment span__TemporalRegion "This is the time that is common to both SNAP and SPAN entities. The time of temporal region and its sub-classes will normally be the time that should be referred to when sub-classing universals having to do with time in an ontology.") +(text_definition span__TemporalRegion "An occurrent that is part of time.") + Added: obolog/trunk/examples/ro.obolog =================================================================== --- obolog/trunk/examples/ro.obolog (rev 0) +++ obolog/trunk/examples/ro.obolog 2007-05-12 01:01:34 UTC (rev 591) @@ -0,0 +1,244 @@ +(obolog_version "0.01") + +(relation OBO_REL__adjacent_to) +(label OBO_REL__adjacent_to "adjacent_to") +(subrelation OBO_REL__adjacent_to OBO_REL__relationship) +(holds_temporally_between snap__Continuant snap__Continuant) +(comment OBO_REL__adjacent_to "Note that adjacent_to as thus defined is not a symmetric relation, in contrast to its instance-level counterpart. For it can be the case that Cs are in general such as to be adjacent to instances of C1 while no analogous statement holds for C1s in general in relation to instances of C. Examples are: nuclear membrane adjacent_to cytoplasm; seminal vesicle adjacent_to urinary bladder; ovary adjacent_to parietal pelvic peritoneum") +(text_definition OBO_REL__adjacent_to "C adjacent to C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c and c' are in spatial proximity") +(text_definition_xref OBO_REL__adjacent_to PMID__15892874) + +(relation OBO_REL__agent_in) +(label OBO_REL__agent_in "agent_in") +(subrelation OBO_REL__agent_in OBO_REL__relationship) +(instance_level_inverse OBO_REL__agent_in OBO_REL__has_agent) +(instance_level_inverse OBO_REL__agent_in OBO_REL__has_agent) + +(relation OBO_REL__contained_in) +(label OBO_REL__contained_in "contained_in") +(subrelation OBO_REL__contained_in OBO_REL__relationship) +(instance_level_inverse OBO_REL__contained_in OBO_REL__contains) +(instance_level_inverse OBO_REL__contained_in OBO_REL__contains) +(holds_temporally_between snap__Continuant snap__Continuant) +(comment OBO_REL__contained_in "Containment obtains in each case between material and immaterial continuants, for instance: lung contained_in thoracic cavity; bladder contained_in pelvic cavity. Hence containment is not a transitive relation. If c part_of c1 at t then we have also, by our definition and by the axioms of mereology applied to spatial regions, c located_in c1 at t. Thus, many examples of instance-level location relations for continuants are in fact cases of instance-level parthood. For material continuants location and parthood coincide. Containment is location not involving parthood, and arises only where some immaterial continuant is involved. To understand this relation, we first define overlap for continuants as follows: c1 overlap c2 at t =def for some c, c part_of c1 at t and c part_of c2 at t. The containment relation on the instance level can then be defined (see definition):") +(text_definition OBO_REL__contained_in "C contained_in C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c located_in c' at t, and it is not the case that c *overlaps* c' at t. (c' is a conduit or cavity.)") +(text_definition_xref OBO_REL__contained_in PMID__15892874) + +(relation OBO_REL__contains) +(label OBO_REL__contains "contains") +(subrelation OBO_REL__contains OBO_REL__relationship) +(instance_level_inverse OBO_REL__contains OBO_REL__contained_in) +(instance_level_inverse OBO_REL__contains OBO_REL__contained_in) +(holds_temporally_between snap__Continuant snap__Continuant) + +(relation OBO_REL__derived_into) +(label OBO_REL__derived_into "derived_into") +(subrelation OBO_REL__derived_into OBO_REL__relationship) +(instance_level_inverse OBO_REL__derived_into OBO_REL__derives_from) +(instance_level_inverse OBO_REL__derived_into OBO_REL__derives_from) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__derived_into) + +(relation OBO_REL__derives_from) +(label OBO_REL__derives_from "derives_from") +(subrelation OBO_REL__derives_from OBO_REL__relationship) +(instance_level_inverse OBO_REL__derives_from OBO_REL__derived_into) +(instance_level_inverse OBO_REL__derives_from OBO_REL__derived_into) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__derives_from) +(comment OBO_REL__derives_from "Derivation as a relation between instances. The temporal relation of derivation is more complex. Transformation, on the instance level, is just the relation of identity: each adult is identical to some child existing at some earlier time. Derivation on the instance-level is a relation holding between non-identicals. More precisely, it holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. Thus we will have axioms to the effect that from c derives_from c1 we can infer that c and c1 are not identical and that there is some instant of time t such that c1 exists only prior to and c only subsequent to t. We will also be able to infer that the spatial region occupied by c as it begins to exist at t overlaps with the spatial region occupied by c1 as it ceases to exist in the same instant.") +(text_definition OBO_REL__derives_from "Derivation on the instance level (*derives_from*) holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. We say that one class C derives_from class C' if instances of C are connected to instances of C' via some chain of instance-level derivation relations. Example: osteocyte derives_from osteoblast. Formally: C derives_immediately_from C' if and only if: given any c and any t, if c instantiates C at time t, then there is some c' and some t', such that c' instantiates C' at t' and t' earlier-than t and c *derives_from* c'. C derives_from C' if and only if: there is an chain of immediate derivation relations connecting C to C'.") +(text_definition_xref OBO_REL__derives_from PMID__15892874) + +(relation OBO_REL__has_agent) +(label OBO_REL__has_agent "has_agent") +(subrelation OBO_REL__has_agent OBO_REL__relationship) +(instance_level_inverse OBO_REL__has_agent OBO_REL__agent_in) +(instance_level_inverse OBO_REL__has_agent OBO_REL__agent_in) +(text_definition OBO_REL__has_agent "As for has_participant, but with the additional condition that the component instance is causally active in the relevant process") +(text_definition_xref OBO_REL__has_agent PMID__15892874) + +(relation OBO_REL__has_improper_part) +(label OBO_REL__has_improper_part "has_improper_part") +(subrelation OBO_REL__has_improper_part OBO_REL__has_part) +(instance_level_inverse OBO_REL__has_improper_part OBO_REL__improper_part_of) +(instance_level_inverse OBO_REL__has_improper_part OBO_REL__improper_part_of) +(transitive OBO_REL__has_improper_part) +(reflexive OBO_REL__has_improper_part) +(comment OBO_REL__has_improper_part "See reasons for obsoletion of improper_part_of") + +(relation OBO_REL__has_integral_part) +(label OBO_REL__has_integral_part "has_integral_part") +(subrelation OBO_REL__has_integral_part OBO_REL__has_part) +(transitive OBO_REL__has_integral_part) +(anti_symmetric OBO_REL__has_integral_part) +(reflexive OBO_REL__has_integral_part) + +(relation OBO_REL__has_part) +(label OBO_REL__has_part "has_part") +(subrelation OBO_REL__has_part OBO_REL__relationship) +(instance_level_inverse OBO_REL__has_part OBO_REL__part_of) +(instance_level_inverse OBO_REL__has_part OBO_REL__part_of) +(holds_temporally_between snap__Continuant snap__Continuant) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__has_part) +(anti_symmetric OBO_REL__has_part) +(reflexive OBO_REL__has_part) + +(relation OBO_REL__has_participant) +(label OBO_REL__has_participant "has_participant") +(subrelation OBO_REL__has_participant OBO_REL__relationship) +(instance_level_inverse OBO_REL__has_participant OBO_REL__participates_in) +(instance_level_inverse OBO_REL__has_participant OBO_REL__participates_in) +(holds_temporally_between span__Occurrent snap__Continuant) +(comment OBO_REL__has_participant "Has_participant is a primitive instance-level relation between a process, a continuant, and a time at which the continuant participates in some way in the process. The relation obtains, for example, when this particular process of oxygen exchange across this particular alveolar membrane has_participant this particular sample of hemoglobin at this particular time.") +(text_definition OBO_REL__has_participant "P has_participant C if and only if: given any process p that instantiates P there is some continuant c, and some time t, such that: c instantiates C at t and c participates in p at t") +(text_definition_xref OBO_REL__has_participant PMID__15892874) + +(relation OBO_REL__has_proper_part) +(label OBO_REL__has_proper_part "has_proper_part") +(subrelation OBO_REL__has_proper_part OBO_REL__has_part) +(instance_level_inverse OBO_REL__has_proper_part OBO_REL__proper_part_of) +(instance_level_inverse OBO_REL__has_proper_part OBO_REL__proper_part_of) +(transitive OBO_REL__has_proper_part) + +(relation OBO_REL__improper_part_of) +(label OBO_REL__improper_part_of "improper_part_of") +(subrelation OBO_REL__improper_part_of OBO_REL__part_of) +(instance_level_inverse OBO_REL__improper_part_of OBO_REL__has_improper_part) +(instance_level_inverse OBO_REL__improper_part_of OBO_REL__has_improper_part) +(transitive OBO_REL__improper_part_of) +(reflexive OBO_REL__improper_part_of) +(comment OBO_REL__improper_part_of "OBSOLETE. The definition is \"As for part_of, with the additional constraint that subject and object may be identical\". However, part_of is already reflexive, therefore improper_part_of is identical to part_of. If read differently, as \"improper_part_of is part_of but not proper_part_of\",improper_part_of becomes identity. So, improper_part_of is either identical to part_of or to identity, and not an intuitive synonym for either of them. [Robert Hoehndorf]") +(text_definition OBO_REL__improper_part_of "As for part_of, with the additional constraint that subject and object may be identical") +(text_definition_xref OBO_REL__improper_part_of PMID__15892874) + +(relation OBO_REL__instance_of) +(label OBO_REL__instance_of "instance_of") +(subrelation OBO_REL__instance_of OBO_REL__relationship) +(comment OBO_REL__instance_of "The instance_of relationship is considered axiomatic by the obo file format specification; ie it is taken for granted. The is_a relation is still included in this ontology for completeness") +(text_definition OBO_REL__instance_of "A relation between an instance and a class. For components: a primitive relation between a component instance and a class which it instantiates at a specific time. For processes: a primitive relation, between a process instance and a class which it instantiates, holding independently of time") +(text_definition_xref OBO_REL__instance_of PMID__15892874) + +(relation OBO_REL__integral_part_of) +(label OBO_REL__integral_part_of "integral_part_of") +(subrelation OBO_REL__integral_part_of OBO_REL__part_of) +(transitive OBO_REL__integral_part_of) +(anti_symmetric OBO_REL__integral_part_of) +(reflexive OBO_REL__integral_part_of) +(text_definition OBO_REL__integral_part_of "C integral_part_of C' if and only if: C part_of C' AND C' has_part C") +(text_definition_xref OBO_REL__integral_part_of PMID__15892874) + +(relation OBO_REL__is_a) +(label OBO_REL__is_a "is_a") +(transitive OBO_REL__is_a) +(anti_symmetric OBO_REL__is_a) +(reflexive OBO_REL__is_a) +(comment OBO_REL__is_a "The is_a relationship is considered axiomatic by the obo file format specification, and by OWL") +(synonym OBO_REL__is_a "is_subtype_of") +(text_definition OBO_REL__is_a "For continuants: C is_a C' if and only if: given any c that instantiates C at a time t, c instantiates C' at t. For processes: P is_a P' if and only if: that given any p that instantiates P, then p instantiates P'.") +(text_definition_xref OBO_REL__is_a PMID__15892874) + +(relation OBO_REL__located_in) +(label OBO_REL__located_in "located_in") +(subrelation OBO_REL__located_in OBO_REL__relationship) +(instance_level_inverse OBO_REL__located_in OBO_REL__location_of) +(instance_level_inverse OBO_REL__located_in OBO_REL__location_of) +(transitive_over OBO_REL__located_in OBO_REL__part_of) +(transitive_over OBO_REL__located_in OBO_REL__part_of) +(holds_temporally_between snap__Continuant snap__Continuant) +(transitive OBO_REL__located_in) +(reflexive OBO_REL__located_in) +(comment OBO_REL__located_in "Location as a relation between instances: The primitive instance-level relation c located_in r at t reflects the fact that each continuant is at any given time associated with exactly one spatial region, namely its exact location. Following we can use this relation to define a further instance-level location relation - not between a continuant and the region which it exactly occupies, but rather between one continuant and another. c is located in c1, in this sense, whenever the spatial region occupied by c is part_of the spatial region occupied by c1. Note that this relation comprehends both the relation of exact location between one continuant and another which obtains when r and r1 are identical (for example, when a portion of fluid exactly fills a cavity), as well as those sorts of inexact location relations which obtain, for example, between brain and head or between ovum and uterus") +(text_definition OBO_REL__located_in "C located_in C' if and only if: given any c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c *located_in* c'. (Here *located_in* is the instance-level location relation.)") +(text_definition_xref OBO_REL__located_in PMID__15892874) + +(relation OBO_REL__location_of) +(label OBO_REL__location_of "location_of") +(subrelation OBO_REL__location_of OBO_REL__relationship) +(instance_level_inverse OBO_REL__location_of OBO_REL__located_in) +(instance_level_inverse OBO_REL__location_of OBO_REL__located_in) +(holds_temporally_between snap__Continuant snap__Continuant) +(transitive OBO_REL__location_of) +(reflexive OBO_REL__location_of) + +(relation OBO_REL__overlaps) +(label OBO_REL__overlaps "overlaps") +(subrelation OBO_REL__overlaps OBO_REL__relationship) +(holds_temporally_between snap__Continuant snap__Continuant) +(holds_atemporally_between span__Occurrent span__Occurrent) +(symmetric OBO_REL__overlaps) +(reflexive OBO_REL__overlaps) +(synonym OBO_REL__overlaps "has_common_part_with") +(text_definition OBO_REL__overlaps "Instance level between continuants: c1 overlaps c2 at t =def for some c, c part_of c1 at t and c part_of c2 at t; Instance level between processes: p1 overlaps p2 at t =def for some p, p part_of p1 and p part_of p2") + +(relation OBO_REL__part_of) +(label OBO_REL__part_of "part_of") +(subrelation OBO_REL__part_of OBO_REL__relationship) +(instance_level_inverse OBO_REL__part_of OBO_REL__has_part) +(instance_level_inverse OBO_REL__part_of OBO_REL__has_part) +(holds_temporally_between snap__Continuant snap__Continuant) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__part_of) +(anti_symmetric OBO_REL__part_of) +(reflexive OBO_REL__part_of) +(comment OBO_REL__part_of "Parthood as a relation between instances: The primitive instance-level relation p part_of p1 is illustrated in assertions such as: this instance of rhodopsin mediated phototransduction part_of this instance of visual perception. This relation satisfies at least the following standard axioms of mereology: reflexivity (for all p, p part_of p); anti-symmetry (for all p, p1, if p part_of p1 and p1 part_of p then p and p1 are identical); and transitivity (for all p, p1, p2, if p part_of p1 and p1 part_of p2, then p part_of p2). Analogous axioms hold also for parthood as a relation between spatial regions. For parthood as a relation between continuants, these axioms need to be modified to take account of the incorporation of a temporal argument. Thus for example the axiom of transitivity for continuants will assert that if c part_of c1 at t and c1 part_of c2 at t, then also c part_of c2 at t. Parthood as a relation between classes: To define part_of as a relation between classes we again need to distinguish the two cases of continuants and processes, even though the explicit reference to instants of time now falls away. For continuants, we have C part_of C1 if and only if any instance of C at any time is an instance-level part of some instance of C1 at that time, as for example in: cell nucleus part_of cell.") +(text_definition OBO_REL__part_of "For continuants: C part_of C' if and only if: given any c that instantiates C at a time t, there is some c' such that c' instantiates C' at time t, and c *part_of* c' at t. For processes: P part_of P' if and only if: given any p that instantiates P at a time t, there is some p' such that p' instantiates P' at time t, and p *part_of* p' at t. (Here *part_of* is the instance-level part-relation.)") +(text_definition_xref OBO_REL__part_of PMID__15892874) + +(relation OBO_REL__participates_in) +(label OBO_REL__participates_in "participates_in") +(subrelation OBO_REL__participates_in OBO_REL__relationship) +(instance_level_inverse OBO_REL__participates_in OBO_REL__has_participant) +(instance_level_inverse OBO_REL__participates_in OBO_REL__has_participant) +(holds_temporally_between snap__Continuant span__Occurrent) + +(relation OBO_REL__preceded_by) +(label OBO_REL__preceded_by "preceded_by") +(subrelation OBO_REL__preceded_by OBO_REL__relationship) +(instance_level_inverse OBO_REL__preceded_by OBO_REL__precedes) +(instance_level_inverse OBO_REL__preceded_by OBO_REL__precedes) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__preceded_by) +(comment OBO_REL__preceded_by "An example is: translation preceded_by transcription; aging preceded_by development (not however death preceded_by aging). Where derives_from links classes of continuants, preceded_by links classes of processes. Clearly, however, these two relations are not independent of each other. Thus if cells of type C1 derive_from cells of type C, then any cell division involving an instance of C1 in a given lineage is preceded_by cellular processes involving an instance of C. The assertion P preceded_by P1 tells us something about Ps in general: that is, it tells us something about what happened earlier, given what we know about what happened later. Thus it does not provide information pointing in the opposite direction, concerning instances of P1 in general; that is, that each is such as to be succeeded by some instance of P. Note that an assertion to the effect that P preceded_by P1 is rather weak; it tells us little about the relations between the underlying instances in virtue of which the preceded_by relation obtains. Typically we will be interested in stronger relations, for example in the relation immediately_preceded_by, or in relations which combine preceded_by with a condition to the effect that the corresponding instances of P and P1 share participants, or that their participants are connected by relations of derivation, or (as a first step along the road to a treatment of causality) that the one process in some way affects (for example, initiates or regulates) the other.") +(text_definition OBO_REL__preceded_by "P preceded_by P' if and only if: given any process p that instantiates P at a time t, there is some process p' such that p' instantiates P' at time t', and t' is earlier than t. ") +(text_definition_xref OBO_REL__preceded_by PMID__15892874) + +(relation OBO_REL__precedes) +(label OBO_REL__precedes "precedes") +(subrelation OBO_REL__precedes OBO_REL__relationship) +(instance_level_inverse OBO_REL__precedes OBO_REL__preceded_by) +(instance_level_inverse OBO_REL__precedes OBO_REL__preceded_by) +(holds_atemporally_between span__Occurrent span__Occurrent) +(transitive OBO_REL__precedes) + +(relation OBO_REL__proper_part_of) +(label OBO_REL__proper_part_of "proper_part_of") +(subrelation OBO_REL__proper_part_of OBO_REL__part_of) +(instance_level_inverse OBO_REL__proper_part_of OBO_REL__has_proper_part) +(instance_level_inverse OBO_REL__proper_part_of OBO_REL__has_proper_part) +(transitive OBO_REL__proper_part_of) +(text_definition OBO_REL__proper_part_of "As for part_of, with the additional constraint that subject and object are distinct") +(text_definition_xref OBO_REL__proper_part_of PMID__15892874) + +(relation OBO_REL__relationship) +(label OBO_REL__relationship "relationship") +(text_definition OBO_REL__relationship "A relationship between two classes (terms). Relationships between classes are expressed in terms of relations on underlying instances.") + +(relation OBO_REL__transformation_of) +(label OBO_REL__transformation_of "transformation_of") +(subrelation OBO_REL__transformation_of OBO_REL__relationship) +(instance_level_inverse OBO_REL__transformation_of OBO_REL__transformed_into) +(instance_level_inverse OBO_REL__transformation_of OBO_REL__transformed_into) +(transitive OBO_REL__transformation_of) +(comment OBO_REL__transformation_of "When an embryonic oenocyte (a type of insect cell) is transformed into a larval oenocyte, one and the same continuant entity preserves its identity while instantiating distinct classes at distinct times. The class-level relation transformation_of obtains between continuant classes C and C1 wherever each instance of the class C is such as to have existed at some earlier time as an instance of the distinct class C1 (see Figure 2 in paper). This relation is illustrated first of all at the molecular level of granularity by the relation between mature RNA and the pre-RNA from which it is processed, or between (UV-induced) thymine-dimer and thymine dinucleotide. At coarser levels of granularity it is illustrated by the transformations involved in the creation of red blood cells, for example, from reticulocyte to erythrocyte, and by processes of development, for example, from larva to pupa, or from (post-gastrular) embryo to fetus or from child to adult. It is also manifest in pathological transformations, for example, of normal colon into carcinomatous colon. In each such case, one and the same continuant entity instantiates distinct classes at different times in virtue of phenotypic changes.") +(text_definition OBO_REL__transformation_of "Relation between two classes, in which instances retain their identity yet change their classification by virtue of some kind of transformation. Formally: C transformation_of C' if and only if given any c and any t, if c instantiates C at time t, then for some t', c instantiates C' at t' and t' earlier t, and there is no t2 such that c instantiates C at t2 and c instantiates C' at t2.") +(text_definition_xref OBO_REL__transformation_of PMID__15892874) + +(relation OBO_REL__transformed_into) +(label OBO_REL__transformed_into "transformed_into") +(subrelation OBO_REL__transformed_into OBO_REL__relationship) +(instance_level_inverse OBO_REL__transformed_into OBO_REL__transformation_of) +(instance_level_inverse OBO_REL__transformed_into OBO_REL__transformation_of) +(transitive OBO_REL__transformed_into) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-05-12 01:01:09
|
Revision: 590 http://svn.sourceforge.net/obo/?rev=590&view=rev Author: cmungall Date: 2007-05-11 18:01:11 -0700 (Fri, 11 May 2007) Log Message: ----------- Added Paths: ----------- obolog/trunk/obolog.kif Added: obolog/trunk/obolog.kif =================================================================== --- obolog/trunk/obolog.kif (rev 0) +++ obolog/trunk/obolog.kif 2007-05-12 01:01:11 UTC (rev 590) @@ -0,0 +1,305 @@ +;; CONVENTIONS: +;; upper case for universals, lower case for instances +;; - but remember, most KIF implementations are case insenstivite + +;; ============================== +;; instantiation +;; ============================== + + +;; **************************************** +;; (instance_of ?instance ?Universal ?time) +;; **************************************** + +;; right now ALL instantiations are time-indexed +;; this is not necessary for processes? +(=> + (and (instance_of ?i ?X ?t) + (is_a ?X ?Y)) ;; TODO - change to OBO_REL:is_a? + (instance_of ?i ?Y ?t)) + +;; **************************************** +;; (subrelation ?relation ?parent_relation) +;; **************************************** +(=> (and (subrelation ?r1 ?r2) + (?r1 ?x ?y)) + (?r2 ?x ?y)) +(=> (and (subrelation ?x ?y) + (subrelation ?y ?z)) + (subrelation ?x ?z)) + +;; universal-level relations +;; we specify these as (holds ?rel ?C1 ?C2) +;; we could instead have a binary relation (?rel ?C1 ?C2), but it +;; helps to distinguish relations involving universals from those +;; involving instance, since we use +;; the same identifiers for instance and universal level relations + +;; **************************************** +;; (all_some ?relation) +;; (all_times ?relation) +;; **************************************** +;; EXAMPLE: (all_some_all_times part_of) (holds part_of cell_nucleus cell) +;; +;; most relations follow the OBO-RO all-some pattern +;; ie ALL instances of U1 stand in relation ?rel to SOME instance U2 at ALL times +(=> + (and (all_some ?rel) + (all_times ?rel) + (holds ?rel ?U1 ?U2) + (instance_of ?i1 ?U1 ?t)) + (exists (?i2) + (and (instance_of ?i2 ?U2 ?t) + (?rel ?i1 ?i2 ?t)))) + +;; all-some at some time +(=> + (and (all_some ?rel) + (some_time ?rel) + (holds ?rel ?U1 ?U2) + (instance_of ?i1 ?U1 ?t)) + (exists (?i2 ?t2) + (and (instance_of ?i2 ?U2 ?t2) + (?rel ?i1 ?i2 ?t2)))) + +;; all-some atemporal -- for example, process1 part_of process2 +(=> + (and (all_some ?rel) + (holds ?rel ?U1 ?U2) + (instance_of ?i1 ?U1)) + (exists (?i2) + (?rel ?i1 ?i2))) + +(=> + (and (holds_atemporally_between ?rel ?U1 ?U2) + (?rel ?i1 ?i2) + (and (instance_of ?i1 ?U1) + (instance_of ?i2 ?U2)))) + +(=> + (and (holds_temporally_between ?rel ?U1 ?U2) + (?rel ?i1 ?i2 ?t) + (and (instantiates_at ?i1 ?U1 ?t) + (instantiates_at ?i2 ?U2 ?t)))) + +;; instance_of is either binary (atemporal) or ternary (time-indexed) +;; the former is for occurrents, the latter for continuants +;; we do not interchange between the two, but we do provide instantiates_at/3 +;; which allows us to treat atemporal instantiations with a time index +(=> + (instantiates_at ?i ?U ?t) + (or (instantiates_at ?i ?U ?t) + (and (exists_at ?i ?t) + (instance_of ?i ?U)))) + + + +;; ============================== +;; domain and range constraints +;; ============================== + +;; **************************************** +;; (domain ?rel ?class) +;; **************************************** +(=> (and (domain ?rel ?D) + (?rel ?i1 ?i2 ?t)) + (instance_of ?i2 ?D ?t)) + +;; **************************************** +;; (range ?rel ?class) +;; **************************************** +(=> (and (range ?rel ?R) + (?rel ?i1 ?i2 ?t)) + (instance_of ?i1 ?D ?t)) + +;; **************************************** +;; (domain_range ?rel ?domainClass ?rangeClass) +;; **************************************** +(=> (and (domain_range ?rel ?D ?R) + (?rel ?i1 ?i2 ?t) + (instance_of ?i1 ?D ?t)) + (instance_of ?i2 ?R ?t)) +(=> (and (domain_range ?rel ?D ?R) + (?rel ?i1 ?i2 ?t) + (instance_of ?i2 ?R ?t)) + (instance_of ?i1 ?D ?t)) + + +;; ============================== +;; relation meta-properties +;; ============================== + +;; **************************************** +;; (functional ?rel) +;; **************************************** +(=> (and (functional ?rel) + (?rel ?x ?y1 ?t) + (?rel ?x ?y2 ?t)) + (equivalent ?y1 ?y2)) + +;; **************************************** +;; (reflexive ?rel) +;; **************************************** +;; reflexivity [instance-level] +(=> (and (reflexive ?rel) + (instance_of ?x ?C ?t)) + (?rel ?x ?x ?t)) +(=> (and (reflexive ?rel) + (instance_of ?x ?C)) + (?rel ?x ?x)) + +;; **************************************** +;; (irreflexive ?rel) +;; **************************************** +;; irreflexivity [instance-level] +(=> (irreflexive ?rel) + (not (exists (?x ?t) + (?rel ?x ?x ?t)))) +(=> (irreflexive ?rel) + (not (exists (?x) + (?rel ?x ?x)))) + +;; **************************************** +;; (proper ?rel) +;; **************************************** +(=> (and (proper ?rel) + (?rel ?x ?y ?t)) + (not (identical_at ?x ?y ?t))) +(=> (and (proper ?rel) + (?rel ?x ?y)) + (not (identical ?x ?y))) + +;; **************************************** +;; (instance_level_inverse ?rel) +;; **************************************** +;; reciprocal relations [instance-level] +;; remember, this is just at the instance-level +;; not( X part_of Y <=> Y has_part X) +(=> (and (instance_level_inverse ?rel ?inv) + (?rel ?x ?y ?t)) + (?rel ?y ?x ?t)) + +;; **************************************** +;; (transitive ?rel) :: both instance and class level +;; **************************************** + +;; transitivity at the universal level +(=> + (and (transitive ?rel) + (all_some_all_times ?rel) + (holds ?rel ?X ?Y) + (holds ?rel ?Y ?Z)) + (holds ?rel ?X ?Z)) + +;; transitivity at the instance level for time-indexed relations +;; temporally-subsumed-by/2 is defined in SNARK +;; (default-use-temporal-reasoning) - [not working in my v of snark?] +(=> + (and (transitive ?rel) + (?rel ?x ?y ?t1) + (?rel ?y ?z ?t2) + (temporally-subsumed-by ?ti ?t1) + (temporally-subsumed-by ?ti ?t2)) + (?rel ?x ?z ?ti)) + +;; transitivity at the instance level for non-time-indexed relations +(=> + (and (transitive ?rel) + (?rel ?x ?y) + (?rel ?y ?z)) + (?rel ?x ?z)) + +;; **************************************** +;; (transitive_over ?rel ?over) +;; **************************************** +;; OBO-Format tag: transitive_over + +; temporal semantics +(=> + (transitive_over ?rel ?over) + (=> (and (?rel ?i1 ?i2 ?t) + (?over ?i2 ?i3 ?t)) + (?rel ?i1 ?i3))) + +; atemporal semantics (for example, processes) +(=> + (transitive_over ?rel ?over) + (=> (and (?rel ?i1 ?i2 ?t) + (?over ?i2 ?i3 ?t)) + (?rel ?i1 ?i3))) + +;; **************************************** +;; (symmetric ?rel) +;; **************************************** +(=> + (and (symmetric_for_instances ?rel) + (?rel ?i1 ?i2 ?t)) + (=> (?rel ?i2 ?i1 ?t))) + +(=> + (and (symmetric_for_instances ?rel) + (?rel ?i1 ?i2)) + (=> (?rel ?i2 ?i1))) + +(=> + (and (symmetric_for_classes ?rel) + (holds ?rel ?U1 ?U2)) + (=> (?rel ?U1 ?U2))) + +;; **************************************** +;; (antisymmetric ?rel) +;; **************************************** +(=> + (antisymmetric_for_instances ?rel) + (=> (and (?rel ?i1 ?i2 ?t) + (?rel ?i2 ?i1 ?t)) + (identical ?i1 ?i2))) + +(=> + (antisymmetric_for_classes ?rel) + (=> (and (holds ?rel ?U1 ?U2) + (holds ?rel ?U2 ?U1)) + (identical ?U1 ?U2))) + +;; **************************************** +;; (cyclic ?rel) +;; **************************************** +(=> + (cyclic ?rel) + (=> (and (holds ?rel ?X ?Y) + (holds ?rel ?Y ?X) + (not (equivalent ?X ?Y))))) + +;; **************************************** +;; (acyclic ?rel) +;; **************************************** +(=> + (acyclic ?rel) + (=> (not (cyclic ?rel)))) + +;; TODO +;; disjoint_union/N +;; genus_differentia/N +;; can we use lisp lists here and have these predicates with arbitrary arity? + +;; other predicates have no semantics +;; eg comment/2, annotation/3 + +;; -- OBO Relation Ontology -- + +;; additional formulae that cannot be extracted from obo format + +;; OBO_REL:part_of +;; make this implicit in obo-format? +;; obof1.3 will have a way of stating this - for +;; now we add in this supplemental file +(all_some_all_times OBO_REL__part_of) + +;; part_of holds between 2 continuants OR 2 occurrents +(=> + (OBO_REL__part_of ?x ?y ?t) + (or (and (instance_of ?x bfo__Continuant ?t) + (instance_of ?y bfo__Continuant ?t)) + (and (instance_of ?x bfo__Occurrent ?t) + (instance_of ?y bfo__Occurrent ?t)))) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-05-12 01:00:54
|
Revision: 589 http://svn.sourceforge.net/obo/?rev=589&view=rev Author: cmungall Date: 2007-05-11 18:00:55 -0700 (Fri, 11 May 2007) Log Message: ----------- Added Paths: ----------- obolog/trunk/examples/ Removed Paths: ------------- obolog/trunk/bfo.obolog obolog/trunk/obolog.lisp obolog/trunk/ro.obolog Deleted: obolog/trunk/bfo.obolog =================================================================== --- obolog/trunk/bfo.obolog 2007-05-12 00:18:35 UTC (rev 588) +++ obolog/trunk/bfo.obolog 2007-05-12 01:00:55 UTC (rev 589) @@ -1,228 +0,0 @@ -(obolog_version "0.01") - -(universal bfo__Entity) - -(universal snap__Continuant) -(link is_a snap__Continuant bfo__Entity) -(disjoint_union span__Occurrent) -(comment snap__Continuant "Definition: An entity that exists in full at any time in which it exists at all, persists through time while maintaining its identity and has no temporal parts.") -(comment snap__Continuant "Examples: a heart, a person, the color of a tomato, the mass of a cloud, a symphony orchestra, the disposition of blood to coagulate, the lawn and atmosphere in front of our building") -(comment snap__Continuant "Synonyms: endurant") - -(universal snap__DependentContinuant) -(link is_a snap__DependentContinuant snap__Continuant) -(disjoint_union snap__IndependentContinuant snap__SpatialRegion) -(comment snap__DependentContinuant "Definition: A continuant that inheres in or is born by other entities.") -(comment snap__DependentContinuant "Examples: the mass of a cloud, the smell of mozzarella, the liquidity of blood, the color of a tomato, the disposition of fish to decay, the role of being a doctor, the function of the heart to pump blood") -(comment snap__DependentContinuant "Synonyms: property, trope, mode") - -(universal snap__Disposition) -(link is_a snap__Disposition snap__RealizableEntity) -(disjoint_union snap__Function snap__Role) -(comment snap__Disposition "Definition: A realizable entity that essentially causes a specific process or transformation in the object in which it inheres, under specific circumstances and in conjunction with the laws of nature. A general formula for dispositions is: X (object) has the disposition D to (transform, initiate a process) R under conditions C.") -(comment snap__Disposition "Examples: the disposition of vegetables to decay when not refrigerated, the disposition of a vase to brake if dropped, the disposition of blood to coagulate, the disposition of a patient with a weakened immune system to contract disease, the disposition of metal to conduct electricity.") - -(universal snap__FiatObjectPart) -(link is_a snap__FiatObjectPart snap__IndependentContinuant) -(disjoint_union snap__Object snap__ObjectAggregate snap__ObjectBoundary snap__Site) -(comment snap__FiatObjectPart "Definition: An independent continuant that is part of an object but is not demarcated by any physical discontinuities.") -(comment snap__FiatObjectPart "Examples: upper and lower lobes of the left lung, the dorsal and ventral surfaces of the body, the east side of Saarbruecken, the lower right portion of a human torso") -(comment snap__FiatObjectPart "Synonyms: fiat substance part") - -(universal snap__Function) -(link is_a snap__Function snap__RealizableEntity) -(disjoint_union snap__Disposition snap__Role) -(comment snap__Function "Definition: A realizable entity the manifestation of which is an essentialy end-directed activity of a continuant entity in virtue of that continuant entity being a specific kind of entity in the kind or kinds of contexts that it is made for.") -(comment snap__Function "Examples: the function of a birth canal to enable transport, the function of the heart in the body to pump blood, the function of reproduction in the transmission of genetic material, the digestive function of the stomach to nutriate the body, the function of a hammer to drive in nails, the function of a computer program to compute mathematical equations, the function of an automobile to provide transportation, the function of a judge in a court of law") - -(universal snap__IndependentContinuant) -(link is_a snap__IndependentContinuant snap__Continuant) -(disjoint_union snap__DependentContinuant snap__SpatialRegion) -(comment snap__IndependentContinuant "Definition: A continuant that is a bearer of qualities and realizable entities, in which other entities inhere and which itself cannot inhere in anything.") -(comment snap__IndependentContinuant "Examples: an organism, a heart, a leg, a person, a symphony orchestra, a chair, the bottom right portion of a human torso, the lawn and atmosphere in front of our building") -(comment snap__IndependentContinuant "Synonyms: substantial entity") - -(universal snap__Object) -(link is_a snap__Object snap__IndependentContinuant) -(disjoint_union snap__FiatObjectPart snap__ObjectAggregate snap__ObjectBoundary snap__Site) -(comment snap__Object "Definition: A independent continuant that is spatially extended, maximally self-connected and self-contained (the parts of a substance are not separated from each other by spatial gaps) and possesses an internal unity. The identity of substantial objects is independent of that of other entities and can be maintained through time and through loss and gain of parts and qualities.") -(comment snap__Object "Examples: an organism, a heart, a chair, a lung, an apple") -(comment snap__Object "Synonyms: substance") - -(universal snap__ObjectAggregate) -(link is_a snap__ObjectAggregate snap__IndependentContinuant) -(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectBoundary snap__Site) -(comment snap__ObjectAggregate "Definition: An independent continuant that is a mereological sum of separate objects and possesses non-connected boundaries.") -(comment snap__ObjectAggregate "Examples: a heap of stones, a group of commuters on the subway, a collection of random bacteria, a flock of geese, the patients in a hospital") -(comment snap__ObjectAggregate "Synonyms: substance aggregate") - -(universal snap__ObjectBoundary) -(link is_a snap__ObjectBoundary snap__IndependentContinuant) -(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__Site) -(comment snap__ObjectBoundary "Comment: Boundaries are theoretically difficult entities to account for, however the intuitive notion of a physical boundary as a surface of some sort (whether inside or outside of a thing) will generally serve as a good guide for the use of this universal.") -(comment snap__ObjectBoundary "Definition: An independent continuant that is a lower dimensional part of a spatial entity, normally a closed two-dimensional surface. Boundaries are those privileged parts of objects that exist at exactly the point where the object is separated off from the rest of the existing entities in the world.") -(comment snap__ObjectBoundary "Examples: the surface of the skin, the surface of the earth, the surface of the interior of the stomach, the outer surface of a cell or cell wall") -(comment snap__ObjectBoundary "Synonyms: substance boundary") - -(universal snap__OneDimensionalRegion) -(link is_a snap__OneDimensionalRegion snap__SpatialRegion) -(disjoint_union snap__ThreeDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) -(comment snap__OneDimensionalRegion "Definition: A spatial region with one dimension.") -(comment snap__OneDimensionalRegion "Examples: the part of space that is a line stretching from one end of absolute space to the other, an edge of a cube-shaped part of space") - -(universal snap__Quality) -(link is_a snap__Quality snap__DependentContinuant) -(disjoint_union snap__RealizableEntity) -(comment snap__Quality "Definition: A dependent continuant that is exhibited if it inheres in an entity or entities at all (a categorical property).") -(comment snap__Quality "Examples: the color of a tomato, the ambient temperature of air, the circumference of a waist, the shape of a nose, the mass of a piece of gold, the weight of a chimpanzee") - -(universal snap__RealizableEntity) -(link is_a snap__RealizableEntity snap__DependentContinuant) -(disjoint_union snap__Quality) -(comment snap__RealizableEntity "Definition: A dependent continuant that inheres in continuants and are not exhibited in full at every time in which it inheres in an entity or group of entities. The exhibition or actualization of a realizable entity is a particular manifestation, functioning orprocess that occurs under certain circumstances.") -(comment snap__RealizableEntity "Examples: the role of being a doctor, the function of the reproductive organs, the disposition of blood to coagulate, the disposition of metal to conduct electricity") - -(universal snap__Role) -(link is_a snap__Role snap__RealizableEntity) -(disjoint_union snap__Disposition snap__Function) -(comment snap__Role "Definition: A realizable entity the manifestation of which brings about some result or end that is not essential to a continuant in virtue of the kind of thing that it is but that can be served or participated in by that kind of continuant in some kinds of natural, social or institutional contexts.") -(comment snap__Role "Examples: the role of a person as a surgeon, the role of an artificial heart in pumping blood, the role of a chemical compound in an experiment, the role of a drug in the treatment of a disease, the role of a patient relative as defined by a hospital administrative form, the role of a woman as a legal mother in the context of system of laws, the role of a biological grandfather as legal guardian in the context of a system of laws, the role of a tree in maintaining stability in an ecosystem, the role of ingested matter in digestion") - -(universal snap__Site) -(link is_a snap__Site snap__IndependentContinuant) -(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__ObjectBoundary) -(comment snap__Site "Comment: Sites should not be confused with spatial regions. Sites characteristically have a filling or medium and are capable of altering their spatial location (moving from one spatial region to another) without altering their identity.") -(comment snap__Site "Definition: An independent continuant consisting of a characteristic spatial shape in relation to some arrangement of other continuants and of the medium which is enclosed in whole or in part by this characteristic spatial shape. Sites are entities that can be occupied by other continuants.") -(comment snap__Site "Examples: a city, a nasal cavity, a blood vein, an environment, sinuses, canals, ventricles, the lumen of the gastrointestinal tract, the location of the battle of Austerlitz, the interior of the aorta, the room in which one is located, the top of one’s desk including the things that are on it and the atmosphere surrounding them.") - -(universal snap__SpatialRegion) -(link is_a snap__SpatialRegion snap__Continuant) -(disjoint_union snap__DependentContinuant snap__IndependentContinuant) -(comment snap__SpatialRegion "Comment: Spatial regions should not be confused with sites. Spatial regions exist as parts of pure or absolute space, have a dimensionality and a shape but require no filling in order to exist and are also immobile.") -(comment snap__SpatialRegion "Definition: An independent continuant that is neither bearer of qualities nor inheres in any other entities.") -(comment snap__SpatialRegion "Examples: the sum total of all space in the universe, parts of the sum total of all space in the universe") - -(universal snap__ThreeDimensionalRegion) -(link is_a snap__ThreeDimensionalRegion snap__SpatialRegion) -(disjoint_union snap__OneDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) -(comment snap__ThreeDimensionalRegion "Definition: A spatial region with three dimensions.") -(comment snap__ThreeDimensionalRegion "Examples: a cube-shaped part of space, a sphere-shaped part of space") - -(universal snap__TwoDimensionalRegion) -(link is_a snap__TwoDimensionalRegion snap__SpatialRegion) -(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__ZeroDimensionalRegion) -(comment snap__TwoDimensionalRegion "Definition: A spatial region with two dimensions.") -(comment snap__TwoDimensionalRegion "Examples: the surface of a cube-shaped part of space, the surface of a sphere-shaped part of space, the surface of a rectilinear planar figure-shaped part of space") - -(universal snap__ZeroDimensionalRegion) -(link is_a snap__ZeroDimensionalRegion snap__SpatialRegion) -(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__TwoDimensionalRegion) -(comment snap__ZeroDimensionalRegion "Definition: A spatial region with no dimensions.") -(comment snap__ZeroDimensionalRegion "Examples: a point") - -(universal span__ConnectedSpatiotemporalRegion) -(link is_a span__ConnectedSpatiotemporalRegion span__SpatiotemporalRegion) -(disjoint_union span__ScatteredSpatiotemporalRegion) -(comment span__ConnectedSpatiotemporalRegion "Definition: A space time region that has temporal and spatial dimensions such that all points within the spatiotemporal region are mediately or immediately connected to all other points within the same space time region.") -(comment span__ConnectedSpatiotemporalRegion "Examples: the spatial and temporal location of an individual organism’s life, the spatial and temporal location of the development of a fetus") - -(universal span__ConnectedTemporalRegion) -(link is_a span__ConnectedTemporalRegion span__TemporalRegion) -(disjoint_union span__ScatteredTemporalRegion) -(comment span__ConnectedTemporalRegion "Definition: A temporal region every point of which is mediately or immediately connected with every other point of which.") -(comment span__ConnectedTemporalRegion "Examples: the 1970s years, the time from the beginning to the end of a heart attack, the time taken up by cellular meiosis") - -(universal span__FiatProcessPart) -(link is_a span__FiatProcessPart span__ProcessualEntity) -(disjoint_union span__Process span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) -(comment span__FiatProcessPart "Definition: A processual entity that is part of a process but that does not have bona fide beginnings and endings corresponding to real discontinuities.") -(comment span__FiatProcessPart "Examples: chewing during a meal, the middle part of a rainstorm, the worst part of a heart-attack, the most interesting part of Van Gogh’s life") - -(universal span__Occurrent) -(link is_a span__Occurrent bfo__Entity) -(disjoint_union snap__Continuant) -(comment span__Occurrent "Definition: An entity that has temporal parts and that happens, unfolds or develops through time. Sometimes also called perdurants.") -(comment span__Occurrent "Examples: the life of an organism, a surgical operation as processual context for a nosocomical infection, the spatiotemporal context occupied by a process of cellular meiosis, the most interesting part of Van Gogh’s life, the spatiotemporal region occupied by the development of a cancer tumor") -(comment span__Occurrent "Synonyms: perdurant") - -(universal span__Process) -(link is_a span__Process span__ProcessualEntity) -(disjoint_union span__FiatProcessPart span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) -(comment span__Process "Definition: A processual entity that is a maximally connected spatio-temporal whole and has bona fide beginnings and endings corresponding to real discontinuities.") -(comment span__Process "Examples: the life of an organism, the process of sleeping, the process of cell-division") - -(universal span__ProcessAggregate) -(link is_a span__ProcessAggregate span__ProcessualEntity) -(disjoint_union span__FiatProcessPart span__Process span__ProcessBoundary span__ProcessualContext) -(comment span__ProcessAggregate "Definition: A processual entity that is a meriological sum of processes and possesses non-connected boundaries.") -(comment span__ProcessAggregate "Examples: the beating of the hearts of each of seven individuals in the room, the playing of each of the members of an orchestra, a process of digestion and a process of thinking taken together") - -(universal span__ProcessBoundary) -(link is_a span__ProcessBoundary span__ProcessualEntity) -(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessualContext) -(comment span__ProcessBoundary "Definition: A processual entity that is the fiat or bona fide instantaneous temporal process boundary.") -(comment span__ProcessBoundary "Examples: birth, death, the forming of a synapse, the onset of REM sleep, the detaching of a finger in an industrial accident, the final separation of two cells at the end of cell-division, the incision at the beginning of a surgery") - -(universal span__ProcessualContext) -(link is_a span__ProcessualContext span__ProcessualEntity) -(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessBoundary) -(comment span__ProcessualContext "Comment: setting") -(comment span__ProcessualContext "Definition: An occurrent consisting of a characteristic spatial shape inhering in some arrangement of other occurrents. Processual contexts are characteristically entities at or in which other occurrents can be located or occur.") -(comment span__ProcessualContext "Examples: a surgical operation as processual context for a nosocomical infection, a routine check-up as processual context for the finding of a tumor, a clinical trial as processual context for the discovery of a new treatment or drug") - -(universal span__ProcessualEntity) -(link is_a span__ProcessualEntity span__Occurrent) -(disjoint_union span__SpatiotemporalRegion span__TemporalRegion) -(comment span__ProcessualEntity "Definition: An occurrent that exists in time by occurring or happening, has temporal parts and always involves and depends on some entity.") -(comment span__ProcessualEntity "Examples: the life of an organism, the process of meiosis, the course of a disease, the flight of a bird") - -(universal span__ScatteredSpatiotemporalRegion) -(link is_a span__ScatteredSpatiotemporalRegion span__SpatiotemporalRegion) -(disjoint_union span__ConnectedSpatiotemporalRegion) -(comment span__ScatteredSpatiotemporalRegion "Definition: A space time region that has spatial and temporal dimensions and every spatial and temporal point of which is not connected with every other spatial and temporal point of which.") -(comment span__ScatteredSpatiotemporalRegion "Examples: the space and time occupied by the individual games of the World Cup, the space and time occupied by the individual liaisons in a romantic affair") - -(universal span__ScatteredTemporalRegion) -(link is_a span__ScatteredTemporalRegion span__TemporalRegion) -(disjoint_union span__ConnectedTemporalRegion) -(comment span__ScatteredTemporalRegion "Definition: A temporal region every point of which is not mediately or immediately connected with every other point of which.") -(comment span__ScatteredTemporalRegion "Examples: the time occupied by the individual games of the World Cup, the time occupied by the individual liaisons in a romantic affair") - -(universal span__SpatiotemporalInstant) -(link is_a span__SpatiotemporalInstant span__ConnectedSpatiotemporalRegion) -(disjoint_union span__SpatiotemporalInterval) -(comment span__SpatiotemporalInstant "Definition: A connected space time region at a specific moment.") -(comment span__SpatiotemporalInstant "Examples: the space time region occupied by a single instantaneous temporal slice (part) of a process") - -(universal span__SpatiotemporalInterval) -(link is_a span__SpatiotemporalInterval span__ConnectedSpatiotemporalRegion) -(disjoint_union span__SpatiotemporalInstant) -(comment span__SpatiotemporalInterval "Definition: A connected space time region that endures for more than a single moment of time.") -(comment span__SpatiotemporalInterval "Examples: the space time region occupied by a process or by a fiat processual part") - -(universal span__SpatiotemporalRegion) -(link is_a span__SpatiotemporalRegion span__Occurrent) -(disjoint_union span__ProcessualEntity span__TemporalRegion) -(comment span__SpatiotemporalRegion "Comment: This is the time and space within which occurrents exist. Occurrents exist in space and time in a different way from that in which continuants do and thus the space and time in which they exist is itself different. Spatiotemporal region’s importance is primarily theoretical and it will not be used often in most domain ontology applications.") -(comment span__SpatiotemporalRegion "Definition: An occurrent at or in which processual entities can be located.") -(comment span__SpatiotemporalRegion "Examples: the spatiotemporal region occupied by a human life, the spatiotemporal region occupied by the development of a cancer tumor, the spatiotemporal context occupied by a process of cellular meiosis") - -(universal span__TemporalInstant) -(link is_a span__TemporalInstant span__ConnectedTemporalRegion) -(disjoint_union span__TemporalInterval) -(comment span__TemporalInstant "Definition: A connected temporal region comprising a single moment of time.") -(comment span__TemporalInstant "Examples: right now, the moment at which a finger is detached in an industrial accident, the moment at which a child is born, the moment of death") - -(universal span__TemporalInterval) -(link is_a span__TemporalInterval span__ConnectedTemporalRegion) -(disjoint_union span__TemporalInstant) -(comment span__TemporalInterval "Definition: A connected temporal region lasting for more than a single moment of time.") -(comment span__TemporalInterval "Examples: any continuous temporal duration during which a process occurs") - -(universal span__TemporalRegion) -(link is_a span__TemporalRegion span__Occurrent) -(disjoint_union span__ProcessualEntity span__SpatiotemporalRegion) -(comment span__TemporalRegion "Comment: This is the time that is common to both SNAP and SPAN entities. The time of temporal region and its sub-classes will normally be the time that should be referred to when sub-classing universals having to do with time in an ontology.") -(comment span__TemporalRegion "Definition: An occurrent that is part of time.") -(comment span__TemporalRegion "Examples: the time it takes to run a marathon, the duration of a surgical procedure, the moment of death") - Deleted: obolog/trunk/obolog.lisp =================================================================== --- obolog/trunk/obolog.lisp 2007-05-12 00:18:35 UTC (rev 588) +++ obolog/trunk/obolog.lisp 2007-05-12 01:00:55 UTC (rev 589) @@ -1,167 +0,0 @@ -;; CONVENTIONS: -;; upper case for universals, lower case for instances -;; - but remember, most KIF implementations are case insenstivite - -;; ----------- -;; -- logic -- -;; ----------- - -;; (instance_of ?instance ?Universal ?time) -;; right now ALL instantiations are time-indexed -;; this is not necessary for processes? -(=> - (and (instance_of ?i ?X ?t) - (is_a ?X ?Y)) ;; TODO - change to OBO_REL:is_a? - (instance_of ?i ?Y ?t)) - -;; (subrelation ?relation ?parent_relation) -(=> (and (subrelation ?r1 ?r2) - (?r1 ?x ?y)) - (?r2 ?x ?y)) -(=> (and (subrelation ?x ?y) - (subrelation ?y ?z)) - (subrelation ?x ?z)) - -;; universal-level relations -;; we specify these as (holds ?rel ?C1 ?C2) -;; this is a bit ugly, but we don't want to write (?rel ?C1 ?C2) as we -;; take this to mean an instance-level relation. Since we use -;; the same identifiers for instance and universal level relations -;; we have to distinguish them at the relation instantiation level - -;; (all_some_all_times ?relation) -;; EXAMPLE: (all_some_all_times part_of) (holds part_of cell_nucleus cell) -;; -;; most relations follow the OBO-RO all-some pattern -;; ie ALL instances of U1 stand in relation ?rel to SOME instance U2 at ALL times -(=> - (and (all_some_all_times ?rel) - (holds ?rel ?U1 ?U2) - (instance_of ?i1 ?U1 ?t)) - (exists (?i2) - (and (instance_of ?i2 ?U2 ?t) - (?rel ?i1 ?i2 ?t)))) - -;; ============================== -;; domain and range constraints -;; ============================== - -;; (domain ?rel ?class) -(=> (and (domain ?rel ?D) - (?rel ?i1 ?i2 ?t)) - (instance_of ?i2 ?D ?t)) -;; (range ?rel ?class) -(=> (and (range ?rel ?R) - (?rel ?i1 ?i2 ?t)) - (instance_of ?i1 ?D ?t)) -;; (domain_range ?rel ?domainClass ?rangeClass) -(=> (and (domain_range ?rel ?D ?R) - (?rel ?i1 ?i2 ?t) - (instance_of ?i1 ?D ?t)) - (instance_of ?i2 ?R ?t)) -(=> (and (domain_range ?rel ?D ?R) - (?rel ?i1 ?i2 ?t) - (instance_of ?i2 ?R ?t)) - (instance_of ?i1 ?D ?t)) - - -;; ============================== -;; relation meta-properties -;; ============================== - -;; functional relations -(=> (and (functional ?rel) - (?rel ?x ?y1 ?t) - (?rel ?x ?y2 ?t)) - (equivalent ?y1 ?y2)) - -;; reflexivity [instance-level] -(=> (reflexive ?rel) - (instance_of ?x ?C ?t) - (?rel ?x ?x ?t)) - -;; irreflexivity [instance-level] -(=> (irreflexive ?rel) - (forall (?x ?t) - (not - (?rel ?x ?x ?t)))) - -;; reciprocal relations [instance-level] -;; remember, this is just at the instance-level -;; not( X part_of Y <=> Y has_part X) -(=> (and (reciprocal ?rel ?inv) - (?rel ?x ?y ?t)) - (?rel ?y ?x ?t)) - -;; (transitive ?rel) :: both instance and class level -;; transitivity at the universal level -(=> - (and (transitive ?rel) - (all_some_all_times ?rel) - (holds ?rel ?X ?Y) - (holds ?rel ?Y ?Z)) - (holds ?rel ?X ?Z)) - -;; transitivity at the instance level for time-indexed relations -;; temporally-subsumed-by/2 is defined in SNARK -;; (default-use-temporal-reasoning) - hmmm, not working in my v of snark -(=> - (and (transitive ?rel) - (?rel ?x ?y ?t1) - (?rel ?y ?z ?t2) - (temporally-subsumed-by ?ti ?t1) - (temporally-subsumed-by ?ti ?t2)) - (?rel ?x ?z ?ti)) - -;; transitivity at the instance level for non-time-indexed relations -(=> - (and (transitive ?rel) - (?rel ?x ?y) - (?rel ?y ?z)) - (?rel ?x ?z)) - -;; symmetry - -;; anti-symmetry -(=> - (antisymmetric ?rel) - (=> (and (?rel ?i1 ?i2 ?t) - (?rel ?i2 ?i1 ?t)) - (identical ?i1 ?i2))) - -;; no cycles allowed -(=> - (cyclic ?rel) - (=> (and (holds ?rel ?X ?Y) - (holds ?rel ?Y ?X) - (not (equivalent ?X ?Y))))) -(=> - (acyclic ?rel) - (=> (not (cyclic ?rel)))) - -;; TODO -;; disjoint_union/N -;; genus_differentia/N -;; can we use lisp lists here and have these predicates with arbitrary arity? - -;; other predicates have no semantics -;; eg comment/2, annotation/3 - -;; -- OBO Relation Ontology -- - -;; additional formulae that cannot be extracted from obo format - -;; OBO_REL:part_of -;; make this implicit in obo-format? -;; obof1.3 will have a way of stating this - for -;; now we add in this supplemental file -(all_some_all_times OBO_REL__part_of) - -;; part_of holds between 2 continuants OR 2 occurrents -(=> - (part_of ?x ?y ?t) - (or (and (instance_of ?x bfo__Continuant ?t) - (instance_of ?y bfo__Continuant ?t)) - (and (instance_of ?x bfo__Occurrent ?t) - (instance_of ?y bfo__Occurrent ?t)))) - Deleted: obolog/trunk/ro.obolog =================================================================== --- obolog/trunk/ro.obolog 2007-05-12 00:18:35 UTC (rev 588) +++ obolog/trunk/ro.obolog 2007-05-12 01:00:55 UTC (rev 589) @@ -1,200 +0,0 @@ - -(relation "OBO_REL:adjacent_to" ) -(label "OBO_REL:adjacent_to" "adjacent_to" ) -(subrelation "OBO_REL:adjacent_to" "OBO_REL:relationship" ) -(comment "OBO_REL:adjacent_to" "Note that adjacent_to as thus defined is not a symmetric relation, in contrast to its instance-level counterpart. For it can be the case that Cs are in general such as to be adjacent to instances of C1 while no analogous statement holds for C1s in general in relation to instances of C. Examples are: nuclear membrane adjacent_to cytoplasm; seminal vesicle adjacent_to urinary bladder; ovary adjacent_to parietal pelvic peritoneum" ) -(text_definition "OBO_REL:adjacent_to" "C adjacent to C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c and c' are in spatial proximity" ) -(text_definition_xref "OBO_REL:adjacent_to" "PMID:15892874" ) - -(relation "OBO_REL:agent_in" ) -(label "OBO_REL:agent_in" "agent_in" ) -(subrelation "OBO_REL:agent_in" "OBO_REL:relationship" ) -(domain "OBO_REL:agent_in" "BFO:Continuant" ) -(range "OBO_REL:agent_in" "BFO:Occurrent" ) - -(relation "OBO_REL:contained_in" ) -(label "OBO_REL:contained_in" "contained_in" ) -(subrelation "OBO_REL:contained_in" "OBO_REL:relationship" ) -(comment "OBO_REL:contained_in" "Containment obtains in each case between material and immaterial continuants, for instance: lung contained_in thoracic cavity; bladder contained_in pelvic cavity. Hence containment is not a transitive relation. If c part_of c1 at t then we have also, by our definition and by the axioms of mereology applied to spatial regions, c located_in c1 at t. Thus, many examples of instance-level location relations for continuants are in fact cases of instance-level parthood. For material continuants location and parthood coincide. Containment is location not involving parthood, and arises only where some immaterial continuant is involved. To understand this relation, we first define overlap for continuants as follows: c1 overlap c2 at t =def for some c, c part_of c1 at t and c part_of c2 at t. The containment relation on the instance level can then be defined (see definition):" ) -(text_definition "OBO_REL:contained_in" "C contained_in C' if and only if: given any instance c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c located_in c' at t, and it is not the case that c *overlaps* c' at t. (c' is a conduit or cavity.)" ) -(text_definition_xref "OBO_REL:contained_in" "PMID:15892874" ) - -(relation "OBO_REL:contains" ) -(label "OBO_REL:contains" "contains" ) -(subrelation "OBO_REL:contains" "OBO_REL:relationship" ) - -(relation "OBO_REL:derived_into" ) -(label "OBO_REL:derived_into" "derived_into" ) -(subrelation "OBO_REL:derived_into" "OBO_REL:relationship" ) -(domain "OBO_REL:derived_into" "BFO:Continuant" ) -(range "OBO_REL:derived_into" "BFO:Continuant" ) -(transitive "OBO_REL:derived_into" ) - -(relation "OBO_REL:derives_from" ) -(label "OBO_REL:derives_from" "derives_from" ) -(subrelation "OBO_REL:derives_from" "OBO_REL:relationship" ) -(domain "OBO_REL:derives_from" "BFO:Continuant" ) -(range "OBO_REL:derives_from" "BFO:Continuant" ) -(transitive "OBO_REL:derives_from" ) -(comment "OBO_REL:derives_from" "Derivation as a relation between instances. The temporal relation of derivation is more complex. Transformation, on the instance level, is just the relation of identity: each adult is identical to some child existing at some earlier time. Derivation on the instance-level is a relation holding between non-identicals. More precisely, it holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. Thus we will have axioms to the effect that from c derives_from c1 we can infer that c and c1 are not identical and that there is some instant of time t such that c1 exists only prior to and c only subsequent to t. We will also be able to infer that the spatial region occupied by c as it begins to exist at t overlaps with the spatial region occupied by c1 as it ceases to exist in the same instant." ) -(text_definition "OBO_REL:derives_from" "Derivation on the instance level (*derives_from*) holds between distinct material continuants when one succeeds the other across a temporal divide in such a way that at least a biologically significant portion of the matter of the earlier continuant is inherited by the later. We say that one class C derives_from class C' if instances of C are connected to instances of C' via some chain of instance-level derivation relations. Example: osteocyte derives_from osteoblast. Formally: C derives_immediately_from C' if and only if: given any c and any t, if c instantiates C at time t, then there is some c' and some t', such that c' instantiates C' at t' and t' earlier-than t and c *derives_from* c'. C derives_from C' if and only if: there is an chain of immediate derivation relations connecting C to C'." ) -(text_definition_xref "OBO_REL:derives_from" "PMID:15892874" ) - -(relation "OBO_REL:has_agent" ) -(label "OBO_REL:has_agent" "has_agent" ) -(subrelation "OBO_REL:has_agent" "OBO_REL:relationship" ) -(domain "OBO_REL:has_agent" "BFO:Occurrent" ) -(range "OBO_REL:has_agent" "BFO:Continuant" ) -(text_definition "OBO_REL:has_agent" "As for has_participant, but with the additional condition that the component instance is causally active in the relevant process" ) -(text_definition_xref "OBO_REL:has_agent" "PMID:15892874" ) - -(relation "OBO_REL:has_improper_part" ) -(label "OBO_REL:has_improper_part" "has_improper_part" ) -(subrelation "OBO_REL:has_improper_part" "OBO_REL:has_part" ) -(transitive "OBO_REL:has_improper_part" ) -(reflexive "OBO_REL:has_improper_part" ) -(comment "OBO_REL:has_improper_part" "See reasons for obsoletion of improper_part_of" ) - -(relation "OBO_REL:has_integral_part" ) -(label "OBO_REL:has_integral_part" "has_integral_part" ) -(subrelation "OBO_REL:has_integral_part" "OBO_REL:has_part" ) -(transitive "OBO_REL:has_integral_part" ) -(anti_symmetric "OBO_REL:has_integral_part" ) -(reflexive "OBO_REL:has_integral_part" ) - -(relation "OBO_REL:has_part" ) -(label "OBO_REL:has_part" "has_part" ) -(subrelation "OBO_REL:has_part" "OBO_REL:relationship" ) -(transitive "OBO_REL:has_part" ) -(anti_symmetric "OBO_REL:has_part" ) -(reflexive "OBO_REL:has_part" ) - -(relation "OBO_REL:has_participant" ) -(label "OBO_REL:has_participant" "has_participant" ) -(subrelation "OBO_REL:has_participant" "OBO_REL:relationship" ) -(domain "OBO_REL:has_participant" "BFO:Occurrent" ) -(range "OBO_REL:has_participant" "BFO:Continuant" ) -(comment "OBO_REL:has_participant" "Has_participant is a primitive instance-level relation between a process, a continuant, and a time at which the continuant participates in some way in the process. The relation obtains, for example, when this particular process of oxygen exchange across this particular alveolar membrane has_participant this particular sample of hemoglobin at this particular time." ) -(text_definition "OBO_REL:has_participant" "P has_participant C if and only if: given any process p that instantiates P there is some continuant c, and some time t, such that: c instantiates C at t and c participates in p at t" ) -(text_definition_xref "OBO_REL:has_participant" "PMID:15892874" ) - -(relation "OBO_REL:has_proper_part" ) -(label "OBO_REL:has_proper_part" "has_proper_part" ) -(subrelation "OBO_REL:has_proper_part" "OBO_REL:has_part" ) -(transitive "OBO_REL:has_proper_part" ) - -(relation "OBO_REL:improper_part_of" ) -(label "OBO_REL:improper_part_of" "improper_part_of" ) -(subrelation "OBO_REL:improper_part_of" "OBO_REL:part_of" ) -(transitive "OBO_REL:improper_part_of" ) -(reflexive "OBO_REL:improper_part_of" ) -(comment "OBO_REL:improper_part_of" "OBSOLETE. The definition is "As for part_of, with the additional constraint that subject and object may be identical". However, part_of is already reflexive, therefore improper_part_of is identical to part_of. If read differently, as "improper_part_of is part_of but not proper_part_of",improper_part_of becomes identity. So, improper_part_of is either identical to part_of or to identity, and not an intuitive synonym for either of them. [Robert Hoehndorf]" ) -(text_definition "OBO_REL:improper_part_of" "As for part_of, with the additional constraint that subject and object may be identical" ) -(text_definition_xref "OBO_REL:improper_part_of" "PMID:15892874" ) - -(relation "OBO_REL:instance_of" ) -(label "OBO_REL:instance_of" "instance_of" ) -(subrelation "OBO_REL:instance_of" "OBO_REL:relationship" ) -(comment "OBO_REL:instance_of" "The instance_of relationship is considered axiomatic by the obo file format specification; ie it is taken for granted. The is_a relation is still included in this ontology for completeness" ) -(text_definition "OBO_REL:instance_of" "A relation between an instance and a class. For components: a primitive relation between a component instance and a class which it instantiates at a specific time. For processes: a primitive relation, between a process instance and a class which it instantiates, holding independently of time" ) -(text_definition_xref "OBO_REL:instance_of" "PMID:15892874" ) - -(relation "OBO_REL:integral_part_of" ) -(label "OBO_REL:integral_part_of" "integral_part_of" ) -(subrelation "OBO_REL:integral_part_of" "OBO_REL:part_of" ) -(transitive "OBO_REL:integral_part_of" ) -(anti_symmetric "OBO_REL:integral_part_of" ) -(reflexive "OBO_REL:integral_part_of" ) -(text_definition "OBO_REL:integral_part_of" "C integral_part_of C' if and only if: C part_of C' AND C' has_part C" ) -(text_definition_xref "OBO_REL:integral_part_of" "PMID:15892874" ) - -(relation "OBO_REL:is_a" ) -(label "OBO_REL:is_a" "is_a" ) -(transitive "OBO_REL:is_a" ) -(anti_symmetric "OBO_REL:is_a" ) -(reflexive "OBO_REL:is_a" ) -(comment "OBO_REL:is_a" "The is_a relationship is considered axiomatic by the obo file format specification, and by OWL" ) -(snonym "OBO_REL:is_a" "is_subtype_of" ) -(text_definition "OBO_REL:is_a" "For continuants: C is_a C' if and only if: given any c that instantiates C at a time t, c instantiates C' at t. For processes: P is_a P' if and only if: that given any p that instantiates P, then p instantiates P'." ) -(text_definition_xref "OBO_REL:is_a" "PMID:15892874" ) - -(relation "OBO_REL:located_in" ) -(label "OBO_REL:located_in" "located_in" ) -(subrelation "OBO_REL:located_in" "OBO_REL:relationship" ) -(domain "OBO_REL:located_in" "BFO:Continuant" ) -(range "OBO_REL:located_in" "BFO:Continuant" ) -(transitive "OBO_REL:located_in" ) -(reflexive "OBO_REL:located_in" ) -(comment "OBO_REL:located_in" "Location as a relation between instances: The primitive instance-level relation c located_in r at t reflects the fact that each continuant is at any given time associated with exactly one spatial region, namely its exact location. Following we can use this relation to define a further instance-level location relation - not between a continuant and the region which it exactly occupies, but rather between one continuant and another. c is located in c1, in this sense, whenever the spatial region occupied by c is part_of the spatial region occupied by c1. Note that this relation comprehends both the relation of exact location between one continuant and another which obtains when r and r1 are identical (for example, when a portion of fluid exactly fills a cavity), as well as those sorts of inexact location relations which obtain, for example, between brain and head or between ovum and uterus" ) -(text_definition "OBO_REL:located_in" "C located_in C' if and only if: given any c that instantiates C at a time t, there is some c' such that: c' instantiates C' at time t and c *located_in* c'. (Here *located_in* is the instance-level location relation.)" ) -(text_definition_xref "OBO_REL:located_in" "PMID:15892874" ) - -(relation "OBO_REL:location_of" ) -(label "OBO_REL:location_of" "location_of" ) -(subrelation "OBO_REL:location_of" "OBO_REL:relationship" ) -(domain "OBO_REL:location_of" "BFO:Continuant" ) -(range "OBO_REL:location_of" "BFO:Continuant" ) -(transitive "OBO_REL:location_of" ) -(reflexive "OBO_REL:location_of" ) - -(relation "OBO_REL:part_of" ) -(label "OBO_REL:part_of" "part_of" ) -(subrelation "OBO_REL:part_of" "OBO_REL:relationship" ) -(transitive "OBO_REL:part_of" ) -(anti_symmetric "OBO_REL:part_of" ) -(reflexive "OBO_REL:part_of" ) -(comment "OBO_REL:part_of" "Parthood as a relation between instances: The primitive instance-level relation p part_of p1 is illustrated in assertions such as: this instance of rhodopsin mediated phototransduction part_of this instance of visual perception. This relation satisfies at least the following standard axioms of mereology: reflexivity (for all p, p part_of p); anti-symmetry (for all p, p1, if p part_of p1 and p1 part_of p then p and p1 are identical); and transitivity (for all p, p1, p2, if p part_of p1 and p1 part_of p2, then p part_of p2). Analogous axioms hold also for parthood as a relation between spatial regions. For parthood as a relation between continuants, these axioms need to be modified to take account of the incorporation of a temporal argument. Thus for example the axiom of transitivity for continuants will assert that if c part_of c1 at t and c1 part_of c2 at t, then also c part_of c2 at t. Parthood as a relation between classes: To define part_of as a relation between classes we again need to distinguish the two cases of continuants and processes, even though the explicit reference to instants of time now falls away. For continuants, we have C part_of C1 if and only if any instance of C at any time is an instance-level part of some instance of C1 at that time, as for example in: cell nucleus part_ of cell." ) -(text_definition "OBO_REL:part_of" "For continuants: C part_of C' if and only if: given any c that instantiates C at a time t, there is some c' such that c' instantiates C' at time t, and c *part_of* c' at t. For processes: P part_of P' if and only if: given any p that instantiates P at a time t, there is some p' such that p' instantiates P' at time t, and p *part_of* p' at t. (Here *part_of* is the instance-level part-relation.)" ) -(text_definition_xref "OBO_REL:part_of" "PMID:15892874" ) - -(relation "OBO_REL:participates_in" ) -(label "OBO_REL:participates_in" "participates_in" ) -(subrelation "OBO_REL:participates_in" "OBO_REL:relationship" ) -(domain "OBO_REL:participates_in" "BFO:Continuant" ) -(range "OBO_REL:participates_in" "BFO:Occurrent" ) - -(relation "OBO_REL:preceded_by" ) -(label "OBO_REL:preceded_by" "preceded_by" ) -(subrelation "OBO_REL:preceded_by" "OBO_REL:relationship" ) -(domain "OBO_REL:preceded_by" "BFO:Occurrent" ) -(range "OBO_REL:preceded_by" "BFO:Occurrent" ) -(transitive "OBO_REL:preceded_by" ) -(comment "OBO_REL:preceded_by" "An example is: translation preceded_by transcription; aging preceded_by development (not however death preceded_by aging). Where derives_from links classes of continuants, preceded_by links classes of processes. Clearly, however, these two relations are not independent of each other. Thus if cells of type C1 derive_from cells of type C, then any cell division involving an instance of C1 in a given lineage is preceded_by cellular processes involving an instance of C. The assertion P preceded_by P1 tells us something about Ps in general: that is, it tells us something about what happened earlier, given what we know about what happened later. Thus it does not provide information pointing in the opposite direction, concerning instances of P1 in general; that is, that each is such as to be succeeded by some instance of P. Note that an assertion to the effect that P preceded_by P1 is rather weak; it tells us little about the relations between the underlying instances in virtue of which the preceded_by relation obtains. Typically we will be interested in stronger relations, for example in the relation immediately_preceded_by, or in relations which combine preceded_by with a condition to the effect that the corresponding instances of P and P1 share participants, or that their participants are connected by relations of derivation, or (as a first step along the road to a treatment of causality) that the one process in some way affects (for example, initiates or regulates) the other." ) -(text_definition "OBO_REL:preceded_by" "P preceded_by P' if and only if: given any process p that instantiates P at a time t, there is some process p' such that p' instantiates P' at time t', and t' is earlier than t. " ) -(text_definition_xref "OBO_REL:preceded_by" "PMID:15892874" ) - -(relation "OBO_REL:precedes" ) -(label "OBO_REL:precedes" "precedes" ) -(subrelation "OBO_REL:precedes" "OBO_REL:relationship" ) -(domain "OBO_REL:precedes" "BFO:Occurrent" ) -(range "OBO_REL:precedes" "BFO:Occurrent" ) -(transitive "OBO_REL:precedes" ) - -(relation "OBO_REL:proper_part_of" ) -(label "OBO_REL:proper_part_of" "proper_part_of" ) -(subrelation "OBO_REL:proper_part_of" "OBO_REL:part_of" ) -(transitive "OBO_REL:proper_part_of" ) -(text_definition "OBO_REL:proper_part_of" "As for part_of, with the additional constraint that subject and object are distinct" ) -(text_definition_xref "OBO_REL:proper_part_of" "PMID:15892874" ) - -(relation "OBO_REL:relationship" ) -(label "OBO_REL:relationship" "relationship" ) -(text_definition "OBO_REL:relationship" "A relationship between two classes (terms). Relationships between classes are expressed in terms of relations on underlying instances." ) - -(relation "OBO_REL:transformation_of" ) -(label "OBO_REL:transformation_of" "transformation_of" ) -(subrelation "OBO_REL:transformation_of" "OBO_REL:relationship" ) -(domain "OBO_REL:transformation_of" "BFO:Continuant" ) -(range "OBO_REL:transformation_of" "BFO:Continuant" ) -(transitive "OBO_REL:transformation_of" ) -(comment "OBO_REL:transformation_of" "When an embryonic oenocyte (a type of insect cell) is transformed into a larval oenocyte, one and the same continuant entity preserves its identity while instantiating distinct classes at distinct times. The class-level relation transformation_of obtains between continuant classes C and C1 wherever each instance of the class C is such as to have existed at some earlier time as an instance of the distinct class C1 (see Figure 2 in paper). This relation is illustrated first of all at the molecular level of granularity by the relation between mature RNA and the pre-RNA from which it is processed, or between (UV-induced) thymine-dimer and thymine dinucleotide. At coarser levels of granularity it is illustrated by the transformations involved in the creation of red blood cells, for example, from reticulocyte to erythrocyte, and by processes of development, for example, from larva to pupa, or from (post-gastrular) embryo to fetus or from child to adult. It is also manifest in pathological transformations, for example, of normal colon into carcinomatous colon. In each such case, one and the same continuant entity instantiates distinct classes at different times in virtue of phenotypic changes." ) -(text_definition "OBO_REL:transformation_of" "Relation between two classes, in which instances retain their identity yet change their classification by virtue of some kind of transformation. Formally: C transformation_of C' if and only if given any c and any t, if c instantiates C at time t, then for some t', c instantiates C' at t' and t' earlier t, and there is no t2 such that c instantiates C at t2 and c instantiates C' at t2." ) -(text_definition_xref "OBO_REL:transformation_of" "PMID:15892874" ) - -(relation "OBO_REL:transformed_into" ) -(label "OBO_REL:transformed_into" "transformed_into" ) -(subrelation "OBO_REL:transformed_into" "OBO_REL:relationship" ) -(domain "OBO_REL:transformed_into" "BFO:Continuant" ) -(range "OBO_REL:transformed_into" "BFO:Continuant" ) -(transitive "OBO_REL:transformed_into" ) - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-12 00:18:35
|
Revision: 588 http://svn.sourceforge.net/obo/?rev=588&view=rev Author: nlw Date: 2007-05-11 17:18:35 -0700 (Fri, 11 May 2007) Log Message: ----------- *updated Term Info with the following displays: **will enumerate Synonym Scope, and group synonyms based on scope **if a Synonym category is available, it'll display its category next to the term **if a term is obsoleted, and a replaced by or consider term is included, a link is provided **comments are now displayed at the bottom Modified Paths: -------------- phenote/trunk/src/java/phenote/util/HtmlUtil.java Modified: phenote/trunk/src/java/phenote/util/HtmlUtil.java =================================================================== --- phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-05-11 21:24:26 UTC (rev 587) +++ phenote/trunk/src/java/phenote/util/HtmlUtil.java 2007-05-12 00:18:35 UTC (rev 588) @@ -3,6 +3,7 @@ import java.util.Collection; import java.util.Iterator; import java.util.Set; +import java.lang.Object; import javax.swing.event.HyperlinkEvent; @@ -10,341 +11,441 @@ import org.geneontology.oboedit.datamodel.LinkedObject; import org.geneontology.oboedit.datamodel.OBOClass; import org.geneontology.oboedit.datamodel.OBOProperty; +import org.geneontology.oboedit.datamodel.Synonym; +import org.geneontology.oboedit.datamodel.ObsoletableObject; +import org.geneontology.oboedit.datamodel.IdentifiedObject; + public class HtmlUtil { - public static final boolean DO_HTML = true; // take out - static final String PHENOTE_LINK_PREFIX = "Phenote?id="; + public static final boolean DO_HTML = true; // take out + static final String PHENOTE_LINK_PREFIX = "Phenote?id="; -// /** hmmmm - this is state - should probably do an object? -// should this be somewhere else? gui.Phenote? */ - private static boolean isStandAlone = true; - private static String ontologyName; - private static String field; +// /** hmmmm - this is state - should probably do an object? +// should this be somewhere else? gui.Phenote? */ + private static boolean isStandAlone = true; + private static String ontologyName; + private static String field; - /** Stand alone and web app do different things for term links */ - public static void setStandAlone(boolean standAlone) { - isStandAlone = standAlone; - } + /** Stand alone and web app do different things for term links */ + public static void setStandAlone(boolean standAlone) { + isStandAlone = standAlone; + } - //this is Mark's old termInfo box. I'll keep it around - //just in case we need to go back to it. note that it might not - //work quite right because i've now changed the other functions it - //calls. - public static String termInfoOld(OBOClass oboClass) { - if (oboClass == null) { - System.out.println("null obo class for HtmlUtil.termInfo"); - return ""; // null? exception? - } - StringBuffer sb = new StringBuffer(); - if (oboClass.isObsolete()) - sb.append("This term is OBSOLETE").append(newLine()); - sb.append(bold("TERM: ")).append(oboClass.getName()); - sb.append(nl()).append(bold("ID: ")).append(colorFont(oboClass.getID(), "red")); + //this is Mark's old termInfo box. I'll keep it around + //just in case we need to go back to it. note that it might not + //work quite right because i've now changed the other functions it + //calls. + public static String termInfoOld(OBOClass oboClass) { + if (oboClass == null) { + System.out.println("null obo class for HtmlUtil.termInfo"); + return ""; // null? exception? + } + StringBuffer sb = new StringBuffer(); + sb.append(bold("TERM: ")).append(oboClass.getName()); + if (oboClass.isObsolete()) { + sb.append("This term is OBSOLETE").append(newLine()); - Set syns = oboClass.getSynonyms(); - for (Iterator it = syns.iterator(); it.hasNext(); ) { - sb.append(newLine()).append(bold("Synonym: ")).append(it.next()); - } + + } + sb.append(nl()).append(bold("ID: ")).append(colorFont(oboClass.getID(), "red")); - String definition = oboClass.getDefinition(); - // definition = lineWrap(definition); - if (definition != null && !definition.equals("")) - sb.append(nl()).append(nl()).append(bold("Definition: ")).append(definition); - - sb.append(nl()).append(nl()).append(bold("CHILDREN: ")); - sb.append(getChildrenString(oboClass)); + Set syns = oboClass.getSynonyms(); + for (Iterator it = syns.iterator(); it.hasNext(); ) { + sb.append(newLine()).append(bold("Synonym: ")).append(it.next()); + } + String definition = oboClass.getDefinition(); + // definition = lineWrap(definition); + if (definition != null && !definition.equals("")) + sb.append(nl()).append(nl()).append(bold("Definition: ")).append(definition); - // if (DEBUG) System.out.println(sb); + sb.append(nl()).append(nl()).append(bold("CHILDREN: ")); + sb.append(getChildrenString(oboClass)); - return sb.toString(); - } - //Nicole's attempt at making the Term Info box look a little better - //I'm puting all the information into an html table. rhs are each single table cells - //but are separated by line breaks. - public static String termInfo(OBOClass oboClass) { - if (oboClass == null) { - System.out.println("null obo class for HtmlUtil.termInfo"); - return ""; // null? exception? - } - StringBuffer sb = new StringBuffer(); - sb.append("<table>"); - sb.append(makeRow(makeLeftCol(bold("ONTOLOGY"))+makeRightCol(oboClass.getNamespace().toString()))); - if (oboClass.isObsolete()) { - sb.append(makeRow(makeLeftCol(bold("TERM"))+makeRightCol(bold(oboClass.getName())+colorFont(bold(" (OBSOLETE)"), "red")))); - } - else { - sb.append(makeRow(makeLeftCol(bold("TERM"))+makeRightCol(bold(oboClass.getName())))); - } - sb.append(makeRow(makeLeftCol(bold("ID"))+makeRightCol(oboClass.getID()))); - - Set syns = oboClass.getSynonyms(); - int pos = 0; - StringBuffer temp = new StringBuffer(); - for (Iterator it = syns.iterator(); it.hasNext(); ) { - temp.append(it.next()+"<br>"); - pos++; - } - if (pos>0) { - sb.append(makeRow(makeLeftCol(bold("Synonyms"))+makeRightCol(temp.toString()))); - } + // if (DEBUG) System.out.println(sb); - String definition = oboClass.getDefinition(); + return sb.toString(); + } - if ((definition != null) && !(definition.equals(""))) { - sb.append(makeRow(makeLeftCol(bold("Definition"))+makeRightCol(definition))); - } - sb.append(makeRow("<tr><td colspan=2 align=center valign=top><font size=-1><hr></font></td></tr>")); + //Nicole's attempt at making the Term Info box look a little better + //I'm puting all the information into an html table. rhs are each single table cells + //but are separated by line breaks. + public static String termInfo(OBOClass oboClass) { + if (oboClass == null) { + System.out.println("null obo class for HtmlUtil.termInfo"); + return ""; // null? exception? + } + StringBuffer sb = new StringBuffer(); + sb.append("<table>"); + sb.append(makeRow(makeLeftCol(bold("ONTOLOGY"))+makeRightCol(oboClass.getNamespace().toString()))); + if (oboClass.isObsolete()) { + sb.append(makeRow(makeLeftCol(bold("TERM"))+makeRightCol(bold(oboClass.getName())+colorFont(bold(" (OBSOLETE)"), "red")))); + } + else { + sb.append(makeRow(makeLeftCol(bold("TERM"))+makeRightCol(bold(oboClass.getName())))); + } + if (oboClass.isObsolete()) { + Set obsReplacements = oboClass.getReplacedBy(); + ObsoletableObject obsObj; + for (Iterator it = obsReplacements.iterator(); it.hasNext(); ) { + obsObj = (ObsoletableObject)it.next(); + if (obsObj!=null) { + sb.append(makeRow(makeLeftCol(italic("replaced by:"))+makeRightCol(bold(termLink(obsObj))))); + } + } + Set obsConsiders = oboClass.getConsiderReplacements(); + for (Iterator it = obsConsiders.iterator(); it.hasNext(); ) { + obsObj = (ObsoletableObject)it.next(); + if (obsObj!=null) { + sb.append(makeRow(makeLeftCol(italic("consider replacing with:"))+makeRightCol(bold(termLink(obsObj))))); + } + } + + } + sb.append(makeRow(makeLeftCol(bold("ID"))+makeRightCol(oboClass.getID()))); -// sb.append(makeRow(makeLeftCol("")+makeRightCol(""))); -// sb.append(makeRow(makeLeftCol(bold("Parents"))+makeRightCol("<hr>"))); - sb.append(getParentalString(oboClass)); - sb.append(makeRow("")); -// sb.append(makeRow(makeLeftCol(bold("Children"))+makeRightCol("<hr>"))); - sb.append(getChildrenString(oboClass)); - sb.append("</table>"); - return sb.toString(); - } + String synonyms = makeSyns(true, oboClass.getSynonyms()); + if (synonyms!=null) { + sb.append(synonyms); + } + String definition = oboClass.getDefinition(); - public static String termInfo(OBOClass oboClass, String ontology,String field) { - // funny - revisit for sure - either should pass through all methods - // or util should actually be an object - singleton? i think maybe its - // an object??? - setOntologyName(ontology); - setField(field); - return termInfo(oboClass); - } + if ((definition != null) && !(definition.equals(""))) { + sb.append(makeRow(makeLeftCol(bold("Definition"))+makeRightCol(definition))); + } + if (!oboClass.isObsolete()) { + sb.append(makeRow("<tr><td colspan=2 align=center valign=top><font size=-1><hr></font></td></tr>")); - // maybe this should be an object? as this is stateful - private static void setOntologyName(String ont) { - ontologyName = ont; - } - /** string for web to track source of term info for UseTermInfo */ - private static void setField(String f) { field = f; } - private static String getField() { return field; } + // sb.append(makeRow(makeLeftCol("")+makeRightCol(""))); + // sb.append(makeRow(makeLeftCol(bold("Parents"))+makeRightCol("<hr>"))); + sb.append(getParentalString(oboClass)); + sb.append(makeRow("")); + // sb.append(makeRow(makeLeftCol(bold("Children"))+makeRightCol("<hr>"))); + sb.append(getChildrenString(oboClass)); + } + String comments = oboClass.getComment(); + if ((comments != null) && !(comments.equals(""))) { + sb.append(makeRow("<tr><td colspan=2 align=center valign=top><font size=-1><hr></font></td></tr>")); + sb.append(makeRow(makeLeftCol(bold("Comments"))+makeRightCol(comments))); + } + sb.append("</table>"); + return sb.toString(); + } - private static String getOntologyName() { return ontologyName; } + private static String makeSyns(boolean sortByScope, Set syns) { + //This method creates a table of synonyms for a term, sorted by scope as + //defined in the oboedit class Synonym + //will expand this method to be able to sort by category, not just scope + StringBuffer sb = new StringBuffer(); + if (sortByScope) { + StringBuffer temp = new StringBuffer(); + Synonym syn; + int broadSynCount = 0; + StringBuffer broadBuf = new StringBuffer(); + int exactSynCount = 0; + StringBuffer exactBuf = new StringBuffer(); + int narrowSynCount = 0; + StringBuffer narrowBuf = new StringBuffer(); + int relatedSynCount = 0; + StringBuffer relatedBuf = new StringBuffer(); + int unknownScopeCount = 0; + StringBuffer unknownBuf = new StringBuffer(); + for (Iterator it = syns.iterator(); it.hasNext(); ) { + syn = (Synonym)it.next(); + if (syn.getScope()==Synonym.BROAD_SYNONYM) { + broadSynCount++; + broadBuf.append(syn.toString()); + if (syn.getSynonymCategory()!=null) + broadBuf.append(italic(" ["+syn.getSynonymCategory().getName()+"]")); + broadBuf.append("<br>"); + } + else if (syn.getScope()==Synonym.NARROW_SYNONYM) { + narrowSynCount++; + narrowBuf.append(syn.toString()); + if (syn.getSynonymCategory()!=null) + narrowBuf.append(italic(" ["+syn.getSynonymCategory().getName()+"]")); + narrowBuf.append("<br>"); + } + else if (syn.getScope()==Synonym.EXACT_SYNONYM) { + exactSynCount++; + exactBuf.append(syn.toString()); + if (syn.getSynonymCategory()!=null) + exactBuf.append(italic(" ["+syn.getSynonymCategory().getName()+"]")); + exactBuf.append("<br>"); + } + else if (syn.getScope()==Synonym.RELATED_SYNONYM) { + relatedSynCount++; + relatedBuf.append(syn.toString()); + if (syn.getSynonymCategory()!=null) + relatedBuf.append(italic(" ["+syn.getSynonymCategory().getName()+"]")); + relatedBuf.append("<br>"); + } + else if (syn.getScope()==Synonym.UNKNOWN_SCOPE) { + unknownScopeCount++; + unknownBuf.append(syn.toString()); + if (syn.getSynonymCategory()!=null) + unknownBuf.append(italic(" ["+syn.getSynonymCategory().getName()+"]")); + unknownBuf.append("<br>"); + } + } +// int totSyns = 0; +// totSyns=broadSynCount+exactSynCount+narrowSynCount+relatedSynCount+unknownScopeCount; +// if (totSyns>0) { +// sb.append(makeRow(makeLeftCol(bold("Synonyms:"))+makeRightCol(temp.toString()))); +// } + if (exactSynCount>0) + sb.append(makeRow(makeLeftCol(bold("Exact Synonyms:"))+makeRightCol(exactBuf.toString()))); + if (broadSynCount>0) + sb.append(makeRow(makeLeftCol(bold("Broad Synonyms:"))+makeRightCol(broadBuf.toString()))); + if (narrowSynCount>0) + sb.append(makeRow(makeLeftCol(bold("Narrow Synonyms:"))+makeRightCol(narrowBuf.toString()))); + if (relatedSynCount>0) + sb.append(makeRow(makeLeftCol(bold("Related Synonyms:"))+makeRightCol(relatedBuf.toString()))); + if (unknownScopeCount>0) + sb.append(makeRow(makeLeftCol(bold("Other Synonyms:"))+makeRightCol(unknownBuf.toString()))); + } + return sb.toString(); + } + + public static String termInfo(OBOClass oboClass, String ontology,String field) { + // funny - revisit for sure - either should pass through all methods + // or util should actually be an object - singleton? i think maybe its + // an object??? + setOntologyName(ontology); + setField(field); + return termInfo(oboClass); + } - /** Only works in html mode - do with string buffers? */ - private static String bold(String text) { - if (!DO_HTML) return text; - return "<b>"+text+"</b>"; - } + // maybe this should be an object? as this is stateful + private static void setOntologyName(String ont) { + ontologyName = ont; + } + /** string for web to track source of term info for UseTermInfo */ + private static void setField(String f) { field = f; } + private static String getField() { return field; } - private static String italic(String text) { - if (!DO_HTML) return text; - return "<i>"+text+"</i>"; - } + private static String getOntologyName() { return ontologyName; } - private static String colorFont(String text, String color) { - if (!DO_HTML) return text; - return "<font color="+color+">"+text+"</font>"; - } + /** Only works in html mode - do with string buffers? */ + private static String bold(String text) { + if (!DO_HTML) return text; + return "<b>"+text+"</b>"; + } - private static String makeRow(String text) { - if (!DO_HTML) return text; - return "<tr>"+text+"</tr>"; - } - private static String makeLeftCol(String text) { - if (!DO_HTML) return text; - return "<td width=70 align=right valign=top><font size=-1>"+text+"</font></td>"; - } - private static String makeRightCol(String text) { - if (!DO_HTML) return text; - return "<td align=left valign=top>"+text+"</td>"; - } + private static String italic(String text) { + if (!DO_HTML) return text; + return "<i>"+text+"</i>"; + } - private static String makeTable(String text) { - if (!DO_HTML) return text; - return "<table>"+text+"</table>"; - } + private static String colorFont(String text, String color) { + if (!DO_HTML) return text; + return "<font color="+color+">"+text+"</font>"; + } - private static String nl() { return newLine(); } + private static String makeRow(String text) { + if (!DO_HTML) return text; + return "<tr>"+text+"</tr>"; + } + private static String makeLeftCol(String text) { + if (!DO_HTML) return text; + return "<td width=70 align=right valign=top><font size=-1>"+text+"</font></td>"; + } + private static String makeRightCol(String text) { + if (!DO_HTML) return text; + return "<td align=left valign=top>"+text+"</td>"; + } - private static String newLine() { - if (DO_HTML) return "\n<br>"; - return "\n"; - } - private static StringBuffer getParentalString(OBOClass oboClass) { - Collection parents = oboClass.getParents(); - return getLinksString(parents,false); - } + private static String makeTable(String text) { + if (!DO_HTML) return text; + return "<table>"+text+"</table>"; + } - private static StringBuffer getChildrenString(OBOClass oboClass) { - Collection children = oboClass.getChildren(); - return getLinksString(children,true); - } + private static String nl() { return newLine(); } - private static StringBuffer getLinksString(Collection links, boolean isChild) { - StringBuffer sb = new StringBuffer(); - // or should thi sjust be done more generically with a hash of string bufs - // for each unique link type name? - // YES...that would be a better method i think -nlw - //method: make all the rt hand columns, then wrap around the left col of the type for the table entry - StringBuffer isaStringBuf = new StringBuffer(); - StringBuffer partofStringBuf = new StringBuffer(); - StringBuffer haspartStringBuf = new StringBuffer(); - StringBuffer devFromStringBuf = new StringBuffer(); - StringBuffer otherStringBuf = new StringBuffer(); - StringBuffer startStageStringBuf = new StringBuffer(); - StringBuffer endStageStringBuf = new StringBuffer(); - int countIsa=0; - int countPartof=0; - int countHaspart=0; - int countDevfrom=0; - int countStartStage=0; - int countEndStage=0; - int countOther=0; - //i would like to clean this up to be able to group all relationships together, despite - //the fact that they could be non-standard, like in SO. might need two for-loops. - //would this be a drain on space/time? - for (Iterator it = links.iterator(); it.hasNext(); ) { - Link link = (Link)it.next(); - OBOProperty type = link.getType(); - if (type.getName().equals("is_a")) { - countIsa++; - appendLink(isaStringBuf,isChild,link); - } - else if (type.getName().equals("part of") || type.getName().equals("part_of")) { - countPartof++; - appendLink(partofStringBuf,isChild,link); - } - else if (type.getName().equals("has part") || type.getName().equals("has_part")) { - //i'm using this to catch the wierd reciprocal stuff in FMA - //not sure yet if this is the best solution - //probably need a new way to visualize reciprocal 'part' relationships - countHaspart++; - appendLink(haspartStringBuf,isChild,link); - } - else if (type.getName().equals("develops from") || type.getName().equals("develops_from")) { - countDevfrom++; - appendLink(devFromStringBuf,isChild,link); + private static String newLine() { + if (DO_HTML) return "\n<br>"; + return "\n"; } -// else if (type.getName().equals("start stage") || type.getName().equals("start_stage")) { -// countStartStage++; -// appendLink(startStageStringBuf,isChild,link); -// -// } -// else if (type.getName().equals("end stage") || type.getName().equals("end_stage")) { -// countEndStage++; -// appendLink(endStageStringBuf,isChild,link); -// } - else { //catch all other relationships - countOther++; - otherStringBuf.append("<tr>"); - otherStringBuf.append(makeLeftCol(bold(italic(capitalize(type.getName()))))+"<td>"); - appendLink(otherStringBuf,isChild,link); - otherStringBuf.append("</td></tr>"); - } - } - if (countIsa>0) - sb.append(makeRow(makeLeftCol(bold(italic( - isChild ? "Subclass (is_a)" : "Superclass (is_a)"))) + - makeRightCol(isaStringBuf.toString()))); - if (countPartof>0) - sb.append(makeRow(makeLeftCol(bold(italic( - isChild ? "Has part" : "Part of"))) + - makeRightCol(partofStringBuf.toString()))); - if (countDevfrom>0) - sb.append(makeRow(makeLeftCol(bold(italic( - isChild ? "Develops into" : "Develops from"))) + - makeRightCol(devFromStringBuf.toString()))); - if (countOther>0) - sb.append(makeRow(makeLeftCol(otherStringBuf.toString()))); - return sb; - } + private static StringBuffer getParentalString(OBOClass oboClass) { + Collection parents = oboClass.getParents(); + return getLinksString(parents,false); + } - private static void appendLink(StringBuffer sb, boolean isChild, Link link) { - if (isChild) - sb.append(termLink(link.getChild())+"<br>"); - else - sb.append(termLink(link.getParent())+"<br>"); - // if (isChild) - //sb.append(makeRightCol(termLink(link.getChild()))); - //else - //sb.append(makeRightCol(termLink(link.getParent()))); - } + private static StringBuffer getChildrenString(OBOClass oboClass) { + Collection children = oboClass.getChildren(); + return getLinksString(children,true); + } - public static String termLink(LinkedObject term) { - String clickString = getClickString(term.getID(),term.getName()); - //System.out.println(clickString); - return "<a "+clickString+">"+term.getName()+"</a>"; - } + private static StringBuffer getLinksString(Collection links, boolean isChild) { + StringBuffer sb = new StringBuffer(); + // or should thi sjust be done more generically with a hash of string bufs + // for each unique link type name? + // YES...that would be a better method i think -nlw + //method: make all the rt hand columns, then wrap around the left col of the type for the table entry + StringBuffer isaStringBuf = new StringBuffer(); + StringBuffer partofStringBuf = new StringBuffer(); + StringBuffer haspartStringBuf = new StringBuffer(); + StringBuffer devFromStringBuf = new StringBuffer(); + StringBuffer otherStringBuf = new StringBuffer(); + StringBuffer startStageStringBuf = new StringBuffer(); + StringBuffer endStageStringBuf = new StringBuffer(); + int countIsa=0; + int countPartof=0; + int countHaspart=0; + int countDevfrom=0; + int countStartStage=0; + int countEndStage=0; + int countOther=0; + //i would like to clean this up to be able to group all relationships together, despite + //the fact that they could be non-standard, like in SO. might need two for-loops. + //would this be a drain on space/time? + for (Iterator it = links.iterator(); it.hasNext(); ) { + Link link = (Link)it.next(); + OBOProperty type = link.getType(); + if (type.getName().equals("is_a")) { + countIsa++; + appendLink(isaStringBuf,isChild,link); + } + else if (type.getName().equals("part of") || type.getName().equals("part_of")) { + countPartof++; + appendLink(partofStringBuf,isChild,link); + } + else if (type.getName().equals("has part") || type.getName().equals("has_part")) { + //i'm using this to catch the wierd reciprocal stuff in FMA + //not sure yet if this is the best solution + //probably need a new way to visualize reciprocal 'part' relationships + countHaspart++; + appendLink(haspartStringBuf,isChild,link); + } + else if (type.getName().equals("develops from") || type.getName().equals("develops_from")) { + countDevfrom++; + appendLink(devFromStringBuf,isChild,link); + } +// else if (type.getName().equals("start stage") || type.getName().equals("start_stage")) { +// countStartStage++; +// appendLink(startStageStringBuf,isChild,link); - private static String getClickString(String id,String name) { - if (isStandAlone) - return "href='"+makePhenoIdLink(id)+"'"; - else // this needs some reworking - causes page refresh and goes to top - return "href=" + dq("javascript:;") + onClickJavaScript(id,name); - } +// } +// else if (type.getName().equals("end stage") || type.getName().equals("end_stage")) { +// countEndStage++; +// appendLink(endStageStringBuf,isChild,link); +// } + else { //catch all other relationships + countOther++; + otherStringBuf.append("<tr>"); + otherStringBuf.append(makeLeftCol(bold(italic(capitalize(type.getName()))))+"<td>"); + appendLink(otherStringBuf,isChild,link); + otherStringBuf.append("</td></tr>"); + } + } + if (countIsa>0) + sb.append(makeRow(makeLeftCol(bold(italic( + isChild ? "Subclass (is_a)" : "Superclass (is_a)"))) + + makeRightCol(isaStringBuf.toString()))); + if (countPartof>0) + sb.append(makeRow(makeLeftCol(bold(italic( + isChild ? "Has part" : "Part of"))) + + makeRightCol(partofStringBuf.toString()))); + if (countDevfrom>0) + sb.append(makeRow(makeLeftCol(bold(italic( + isChild ? "Develops into" : "Develops from"))) + + makeRightCol(devFromStringBuf.toString()))); + if (countOther>0) + sb.append(makeRow(makeLeftCol(otherStringBuf.toString()))); + return sb; + } - /**<A href='#' onClick='getTermInfo("id","name","ontology")'> - added in name for + private static void appendLink(StringBuffer sb, boolean isChild, Link link) { + if (isChild) + sb.append(termLink(link.getChild())+"<br>"); + else + sb.append(termLink(link.getParent())+"<br>"); + // if (isChild) + //sb.append(makeRightCol(termLink(link.getChild()))); + //else + //sb.append(makeRightCol(termLink(link.getParent()))); + } + + public static String termLink(IdentifiedObject term) { + String clickString = getClickString(term.getID(),term.getName()); + //System.out.println(clickString); + return "<a "+clickString+">"+term.getName()+"</a>"; + } + + private static String getClickString(String id,String name) { + if (isStandAlone) + return "href='"+makePhenoIdLink(id)+"'"; + else // this needs some reworking - causes page refresh and goes to top + return "href=" + dq("javascript:;") + onClickJavaScript(id,name); + } + + /**<A href='#' onClick='getTermInfo("id","name","ontology")'> - added in name for UseTerm */ - private static StringBuffer onClickJavaScript(String id,String name) { - //String c = ","; - //return " onClick='getTermInfo("+q(id)+c+q(name)+c+q(getOntologyName())+")' "; - StringBuffer sb = new StringBuffer("onClick="); - String ont = getOntologyName(), f = getField(); - StringBuffer fn = fn("getTermInfo",new String[]{id,name,ont,f}); - return sb.append(dq(fn)); - } - /** quoter */ - private static String dq(String s) { - return "\""+s+"\""; - } + private static StringBuffer onClickJavaScript(String id,String name) { + //String c = ","; + //return " onClick='getTermInfo("+q(id)+c+q(name)+c+q(getOntologyName())+")' "; + StringBuffer sb = new StringBuffer("onClick="); + String ont = getOntologyName(), f = getField(); + StringBuffer fn = fn("getTermInfo",new String[]{id,name,ont,f}); + return sb.append(dq(fn)); + } + /** quoter */ + private static String dq(String s) { + return "\""+s+"\""; + } - private static StringBuffer dq(StringBuffer sb) { - return new StringBuffer("\""+sb+"\""); - } + private static StringBuffer dq(StringBuffer sb) { + return new StringBuffer("\""+sb+"\""); + } - private static StringBuffer q(StringBuffer sb) { - return new StringBuffer("'"+sb+"'"); - } - private static String q(String s) { - s = escapeSingleQuotes(s); - return "'"+s+"'"; - } - private static String escapeSingleQuotes(String s) { - if (s == null) return null; // ??? - return s.replace("'","\\'"); - } + private static StringBuffer q(StringBuffer sb) { + return new StringBuffer("'"+sb+"'"); + } + private static String q(String s) { + s = escapeSingleQuotes(s); + return "'"+s+"'"; + } + private static String escapeSingleQuotes(String s) { + if (s == null) return null; // ??? + return s.replace("'","\\'"); + } - public static StringBuffer fn(String fnName, String[] params) { - StringBuffer s = new StringBuffer(fnName).append("(").append(q(params[0])); - for (int i=1; i<params.length; i++) - s.append(",").append(q(params[i])); - s.append(")"); - return s; - } + public static StringBuffer fn(String fnName, String[] params) { + StringBuffer s = new StringBuffer(fnName).append("(").append(q(params[0])); + for (int i=1; i<params.length; i++) + s.append(",").append(q(params[i])); + s.append(")"); + return s; + } - /** used internally & by TestPhenote */ - public static String makePhenoIdLink(String id) { - return PHENOTE_LINK_PREFIX + id; - } + /** used internally & by TestPhenote */ + public static String makePhenoIdLink(String id) { + return PHENOTE_LINK_PREFIX + id; + } - private static String capitalize(String s) { - if (s == null || s.equals("")) return ""; - String firstLetter = s.substring(0,1); - return firstLetter.toUpperCase() + s.substring(1,s.length()); - } + private static String capitalize(String s) { + if (s == null || s.equals("")) return ""; + String firstLetter = s.substring(0,1); + return firstLetter.toUpperCase() + s.substring(1,s.length()); + } - public static boolean isPhenoteLink(HyperlinkEvent e) { - return e.getURL() == null && e.getDescription().startsWith(PHENOTE_LINK_PREFIX); - } + public static boolean isPhenoteLink(HyperlinkEvent e) { + return e.getURL() == null && e.getDescription().startsWith(PHENOTE_LINK_PREFIX); + } - /** extracts id from link, returns null if fails */ - public static String getIdFromHyperlink(HyperlinkEvent e) { - String desc = e.getDescription(); - if (desc == null || desc.equals("")) return null; - String id = getIdFromHyperlinkDesc(desc); - return id; - } + /** extracts id from link, returns null if fails */ + public static String getIdFromHyperlink(HyperlinkEvent e) { + String desc = e.getDescription(); + if (desc == null || desc.equals("")) return null; + String id = getIdFromHyperlinkDesc(desc); + return id; + } - /** extract id from hyperlink description string */ - private static String getIdFromHyperlinkDesc(String desc) { - return desc.substring(PHENOTE_LINK_PREFIX.length()); - } + /** extract id from hyperlink description string */ + private static String getIdFromHyperlinkDesc(String desc) { + return desc.substring(PHENOTE_LINK_PREFIX.length()); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-11 21:24:24
|
Revision: 587 http://svn.sourceforge.net/obo/?rev=587&view=rev Author: mgibson Date: 2007-05-11 14:24:26 -0700 (Fri, 11 May 2007) Log Message: ----------- you can now put <master-to-local-config mode="WIPEOUT_ALWAYS"/> in config and the master will wipeout instead of update the local copy - this is good for when in early stages when config will change a lot and merging doesnt make any sense (eg birn) other options that arent yet implemented but one could imagine is INIT_ONLY (would miss config changes down the road) UPDATE_ALWAYS (dont wait til version change) UPDATE_ON_VERSION_CHANGE (the present default) Modified Paths: -------------- phenote/trunk/conf/birn.cfg phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd phenote/trunk/jars/phenoteconfigbeans.jar phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/gui/SettingsMenu.java phenote/trunk/src/java/phenote/main/CommandLine.java phenote/trunk/src/java/phenote/main/PhenoteVersion.java Modified: phenote/trunk/conf/birn.cfg =================================================================== --- phenote/trunk/conf/birn.cfg 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/conf/birn.cfg 2007-05-11 21:24:26 UTC (rev 587) @@ -1,5 +1,9 @@ <phenote-configuration version="1.3-beta1" xmlns="phenote/config/xml"> + <!-- wipeout always means that the master will always wipeout the local copy + in this mode modifying the local is useless --> + <master-to-local-config mode="WIPEOUT_ALWAYS"/> + <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="true"/> Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/conf/phenote-config.rnc 2007-05-11 21:24:26 UTC (rev 587) @@ -5,6 +5,7 @@ start = element phenote-configuration { attribute version { xsd:string }, + master-to-local-config, log, queryable-dataadapter*, dataadapter*, @@ -16,6 +17,13 @@ field* } +## specify how the master config interacts with local/cached config +## WIPEOUT_ALWAYS master will always wipe out local every run +## UPDATE_WITH_VERSION_CHANGE (default) update/merge master with local on version change +master-to-local-config = element master-to-local-config { + attribute mode { xsd:string } +} + queryable-dataadapter = element queryable-dataadapter { ## actual class name, eg phenote.dataadapter.worm.WormAdapter attribute name { xsd:string }, @@ -34,12 +42,6 @@ attribute enable { xsd:boolean } } -## Whether to check if ontology(obo) has been updated/more current obo file -## I think this needs to be taken out as replaced by quartz scheduler -##check-for-new-ontologies = -## element check-for-new-ontologies { -## attribute intervalMinutes { xsd:integer } -## } ## Where the config file for log4j is log = @@ -90,6 +92,12 @@ attribute is-postcomp-rel {xsd:boolean} } +## Whether to check if ontology(obo) has been updated/more current obo file +## I think this needs to be taken out as replaced by quartz scheduler +##check-for-new-ontologies = +## element check-for-new-ontologies { +## attribute intervalMinutes { xsd:integer } } + ## hmmmmm - this is funny - is there a need for more than one rel ontol?? ## alternatively should this just hold ontology+(1 or more) ## or alternatively just be another ontology with isRel flag and if theres @@ -102,3 +110,4 @@ ## do we need this?? ontology* } + Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/conf/phenote-config.xsd 2007-05-11 21:24:26 UTC (rev 587) @@ -3,6 +3,7 @@ <xs:element name="phenote-configuration"> <xs:complexType> <xs:sequence> + <xs:element ref="x:master-to-local-config"/> <xs:element ref="x:log"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="x:queryable-dataadapter"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="x:dataadapter"/> @@ -16,6 +17,11 @@ <xs:attribute name="version" use="required" type="xs:string"/> </xs:complexType> </xs:element> + <xs:element name="master-to-local-config"> + <xs:complexType> + <xs:attribute name="mode" use="required" type="xs:string"/> + </xs:complexType> + </xs:element> <xs:element name="queryable-dataadapter"> <xs:complexType> <xs:attribute name="name" use="required" type="xs:string"> Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-11 21:24:26 UTC (rev 587) @@ -28,6 +28,7 @@ import phenote.config.xml.TermHistoryDocument.TermHistory; import phenote.config.xml.AutoUpdateOntologiesDocument.AutoUpdateOntologies; import phenote.config.xml.UpdateTimerDocument.UpdateTimer; +import phenote.config.xml.MasterToLocalConfigDocument.MasterToLocalConfig; import phenote.dataadapter.DataAdapterI; import phenote.dataadapter.QueryableDataAdapterI; @@ -54,6 +55,7 @@ private int updateTimer = 0; //default is to not wait private String reposUrlDir; private String version; + private String masterToLocalConfigMode; private boolean configInitialized = false; private final static String myphenoteFile = "my-phenote"; @@ -169,49 +171,132 @@ //new ConfigWriter().writeConfig(this,new File(FileUtil.getDotPhenoteDir(),"my-phenote.cfg")); } - // why return string? why not file or url? - private String getMyPhenoteConfig(String passedInConfig,boolean overwritePersonalCfg, + /** masterConfig is filename from cmd line or from my-phenote + First test if masterConfig exists, then looks for file in .phenote cache. + throws excpetion if neither exist + if mergeConfigs is true and masterConfig exists it then tries to merge + passedIn(master) with dotConf(cache) + why return string? why not file or url? */ + private String getMyPhenoteConfig(String masterConfig,boolean overwritePersonalCfg, boolean mergeConfigs) throws ConfigException { - //File dotPhenote = FileUtil.getDotPhenoteDir(); - // this wont work with merging/updating - //File myPhenote = new File(dotPhenote,"my-phenote.cfg"); + +// boolean masterExists = true; +// URL masterUrl=null; +// // currently getConfigUrl doesnt search .phenote/conf - which is handy here +// // if passed in conf doesnt exist, carry on with dotConf - funny logic? +// try { masterUrl = getConfigUrl(masterConfig); } +// catch (FileNotFoundException fe) { masterExists = false; } - //try { - boolean passedInExists = true; - URL passedInUrl=null; +// // strips path to just file (but isnt it already stripped??) +// String nameOfFile = FileUtil.getNameOfFile(masterConfig); +// // this is the "species" conf file - eg ~/.phenote/conf/flybase.cfg +// File dotConfFile = new File(getDotPhenoteConfDir(),nameOfFile); + +// if (!masterExists && !dotConfFile.exists()) +// throw new ConfigException("Cfg file doesnt exist in app nor .phenote/conf"); + + // master conf may have attribute that overrides merge/overwrite settings - need to + // check those before going through with below -- throws Ex + ConfigMode mode = new ConfigMode(masterConfig,mergeConfigs,overwritePersonalCfg); + + //if (mergeConfigs && masterExists) { + if (mode.isUpdate()) + mergeMasterWithLocal(mode); // eventuall pass in mode as well + + + // if file doesnt exist yet or overwrite, copy over masterConfig + else if (mode.isWipeout()) { + mode.doWipeout(); // ?? thorws ConfigEx + // this should probably do a read & write of cfg to get version in there + // however if writeback is missing something its problematic + // mode.doWipeout? + //copyUrlToFile(mode.masterUrl,mode.localFile); // Exx + } + + // new way - set new default(no param) config file name in my-phenote.cfg + writeMyPhenoteDefaultFile(masterConfig); // ? master? + + return mode.localFileString(); // ? + } + + + /** ConfigMode INNER CLASS */ + private class ConfigMode { + private String mode = ""; + //private boolean updateWithNewVersion=false; + private boolean masterExists = true; + private URL masterUrl; + private File localFile; //dotConfFile; + private boolean cmdLineWipeout=false; + private ConfigMode(String masterConfig,boolean merge,boolean cmdLineWipeout) + throws ConfigException { + this.cmdLineWipeout = cmdLineWipeout; // currently getConfigUrl doesnt search .phenote/conf - which is handy here // if passed in conf doesnt exist, carry on with dotConf - funny logic? - try { passedInUrl = getConfigUrl(passedInConfig); } - catch (FileNotFoundException fe) { passedInExists = false; } + try { masterUrl = getConfigUrl(masterConfig); } + catch (FileNotFoundException fe) { masterExists = false; } - String nameOfFile = FileUtil.getNameOfFile(passedInConfig); + // strips path to just file (but isnt it already stripped??) + String nameOfFile = FileUtil.getNameOfFile(masterConfig); // this is the "species" conf file - eg ~/.phenote/conf/flybase.cfg - File dotConfFile = new File(getDotPhenoteConfDir(),nameOfFile); + localFile = new File(getDotPhenoteConfDir(),nameOfFile); - if (!passedInExists && !dotConfFile.exists()) + if (!masterExists && !localFile.exists()) throw new ConfigException("Cfg file doesnt exist in app nor .phenote/conf"); - if (mergeConfigs && passedInExists) { - mergeNewWithOld(passedInUrl,dotConfFile); - } - - // if file doesnt exist yet or overwrite, copy over passedInConfig - else if (passedInExists && (!dotConfFile.exists() || overwritePersonalCfg)) { - String s = overwritePersonalCfg ? " getting overwritten" : " does not exist"; - System.out.println(dotConfFile+s+" Copying "+passedInUrl); - // this should probably do a read & write of cfg to get version in there - // however if writeback is missing something its problematic - copyUrlToFile(passedInUrl,dotConfFile); - } - - // new way - set new default(no param) config file name in my-phenote.cfg - writeMyPhenoteDefaultFile(passedInConfig); // ? passedIn? + Config cfg = new Config(); + cfg.parseXmlFile(masterConfig); + if (cfg.masterToLocalConfigMode != null) + mode = cfg.masterToLocalConfigMode; +// if (overwrite || mode.equals("WIPEOUT_ALWAYS")) +// wipeoutAlways = true; +// else +// updateWithNewVersion = true; // for now + } + private boolean isWipeout() { + if (!masterExists) return false; + if (!localFileExists()) return true; // init + if (cmdLineWipeout) return true; + return mode.equals("WIPEOUT_ALWAYS"); + //return (!dotConfFile.exists() || overwritePersonalCfg) + } + + /** not sure if this belongs in this class?? */ + private void doWipeout() throws ConfigException { + doWipeoutMessage(); + copyUrlToFile(masterUrl,localFile); // Ex put method in inner class? + } - return dotConfFile.toString(); // ? - - //} catch (FileNotFoundException e) {throw new ConfigException(e);} - //return dotConfFile.toString(); // ? + private void doWipeoutMessage() { + String s = !localFileExists() ? " does not exist" : " getting overwritten"; + System.out.println(localFile+s+" Copying "+masterUrl); + } + + private boolean isUpdate() { + if (isWipeout()) return false; + else return true; // for now... + } + private boolean isUpdateWithNewVersion() { + return isUpdate(); // for now + } + private boolean isUpdateAlways() { + return isUpdate() && !isUpdateWithNewVersion(); // always false at moment + } + + private boolean isUpdateable(String version) { + if (isUpdateAlways()) return true; + if (!isUpdateWithNewVersion()) return false; + // version + if (version == null) return false; + return (!version.equals(PhenoteVersion.versionString())); + } + + + private boolean localFileExists() { + return localFile!=null && localFile.exists(); + } + private String localFileString() { return localFile.toString(); } } private static File getDotPhenoteConfDir() { @@ -237,7 +322,8 @@ } /** goes thru url line by line and copies to file - is there a better way to - do this? */ + do this? actually should do copy anymore should read in and write out xml + adding version along the way */ private void copyUrlToFile(URL configUrl,File myPhenote) throws ConfigException { try { @@ -256,21 +342,24 @@ /** MERGING/UPDATING Load in 2 configs, anything new in newConfig gets put into my phenote only merge if versions are different(?) in other words only merge on version change/phenote upgrade - if version same then leave in users mucking */ - private void mergeNewWithOld(URL newConfig,File oldDotConfFile) throws ConfigException { - if (!oldDotConfFile.exists()) { - System.out.println(oldDotConfFile+" doesnt exist, creating"); - copyUrlToFile(newConfig,oldDotConfFile); - return; - } + private void mergeMasterWithLocal(ConfigMode mode) throws ConfigException { //URL newConfig,File oldDotConfFile + // this actually is redundant as covered in isWipeout() +// if (!mode.localFileExists()) { +// System.out.println(mode.localFile+" doesnt exist, creating"); +// // this should actually do a read in and writeback to get version in there... +// copyUrlToFile(mode.masterUrl,mode.localFile); +// return; +// } Config newCfg = new Config(); - newCfg.parseXmlUrl(newConfig); //?? + newCfg.parseXmlUrl(mode.masterUrl); //?? Config oldCfg = new Config(); - oldCfg.parseXmlFile(oldDotConfFile.toString()); + oldCfg.parseXmlFile(mode.localFileString()); // so actually new/sys config may have out of date version or none - just use // PhenoteVersion itself! - String version = PhenoteVersion.versionString();//newCfg.version - if (version != null && version.equals(oldCfg.version)) { + //String version = PhenoteVersion.versionString();//newCfg.version + //if (mode.isUpdateWithNewVersion() && version != null && version.equals(oldCfg.version)) { + if (!mode.isUpdateable(oldCfg.version)) { System.out.println("System & user config same version, not updating cfg"); return; } @@ -293,16 +382,12 @@ for (FieldConfig newFC : newCfg.getFieldConfigList()) newFC.mergeWithOldConfig(oldCfg,newCfg); - // write out updated old cfg - todo write out to .phenote/conf/filename.cfg not mycfg - new ConfigWriter().writeConfig(oldCfg,oldDotConfFile);//getMyPhenoteCfgFile()); + // write out updated old cfg + new ConfigWriter().writeConfig(oldCfg,mode.localFile); } -// private File getMyPhenoteCfgFile() { -// return new File(FileUtil.getDotPhenoteDir(),"my-phenote.cfg"); -// } - // --> hasFileDataAdapters public boolean hasDataAdapters() { //return dataAdapConfList != null && !dataAdapConfList.isEmpty(); @@ -491,6 +576,10 @@ version = pc.getVersion(); + MasterToLocalConfig m = pc.getMasterToLocalConfig(); + if (m != null && m.getMode() != null) + masterToLocalConfigMode = m.getMode(); + // LOG CONFIG FILE Log log = pc.getLog(); if (log != null && log.getConfigFile() != null) { @@ -615,7 +704,16 @@ } } - //parseXmlFile("./conf/initial-flybase.cfg"); // hardwired for now... +// private File getMyPhenoteCfgFile() { +// return new File(FileUtil.getDotPhenoteDir(),"my-phenote.cfg"); +// } + + //File dotPhenote = FileUtil.getDotPhenoteDir(); + // this wont work with merging/updating + //File myPhenote = new File(dotPhenote,"my-phenote.cfg"); + //} catch (FileNotFoundException e) {throw new ConfigException(e);} + //return dotConfFile.toString(); // ? + //parseXmlFile("./conf/initial-flybase.cfg"); // hardwired for now... //private FieldConfig lumpConfig = new FieldConfig(CharFieldEnum.LUMP,"Genotype"); //private String lumpOntologyFile = null; private OntologyConfig lumpConfig = new OntologyConfig("Genotype"); Modified: phenote/trunk/src/java/phenote/gui/SettingsMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-11 21:24:26 UTC (rev 587) @@ -186,7 +186,7 @@ Config.writeMyPhenoteDefaultFile(newCfg); restartMessage(); - //changeConfig(newCfg); + //changeConfig(newCfg); // not working yet } catch (ConfigFileQueryGui.CancelEx ex) {} // its cancelled do nothing catch (ConfigException x) { Modified: phenote/trunk/src/java/phenote/main/CommandLine.java =================================================================== --- phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/src/java/phenote/main/CommandLine.java 2007-05-11 21:24:26 UTC (rev 587) @@ -130,7 +130,9 @@ super("updateConfig",'u',true,"config file",help); } public void execute() throws Exception { - //System.out.println("executing update config command option "+getArg()); + + // this should use ConfigMode (make outer class)!! + try { Config.inst().updateConfigFileWithNewVersion(getArg()); } catch (ConfigException e) { loadDefaultConfig("overwrite",e); } } @@ -143,6 +145,9 @@ super("configSet",'c',true,"config file",help); // true -> has arg } public void execute() throws Exception { + + // this should use ConfigMode (make outer class)!! + try { Config.inst().setOverwriteConfigFile(getArg()); } catch (ConfigException e) { loadDefaultConfig("overwrite",e); } } Modified: phenote/trunk/src/java/phenote/main/PhenoteVersion.java =================================================================== --- phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-11 20:39:50 UTC (rev 586) +++ phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-11 21:24:26 UTC (rev 587) @@ -9,7 +9,7 @@ //private static final float MAJOR_VERSION_NUM = 0.8f; //private static final float SUB_VERSION_NUM = .3f; - private static final String VERSION = "1.3-beta1"; // ?? + private static final String VERSION = "1.3-beta2"; // ?? // type is "dev" or "release" //private static final String type = " dev"; // "release" @@ -19,7 +19,7 @@ } public static Date getDateOfVersion(){ - GregorianCalendar cal = new GregorianCalendar(2007, GregorianCalendar.MAY, 2); + GregorianCalendar cal = new GregorianCalendar(2007, GregorianCalendar.MAY, 9); return cal.getTime(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cmu...@us...> - 2007-05-11 20:39:50
|
Revision: 586 http://svn.sourceforge.net/obo/?rev=586&view=rev Author: cmungall Date: 2007-05-11 13:39:50 -0700 (Fri, 11 May 2007) Log Message: ----------- Modified Paths: -------------- obolog/trunk/bfo.obolog obolog/trunk/obolog-test-data.lisp obolog/trunk/obolog-theorem-prover.lisp obolog/trunk/obolog.lisp Modified: obolog/trunk/bfo.obolog =================================================================== --- obolog/trunk/bfo.obolog 2007-05-11 19:08:52 UTC (rev 585) +++ obolog/trunk/bfo.obolog 2007-05-11 20:39:50 UTC (rev 586) @@ -1,221 +1,228 @@ -(obolog_version "0.01" ) -(idspace rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ) -(idspace rdfs "http://www.w3.org/2000/01/rdf-schema#" ) -(idspace owl "http://www.w3.org/2002/07/owl#" ) -(idspace xsd "http://www.w3.org/2001/XMLSchema#" ) -(idspace dc "http://purl.org/dc/elements/1.1/" ) -(idspace eor "http://dublincore.org/2000/03/13/eor#" ) -(idspace serql "http://www.openrdf.org/schema/serql#" ) -(idspace obd "http://www.bioontology.org/obd/obd-ontology#" ) -(idspace oboInOwl "http://www.bioontology.org/oboInOwl#" ) -(idspace ncithesaurus "http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#" ) -(idspace biopax1 "http://www.biopax.org/release/biopax-level1.owl#" ) -(idspace mged "http://mged.sourceforge.net/ontologies/MGEDOntology.owl#" ) -(idspace bfo "http://www.ifomis.org/bfo/1.0#" ) -(idspace snap "http://www.ifomis.org/bfo/snap#" ) -(idspace span "http://www.ifomis.org/bfo/span#" ) -(idspace swrl "http://www.w3.org/2003/11/swrl#" ) +(obolog_version "0.01") -(universal "bfo:Entity" ) -(disjoint_union "snap:Continuant" "span:Occurrent" ) +(universal bfo__Entity) -(universal "snap:Continuant" ) -(link is_a "snap:Continuant" "bfo:Entity" ) -(disjoint_union "snap:DependentContinuant" "snap:IndependentContinuant" "snap:SpatialRegion" ) -(comment "snap:Continuant" "Definition: An entity that exists in full at any time in which it exists at all, persists through time while maintaining its identity and has no temporal parts." ) -(comment "snap:Continuant" "Examples: a heart, a person, the color of a tomato, the mass of a cloud, a symphony orchestra, the disposition of blood to coagulate, the lawn and atmosphere in front of our building" ) -(comment "snap:Continuant" "Synonyms: endurant" ) +(universal snap__Continuant) +(link is_a snap__Continuant bfo__Entity) +(disjoint_union span__Occurrent) +(comment snap__Continuant "Definition: An entity that exists in full at any time in which it exists at all, persists through time while maintaining its identity and has no temporal parts.") +(comment snap__Continuant "Examples: a heart, a person, the color of a tomato, the mass of a cloud, a symphony orchestra, the disposition of blood to coagulate, the lawn and atmosphere in front of our building") +(comment snap__Continuant "Synonyms: endurant") -(universal "snap:DependentContinuant" ) -(link is_a "snap:DependentContinuant" "snap:Continuant" ) -(disjoint_union "snap:Quality" "snap:RealizableEntity" ) -(comment "snap:DependentContinuant" "Definition: A continuant that inheres in or is born by other entities." ) -(comment "snap:DependentContinuant" "Examples: the mass of a cloud, the smell of mozzarella, the liquidity of blood, the color of a tomato, the disposition of fish to decay, the role of being a doctor, the function of the heart to pump blood" ) -(comment "snap:DependentContinuant" "Synonyms: property, trope, mode" ) +(universal snap__DependentContinuant) +(link is_a snap__DependentContinuant snap__Continuant) +(disjoint_union snap__IndependentContinuant snap__SpatialRegion) +(comment snap__DependentContinuant "Definition: A continuant that inheres in or is born by other entities.") +(comment snap__DependentContinuant "Examples: the mass of a cloud, the smell of mozzarella, the liquidity of blood, the color of a tomato, the disposition of fish to decay, the role of being a doctor, the function of the heart to pump blood") +(comment snap__DependentContinuant "Synonyms: property, trope, mode") -(universal "snap:Disposition" ) -(link is_a "snap:Disposition" "snap:RealizableEntity" ) -(comment "snap:Disposition" "Definition: A realizable entity that essentially causes a specific process or transformation in the object in which it inheres, under specific circumstances and in conjunction with the laws of nature. A general formula for dispositions is: X (object) has the disposition D to (transform, initiate a process) R under conditions C." ) -(comment "snap:Disposition" "Examples: the disposition of vegetables to decay when not refrigerated, the disposition of a vase to brake if dropped, the disposition of blood to coagulate, the disposition of a patient with a weakened immune system to contract disease, the disposition of metal to conduct electricity." ) +(universal snap__Disposition) +(link is_a snap__Disposition snap__RealizableEntity) +(disjoint_union snap__Function snap__Role) +(comment snap__Disposition "Definition: A realizable entity that essentially causes a specific process or transformation in the object in which it inheres, under specific circumstances and in conjunction with the laws of nature. A general formula for dispositions is: X (object) has the disposition D to (transform, initiate a process) R under conditions C.") +(comment snap__Disposition "Examples: the disposition of vegetables to decay when not refrigerated, the disposition of a vase to brake if dropped, the disposition of blood to coagulate, the disposition of a patient with a weakened immune system to contract disease, the disposition of metal to conduct electricity.") -(universal "snap:FiatObjectPart" ) -(link is_a "snap:FiatObjectPart" "snap:IndependentContinuant" ) -(comment "snap:FiatObjectPart" "Definition: An independent continuant that is part of an object but is not demarcated by any physical discontinuities." ) -(comment "snap:FiatObjectPart" "Examples: upper and lower lobes of the left lung, the dorsal and ventral surfaces of the body, the east side of Saarbruecken, the lower right portion of a human torso" ) -(comment "snap:FiatObjectPart" "Synonyms: fiat substance part" ) +(universal snap__FiatObjectPart) +(link is_a snap__FiatObjectPart snap__IndependentContinuant) +(disjoint_union snap__Object snap__ObjectAggregate snap__ObjectBoundary snap__Site) +(comment snap__FiatObjectPart "Definition: An independent continuant that is part of an object but is not demarcated by any physical discontinuities.") +(comment snap__FiatObjectPart "Examples: upper and lower lobes of the left lung, the dorsal and ventral surfaces of the body, the east side of Saarbruecken, the lower right portion of a human torso") +(comment snap__FiatObjectPart "Synonyms: fiat substance part") -(universal "snap:Function" ) -(link is_a "snap:Function" "snap:RealizableEntity" ) -(comment "snap:Function" "Definition: A realizable entity the manifestation of which is an essentialy end-directed activity of a continuant entity in virtue of that continuant entity being a specific kind of entity in the kind or kinds of contexts that it is made for." ) -(comment "snap:Function" "Examples: the function of a birth canal to enable transport, the function of the heart in the body to pump blood, the function of reproduction in the transmission of genetic material, the digestive function of the stomach to nutriate the body, the function of a hammer to drive in nails, the function of a computer program to compute mathematical equations, the function of an automobile to provide transportation, the function of a judge in a court of law" ) +(universal snap__Function) +(link is_a snap__Function snap__RealizableEntity) +(disjoint_union snap__Disposition snap__Role) +(comment snap__Function "Definition: A realizable entity the manifestation of which is an essentialy end-directed activity of a continuant entity in virtue of that continuant entity being a specific kind of entity in the kind or kinds of contexts that it is made for.") +(comment snap__Function "Examples: the function of a birth canal to enable transport, the function of the heart in the body to pump blood, the function of reproduction in the transmission of genetic material, the digestive function of the stomach to nutriate the body, the function of a hammer to drive in nails, the function of a computer program to compute mathematical equations, the function of an automobile to provide transportation, the function of a judge in a court of law") -(universal "snap:IndependentContinuant" ) -(link is_a "snap:IndependentContinuant" "snap:Continuant" ) -(disjoint_union "snap:FiatObjectPart" "snap:Object" "snap:ObjectAggregate" "snap:ObjectBoundary" "snap:Site" ) -(comment "snap:IndependentContinuant" "Definition: A continuant that is a bearer of qualities and realizable entities, in which other entities inhere and which itself cannot inhere in anything." ) -(comment "snap:IndependentContinuant" "Examples: an organism, a heart, a leg, a person, a symphony orchestra, a chair, the bottom right portion of a human torso, the lawn and atmosphere in front of our building" ) -(comment "snap:IndependentContinuant" "Synonyms: substantial entity" ) +(universal snap__IndependentContinuant) +(link is_a snap__IndependentContinuant snap__Continuant) +(disjoint_union snap__DependentContinuant snap__SpatialRegion) +(comment snap__IndependentContinuant "Definition: A continuant that is a bearer of qualities and realizable entities, in which other entities inhere and which itself cannot inhere in anything.") +(comment snap__IndependentContinuant "Examples: an organism, a heart, a leg, a person, a symphony orchestra, a chair, the bottom right portion of a human torso, the lawn and atmosphere in front of our building") +(comment snap__IndependentContinuant "Synonyms: substantial entity") -(universal "snap:Object" ) -(link is_a "snap:Object" "snap:IndependentContinuant" ) -(comment "snap:Object" "Definition: A independent continuant that is spatially extended, maximally self-connected and self-contained (the parts of a substance are not separated from each other by spatial gaps) and possesses an internal unity. The identity of substantial objects is independent of that of other entities and can be maintained through time and through loss and gain of parts and qualities." ) -(comment "snap:Object" "Examples: an organism, a heart, a chair, a lung, an apple" ) -(comment "snap:Object" "Synonyms: substance" ) +(universal snap__Object) +(link is_a snap__Object snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__ObjectAggregate snap__ObjectBoundary snap__Site) +(comment snap__Object "Definition: A independent continuant that is spatially extended, maximally self-connected and self-contained (the parts of a substance are not separated from each other by spatial gaps) and possesses an internal unity. The identity of substantial objects is independent of that of other entities and can be maintained through time and through loss and gain of parts and qualities.") +(comment snap__Object "Examples: an organism, a heart, a chair, a lung, an apple") +(comment snap__Object "Synonyms: substance") -(universal "snap:ObjectAggregate" ) -(link is_a "snap:ObjectAggregate" "snap:IndependentContinuant" ) -(comment "snap:ObjectAggregate" "Definition: An independent continuant that is a mereological sum of separate objects and possesses non-connected boundaries." ) -(comment "snap:ObjectAggregate" "Examples: a heap of stones, a group of commuters on the subway, a collection of random bacteria, a flock of geese, the patients in a hospital" ) -(comment "snap:ObjectAggregate" "Synonyms: substance aggregate" ) +(universal snap__ObjectAggregate) +(link is_a snap__ObjectAggregate snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectBoundary snap__Site) +(comment snap__ObjectAggregate "Definition: An independent continuant that is a mereological sum of separate objects and possesses non-connected boundaries.") +(comment snap__ObjectAggregate "Examples: a heap of stones, a group of commuters on the subway, a collection of random bacteria, a flock of geese, the patients in a hospital") +(comment snap__ObjectAggregate "Synonyms: substance aggregate") -(universal "snap:ObjectBoundary" ) -(link is_a "snap:ObjectBoundary" "snap:IndependentContinuant" ) -(comment "snap:ObjectBoundary" "Comment: Boundaries are theoretically difficult entities to account for, however the intuitive notion of a physical boundary as a surface of some sort (whether inside or outside of a thing) will generally serve as a good guide for the use of this universal." ) -(comment "snap:ObjectBoundary" "Definition: An independent continuant that is a lower dimensional part of a spatial entity, normally a closed two-dimensional surface. Boundaries are those privileged parts of objects that exist at exactly the point where the object is separated off from the rest of the existing entities in the world." ) -(comment "snap:ObjectBoundary" "Examples: the surface of the skin, the surface of the earth, the surface of the interior of the stomach, the outer surface of a cell or cell wall" ) -(comment "snap:ObjectBoundary" "Synonyms: substance boundary" ) +(universal snap__ObjectBoundary) +(link is_a snap__ObjectBoundary snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__Site) +(comment snap__ObjectBoundary "Comment: Boundaries are theoretically difficult entities to account for, however the intuitive notion of a physical boundary as a surface of some sort (whether inside or outside of a thing) will generally serve as a good guide for the use of this universal.") +(comment snap__ObjectBoundary "Definition: An independent continuant that is a lower dimensional part of a spatial entity, normally a closed two-dimensional surface. Boundaries are those privileged parts of objects that exist at exactly the point where the object is separated off from the rest of the existing entities in the world.") +(comment snap__ObjectBoundary "Examples: the surface of the skin, the surface of the earth, the surface of the interior of the stomach, the outer surface of a cell or cell wall") +(comment snap__ObjectBoundary "Synonyms: substance boundary") -(universal "snap:OneDimensionalRegion" ) -(link is_a "snap:OneDimensionalRegion" "snap:SpatialRegion" ) -(comment "snap:OneDimensionalRegion" "Definition: A spatial region with one dimension." ) -(comment "snap:OneDimensionalRegion" "Examples: the part of space that is a line stretching from one end of absolute space to the other, an edge of a cube-shaped part of space" ) +(universal snap__OneDimensionalRegion) +(link is_a snap__OneDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__ThreeDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) +(comment snap__OneDimensionalRegion "Definition: A spatial region with one dimension.") +(comment snap__OneDimensionalRegion "Examples: the part of space that is a line stretching from one end of absolute space to the other, an edge of a cube-shaped part of space") -(universal "snap:Quality" ) -(link is_a "snap:Quality" "snap:DependentContinuant" ) -(comment "snap:Quality" "Definition: A dependent continuant that is exhibited if it inheres in an entity or entities at all (a categorical property)." ) -(comment "snap:Quality" "Examples: the color of a tomato, the ambient temperature of air, the circumference of a waist, the shape of a nose, the mass of a piece of gold, the weight of a chimpanzee" ) +(universal snap__Quality) +(link is_a snap__Quality snap__DependentContinuant) +(disjoint_union snap__RealizableEntity) +(comment snap__Quality "Definition: A dependent continuant that is exhibited if it inheres in an entity or entities at all (a categorical property).") +(comment snap__Quality "Examples: the color of a tomato, the ambient temperature of air, the circumference of a waist, the shape of a nose, the mass of a piece of gold, the weight of a chimpanzee") -(universal "snap:RealizableEntity" ) -(link is_a "snap:RealizableEntity" "snap:DependentContinuant" ) -(disjoint_union "snap:Disposition" "snap:Function" "snap:Role" ) -(comment "snap:RealizableEntity" "Definition: A dependent continuant that inheres in continuants and are not exhibited in full at every time in which it inheres in an entity or group of entities. The exhibition or actualization of a realizable entity is a particular manifestation, functioning orprocess that occurs under certain circumstances." ) -(comment "snap:RealizableEntity" "Examples: the role of being a doctor, the function of the reproductive organs, the disposition of blood to coagulate, the disposition of metal to conduct electricity" ) +(universal snap__RealizableEntity) +(link is_a snap__RealizableEntity snap__DependentContinuant) +(disjoint_union snap__Quality) +(comment snap__RealizableEntity "Definition: A dependent continuant that inheres in continuants and are not exhibited in full at every time in which it inheres in an entity or group of entities. The exhibition or actualization of a realizable entity is a particular manifestation, functioning orprocess that occurs under certain circumstances.") +(comment snap__RealizableEntity "Examples: the role of being a doctor, the function of the reproductive organs, the disposition of blood to coagulate, the disposition of metal to conduct electricity") -(universal "snap:Role" ) -(link is_a "snap:Role" "snap:RealizableEntity" ) -(comment "snap:Role" "Definition: A realizable entity the manifestation of which brings about some result or end that is not essential to a continuant in virtue of the kind of thing that it is but that can be served or participated in by that kind of continuant in some kinds of natural, social or institutional contexts." ) -(comment "snap:Role" "Examples: the role of a person as a surgeon, the role of an artificial heart in pumping blood, the role of a chemical compound in an experiment, the role of a drug in the treatment of a disease, the role of a patient relative as defined by a hospital administrative form, the role of a woman as a legal mother in the context of system of laws, the role of a biological grandfather as legal guardian in the context of a system of laws, the role of a tree in maintaining stability in an ecosystem, the role of ingested matter in digestion" ) +(universal snap__Role) +(link is_a snap__Role snap__RealizableEntity) +(disjoint_union snap__Disposition snap__Function) +(comment snap__Role "Definition: A realizable entity the manifestation of which brings about some result or end that is not essential to a continuant in virtue of the kind of thing that it is but that can be served or participated in by that kind of continuant in some kinds of natural, social or institutional contexts.") +(comment snap__Role "Examples: the role of a person as a surgeon, the role of an artificial heart in pumping blood, the role of a chemical compound in an experiment, the role of a drug in the treatment of a disease, the role of a patient relative as defined by a hospital administrative form, the role of a woman as a legal mother in the context of system of laws, the role of a biological grandfather as legal guardian in the context of a system of laws, the role of a tree in maintaining stability in an ecosystem, the role of ingested matter in digestion") -(universal "snap:Site" ) -(link is_a "snap:Site" "snap:IndependentContinuant" ) -(comment "snap:Site" "Comment: Sites should not be confused with spatial regions. Sites characteristically have a filling or medium and are capable of altering their spatial location (moving from one spatial region to another) without altering their identity." ) -(comment "snap:Site" "Definition: An independent continuant consisting of a characteristic spatial shape in relation to some arrangement of other continuants and of the medium which is enclosed in whole or in part by this characteristic spatial shape. Sites are entities that can be occupied by other continuants." ) -(comment "snap:Site" "Examples: a city, a nasal cavity, a blood vein, an environment, sinuses, canals, ventricles, the lumen of the gastrointestinal tract, the location of the battle of Austerlitz, the interior of the aorta, the room in which one is located, the top of one\u2019s desk including the things that are on it and the atmosphere surrounding them." ) +(universal snap__Site) +(link is_a snap__Site snap__IndependentContinuant) +(disjoint_union snap__FiatObjectPart snap__Object snap__ObjectAggregate snap__ObjectBoundary) +(comment snap__Site "Comment: Sites should not be confused with spatial regions. Sites characteristically have a filling or medium and are capable of altering their spatial location (moving from one spatial region to another) without altering their identity.") +(comment snap__Site "Definition: An independent continuant consisting of a characteristic spatial shape in relation to some arrangement of other continuants and of the medium which is enclosed in whole or in part by this characteristic spatial shape. Sites are entities that can be occupied by other continuants.") +(comment snap__Site "Examples: a city, a nasal cavity, a blood vein, an environment, sinuses, canals, ventricles, the lumen of the gastrointestinal tract, the location of the battle of Austerlitz, the interior of the aorta, the room in which one is located, the top of one’s desk including the things that are on it and the atmosphere surrounding them.") -(universal "snap:SpatialRegion" ) -(link is_a "snap:SpatialRegion" "snap:Continuant" ) -(disjoint_union "snap:OneDimensionalRegion" "snap:ThreeDimensionalRegion" "snap:TwoDimensionalRegion" "snap:ZeroDimensionalRegion" ) -(comment "snap:SpatialRegion" "Comment: Spatial regions should not be confused with sites. Spatial regions exist as parts of pure or absolute space, have a dimensionality and a shape but require no filling in order to exist and are also immobile." ) -(comment "snap:SpatialRegion" "Definition: An independent continuant that is neither bearer of qualities nor inheres in any other entities." ) -(comment "snap:SpatialRegion" "Examples: the sum total of all space in the universe, parts of the sum total of all space in the universe" ) +(universal snap__SpatialRegion) +(link is_a snap__SpatialRegion snap__Continuant) +(disjoint_union snap__DependentContinuant snap__IndependentContinuant) +(comment snap__SpatialRegion "Comment: Spatial regions should not be confused with sites. Spatial regions exist as parts of pure or absolute space, have a dimensionality and a shape but require no filling in order to exist and are also immobile.") +(comment snap__SpatialRegion "Definition: An independent continuant that is neither bearer of qualities nor inheres in any other entities.") +(comment snap__SpatialRegion "Examples: the sum total of all space in the universe, parts of the sum total of all space in the universe") -(universal "snap:ThreeDimensionalRegion" ) -(link is_a "snap:ThreeDimensionalRegion" "snap:SpatialRegion" ) -(comment "snap:ThreeDimensionalRegion" "Definition: A spatial region with three dimensions." ) -(comment "snap:ThreeDimensionalRegion" "Examples: a cube-shaped part of space, a sphere-shaped part of space" ) +(universal snap__ThreeDimensionalRegion) +(link is_a snap__ThreeDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__TwoDimensionalRegion snap__ZeroDimensionalRegion) +(comment snap__ThreeDimensionalRegion "Definition: A spatial region with three dimensions.") +(comment snap__ThreeDimensionalRegion "Examples: a cube-shaped part of space, a sphere-shaped part of space") -(universal "snap:TwoDimensionalRegion" ) -(link is_a "snap:TwoDimensionalRegion" "snap:SpatialRegion" ) -(comment "snap:TwoDimensionalRegion" "Definition: A spatial region with two dimensions." ) -(comment "snap:TwoDimensionalRegion" "Examples: the surface of a cube-shaped part of space, the surface of a sphere-shaped part of space, the surface of a rectilinear planar figure-shaped part of space" ) +(universal snap__TwoDimensionalRegion) +(link is_a snap__TwoDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__ZeroDimensionalRegion) +(comment snap__TwoDimensionalRegion "Definition: A spatial region with two dimensions.") +(comment snap__TwoDimensionalRegion "Examples: the surface of a cube-shaped part of space, the surface of a sphere-shaped part of space, the surface of a rectilinear planar figure-shaped part of space") -(universal "snap:ZeroDimensionalRegion" ) -(link is_a "snap:ZeroDimensionalRegion" "snap:SpatialRegion" ) -(comment "snap:ZeroDimensionalRegion" "Definition: A spatial region with no dimensions." ) -(comment "snap:ZeroDimensionalRegion" "Examples: a point" ) +(universal snap__ZeroDimensionalRegion) +(link is_a snap__ZeroDimensionalRegion snap__SpatialRegion) +(disjoint_union snap__OneDimensionalRegion snap__ThreeDimensionalRegion snap__TwoDimensionalRegion) +(comment snap__ZeroDimensionalRegion "Definition: A spatial region with no dimensions.") +(comment snap__ZeroDimensionalRegion "Examples: a point") -(universal "span:ConnectedSpatiotemporalRegion" ) -(link is_a "span:ConnectedSpatiotemporalRegion" "span:SpatiotemporalRegion" ) -(disjoint_union "span:SpatiotemporalInstant" "span:SpatiotemporalInterval" ) -(comment "span:ConnectedSpatiotemporalRegion" "Definition: A space time region that has temporal and spatial dimensions such that all points within the spatiotemporal region are mediately or immediately connected to all other points within the same space time region." ) -(comment "span:ConnectedSpatiotemporalRegion" "Examples: the spatial and temporal location of an individual organism\u2019s life, the spatial and temporal location of the development of a fetus" ) +(universal span__ConnectedSpatiotemporalRegion) +(link is_a span__ConnectedSpatiotemporalRegion span__SpatiotemporalRegion) +(disjoint_union span__ScatteredSpatiotemporalRegion) +(comment span__ConnectedSpatiotemporalRegion "Definition: A space time region that has temporal and spatial dimensions such that all points within the spatiotemporal region are mediately or immediately connected to all other points within the same space time region.") +(comment span__ConnectedSpatiotemporalRegion "Examples: the spatial and temporal location of an individual organism’s life, the spatial and temporal location of the development of a fetus") -(universal "span:ConnectedTemporalRegion" ) -(link is_a "span:ConnectedTemporalRegion" "span:TemporalRegion" ) -(disjoint_union "span:TemporalInstant" "span:TemporalInterval" ) -(comment "span:ConnectedTemporalRegion" "Definition: A temporal region every point of which is mediately or immediately connected with every other point of which." ) -(comment "span:ConnectedTemporalRegion" "Examples: the 1970s years, the time from the beginning to the end of a heart attack, the time taken up by cellular meiosis" ) +(universal span__ConnectedTemporalRegion) +(link is_a span__ConnectedTemporalRegion span__TemporalRegion) +(disjoint_union span__ScatteredTemporalRegion) +(comment span__ConnectedTemporalRegion "Definition: A temporal region every point of which is mediately or immediately connected with every other point of which.") +(comment span__ConnectedTemporalRegion "Examples: the 1970s years, the time from the beginning to the end of a heart attack, the time taken up by cellular meiosis") -(universal "span:FiatProcessPart" ) -(link is_a "span:FiatProcessPart" "span:ProcessualEntity" ) -(comment "span:FiatProcessPart" "Definition: A processual entity that is part of a process but that does not have bona fide beginnings and endings corresponding to real discontinuities." ) -(comment "span:FiatProcessPart" "Examples: chewing during a meal, the middle part of a rainstorm, the worst part of a heart-attack, the most interesting part of Van Gogh\u2019s life" ) +(universal span__FiatProcessPart) +(link is_a span__FiatProcessPart span__ProcessualEntity) +(disjoint_union span__Process span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) +(comment span__FiatProcessPart "Definition: A processual entity that is part of a process but that does not have bona fide beginnings and endings corresponding to real discontinuities.") +(comment span__FiatProcessPart "Examples: chewing during a meal, the middle part of a rainstorm, the worst part of a heart-attack, the most interesting part of Van Gogh’s life") -(universal "span:Occurrent" ) -(link is_a "span:Occurrent" "bfo:Entity" ) -(disjoint_union "span:ProcessualEntity" "span:SpatiotemporalRegion" "span:TemporalRegion" ) -(comment "span:Occurrent" "Definition: An entity that has temporal parts and that happens, unfolds or develops through time. Sometimes also called perdurants." ) -(comment "span:Occurrent" "Examples: the life of an organism, a surgical operation as processual context for a nosocomical infection, the spatiotemporal context occupied by a process of cellular meiosis, the most interesting part of Van Gogh\u2019s life, the spatiotemporal region occupied by the development of a cancer tumor" ) -(comment "span:Occurrent" "Synonyms: perdurant" ) +(universal span__Occurrent) +(link is_a span__Occurrent bfo__Entity) +(disjoint_union snap__Continuant) +(comment span__Occurrent "Definition: An entity that has temporal parts and that happens, unfolds or develops through time. Sometimes also called perdurants.") +(comment span__Occurrent "Examples: the life of an organism, a surgical operation as processual context for a nosocomical infection, the spatiotemporal context occupied by a process of cellular meiosis, the most interesting part of Van Gogh’s life, the spatiotemporal region occupied by the development of a cancer tumor") +(comment span__Occurrent "Synonyms: perdurant") -(universal "span:Process" ) -(link is_a "span:Process" "span:ProcessualEntity" ) -(comment "span:Process" "Definition: A processual entity that is a maximally connected spatio-temporal whole and has bona fide beginnings and endings corresponding to real discontinuities." ) -(comment "span:Process" "Examples: the life of an organism, the process of sleeping, the process of cell-division" ) +(universal span__Process) +(link is_a span__Process span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__ProcessAggregate span__ProcessBoundary span__ProcessualContext) +(comment span__Process "Definition: A processual entity that is a maximally connected spatio-temporal whole and has bona fide beginnings and endings corresponding to real discontinuities.") +(comment span__Process "Examples: the life of an organism, the process of sleeping, the process of cell-division") -(universal "span:ProcessAggregate" ) -(link is_a "span:ProcessAggregate" "span:ProcessualEntity" ) -(comment "span:ProcessAggregate" "Definition: A processual entity that is a meriological sum of processes and possesses non-connected boundaries." ) -(comment "span:ProcessAggregate" "Examples: the beating of the hearts of each of seven individuals in the room, the playing of each of the members of an orchestra, a process of digestion and a process of thinking taken together" ) +(universal span__ProcessAggregate) +(link is_a span__ProcessAggregate span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessBoundary span__ProcessualContext) +(comment span__ProcessAggregate "Definition: A processual entity that is a meriological sum of processes and possesses non-connected boundaries.") +(comment span__ProcessAggregate "Examples: the beating of the hearts of each of seven individuals in the room, the playing of each of the members of an orchestra, a process of digestion and a process of thinking taken together") -(universal "span:ProcessBoundary" ) -(link is_a "span:ProcessBoundary" "span:ProcessualEntity" ) -(comment "span:ProcessBoundary" "Definition: A processual entity that is the fiat or bona fide instantaneous temporal process boundary." ) -(comment "span:ProcessBoundary" "Examples: birth, death, the forming of a synapse, the onset of REM sleep, the detaching of a finger in an industrial accident, the final separation of two cells at the end of cell-division, the incision at the beginning of a surgery" ) +(universal span__ProcessBoundary) +(link is_a span__ProcessBoundary span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessualContext) +(comment span__ProcessBoundary "Definition: A processual entity that is the fiat or bona fide instantaneous temporal process boundary.") +(comment span__ProcessBoundary "Examples: birth, death, the forming of a synapse, the onset of REM sleep, the detaching of a finger in an industrial accident, the final separation of two cells at the end of cell-division, the incision at the beginning of a surgery") -(universal "span:ProcessualContext" ) -(link is_a "span:ProcessualContext" "span:ProcessualEntity" ) -(comment "span:ProcessualContext" "Comment: setting" ) -(comment "span:ProcessualContext" "Definition: An occurrent consisting of a characteristic spatial shape inhering in some arrangement of other occurrents. Processual contexts are characteristically entities at or in which other occurrents can be located or occur." ) -(comment "span:ProcessualContext" "Examples: a surgical operation as processual context for a nosocomical infection, a routine check-up as processual context for the finding of a tumor, a clinical trial as processual context for the discovery of a new treatment or drug" ) +(universal span__ProcessualContext) +(link is_a span__ProcessualContext span__ProcessualEntity) +(disjoint_union span__FiatProcessPart span__Process span__ProcessAggregate span__ProcessBoundary) +(comment span__ProcessualContext "Comment: setting") +(comment span__ProcessualContext "Definition: An occurrent consisting of a characteristic spatial shape inhering in some arrangement of other occurrents. Processual contexts are characteristically entities at or in which other occurrents can be located or occur.") +(comment span__ProcessualContext "Examples: a surgical operation as processual context for a nosocomical infection, a routine check-up as processual context for the finding of a tumor, a clinical trial as processual context for the discovery of a new treatment or drug") -(universal "span:ProcessualEntity" ) -(link is_a "span:ProcessualEntity" "span:Occurrent" ) -(disjoint_union "span:FiatProcessPart" "span:Process" "span:ProcessAggregate" "span:ProcessBoundary" "span:ProcessualContext" ) -(comment "span:ProcessualEntity" "Definition: An occurrent that exists in time by occurring or happening, has temporal parts and always involves and depends on some entity." ) -(comment "span:ProcessualEntity" "Examples: the life of an organism, the process of meiosis, the course of a disease, the flight of a bird" ) +(universal span__ProcessualEntity) +(link is_a span__ProcessualEntity span__Occurrent) +(disjoint_union span__SpatiotemporalRegion span__TemporalRegion) +(comment span__ProcessualEntity "Definition: An occurrent that exists in time by occurring or happening, has temporal parts and always involves and depends on some entity.") +(comment span__ProcessualEntity "Examples: the life of an organism, the process of meiosis, the course of a disease, the flight of a bird") -(universal "span:ScatteredSpatiotemporalRegion" ) -(link is_a "span:ScatteredSpatiotemporalRegion" "span:SpatiotemporalRegion" ) -(comment "span:ScatteredSpatiotemporalRegion" "Definition: A space time region that has spatial and temporal dimensions and every spatial and temporal point of which is not connected with every other spatial and temporal point of which." ) -(comment "span:ScatteredSpatiotemporalRegion" "Examples: the space and time occupied by the individual games of the World Cup, the space and time occupied by the individual liaisons in a romantic affair" ) +(universal span__ScatteredSpatiotemporalRegion) +(link is_a span__ScatteredSpatiotemporalRegion span__SpatiotemporalRegion) +(disjoint_union span__ConnectedSpatiotemporalRegion) +(comment span__ScatteredSpatiotemporalRegion "Definition: A space time region that has spatial and temporal dimensions and every spatial and temporal point of which is not connected with every other spatial and temporal point of which.") +(comment span__ScatteredSpatiotemporalRegion "Examples: the space and time occupied by the individual games of the World Cup, the space and time occupied by the individual liaisons in a romantic affair") -(universal "span:ScatteredTemporalRegion" ) -(link is_a "span:ScatteredTemporalRegion" "span:TemporalRegion" ) -(comment "span:ScatteredTemporalRegion" "Definition: A temporal region every point of which is not mediately or immediately connected with every other point of which." ) -(comment "span:ScatteredTemporalRegion" "Examples: the time occupied by the individual games of the World Cup, the time occupied by the individual liaisons in a romantic affair" ) +(universal span__ScatteredTemporalRegion) +(link is_a span__ScatteredTemporalRegion span__TemporalRegion) +(disjoint_union span__ConnectedTemporalRegion) +(comment span__ScatteredTemporalRegion "Definition: A temporal region every point of which is not mediately or immediately connected with every other point of which.") +(comment span__ScatteredTemporalRegion "Examples: the time occupied by the individual games of the World Cup, the time occupied by the individual liaisons in a romantic affair") -(universal "span:SpatiotemporalInstant" ) -(link is_a "span:SpatiotemporalInstant" "span:ConnectedSpatiotemporalRegion" ) -(comment "span:SpatiotemporalInstant" "Definition: A connected space time region at a specific moment." ) -(comment "span:SpatiotemporalInstant" "Examples: the space time region occupied by a single instantaneous temporal slice (part) of a process" ) +(universal span__SpatiotemporalInstant) +(link is_a span__SpatiotemporalInstant span__ConnectedSpatiotemporalRegion) +(disjoint_union span__SpatiotemporalInterval) +(comment span__SpatiotemporalInstant "Definition: A connected space time region at a specific moment.") +(comment span__SpatiotemporalInstant "Examples: the space time region occupied by a single instantaneous temporal slice (part) of a process") -(universal "span:SpatiotemporalInterval" ) -(link is_a "span:SpatiotemporalInterval" "span:ConnectedSpatiotemporalRegion" ) -(comment "span:SpatiotemporalInterval" "Definition: A connected space time region that endures for more than a single moment of time." ) -(comment "span:SpatiotemporalInterval" "Examples: the space time region occupied by a process or by a fiat processual part" ) +(universal span__SpatiotemporalInterval) +(link is_a span__SpatiotemporalInterval span__ConnectedSpatiotemporalRegion) +(disjoint_union span__SpatiotemporalInstant) +(comment span__SpatiotemporalInterval "Definition: A connected space time region that endures for more than a single moment of time.") +(comment span__SpatiotemporalInterval "Examples: the space time region occupied by a process or by a fiat processual part") -(universal "span:SpatiotemporalRegion" ) -(link is_a "span:SpatiotemporalRegion" "span:Occurrent" ) -(disjoint_union "span:ConnectedSpatiotemporalRegion" "span:ScatteredSpatiotemporalRegion" ) -(comment "span:SpatiotemporalRegion" "Comment: This is the time and space within which occurrents exist. Occurrents exist in space and time in a different way from that in which continuants do and thus the space and time in which they exist is itself different. Spatiotemporal region\u2019s importance is primarily theoretical and it will not be used often in most domain ontology applications." ) -(comment "span:SpatiotemporalRegion" "Definition: An occurrent at or in which processual entities can be located." ) -(comment "span:SpatiotemporalRegion" "Examples: the spatiotemporal region occupied by a human life, the spatiotemporal region occupied by the development of a cancer tumor, the spatiotemporal context occupied by a process of cellular meiosis" ) +(universal span__SpatiotemporalRegion) +(link is_a span__SpatiotemporalRegion span__Occurrent) +(disjoint_union span__ProcessualEntity span__TemporalRegion) +(comment span__SpatiotemporalRegion "Comment: This is the time and space within which occurrents exist. Occurrents exist in space and time in a different way from that in which continuants do and thus the space and time in which they exist is itself different. Spatiotemporal region’s importance is primarily theoretical and it will not be used often in most domain ontology applications.") +(comment span__SpatiotemporalRegion "Definition: An occurrent at or in which processual entities can be located.") +(comment span__SpatiotemporalRegion "Examples: the spatiotemporal region occupied by a human life, the spatiotemporal region occupied by the development of a cancer tumor, the spatiotemporal context occupied by a process of cellular meiosis") -(universal "span:TemporalInstant" ) -(link is_a "span:TemporalInstant" "span:ConnectedTemporalRegion" ) -(comment "span:TemporalInstant" "Definition: A connected temporal region comprising a single moment of time." ) -(comment "span:TemporalInstant" "Examples: right now, the moment at which a finger is detached in an industrial accident, the moment at which a child is born, the moment of death" ) +(universal span__TemporalInstant) +(link is_a span__TemporalInstant span__ConnectedTemporalRegion) +(disjoint_union span__TemporalInterval) +(comment span__TemporalInstant "Definition: A connected temporal region comprising a single moment of time.") +(comment span__TemporalInstant "Examples: right now, the moment at which a finger is detached in an industrial accident, the moment at which a child is born, the moment of death") -(universal "span:TemporalInterval" ) -(link is_a "span:TemporalInterval" "span:ConnectedTemporalRegion" ) -(comment "span:TemporalInterval" "Definition: A connected temporal region lasting for more than a single moment of time." ) -(comment "span:TemporalInterval" "Examples: any continuous temporal duration during which a process occurs" ) +(universal span__TemporalInterval) +(link is_a span__TemporalInterval span__ConnectedTemporalRegion) +(disjoint_union span__TemporalInstant) +(comment span__TemporalInterval "Definition: A connected temporal region lasting for more than a single moment of time.") +(comment span__TemporalInterval "Examples: any continuous temporal duration during which a process occurs") -(universal "span:TemporalRegion" ) -(link is_a "span:TemporalRegion" "span:Occurrent" ) -(disjoint_union "span:ConnectedTemporalRegion" "span:ScatteredTemporalRegion" ) -(comment "span:TemporalRegion" "Comment: This is the time that is common to both SNAP and SPAN entities. The time of temporal region and its sub-classes will normally be the time that should be referred to when sub-classing universals having to do with time in an ontology." ) -(comment "span:TemporalRegion" "Definition: An occurrent that is part of time." ) -(comment "span:TemporalRegion" "Examples: the time it takes to run a marathon, the duration of a surgical procedure, the moment of death" ) +(universal span__TemporalRegion) +(link is_a span__TemporalRegion span__Occurrent) +(disjoint_union span__ProcessualEntity span__SpatiotemporalRegion) +(comment span__TemporalRegion "Comment: This is the time that is common to both SNAP and SPAN entities. The time of temporal region and its sub-classes will normally be the time that should be referred to when sub-classing universals having to do with time in an ontology.") +(comment span__TemporalRegion "Definition: An occurrent that is part of time.") +(comment span__TemporalRegion "Examples: the time it takes to run a marathon, the duration of a surgical procedure, the moment of death") Modified: obolog/trunk/obolog-test-data.lisp =================================================================== --- obolog/trunk/obolog-test-data.lisp 2007-05-11 19:08:52 UTC (rev 585) +++ obolog/trunk/obolog-test-data.lisp 2007-05-11 20:39:50 UTC (rev 586) @@ -1,5 +1,5 @@ ;; data -(link "OBO_REL:part_of" spliceosome nucleus) -(link "OBO_REL:part_of" nucleus cell) +(link OBO_REL__part_of spliceosome nucleus) +(link OBO_REL__part_of nucleus cell) (instance_of CN_0001 nucleus t1) Modified: obolog/trunk/obolog-theorem-prover.lisp =================================================================== --- obolog/trunk/obolog-theorem-prover.lisp 2007-05-11 19:08:52 UTC (rev 585) +++ obolog/trunk/obolog-theorem-prover.lisp 2007-05-11 20:39:50 UTC (rev 586) @@ -12,6 +12,7 @@ (initialize) ;;(use-temporal-reasoning t) (use-resolution t) + (declare-time-relations) ;; read (read-assertions-from-file "obolog.lisp") ;(read-assertions-from-file "ro.obolog") @@ -21,10 +22,14 @@ ;; these proofs only make sense with the test database above (print (prove (cdr (assoc proof '((part_of1 . (instance_of ?x cell ?t)) ;; all nuclei are part of some cell - (transitive . (link "OBO_REL:part_of" spliceosome cell)))))))) ;; N po C po S + (part_of_tr . (=> + (and (OBO_REL__part_of n1 c1 t1) + (OBO_REL__part_of c1 s1 t2)) + (part_of n1 s1 t1))) + (transitive . (link OBO_REL__part_of spliceosome cell)))))))) ;; N po C po S (defun test () - (obolog-proove 'part_of1)) + (obolog-prove 'part_of1)) Modified: obolog/trunk/obolog.lisp =================================================================== --- obolog/trunk/obolog.lisp 2007-05-11 19:08:52 UTC (rev 585) +++ obolog/trunk/obolog.lisp 2007-05-11 20:39:50 UTC (rev 586) @@ -11,7 +11,7 @@ ;; this is not necessary for processes? (=> (and (instance_of ?i ?X ?t) - (link is_a ?X ?Y)) ;; TODO - change to OBO_REL:is_a? + (is_a ?X ?Y)) ;; TODO - change to OBO_REL:is_a? (instance_of ?i ?Y ?t)) ;; (subrelation ?relation ?parent_relation) @@ -23,54 +23,86 @@ (subrelation ?x ?z)) ;; universal-level relations -;; we specify these as (link ?rel ?C1 ?C2) +;; we specify these as (holds ?rel ?C1 ?C2) ;; this is a bit ugly, but we don't want to write (?rel ?C1 ?C2) as we ;; take this to mean an instance-level relation. Since we use ;; the same identifiers for instance and universal level relations ;; we have to distinguish them at the relation instantiation level ;; (all_some_all_times ?relation) -;; EXAMPLE: (all_some_all_times part_of) (link part_of cell_nucleus cell) +;; EXAMPLE: (all_some_all_times part_of) (holds part_of cell_nucleus cell) ;; ;; most relations follow the OBO-RO all-some pattern ;; ie ALL instances of U1 stand in relation ?rel to SOME instance U2 at ALL times (=> (and (all_some_all_times ?rel) - (link ?rel ?U1 ?U2) + (holds ?rel ?U1 ?U2) (instance_of ?i1 ?U1 ?t)) (exists (?i2) (and (instance_of ?i2 ?U2 ?t) (?rel ?i1 ?i2 ?t)))) +;; ============================== ;; domain and range constraints +;; ============================== + +;; (domain ?rel ?class) (=> (and (domain ?rel ?D) - (?rel ?i1 ?i2)) - (instance_of ?i2 ?D)) + (?rel ?i1 ?i2 ?t)) + (instance_of ?i2 ?D ?t)) +;; (range ?rel ?class) (=> (and (range ?rel ?R) - (?rel ?i1 ?i2)) - (instance_of ?i1 ?D)) + (?rel ?i1 ?i2 ?t)) + (instance_of ?i1 ?D ?t)) +;; (domain_range ?rel ?domainClass ?rangeClass) +(=> (and (domain_range ?rel ?D ?R) + (?rel ?i1 ?i2 ?t) + (instance_of ?i1 ?D ?t)) + (instance_of ?i2 ?R ?t)) +(=> (and (domain_range ?rel ?D ?R) + (?rel ?i1 ?i2 ?t) + (instance_of ?i2 ?R ?t)) + (instance_of ?i1 ?D ?t)) -;; reflexivity -(forall (?x) - (=> (reflexive ?rel) - (?rel ?x ?x))) -;; reciprocal relations +;; ============================== +;; relation meta-properties +;; ============================== + +;; functional relations +(=> (and (functional ?rel) + (?rel ?x ?y1 ?t) + (?rel ?x ?y2 ?t)) + (equivalent ?y1 ?y2)) + +;; reflexivity [instance-level] +(=> (reflexive ?rel) + (instance_of ?x ?C ?t) + (?rel ?x ?x ?t)) + +;; irreflexivity [instance-level] +(=> (irreflexive ?rel) + (forall (?x ?t) + (not + (?rel ?x ?x ?t)))) + +;; reciprocal relations [instance-level] ;; remember, this is just at the instance-level ;; not( X part_of Y <=> Y has_part X) (=> (and (reciprocal ?rel ?inv) - (?rel ?x ?y)) - (?rel ?y ?x)) + (?rel ?x ?y ?t)) + (?rel ?y ?x ?t)) +;; (transitive ?rel) :: both instance and class level ;; transitivity at the universal level (=> (and (transitive ?rel) (all_some_all_times ?rel) - (link ?rel ?X ?Y) - (link ?rel ?Y ?Z)) - (link ?rel ?X ?Z)) + (holds ?rel ?X ?Y) + (holds ?rel ?Y ?Z)) + (holds ?rel ?X ?Z)) -;; transitivity at the instance level +;; transitivity at the instance level for time-indexed relations ;; temporally-subsumed-by/2 is defined in SNARK ;; (default-use-temporal-reasoning) - hmmm, not working in my v of snark (=> @@ -78,9 +110,35 @@ (?rel ?x ?y ?t1) (?rel ?y ?z ?t2) (temporally-subsumed-by ?ti ?t1) - (temporally-subsumed-by ?ti ?t2) - (?rel ?x ?z ?ti))) + (temporally-subsumed-by ?ti ?t2)) + (?rel ?x ?z ?ti)) +;; transitivity at the instance level for non-time-indexed relations +(=> + (and (transitive ?rel) + (?rel ?x ?y) + (?rel ?y ?z)) + (?rel ?x ?z)) + +;; symmetry + +;; anti-symmetry +(=> + (antisymmetric ?rel) + (=> (and (?rel ?i1 ?i2 ?t) + (?rel ?i2 ?i1 ?t)) + (identical ?i1 ?i2))) + +;; no cycles allowed +(=> + (cyclic ?rel) + (=> (and (holds ?rel ?X ?Y) + (holds ?rel ?Y ?X) + (not (equivalent ?X ?Y))))) +(=> + (acyclic ?rel) + (=> (not (cyclic ?rel)))) + ;; TODO ;; disjoint_union/N ;; genus_differentia/N @@ -93,22 +151,17 @@ ;; additional formulae that cannot be extracted from obo format -;; NOTE: We are double-quoting the IDs to prevent parse errors -;; this probably slows things down as lisp will not intern the -;; string (as happens with a symbol). In future we may have -;; some other way of doing this. quoting is ugly too.. - ;; OBO_REL:part_of ;; make this implicit in obo-format? ;; obof1.3 will have a way of stating this - for ;; now we add in this supplemental file -(all_some_all_times "OBO_REL:part_of") +(all_some_all_times OBO_REL__part_of) ;; part_of holds between 2 continuants OR 2 occurrents (=> (part_of ?x ?y ?t) - (or (and (instance_of ?x "bfo:Continuant" ?t) - (instance_of ?y "bfo:Continuant" ?t)) - (and (instance_of ?x "bfo:Occurrent" ?t) - (instance_of ?y "bfo:Occurrent" ?t)))) + (or (and (instance_of ?x bfo__Continuant ?t) + (instance_of ?y bfo__Continuant ?t)) + (and (instance_of ?x bfo__Occurrent ?t) + (instance_of ?y bfo__Occurrent ?t)))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 19:08:51
|
Revision: 585 http://svn.sourceforge.net/obo/?rev=585&view=rev Author: nlw Date: 2007-05-11 12:08:52 -0700 (Fri, 11 May 2007) Log Message: ----------- Help docs: removing the & from the TOC Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 18:57:55 UTC (rev 584) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 19:08:52 UTC (rev 585) @@ -297,22 +297,22 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The <dataadapter> Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=topwidth=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The <field> Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The <ontology> Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The <auto-update-ontologies> Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The <update-timer> Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The <term-history> Tag</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 18:57:56
|
Revision: 584 http://svn.sourceforge.net/obo/?rev=584&view=rev Author: nlw Date: 2007-05-11 11:57:55 -0700 (Fri, 11 May 2007) Log Message: ----------- Help Docs: removed redundant text Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm Modified: phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-11 18:51:40 UTC (rev 583) +++ phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-11 18:57:55 UTC (rev 584) @@ -53,18 +53,21 @@ <p> Once you have placed or modified your configuration file in the <FONT color=#ff0000>".phenote/conf</FONT> - " directory, you need to tell Phenote to use that particular file. Note that + -with Phenote v1.1 or later, the user can choose a different configuration from the "File" menu. When you -select "Load Configuration", you are prompted with a list of options. (In v1.2 and later, this option is under the "Settings" menu.) -Listed are several configuration styles that come standard with the Phenote software, with the current choice's radio-button selected. -If you have created your own custom configuration file with a ".cfg" extension, it should be listed here. -After selecting (the radio button) for a new configuration, press "OK", or press "Cancel" to revert to your previous selection. -Any changes to your configuration settings will take effect the next time Phenote is loaded. + + + + + + " directory, you need to tell Phenote to use that particular file. </p> -<p> -Then, you should be able to start phenote with the same webstart link as before, but it should load with this new configuration. you can also start it by double-clicking on the java icon that downloaded to your desktop called "phenote.jnlp". -</p> +<P>See <A href="Changing_your_Configuration.htm">Changing your Configuration</A> +for instructions.</P> +<P>If you have created your own custom configuration file with a ".cfg" +extension, it should be listed in the list. Any changes to your +configuration settings will take effect the next time Phenote is +loaded. </P> <h2>Location to put your personal obo files</h2> <p>To get a custom ontology that is local and not on SF, you'll have to copy it into "<FONT color=#ff0000>.phenote/obo-files/</FONT> ". Any reference to this ontology within your configuration file must match the filename. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 18:51:41
|
Revision: 583 http://svn.sourceforge.net/obo/?rev=583&view=rev Author: nlw Date: 2007-05-11 11:51:40 -0700 (Fri, 11 May 2007) Log Message: ----------- Help docs: fixing links Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 18:51:40 UTC (rev 583) @@ -127,6 +127,7 @@ <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> + <mapID target="The__update_timer__Tag" url="html/The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 18:51:40 UTC (rev 583) @@ -127,6 +127,7 @@ <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> + <mapID target="The__update_timer__Tag" url="html/The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 18:51:40 UTC (rev 583) @@ -55,7 +55,7 @@ <tocitem text="The <field> Tag" target="The__field__Tag"/> <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> - <tocitem text="The <update-timer> Tag"/> + <tocitem text="The <update-timer> Tag" target="The__update_timer__Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> </tocitem> <tocitem text="Appendix"> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 18:51:40 UTC (rev 583) @@ -57,8 +57,6 @@ <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> <tocitem text="The <update-timer> Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> - <tocitem text="Example Interfaces"/> - <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 18:51:40 UTC (rev 583) @@ -309,7 +309,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 18:51:40 UTC (rev 583) @@ -135,7 +135,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> Modified: phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm 2007-05-11 18:51:40 UTC (rev 583) @@ -9,8 +9,6 @@ <h1>The <auto-update-ontologies> <auto-update-ontologies> Tag</h1> <p>The <auto-update-ontologies> tag sets the default behavior for automatically updating ontologies when Phenote loads.</p> -<p>[Note: The term history feature is still under development, so it is -best to set this to false for now] </p> <h2>Parameters</h2> <h1> <table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> @@ -32,9 +30,8 @@ <td align="middle">no</td> <td>true</td></tr></table> <h2>Contents</h2></h1> -<p> </p> +<p>(none)</p> <h1><font color="#000000" size="3"></font> </h1> -<h2>Example</h2><PRE> <ns:auto-update-ontologies enable= -"true"/><br></PRE><pre></pre><pre></pre> +<h2>Example</h2><PRE><ns:auto-update-ontologies enable="true"/><br></PRE> </body> </html> Modified: phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm 2007-05-11 18:51:40 UTC (rev 583) @@ -47,7 +47,9 @@ <p>There are two types of fields: free-text or ontology. By default, a field is of the free-text type. To specify ontology type, see The <ontology> Tag page.</p> -<p> </p> +<P>The order in which the fields are specified will dictate the order in which +they display in the <EM>Data Entry</EM> section, as well as the order of the +columns in the <EM>Annotation Spreadsheet</EM>. </P> <h2>Example</h2> <p> <h3>Free Text Field</h3><pre><ns:field name="Field Name" syntax-abbrev="FA" enable="true"/></pre> Modified: phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm 2007-05-11 18:51:40 UTC (rev 583) @@ -33,12 +33,12 @@ <td align="middle">no</td> <td>false</td></tr></table> <h2>Contents</h2></h1> -<p>Each <ontology> element specifies one ontology to be used with the -autocompletion feature in a single <field> element. To include the -same ontology in a separate <field> element, it must be listed in -both. The order in which the <ontology> elements are listed within -the <field> is the order they are displayed in the drop-down chooser -box. </p> +<p> + + + + +(none) </p> <h1><font color="#000000" size="3"></font> </h1> <h2>Example</h2><pre><ns:term-history enable="false"/></pre> </body> Modified: phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm 2007-05-11 18:43:43 UTC (rev 582) +++ phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm 2007-05-11 18:51:40 UTC (rev 583) @@ -5,7 +5,7 @@ <title>The <update-timer> Tag</title> <link rel="stylesheet" type="text/css" href="../javahelp.css"> </head> -<body bgcolor="#ffffff"> +<BODY BGCOLOR=#ffffff> <h1>The <update-timer> <update-timer> Tag</h1> <p> The <update-timer> tag sets the default behavior for updating ontologies when Phenote loads. </p> @@ -55,5 +55,5 @@ <p>If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> <h2>Example</h2><pre><ns:update-timer timer="15"/></pre> -</body> -</html> \ No newline at end of file +</BODY> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 18:43:42
|
Revision: 582 http://svn.sourceforge.net/obo/?rev=582&view=rev Author: nlw Date: 2007-05-11 11:43:43 -0700 (Fri, 11 May 2007) Log Message: ----------- edits to configuration file help section Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm phenote/trunk/doc/phenote-website/help/html/What_is_a_Configuration_.htm phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm Added Paths: ----------- phenote/trunk/doc/phenote-website/help/images/ont_chooser.png Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 18:43:43 UTC (rev 582) @@ -112,6 +112,7 @@ <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> <mapID target="Sample_Configuration_1" url="html/Sample_Configuration_1.htm"/> + <mapID target="Sample_Configuration_2" url="html/Sample_Configuration_2.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -168,6 +169,7 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> + <mapID target="What_is_a_Configuration_" url="html/What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 18:43:43 UTC (rev 582) @@ -112,6 +112,7 @@ <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> <mapID target="Sample_Configuration_1" url="html/Sample_Configuration_1.htm"/> + <mapID target="Sample_Configuration_2" url="html/Sample_Configuration_2.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -168,6 +169,7 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> + <mapID target="What_is_a_Configuration_" url="html/What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 18:43:43 UTC (rev 582) @@ -46,7 +46,10 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> - <tocitem text="What is a Configuration?"/> + <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> + <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> + <tocitem text="Sample Configuration 1" target="Sample_Configuration_1"/> + <tocitem text="Sample Configuration 2" target="Sample_Configuration_2"/> <tocitem text="XML skeleton" target="XML_skeleton"/> <tocitem text="The <dataadapter> Tag" target="The__dataadapter__Tag116"/> <tocitem text="The <field> Tag" target="The__field__Tag"/> @@ -54,11 +57,6 @@ <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> <tocitem text="The <update-timer> Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> - <tocitem text="Sample Configuration 1" target="Sample_Configuration_1"/> - <tocitem text="Sample Configuration 2"/> - <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> - <tocitem text="Example Interfaces"/> - <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 18:43:43 UTC (rev 582) @@ -46,7 +46,10 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> - <tocitem text="What is a Configuration?"/> + <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> + <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> + <tocitem text="Sample Configuration 1" target="Sample_Configuration_1"/> + <tocitem text="Sample Configuration 2" target="Sample_Configuration_2"/> <tocitem text="XML skeleton" target="XML_skeleton"/> <tocitem text="The <dataadapter> Tag" target="The__dataadapter__Tag116"/> <tocitem text="The <field> Tag" target="The__field__Tag"/> @@ -54,9 +57,6 @@ <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> <tocitem text="The <update-timer> Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> - <tocitem text="Sample Configuration 1"/> - <tocitem text="Sample Configuration 2"/> - <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Example Interfaces"/> <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 18:43:43 UTC (rev 582) @@ -73,8 +73,6 @@ ctable(wdt164); ctable(wdt165); ctable(wdt166); -ctable(wdt167); -ctable(wdt168); } @@ -284,131 +282,125 @@ <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing Phenote</font> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt128> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/What_is_a_Configuration_.htm" target=bodyframe>What is a Configuration?</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> -</td></tr></table> -</td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt167> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt168> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 18:43:43 UTC (rev 582) @@ -108,131 +108,125 @@ <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing Phenote</font> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt128> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/What_is_a_Configuration_.htm" target=bodyframe>What is a Configuration?</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> -</td></tr></table> -</td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt167> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt168> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> Modified: phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-11 13:06:21 UTC (rev 581) +++ phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-11 18:43:43 UTC (rev 582) @@ -7,45 +7,56 @@ </head> <body bgcolor="#ffffff"> <h1>How To Edit a Configuration File</h1> -<p> </p><!--#include virtual="/ssi/header.html" --> +<DIV id=page_body> +<H2> +<H2>Getting Started</H2></H2></DIV> +<P>You can see sample configuration files and their corresponding +Phenote screenshots in <A href="Sample_Configuration_1.htm">Sample Configuration +1</A> and <A href="Sample_Configuration_2.htm">Sample Configuration 2</A> +. The easiest way to get comfortable with editing your own +configuration file is to simply edit an existing configuration. You can +copy the text from the sample configurations in this help file, or you can copy +an existing configuration file that is distributed with Phenote. <STRONG><FONT +color=#ff0000>As a precaution, be sure to save your edited configuration +file with a new filename to prevent any accidental overwriting by our +server when you upgrade to a new Phenote version.</FONT> </STRONG><!--#include virtual="/ssi/footer.shtml" --></P> +<DIV> +<H2>The basics</H2> -<div id="page_body"><!--#include virtual="/ssi/navi_howtos.html" --> - -<div id="main_content"> - - -<h1><a name="config">How-To: Customize Phenote</a></h1> - -<h2>Background</h2> -<p>Phenote can be customized to your specifications, including the input fields you desire, the ontologies from which those fields are populated with, and the output format used. Currently (in version 1.1), this configuration must be done by hand-editing a text file (see notes below). We are developing a built-in GUI that will achieve the same result without having to fiddle with the text file. This page explains the location and process of editing the configuration file used when Phenote loads. -</p> - -<h2>The basics</h2> - -<p>Make sure you've already tried running the webstart edition of phenote. Running this once should leave a directory on your computer called ".phenote". +<p>Make sure you've already tried running the webstart +edition of phenote (you can also run phenote from the command line). Running +this once should leave a directory on your computer called ".phenote". +<DIV> + <ul> - <li>On a Mac, you will find this located under the - MacintoshHD:Users:YourAccount directory, although you probably will not see it + <li>On a Mac, you will find this located under the <FONT + color=#ff0000>MacintoshHD:Users:YourAccount</FONT> + directory, although you probably will not see it in a "finder" window. You do have access to it if you run a "terminal" window. It will be located in your user directory. - <li>On a PC, this is located in the C:/Documents and Settings/YourAccount/ + <li>On a PC, this is located in the <FONT + color=#ff0000>C:/Documents and Settings/YourAccount/</FONT> </li> - </ul> + </ul></DIV> <p></p> <h2>Location of your configuration file</h2> -<p> The configuration files used by Phenote are located in the ".phenote/conf" directory. +<p> The configuration files used by Phenote are located in +the <FONT color=#ff0000>".phenote/conf</FONT> " directory. </p> <p> -Within this directory you can store any number of configuration files. The default files that come with the webstart versions are named "flybase.cfg", "zfin-standalone.cfg", or "human.cfg", depending on which version you've used in the past. Any file you create/modify should be placed in this directory. +Within +this directory you can store any number of configuration files. The default files that come with the webstart versions are named "flybase.cfg", "zfin-standalone.cfg", or "human.cfg", etc., depending on which version you've used in the past. Any file you create/modify should be placed in this directory. </p> <h2>How to change your Phenote configuration</h2> <p> -Once you have placed or modified your configuration file in the ".phenote/conf" directory, you need to tell Phenote to use that particular file. +Once you have placed or modified your configuration file +in the <FONT color=#ff0000>".phenote/conf</FONT> + " directory, you need to tell Phenote to use that particular file. Note that -Note that with Phenote v1.1 or later, the user can choose a different configuration from the "File" menu. -When you select "Load Configuration", you are prompted with a list of options. (In v1.2beta, this option is under the "Settings" menu.) +with Phenote v1.1 or later, the user can choose a different configuration from the "File" menu. When you +select "Load Configuration", you are prompted with a list of options. (In v1.2 and later, this option is under the "Settings" menu.) Listed are several configuration styles that come standard with the Phenote software, with the current choice's radio-button selected. If you have created your own custom configuration file with a ".cfg" extension, it should be listed here. After selecting (the radio button) for a new configuration, press "OK", or press "Cancel" to revert to your previous selection. @@ -55,81 +66,9 @@ Then, you should be able to start phenote with the same webstart link as before, but it should load with this new configuration. you can also start it by double-clicking on the java icon that downloaded to your desktop called "phenote.jnlp". </p> <h2>Location to put your personal obo files</h2> -<p>To get a custom ontology that is local and not on SF, you'll have to copy it into ".phenote/obo-files/". Any reference to this ontology within your configuration file must match the filename. -</p> -<h2>Making edits to a config file</h2> -<p>You can see sample configuration files in the -section entitled Sample Configuration Files. Descriptive images on this page are taken from this demo.cfg configuration file.</p> -<p>As a precaution, if you edit your own configuration file, be sure to save it as a new filename to prevent any accidental overwriting by our server if you upgrate to a new version. +<p>To get a custom ontology that is local and not on SF, +you'll have to copy it into "<FONT color=#ff0000>.phenote/obo-files/</FONT> ". Any reference to this ontology within your configuration file must match the filename. +</p></DIV> -<h3>Data Adapters</h3> -<p> -The first customizable items in the configuration file are the Data Adapters (see Figure 1). Any developer can write their own data adapter and plug it into the configuration for use during file loading and saving, or for database retrieval. If you are interested in writing your own data adapter, please read the <A href="/developer-docs/dataadapter.html"> Data Adapter developer documentation</a>. <p> -<p> -You can add your customized data adapter at the top of the file. Additionally you can specify if it is "enabled". Enabling a data adapter makes it available during load/save functions. In the case of the example in Figure 1, the PhenoXML and NEXUS data adapters are disabled, while the phenosyntax and delimited adapters are enabled. </p> -<p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> - -<h3>Uvic-graph, term-history</h3> -<p>These items are currently under development. By default, these are disabled for the user.</p> - -<h2>Fields, types</h2> -Each input field is given a designation in the xml file. -<h3>Field types: free-text, ontology</h3> -<p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> - -<h3>Field name</h3> -<p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> - -<h3>Enabling</h3> -<p>Similar to other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> - -<h2>Ontology fields</h2> -For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field. If >1 ontology is specified, they will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes these ontologies specified for each field. -<h3>Ontology name</h3> -<p>For each ontology, specify the name to display in the drop-down box.</p> -<h3>Ontology file</h3> -<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using an ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> -<h3>Repository location</h3> -<p>For automated checking of updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> -<h3>Updating ontologies from external sources</h3> -<p>Ontology files used in fields (see below) can be acquired and updated from external sources. Currently, this is usually configured to retrieve from the obo-foundry at obo.sourceforge.net. Soon, you will be able to retrieve your file from any external site that has a valid URL.</p> -<p>There are three parts to the update: (1) specifying the repository base URL, (2) whether you want your files to be updated at the start of each Phenote session, and (3) how long you would like the prompter to wait before proceeding with the program loading.</p> - -<p><b>obo-repos</b>-As marked in Figure 2, to specify the repository url include the following line. <br > <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <br ></p> -<p>This will only update those ontology fields in... [truncated message content] |
From: <mg...@us...> - 2007-05-11 13:06:19
|
Revision: 581 http://svn.sourceforge.net/obo/?rev=581&view=rev Author: mgibson Date: 2007-05-11 06:06:21 -0700 (Fri, 11 May 2007) Log Message: ----------- should db id be explicit or an unseen charfieldval? Modified Paths: -------------- phenote/trunk/src/java/phenote/datamodel/CharacterI.java Modified: phenote/trunk/src/java/phenote/datamodel/CharacterI.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterI.java 2007-05-11 13:05:25 UTC (rev 580) +++ phenote/trunk/src/java/phenote/datamodel/CharacterI.java 2007-05-11 13:06:21 UTC (rev 581) @@ -32,6 +32,9 @@ public boolean equals(CharacterI c); public boolean hasNoContent(); + // public void setDBString(String? Object?)?? + // public String getDBString() + /** these methods are pase and need to be phased out! */ public String getPub(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-11 13:05:24
|
Revision: 580 http://svn.sourceforge.net/obo/?rev=580&view=rev Author: mgibson Date: 2007-05-11 06:05:25 -0700 (Fri, 11 May 2007) Log Message: ----------- comments Modified Paths: -------------- phenote/trunk/src/java/phenote/edit/TransactionI.java Modified: phenote/trunk/src/java/phenote/edit/TransactionI.java =================================================================== --- phenote/trunk/src/java/phenote/edit/TransactionI.java 2007-05-11 00:54:37 UTC (rev 579) +++ phenote/trunk/src/java/phenote/edit/TransactionI.java 2007-05-11 13:05:25 UTC (rev 580) @@ -16,7 +16,10 @@ //public String getNewValueString(); public boolean isUpdate(); - + + // public boolean isDelete(); + // public String getDBIDString + ///** this is actually update sepcific - but thats ok i think */ //public CharFieldEnum getCharFieldEnum(); public boolean isUpdateForCharField(CharField cf); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 00:54:36
|
Revision: 579 http://svn.sourceforge.net/obo/?rev=579&view=rev Author: nlw Date: 2007-05-10 17:54:37 -0700 (Thu, 10 May 2007) Log Message: ----------- fixing a couple of links in help Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/Phenote.prj phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 00:54:37 UTC (rev 579) @@ -111,8 +111,7 @@ <mapID target="Reusing_Filters" url="html/Reusing_Filters.htm"/> <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> - <mapID target="Sample_Configuration_1" url="Sample_Configuration_1.htm"/> - <mapID target="Sample_Configuration_2" url="Sample_Configuration_2.htm"/> + <mapID target="Sample_Configuration_1" url="html/Sample_Configuration_1.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -127,7 +126,6 @@ <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> - <mapID target="The__update_timer__Tag" url="The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 00:54:37 UTC (rev 579) @@ -111,8 +111,7 @@ <mapID target="Reusing_Filters" url="html/Reusing_Filters.htm"/> <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> - <mapID target="Sample_Configuration_2" url="Sample_Configuration_2.htm"/> - <mapID target="Sample_Configuration_Files" url="Sample_Configuration_Files.htm"/> + <mapID target="Sample_Configuration_1" url="html/Sample_Configuration_1.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -127,7 +126,6 @@ <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> - <mapID target="The__update_timer__Tag" url="The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/Phenote.prj =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.prj 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/Phenote.prj 2007-05-11 00:54:37 UTC (rev 579) @@ -3,7 +3,7 @@ images=images ccs=htmlhelp.css i=phenote.hhk -last_path=C:\Documents and Settings\Nicole\Desktop\phenote-help-docs +last_path=C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\html prefix list=IDH_, preview=1 css=C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\javahelp.css Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 00:54:37 UTC (rev 579) @@ -54,7 +54,7 @@ <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> <tocitem text="The <update-timer> Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> - <tocitem text="Sample Configuration 1"/> + <tocitem text="Sample Configuration 1" target="Sample_Configuration_1"/> <tocitem text="Sample Configuration 2"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Example Interfaces"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 00:54:37 UTC (rev 579) @@ -54,8 +54,9 @@ <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> <tocitem text="The <update-timer> Tag"/> <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> + <tocitem text="Sample Configuration 1"/> + <tocitem text="Sample Configuration 2"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> - <tocitem text="Sample Configuration 1" target="Sample_Configuration_Files"/> <tocitem text="Example Interfaces"/> <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 00:54:37 UTC (rev 579) @@ -302,7 +302,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 00:54:37 UTC (rev 579) @@ -126,7 +126,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;update-timer&gt; Tag</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> Modified: phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm 2007-05-11 00:54:37 UTC (rev 579) @@ -1,12 +1,12 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>Sample Configuration 1</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> -</HEAD> -<BODY BGCOLOR=#ffffff> -<H1>Sample Configuration 1</H1> -<H2>The configuration file: sample.cfg</H2><PRE><?xml version="1.0" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.3-beta1" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/><BR> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/></PRE><PRE><BR> <ns:uvic-graph enable="false"/><BR> <ns:term-history enable="false"/> <BR> <ns:auto-update-ontologies enable="false"/> <!--true=update; false=don't update--> <BR> <ns:update-timer timer="15"/><!--set to 0 if you want to bypass the check; time in seconds--></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/> <BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/><BR> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"> <BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> <BR> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> <BR> </ns:field><BR> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"> <BR> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> <BR> </ns:field><BR> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/></PRE><PRE></ns:phenote-configuration></PRE><PRE><H2><FONT face=Arial>The Phenote window</FONT></H2><P>The resulting Phenote window looks like this:</P><P><IMG hspace=0 src="images/sample-config.png" width="100%" border=0></P></PRE> -</BODY> -</HTML> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>Sample Configuration 1</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>Sample Configuration 1</h1> +<h2>The configuration file: sample.cfg</h2><pre><?xml version="1.0" encoding="UTF-8"?><br><ns:phenote-configuration version="1.3-beta1" xmlns:ns="phenote/config/xml"><br> <ns:log config-file="conf/log4j-standalone.xml"/><br> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/></pre><pre><br> <ns:uvic-graph enable="false"/><br> <ns:term-history enable="false"/> <br> <ns:auto-update-ontologies enable="false"/> <<br> <ns:update-timer timer="15"/>< <br> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/> <br> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/><br> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"> <br> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <br> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> <br> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> <br> </ns:field><br> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"> <br> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> <br> </ns:field><br> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/></pre><pre></ns:phenote-configuration></pre><pre><h2><font face="Arial">The Phenote window</font></h2><p>The resulting Phenote window looks like this:</p><p><IMG hspace=0 src="../images/sample-config.png" width="100%" border=0></p></pre> +</body> +</html> Modified: phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm 2007-05-11 00:49:10 UTC (rev 578) +++ phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm 2007-05-11 00:54:37 UTC (rev 579) @@ -1,14 +1,15 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>Sample Configuration 2</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> -</HEAD> -<BODY BGCOLOR=#ffffff> -<H1>Sample Configuration 2</H1> -<H2>The configuration file: ncbo.cfg</H2><PRE><?xml version="1.3.1" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/></PRE><PRE> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <BR> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/><BR> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/><BR> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/></PRE><PRE> <ns:uvic-graph enable="false"/><BR> <ns:term-history enable="false"/><BR> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><BR> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><BR> <BR> <ns:obo-repository url-dir="<A href='http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/' ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</A>><BR> <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/><BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/><BR> <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><BR> <ns:ontology name="Genetic Context" file="context.obo"/><BR> </ns:field><BR> <ns:field name="Entity" syntax-abbrev="E" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><BR> <ns:ontology name="FMA" file="fma_obo.obo"/><BR> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><BR> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><BR> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><BR> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><BR> </ns:field><BR> <ns:field name="Quality" syntax-abbrev="Q" enable="true"><BR> <ns:ontology name="PATO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo" /><BR> <ns:ontology name="MP" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/mammalian_phenotype.obo" /><BR> </ns:field><BR> <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><BR> <ns:ontology name="FMA" file="fma_obo.obo"/><BR> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><BR> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><BR> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><BR> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><BR> </ns:field><BR> <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"><BR> <ns:ontology name="Abnormal" file="quality.obo" slim="abnormal_slim"/><BR> </ns:field><BR> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/><BR></ns:phenote-configuration></PRE> -<H2>The Phenote window</H2> -<P>The resulting Phenote window looks like this:</P><PRE><IMG hspace=0 src="images/ncbo-config.png" width="100%" border=0></PRE> -</BODY> -</HTML> \ No newline at end of file +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>Sample Configuration 2</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>Sample Configuration 2</h1> +<h2>The configuration file: ncbo.cfg</h2><pre><?xml version="1.3.1" encoding="UTF-8"?><br><ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"><br> <ns:log config-file="conf/log4j-standalone.xml"/></pre><pre> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <br> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/><br> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/><br> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/></pre><pre> <ns:uvic-graph enable="false"/><br> <ns:term-history enable="false"/><br> <ns:auto-update-ontologies enable="true"/> <<br> <ns:update-timer timer="0"/><><br> <br> <ns:obo-repository url-dir="<A href="'http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/" ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</a>><br> <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/><br> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/><br> <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><br> <ns:ontology name="Genetic Context" file="context.obo"/><br> </ns:field><br> <ns:field name="Entity" syntax-abbrev="E" enable="true"><br> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><br> <ns:ontology name="FMA" file="fma_obo.obo"/><br> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><br> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><br> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><br> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><br> </ns:field><br> <ns:field name="Quality" syntax-abbrev="Q" enable="true"><br> <ns:ontology name="PATO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo" /><br> <ns:ontology name="MP" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/mammalian_phenotype.obo" /><br> </ns:field><br> <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"><br> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><br> <ns:ontology name="FMA" file="fma_obo.obo"/><br> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><br> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><br> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><br> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><br> </ns:field><br> <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"><br> <ns:ontology name="Abnormal" file="quality.obo" slim="abnormal_slim"/><br> </ns:field><br> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/><br></ns:phenote-configuration></pre> +<h2>The Phenote window</h2> +<p>The resulting Phenote window looks like this:</p>< + ><IMG hspace=0 src="../images/ncbo-config.png" width ="100%" border=0 > <pre></pre> +</body> +</html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 00:49:10
|
Revision: 578 http://svn.sourceforge.net/obo/?rev=578&view=rev Author: nlw Date: 2007-05-10 17:49:10 -0700 (Thu, 10 May 2007) Log Message: ----------- i don't know where this went, but it seemed to go away. readding this file for help Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm Modified: phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm 2007-05-11 00:41:56 UTC (rev 577) +++ phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm 2007-05-11 00:49:10 UTC (rev 578) @@ -2,11 +2,11 @@ <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>Sample Configuration Files</TITLE> +<TITLE>Sample Configuration 1</TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> </HEAD> <BODY BGCOLOR=#ffffff> <H1>Sample Configuration 1</H1> <H2>The configuration file: sample.cfg</H2><PRE><?xml version="1.0" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.3-beta1" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/><BR> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/></PRE><PRE><BR> <ns:uvic-graph enable="false"/><BR> <ns:term-history enable="false"/> <BR> <ns:auto-update-ontologies enable="false"/> <!--true=update; false=don't update--> <BR> <ns:update-timer timer="15"/><!--set to 0 if you want to bypass the check; time in seconds--></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/> <BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/><BR> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"> <BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> <BR> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> <BR> </ns:field><BR> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"> <BR> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> <BR> </ns:field><BR> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/></PRE><PRE></ns:phenote-configuration></PRE><PRE><H2><FONT face=Arial>The Phenote window</FONT></H2><P>The resulting Phenote window looks like this:</P><P><IMG hspace=0 src="images/sample-config.png" width="100%" border=0></P></PRE> </BODY> -</HTML> \ No newline at end of file +</HTML> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-11 00:41:55
|
Revision: 577 http://svn.sourceforge.net/obo/?rev=577&view=rev Author: nlw Date: 2007-05-10 17:41:56 -0700 (Thu, 10 May 2007) Log Message: ----------- added rest of documentation on xml tags for configurations. Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm Added Paths: ----------- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm phenote/trunk/doc/phenote-website/help/images/ncbo-config.png phenote/trunk/doc/phenote-website/help/images/sample-config.png Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-11 00:41:56 UTC (rev 577) @@ -111,6 +111,8 @@ <mapID target="Reusing_Filters" url="html/Reusing_Filters.htm"/> <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> + <mapID target="Sample_Configuration_1" url="Sample_Configuration_1.htm"/> + <mapID target="Sample_Configuration_2" url="Sample_Configuration_2.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -121,7 +123,11 @@ <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> <mapID target="The__field__Tag" url="html/The__field__Tag.htm"/> + <mapID target="The__dataadapter__Tag116" url="html/The__dataadapter__Tag.htm"/> + <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> + <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> + <mapID target="The__update_timer__Tag" url="The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-11 00:41:56 UTC (rev 577) @@ -111,6 +111,8 @@ <mapID target="Reusing_Filters" url="html/Reusing_Filters.htm"/> <mapID target="Running_Phenote_for_the_First_Time" url="html/Running_Phenote_for_the_First_Time.htm"/> <mapID target="Sample_Annotations" url="html/Sample_Annotations.htm"/> + <mapID target="Sample_Configuration_2" url="Sample_Configuration_2.htm"/> + <mapID target="Sample_Configuration_Files" url="Sample_Configuration_Files.htm"/> <mapID target="Saving_a_History_File" url="html/Saving_a_History_File.htm"/> <mapID target="Searching" url="html/Searching.htm"/> <mapID target="Setting_the_Filter_Mode" url="html/Setting_the_Filter_Mode.htm"/> @@ -121,7 +123,11 @@ <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> <mapID target="The__field__Tag" url="html/The__field__Tag.htm"/> + <mapID target="The__dataadapter__Tag116" url="html/The__dataadapter__Tag.htm"/> + <mapID target="The__term_history__Tag118" url="html/The__term_history__Tag.htm"/> + <mapID target="The__auto_update_ontologies__Tag115" url="html/The__auto_update_ontologies__Tag.htm"/> <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> + <mapID target="The__update_timer__Tag" url="The__update_timer__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-11 00:41:56 UTC (rev 577) @@ -48,10 +48,16 @@ <tocitem text="Customizing Phenote"> <tocitem text="What is a Configuration?"/> <tocitem text="XML skeleton" target="XML_skeleton"/> - <tocitem text="Example Interfaces"/> + <tocitem text="The <dataadapter> Tag" target="The__dataadapter__Tag116"/> <tocitem text="The <field> Tag" target="The__field__Tag"/> <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> + <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> + <tocitem text="The <update-timer> Tag"/> + <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> + <tocitem text="Sample Configuration 1"/> + <tocitem text="Sample Configuration 2"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> + <tocitem text="Example Interfaces"/> <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> <tocitem text="Appendix"> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-11 00:41:56 UTC (rev 577) @@ -47,8 +47,16 @@ </tocitem> <tocitem text="Customizing Phenote"> <tocitem text="What is a Configuration?"/> + <tocitem text="XML skeleton" target="XML_skeleton"/> + <tocitem text="The <dataadapter> Tag" target="The__dataadapter__Tag116"/> + <tocitem text="The <field> Tag" target="The__field__Tag"/> + <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> + <tocitem text="The <auto-update-ontologies> Tag" target="The__auto_update_ontologies__Tag115"/> + <tocitem text="The <update-timer> Tag"/> + <tocitem text="The <term-history> Tag" target="The__term_history__Tag118"/> + <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> + <tocitem text="Sample Configuration 1" target="Sample_Configuration_Files"/> <tocitem text="Example Interfaces"/> - <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> </tocitem> <tocitem text="Appendix"> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-11 00:41:56 UTC (rev 577) @@ -69,6 +69,12 @@ ctable(wdt160); ctable(wdt161); ctable(wdt162); +ctable(wdt163); +ctable(wdt164); +ctable(wdt165); +ctable(wdt166); +ctable(wdt167); +ctable(wdt168); } @@ -284,7 +290,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> @@ -293,98 +299,116 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt167> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt168> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-11 00:41:56 UTC (rev 577) @@ -114,7 +114,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__dataadapter__Tag.htm" target=bodyframe>The &lt;dataadapter&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> @@ -123,98 +123,116 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__auto_update_ontologies__Tag.htm" target=bodyframe>The &lt;auto-update-ontologies&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__update_timer__Tag.htm" target=bodyframe>The &lt;update-timer&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__term_history__Tag.htm" target=bodyframe>The &lt;term-history&gt; Tag</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_1.htm" target=bodyframe>Sample Configuration 1</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Sample_Configuration_2.htm" target=bodyframe>Sample Configuration 2</font></a> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt163> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt164> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt165> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt166> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt167> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt168> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> Modified: phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -18,8 +18,7 @@ <h2>Background</h2> <p>Phenote can be customized to your specifications, including the input fields you desire, the ontologies from which those fields are populated with, and the output format used. Currently (in version 1.1), this configuration must be done by hand-editing a text file (see notes below). We are developing a built-in GUI that will achieve the same result without having to fiddle with the text file. This page explains the location and process of editing the configuration file used when Phenote loads. -</p> -<p>This site is being updated with new content on a fairly regular basis. Please check back often for new information. In the mean time, if you have questions, you can <A href="/content/about/"> contact us </A> with questions.</p> +</p> <h2>The basics</h2> @@ -32,7 +31,7 @@ <li>On a PC, this is located in the C:/Documents and Settings/YourAccount/ </li> </ul> -<P></P> +<p></p> <h2>Location of your configuration file</h2> <p> The configuration files used by Phenote are located in the ".phenote/conf" directory. @@ -59,13 +58,13 @@ <p>To get a custom ontology that is local and not on SF, you'll have to copy it into ".phenote/obo-files/". Any reference to this ontology within your configuration file must match the filename. </p> <h2>Making edits to a config file</h2> -<p>You can download a sample configuration file <A href="/demo.cfg">here</A>. Descriptive images on this page are taken from this demo.cfg configuration file.</p> +<p>You can see sample configuration files in the +section entitled Sample Configuration Files. Descriptive images on this page are taken from this demo.cfg configuration file.</p> <p>As a precaution, if you edit your own configuration file, be sure to save it as a new filename to prevent any accidental overwriting by our server if you upgrate to a new version. <h3>Data Adapters</h3> -<IMG src="/images/config-data-adapter.png" align=right caption="Figure 1"> <p> -The first customizable items in the configuration file are the Data Adapters (see Figure 1). Any developer can write their own data adapter and plug it into the configuration for use during file loading and saving, or for database retrieval. If you are interested in writing your own data adapter, please read the <A href="/developer-docs/dataadapter.html"> Data Adapter developer documentation</A>. <p> +The first customizable items in the configuration file are the Data Adapters (see Figure 1). Any developer can write their own data adapter and plug it into the configuration for use during file loading and saving, or for database retrieval. If you are interested in writing your own data adapter, please read the <A href="/developer-docs/dataadapter.html"> Data Adapter developer documentation</a>. <p> <p> You can add your customized data adapter at the top of the file. Additionally you can specify if it is "enabled". Enabling a data adapter makes it available during load/save functions. In the case of the example in Figure 1, the PhenoXML and NEXUS data adapters are disabled, while the phenosyntax and delimited adapters are enabled. </p> <p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> @@ -74,7 +73,6 @@ <p>These items are currently under development. By default, these are disabled for the user.</p> <h2>Fields, types</h2> -<IMG src="/images/config-field3.png" width="100%" align=right caption="Figure 2"> Each input field is given a designation in the xml file. <h3>Field types: free-text, ontology</h3> <p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> @@ -103,17 +101,17 @@ <ns:auto-update-ontologies enable="true"/><br > <ns:update-timer timer="10"/><br > </p> <p>The following table describes how these two options work together: -<table border=1 width=500> +<table border="1" width="500"> <tr> - <th colspan=2 rowspan=2 width=100></th> - <th colspan=2>Auto Update Ontologies</th> + <th colspan="2" rowspan="2" width="100"></th> + <th colspan="2">Auto Update Ontologies</th> </tr> <tr> <th>True</th> <th>False</th> </tr> <tr> - <th rowspan=2>Timer (sec)</th> + <th rowspan="2">Timer (sec)</th> <th><i>t</i> = 0 </th> <td>Will auto update without prompting. <b>(Default</b>)</td> <td>Will never update and will not notify you if there are updates.</td> Added: phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_1.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -0,0 +1,12 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> +<TITLE>Sample Configuration Files</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +</HEAD> +<BODY BGCOLOR=#ffffff> +<H1>Sample Configuration 1</H1> +<H2>The configuration file: sample.cfg</H2><PRE><?xml version="1.0" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.3-beta1" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/><BR> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/></PRE><PRE><BR> <ns:uvic-graph enable="false"/><BR> <ns:term-history enable="false"/> <BR> <ns:auto-update-ontologies enable="false"/> <!--true=update; false=don't update--> <BR> <ns:update-timer timer="15"/><!--set to 0 if you want to bypass the check; time in seconds--></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/> <BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/><BR> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"> <BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/> <BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> <BR> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/> <BR> </ns:field><BR> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"> <BR> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/> <BR> </ns:field><BR> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/></PRE><PRE></ns:phenote-configuration></PRE><PRE><H2><FONT face=Arial>The Phenote window</FONT></H2><P>The resulting Phenote window looks like this:</P><P><IMG hspace=0 src="images/sample-config.png" width="100%" border=0></P></PRE> +</BODY> +</HTML> \ No newline at end of file Added: phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/Sample_Configuration_2.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -0,0 +1,14 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> +<TITLE>Sample Configuration 2</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +</HEAD> +<BODY BGCOLOR=#ffffff> +<H1>Sample Configuration 2</H1> +<H2>The configuration file: ncbo.cfg</H2><PRE><?xml version="1.3.1" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/></PRE><PRE> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <BR> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/><BR> <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/><BR> <ns:dataadapter name="phenote.dataadapter.nexus.NEXUSAdapter" enable="false"/></PRE><PRE> <ns:uvic-graph enable="false"/><BR> <ns:term-history enable="false"/><BR> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><BR> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><BR> <BR> <ns:obo-repository url-dir="<A href='http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/' ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</A>><BR> <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/><BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/><BR> <ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><BR> <ns:ontology name="Genetic Context" file="context.obo"/><BR> </ns:field><BR> <ns:field name="Entity" syntax-abbrev="E" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><BR> <ns:ontology name="FMA" file="fma_obo.obo"/><BR> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><BR> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><BR> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><BR> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><BR> </ns:field><BR> <ns:field name="Quality" syntax-abbrev="Q" enable="true"><BR> <ns:ontology name="PATO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/quality.obo" /><BR> <ns:ontology name="MP" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/mammalian_phenotype.obo" /><BR> </ns:field><BR> <ns:field name="Add'l Entity" syntax-abbrev="E2" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true"/><BR> <ns:ontology name="FMA" file="fma_obo.obo"/><BR> <ns:ontology name="EHDAA" file="human-dev-anat-abstract.obo"/><BR> <ns:ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo" /><BR> <ns:ontology name="CHEBI" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/chemical/chebi.obo" /><BR> <ns:ontology name="CL" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/anatomy/cell_type/cell.obo" /><BR> </ns:field><BR> <ns:field name="Abnormal" syntax-abbrev="Tag" enable="true"><BR> <ns:ontology name="Abnormal" file="quality.obo" slim="abnormal_slim"/><BR> </ns:field><BR> <ns:field name="Description" syntax-abbrev="Desc" enable="true"/><BR></ns:phenote-configuration></PRE> +<H2>The Phenote window</H2> +<P>The resulting Phenote window looks like this:</P><PRE><IMG hspace=0 src="images/ncbo-config.png" width="100%" border=0></PRE> +</BODY> +</HTML> \ No newline at end of file Modified: phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -34,7 +34,7 @@ <h2>Contents</h2></h1> <p> </p> <h1><font color="#000000" size="3"></font> </h1> -<h2>Example</h2> <PRE><ns:auto-update-ontologies enable= -"true"/><br><pre></pre><pre></pre> +<h2>Example</h2><PRE> <ns:auto-update-ontologies enable= +"true"/><br></PRE><pre></pre><pre></pre> </body> </html> Modified: phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm 2007-05-10 23:14:15 UTC (rev 576) +++ phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> <h1>The <dataadapter> <dataadapter> Tag</h1> <p>The <dataadapter> tag allows the user to specify a read and/or write -adapter. These data adapters are for loading/saving of annotation data +adapter(s). These data adapters are for loading/saving of annotation data only, not for ontologies. At least one data adapter should be specified per configuration, with up to as many as desired.</p> <h2>Parameters</h2> @@ -51,6 +51,10 @@ adapters, be sure to repeat the full line for each adapter. Data adapters can be removed from a Phenote session by disabling the element, or by deleting from the configuration itself. </p> +<P>Developers can easily write their own data adapter and plug it into the +configuration for use during file loading and saving, or for database retrieval. +If you are interested in writing your own data adapter, please read the section +on Information for Developers.</P> <h1><font color="#000000" size="3"></font> </h1> <h2>Example</h2><pre><ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <pre><ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="false"/> </pre></pre><pre> </pre> </body> Added: phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__update_timer__Tag.htm 2007-05-11 00:41:56 UTC (rev 577) @@ -0,0 +1,59 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>The <update-timer> Tag</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>The <update-timer> <update-timer> Tag</h1> +<p> The <update-timer> tag sets the +default behavior for updating ontologies when Phenote loads. </p> +<h2>Parameters</h2> +<h1> +<table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> + + <tr> + <td align="middle"><strong>Name</strong></td> + <td align="middle"><strong>Description</strong></td> + <td align="middle"><strong>Legal Values</strong></td> + <td align="middle"><strong>Required</strong></td> + <td align="middle"><strong>Default</strong></td></tr> + <tr> + <td><font face="Courier">timer</font></td> + <td>Together with the auto-update-ontologies tag, this + determines how long the dialog box will wait for the user to select + whether or not to update the currently selected ontology during startup.</td> ... [truncated message content] |
From: <nl...@us...> - 2007-05-10 23:14:19
|
Revision: 576 http://svn.sourceforge.net/obo/?rev=576&view=rev Author: nlw Date: 2007-05-10 16:14:15 -0700 (Thu, 10 May 2007) Log Message: ----------- doc updates Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm Modified: phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm 2007-05-10 23:12:25 UTC (rev 575) +++ phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm 2007-05-10 23:14:15 UTC (rev 576) @@ -6,4 +6,4 @@ <link rel="stylesheet" type="text/css" href="../javahelp.css"> </head> <body bgcolor="#ffffff"> -<h1>XML skeleton</h1><pre><?xml version="1.0" encoding="UTF-8"?><br><ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"><br> <ns:log config-file="conf/log4j-standalone.xml"/></pre><pre> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> </pre><pre> <ns:uvic-graph enable="false"/></pre><pre> <ns:term-history enable="false"/><br> <br> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><br> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><br> <ns:obo-repository url-dir="<A href="'http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/" ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</a>></pre><pre> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/><br> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/></pre><pre> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"><br> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><br> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><br> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/><br> </ns:field></pre><pre><br> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"><br> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/><br> </ns:field></pre><pre><br></ns:phenote-configuration></pre></body></html> +<h1>XML skeleton</h1><pre><?xml version="1.0" encoding="UTF-8"?><br><ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"><br> <ns:log config-file="conf/log4j-standalone.xml"/></pre><pre> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> </pre><pre> <ns:uvic-graph enable="false"/></pre><PRE> <ns:term-history enable="false"/><br> <br> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><br> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><br></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/><br> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/></PRE><pre> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"><br> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><br> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><br> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/><br> </ns:field></pre><pre><br> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"><br> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/><br> </ns:field></pre><pre><br></ns:phenote-configuration></pre></body></html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-10 23:12:39
|
Revision: 575 http://svn.sourceforge.net/obo/?rev=575&view=rev Author: nlw Date: 2007-05-10 16:12:25 -0700 (Thu, 10 May 2007) Log Message: ----------- adding newer config docs Added Paths: ----------- phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm Added: phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__auto_update_ontologies__Tag.htm 2007-05-10 23:12:25 UTC (rev 575) @@ -0,0 +1,40 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>The <auto-update-ontologies> Tag</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>The <auto-update-ontologies> <auto-update-ontologies> Tag</h1> +<p>The <auto-update-ontologies> tag sets the default behavior +for automatically updating ontologies when Phenote loads.</p> +<p>[Note: The term history feature is still under development, so it is +best to set this to false for now] </p> +<h2>Parameters</h2> +<h1> +<table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> + + <tr> + <td align="middle"><strong>Name</strong></td> + <td align="middle"><strong>Description</strong></td> + <td align="middle"><strong>Legal Values</strong></td> + <td align="middle"><strong>Required</strong></td> + <td align="middle"><strong>Default</strong></td></tr> + <tr> + <td><font face="Courier">enable</font></td> + <td>If set to true, Phenote will automatically update an ontology file if + a URL is given as the filename within the <ontology> tag</td> + <td> + <ul> + <li>true + <li>false</li></ul></td> + <td align="middle">no</td> + <td>true</td></tr></table> +<h2>Contents</h2></h1> +<p> </p> +<h1><font color="#000000" size="3"></font> </h1> +<h2>Example</h2> <PRE><ns:auto-update-ontologies enable= +"true"/><br><pre></pre><pre></pre> +</body> +</html> Added: phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__dataadapter__Tag.htm 2007-05-10 23:12:25 UTC (rev 575) @@ -0,0 +1,57 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>The <dataadapter> Tag</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>The <dataadapter> <dataadapter> Tag</h1> +<p>The <dataadapter> tag allows the user to specify a read and/or write +adapter. These data adapters are for loading/saving of annotation data +only, not for ontologies. At least one data adapter should be specified +per configuration, with up to as many as desired.</p> +<h2>Parameters</h2> +<h1> +<table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> + + <tr> + <td align="middle"><strong>Name</strong></td> + <td align="middle"><strong>Description</strong></td> + <td align="middle"><strong>Legal Values</strong></td> + <td align="middle"><strong>Required</strong></td> + <td align="middle"><strong>Default</strong></td></tr> + <tr> + <td> + <p><font face="Courier">name</font></p></td> + <td> + <p>This is the name of the data adapter, including its location + within the software. This location is set by the developers of each + data adapter.</p></td> + <td><em>any text value</em></td> + <td align="middle">yes</td> + <td> </td></tr> + <tr> + <td><font face="Courier">enable</font></td> + <td>For each element, it can be turned on or off. In this way you + can maintain the list of available data adapters, but just "hide" them in + the application if set to false. </td> + <td> + <ul> + <li>true + <li>false</li></ul></td> + <td align="middle">no</td> + <td>false</td></tr></table> +<h2> </h2> +<h2>Contents</h2></h1> +<p>Each <dataadapter> element specifies one data +adapter to be used during loading and saving of the annotation data. You will +see these data adapters in the the Load or Save dialog boxes, +in the order they are specified in the configuration. To include multiple data +adapters, be sure to repeat the full line for each adapter. Data adapters +can be removed from a Phenote session by disabling the element, or by deleting +from the configuration itself. </p> +<h1><font color="#000000" size="3"></font> </h1> +<h2>Example</h2><pre><ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <pre><ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="false"/> </pre></pre><pre> </pre> +</body> +</html> Added: phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__term_history__Tag.htm 2007-05-10 23:12:25 UTC (rev 575) @@ -0,0 +1,45 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>The <term-history> Tag</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>The <term-history> <term-history> Tag</h1> +<p>The <term-history> tag sets the default display of the term +history list. </p> +<p>[Note: The term history feature is still under +development, so it is best to set this to false +for now] </p> +<h2>Parameters</h2> +<h1> +<table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> + + <tr> + <td align="middle"><strong>Name</strong></td> + <td align="middle"><strong>Description</strong></td> + <td align="middle"><strong>Legal Values</strong></td> + <td align="middle"><strong>Required</strong></td> + <td align="middle"><strong>Default</strong></td></tr> + <tr> + <td><font face="Courier">enable</font></td> + <td>Setting this to true sets the default Phenote to display the Term + History list when first loaded.</td> + <td> + <ul> + <li>true + <li>false</li></ul></td> + <td align="middle">no</td> + <td>false</td></tr></table> +<h2>Contents</h2></h1> +<p>Each <ontology> element specifies one ontology to be used with the +autocompletion feature in a single <field> element. To include the +same ontology in a separate <field> element, it must be listed in +both. The order in which the <ontology> elements are listed within +the <field> is the order they are displayed in the drop-down chooser +box. </p> +<h1><font color="#000000" size="3"></font> </h1> +<h2>Example</h2><pre><ns:term-history enable="false"/></pre> +</body> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-10 18:07:58
|
Revision: 574 http://svn.sourceforge.net/obo/?rev=574&view=rev Author: mgibson Date: 2007-05-10 11:07:58 -0700 (Thu, 10 May 2007) Log Message: ----------- well i did a bunch of work to have phenote be able to load a configuration on the fly when a user changes config - unfortunately it still doesnt work so i disabled it but i got part of the way there so might as well commit what ive got so far for a revisit later Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/ConfigException.java phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/datamodel/CharacterList.java phenote/trunk/src/java/phenote/datamodel/CharacterListI.java phenote/trunk/src/java/phenote/datamodel/OntologyManager.java phenote/trunk/src/java/phenote/gui/CharacterTableModel.java phenote/trunk/src/java/phenote/gui/SettingsMenu.java phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java phenote/trunk/src/java/phenote/main/Phenote.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-10 18:07:58 UTC (rev 574) @@ -72,6 +72,13 @@ setConfigFile(configFile,false,false,false); // dont use .phenote by default (servlet) } + public static void changeConfig(String newCfgFile) throws ConfigException { + Config newCfg = new Config(); + // throws ConfigEx on fail + newCfg.updateConfigFileWithNewVersion(newCfgFile); // for now??? + singleton = newCfg; // if config succeeds then set + } + /** This is for when phenote is first installed and one of the default config files is used - the -i option if you will. The initial config file will get copied to .phenote/my-phenote.cfg if it doesnt already exist. if it @@ -126,7 +133,7 @@ /** Get config file string that is in my-phenote file - throw io exception if file doesnt exist. todo: should also throw ex if doesnt have a valid file in it? */ - String getMyPhenoteConfigString() throws IOException { + public String getMyPhenoteConfigString() throws IOException { LineNumberReader r = new LineNumberReader(new FileReader(getMyPhenoteFile())); String configFile = r.readLine(); return configFile; Modified: phenote/trunk/src/java/phenote/config/ConfigException.java =================================================================== --- phenote/trunk/src/java/phenote/config/ConfigException.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/config/ConfigException.java 2007-05-10 18:07:58 UTC (rev 574) @@ -2,7 +2,7 @@ public class ConfigException extends Exception { private Exception wrappedEx; - ConfigException(String m) { super(m); } + public ConfigException(String m) { super(m); } ConfigException(Exception e) { this(e.getMessage()); wrappedEx = e; Modified: phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/dataadapter/CharacterListManager.java 2007-05-10 18:07:58 UTC (rev 574) @@ -50,4 +50,9 @@ listenerList.add(l); } + public void clear() { + characterList.clear(); + // notify listeners??? + } + } Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-10 18:07:58 UTC (rev 574) @@ -61,7 +61,7 @@ public class OntologyDataAdapter { private static OntologyDataAdapter singleton; - private Config config; + //private Config config; cant cache may change private OntologyManager ontologyManager = OntologyManager.inst(); private boolean initializingOntologies = false; private Map<String,Ontology> fileToOntologyCache = new HashMap<String,Ontology>(); @@ -74,11 +74,13 @@ private static final boolean DO_ONE_OBO_SESSION = true; private OntologyDataAdapter() { - config = Config.inst(); + //config = Config.inst(); initOntologies(); // loads up all ontologies //if (config.checkForNewOntologies()){new OntologyFileCheckThread().start();} } + private Config cfg() { return Config.inst(); } + /** synchronized so cant reload an ontology while ontologies are being initialized getInstance calls initOntologies - in other words you have to call getInstance to initialize the ontologies */ @@ -111,7 +113,7 @@ private void initOntolsSeparateOboSessions() { // getFieldConfigList gives enabled fields - not disabled - for (FieldConfig fieldConfig : config.getFieldConfigList()) { + for (FieldConfig fieldConfig : cfg().getFieldConfigList()) { if (!fieldConfig.isEnabled()) continue; // not necasary actually CharField cf = new CharField(fieldConfig.getLabel()); fieldConfig.setCharField(cf); @@ -165,7 +167,7 @@ private OBOSession loadAllOboFilesIntoOneOboSession() throws OntologyException { // get unique list of obo files Collection<String> files = new ArrayList<String>(); - for (FieldConfig fieldConfig : config.getFieldConfigList()) { + for (FieldConfig fieldConfig : cfg().getFieldConfigList()) { for (OntologyConfig oc : fieldConfig.getOntologyConfigList()) { try { String file = findOboUrlString(oc); // throws oex if not found @@ -185,7 +187,7 @@ // should Config actually set OntologyManager up with char fields - maybe this shouldnt // be ont data adapters responsibility - its just the 1st time that we need it private void initCharFields() { - for (FieldConfig fieldConfig : config.getFieldConfigList()) { + for (FieldConfig fieldConfig : cfg().getFieldConfigList()) { CharField cf = fieldConfig.getCharField(); // creates char field (if not there) ontologyManager.addField(cf); } @@ -194,7 +196,7 @@ /** This actually creates both CharFields and Ontologies and maps namespaces from obo file adapter meta data */ private void mapNamespacesToOntologies(OBOSession oboSession) throws OntologyException { - for (FieldConfig fieldConfig : config.getFieldConfigList()) { + for (FieldConfig fieldConfig : cfg().getFieldConfigList()) { CharField cf = fieldConfig.getCharField(); // creates char field (if not there) // ontology manager.addCF??? if (fieldConfig.hasOntologies()) { @@ -381,8 +383,8 @@ else { long repos = getOboDate(reposUrl); // throws ex if no date long loc = 0; - int timer = config.getUpdateTimer(); - boolean autoUpdate = config.autoUpdateIsEnabled(); + int timer = cfg().getUpdateTimer(); + boolean autoUpdate = cfg().autoUpdateIsEnabled(); if (localUrl != null) loc = getOboDate(localUrl); // throws ont ex else @@ -552,7 +554,7 @@ // private void loadRelationshipOntology() { hmmmmmm // // for now - todo configure! post comp relationship-ontology -// // FieldConfig rfc = config.getRelationshipFieldConfig(); +// // FieldConfig rfc = cfg().getRelationshipFieldConfig(); // //CharFieldEnum relEnum = rfc.getCharFieldEnum(); // CharFieldEnum relEnum = CharFieldEnum.RELATIONSHIP; // CharField cf = new CharField(relEnum); @@ -583,7 +585,7 @@ // public void run() { -// int checkMilliSecs = config.getOntologyCheckMinutes() * 60000; +// int checkMilliSecs = cfg().getOntologyCheckMinutes() * 60000; // //int checkMilliSecs = 6000;//0.6 * 60000; // debug - 10 secs // while(true) { Modified: phenote/trunk/src/java/phenote/datamodel/CharacterList.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/datamodel/CharacterList.java 2007-05-10 18:07:58 UTC (rev 574) @@ -29,6 +29,7 @@ } public void remove(int i) { characterList.remove(i); } public void remove(CharacterI c) { characterList.remove(c); } + public void clear() { characterList.clear(); } public int size() { return characterList.size(); } public boolean isEmpty() { return characterList.isEmpty(); } public int indexOf(CharacterI c) { return characterList.indexOf(c); } Modified: phenote/trunk/src/java/phenote/datamodel/CharacterListI.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/CharacterListI.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/datamodel/CharacterListI.java 2007-05-10 18:07:58 UTC (rev 574) @@ -13,6 +13,7 @@ public void add(int order,CharacterI c); public void remove(int i); public void remove(CharacterI c); + public void clear(); public int size(); public boolean isEmpty(); public int indexOf(CharacterI c); Modified: phenote/trunk/src/java/phenote/datamodel/OntologyManager.java =================================================================== --- phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/datamodel/OntologyManager.java 2007-05-10 18:07:58 UTC (rev 574) @@ -14,7 +14,7 @@ //import phenote.datamodel.CharFieldEnum; //import phenote.datamodel.OboUtil; -/** Manages all of the ontology. Eventually will get config info (xml? OntologyConfig?) +/** Manages all of the ontologies. Eventually will get config info (xml? OntologyConfig?) and set itself up from that. Should there be an ontology package - whats funny is that ontologies have obo filenames that they parse so they are sort of data adapterish @@ -39,7 +39,7 @@ return singleton; } - + /** OntologyDataAdapter adds fields */ public void addField(CharField cf) { //addOntologyList(cf.getOntologyList()); charFieldList.add(cf); Modified: phenote/trunk/src/java/phenote/gui/CharacterTableModel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/CharacterTableModel.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/gui/CharacterTableModel.java 2007-05-10 18:07:58 UTC (rev 574) @@ -27,7 +27,7 @@ //private int rowCount = 0; // todo - get this from data adapter/model - especially for loaded private CharacterListI characterList;// = new CharacterList(); - private Config config = Config.inst(); + //private Config config = Config.inst(); cant cache - may change! CharacterTableModel() { characterList = getCharListManager().getCharacterList(); @@ -38,6 +38,8 @@ //EditManager.inst().addCharChangeListener(new TableCharChangeListener()); } + private Config cfg() { return Config.inst(); } + private CharacterListManager getCharListManager() { return CharacterListManager.inst(); } CharacterI getCharacter(int i) { @@ -57,11 +59,11 @@ } public String getColumnName(int col) { - return config.getFieldLabel(col); + return cfg().getFieldLabel(col); } public int getColumnCount() { - return config.getNumberOfFields(); + return cfg().getNumberOfFields(); } public int getRowCount() { @@ -142,14 +144,14 @@ log().error("character is null for row "+row+" in table"); return null; } -// if (config.getCharFieldEnum(col) == null) { +// if (cfg().getCharFieldEnum(col) == null) { // for now - eventually get from char not config -// if (!config.hasCharField(col)) { +// if (!cfg().hasCharField(col)) { // log().error("column "+col+" not configured properly in "+ // "character table, cant retrieve value "); // return null; // } - //return config.getCharFieldEnum(col).getValue(chr).getName(); + //return cfg().getCharFieldEnum(col).getValue(chr).getName(); // CF = chr.getCharField(col); - yes! hard w hardwired optional model items // return chr.getValue(col).getName(); // ??? try { @@ -179,7 +181,7 @@ but for now just sort data itself? dont yet have separate view objects to sort */ void setSortKey(int col) { - CharField cf = config.getCharField(col); + CharField cf = cfg().getCharField(col); characterList.sortBy(cf); // ??? fireTableDataChanged(); } Modified: phenote/trunk/src/java/phenote/gui/SettingsMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-10 18:07:58 UTC (rev 574) @@ -4,7 +4,9 @@ import phenote.config.Config; import phenote.config.ConfigException; import phenote.config.ConfigFileQueryGui; +import phenote.main.Phenote; +import java.io.IOException; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -168,15 +170,25 @@ // eventually reconfigure phenote in same session, cfg,obo,gui boolean showCancel = true; try { - String cfg = ConfigFileQueryGui.queryUserForConfigFile(showCancel); - if (cfg != null && !cfg.equals("")) - Config.writeMyPhenoteDefaultFile(cfg); - String m = "You must restart phenote for new config to take effect"; - JOptionPane.showMessageDialog(null, m, "Please restart", - JOptionPane.INFORMATION_MESSAGE); + String currentConfig = null; + try { currentConfig = Config.inst().getMyPhenoteConfigString(); } + catch (IOException x) {} + + String newCfg = ConfigFileQueryGui.queryUserForConfigFile(showCancel); + + if (newCfg == null || newCfg.equals("")) + throw new ConfigException("ERROR: Got no config from user"); + + if (currentConfig != null && newCfg.equals(currentConfig)) + throw new ConfigException("Config not changed"); // ?? or do nothing? + + + Config.writeMyPhenoteDefaultFile(newCfg); + + restartMessage(); + //changeConfig(newCfg); } - catch (ConfigFileQueryGui.CancelEx ex) { - } // its cancelled do nothing + catch (ConfigFileQueryGui.CancelEx ex) {} // its cancelled do nothing catch (ConfigException x) { String m = "Failed to change configuration " + x.getMessage(); JOptionPane.showMessageDialog(null, m, "Config error", @@ -185,6 +197,23 @@ } } + private void restartMessage() { + String m = "You must restart phenote for new config to take effect"; + JOptionPane.showMessageDialog(null, m, "Restart Phenote", + JOptionPane.INFORMATION_MESSAGE); + } + + + /** This doesnt work yet Wipe out data and load new configuration */ + private void changeConfig(String newCfg) { + String m = "This will wipe out your current data - are you sure you want " + +"to do this?"; + int ret = JOptionPane.showConfirmDialog(null, m, "Confirm data wipeout", + JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE); + if (ret != JOptionPane.YES_OPTION) return; + Phenote.getPhenote().changeConfig(newCfg); + } + private class ShowHistoryActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { // 1st step just set my-phenote.cfg & user restart phenote Modified: phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java 2007-05-10 18:07:58 UTC (rev 574) @@ -30,6 +30,7 @@ public class SynchOntologyDialog { + // i think its ok to cache config as this object is not reused private Config config = Config.inst(); private ButtonGroup buttonGroup; Modified: phenote/trunk/src/java/phenote/main/Phenote.java =================================================================== --- phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-09 22:39:56 UTC (rev 573) +++ phenote/trunk/src/java/phenote/main/Phenote.java 2007-05-10 18:07:58 UTC (rev 574) @@ -10,6 +10,7 @@ import java.awt.event.WindowEvent; import javax.swing.BoxLayout; import javax.swing.JFrame; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.ImageIcon; @@ -129,27 +130,27 @@ } public void initGui() { - makeWindow(); + makeWindow(); // ok this is silly } private void splashScreenInit() { - ImageIcon myImage = new ImageIcon(logoFile); - splashScreen = new SplashScreen(myImage); - splashScreen.setLocationRelativeTo(null); - splashScreen.setProgressMax(100); - splashScreen.setScreenVisible(true); - splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); + ImageIcon myImage = new ImageIcon(logoFile); + splashScreen = new SplashScreen(myImage); + splashScreen.setLocationRelativeTo(null); + splashScreen.setProgressMax(100); + splashScreen.setScreenVisible(true); + splashScreen.setProgress("Phenote version "+PhenoteVersion.versionString(), 0); } private void splashScreenDestruct() { - splashScreen.setScreenVisible(false); - } + splashScreen.setScreenVisible(false); + } private void doCommandLine(String[] args) { - //doCommandLineOld(args); // -c -u --> move to CommandLine! - try { commandLine.setArgs(args); } // no log yet - sys.out - catch (Exception e) { System.out.println("Command line read failed"+e); } + try { commandLine.setArgs(args); } // sets config if specified + catch (Exception e) { // no log yet - sys.out + System.out.println("Command line read failed"+e); } // no config set from command line use default if (!Config.inst().isInitialized()) { try { Config.inst().loadDefaultConfigFile(); } @@ -237,7 +238,38 @@ return mainPanel; } + + /** this doesnt work yet - OntologyManager list of char fields is not getting + reset for one thing - slippery slope this stuff */ + public void changeConfig(String newCfg) { // throws ConfigException?? + try { + // load new config + // Config loadDefaultConfigFile?? as its set above w writeMyPhen? + Config.changeConfig(newCfg); // for now just does update with new version + + // wipe out old data + CharacterListManager.inst().clear(); + + // load ontologies - reuse ones that are already loaded? dump ones not used? + // this needs to reset onotologymanagers charfields - or something does?? + // ontolMan.clear()? + initOntologies(); // ?? i think will preserve ontol cache which is good + + // wipe out & bring up new gui + phenote.initGui(); // or phenote.reinitGui()? + + } + catch (ConfigException e) { // throw it?? + String m = "Failed to change configuration " + e.getMessage(); + JOptionPane.showMessageDialog(null, m, "Config error", + JOptionPane.ERROR_MESSAGE); + } + + } + + + public static Phenote getPhenote() { // singleton if (phenote == null) phenote = new Phenote(); return phenote; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-09 22:39:54
|
Revision: 573 http://svn.sourceforge.net/obo/?rev=573&view=rev Author: mgibson Date: 2007-05-09 15:39:56 -0700 (Wed, 09 May 2007) Log Message: ----------- woops forgot to put post comp into birn Modified Paths: -------------- phenote/trunk/conf/birn.cfg phenote/trunk/conf/flybase.cfg phenote/trunk/doc/phenote-website/phenote-release-notes.html Modified: phenote/trunk/conf/birn.cfg =================================================================== --- phenote/trunk/conf/birn.cfg 2007-05-09 21:36:06 UTC (rev 572) +++ phenote/trunk/conf/birn.cfg 2007-05-09 22:39:56 UTC (rev 573) @@ -21,6 +21,8 @@ <field name="Assay" enable="true"/> <field name="Entity1" syntax-abbrev="E1" enable="true"> + <ontology name="Relationship" is-postcomp-rel="true" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/relationship.obo"/> <ontology name="SAO" file="SAO.obo"/> <ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo"/> @@ -35,6 +37,8 @@ </field> <field name="Entity2" syntax-abbrev="E2" enable="true"> + <ontology name="Relationship" is-postcomp-rel="true" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/relationship.obo"/> <ontology name="SAO" file="SAO.obo"/> <ontology name="GO" file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/genomic-proteomic/gene_ontology.obo"/> Modified: phenote/trunk/conf/flybase.cfg =================================================================== --- phenote/trunk/conf/flybase.cfg 2007-05-09 21:36:06 UTC (rev 572) +++ phenote/trunk/conf/flybase.cfg 2007-05-09 22:39:56 UTC (rev 573) @@ -29,7 +29,8 @@ <ns:field name="Entity" syntax-abbrev="E"> <!-- postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/ --> - <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true" repos-subdir="OBO_REL"/> + <ns:ontology name="Relationship" is-postcomp-rel="true" + file="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/OBO_REL/relationship.obo"/> <ns:ontology name="Fly" file="fly_anatomy.obo" /> <!--repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fly"--> <ns:ontology name="Human Anatomy" file="fma_obo.obo"/> Modified: phenote/trunk/doc/phenote-website/phenote-release-notes.html =================================================================== --- phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-05-09 21:36:06 UTC (rev 572) +++ phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-05-09 22:39:56 UTC (rev 573) @@ -45,6 +45,7 @@ Config update/merge bug where fields in wrong order fixed.<br> Can specify more than one website for ontologies<br> Empty field shows all terms in ontology rather than none<br> +Can add more differentia to post comp<br> <h2><span style="text-decoration: underline;">1.2</span></h2> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-09 21:36:08
|
Revision: 572 http://svn.sourceforge.net/obo/?rev=572&view=rev Author: mgibson Date: 2007-05-09 14:36:06 -0700 (Wed, 09 May 2007) Log Message: ----------- file save now displays file types of first data adapter by default which is consistent with file load (should probably have default config) Modified Paths: -------------- phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java Modified: phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java 2007-05-09 21:11:37 UTC (rev 571) +++ phenote/trunk/src/java/phenote/dataadapter/LoadSaveManager.java 2007-05-09 21:36:06 UTC (rev 572) @@ -23,10 +23,17 @@ private LoadSaveManager() { fileChooser = new JFileChooser(); List<DataAdapterI> adapters = Config.inst().getDataAdapters(); + boolean first = true; + FileFilter filt1=null; for (DataAdapterI adapter: adapters) { DataAdapterFileFilter filter = new DataAdapterFileFilter(adapter); fileChooser.addChoosableFileFilter(filter); + if (first) { + filt1 = filter; + first = false; + } } + fileChooser.setFileFilter(filt1); } /**Returns singleton*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-09 21:11:35
|
Revision: 571 http://svn.sourceforge.net/obo/?rev=571&view=rev Author: mgibson Date: 2007-05-09 14:11:37 -0700 (Wed, 09 May 2007) Log Message: ----------- woops Modified Paths: -------------- phenote/trunk/doc/phenote-website/phenote.jnlp Modified: phenote/trunk/doc/phenote-website/phenote.jnlp =================================================================== --- phenote/trunk/doc/phenote-website/phenote.jnlp 2007-05-09 21:03:21 UTC (rev 570) +++ phenote/trunk/doc/phenote-website/phenote.jnlp 2007-05-09 21:11:37 UTC (rev 571) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" -codebase="http://toy.lbl.gov:9010/phenote/1.2-beta1" +codebase="http://toy.lbl.gov:9010/phenote/1.3-beta1" href="phenote.jnlp"> <information> <title>Phenote 1.3-beta1</title> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |