Changeset 7799


Ignore:
Timestamp:
06/01/11 12:49:51 (9 years ago)
Author:
mnagni
Message:
 
Location:
mauRepo/xml2owl/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/xml2owl/trunk/config/checkstyle.xml

    r7757 r7799  
    157157    <module name="BooleanExpressionComplexity"> 
    158158      <property name="severity" value="error"/> 
    159       <property name="max" value="2"/> 
     159      <property name="max" value="6"/> 
    160160    </module> 
    161161    <module name="AvoidInlineConditionals"> 
  • mauRepo/xml2owl/trunk/protege.properties

    r7779 r7799  
    11#Protege Properties 
    2 #Wed Dec 15 13:42:51 GMT 2010 
     2#Thu Jan 06 12:36:08 GMT 2011 
     3SwitchableClassDefinitionType=edu.stanford.smi.protegex.owl.ui.cls.LogicClassDefinitionWidgetType 
    34history.projects.reopen=file\:/home/users/mnagni/workspace/ESGGateway/metafor/examples/newspaper/newspaper.pprj,file\:/home/users/mnagni/workspace/ESGGateway/metafor/examples/pizza/pizza.owl.pprj 
    4 SwitchableClassDefinitionType=edu.stanford.smi.protegex.owl.ui.cls.LogicClassDefinitionWidgetType 
  • mauRepo/xml2owl/trunk/src/main/java/ndg/ontology/OntIngester.java

    r7779 r7799  
    3535import java.io.OutputStream; 
    3636import java.util.Iterator; 
     37import java.util.Properties; 
    3738 
    3839import javax.xml.bind.JAXBException; 
     
    5253import ndg.ontology.parser.model.StatementSupport; 
    5354 
    54 import org.badc.ndg.ontologyingester.AddComment; 
    55 import org.badc.ndg.ontologyingester.AddLabel; 
    56 import org.badc.ndg.ontologyingester.AddTriple; 
    57 import org.badc.ndg.ontologyingester.AddTripleLiteral; 
     55import org.badc.ndg.ontologyingester.ActionDetail; 
     56import org.badc.ndg.ontologyingester.ActionDetailsType; 
     57import org.badc.ndg.ontologyingester.AddCommentType; 
     58import org.badc.ndg.ontologyingester.AddLabelType; 
     59import org.badc.ndg.ontologyingester.AddTripleLiteralType; 
     60import org.badc.ndg.ontologyingester.AddTripleType; 
    5861import org.badc.ndg.ontologyingester.Ingester; 
     62import org.badc.ndg.ontologyingester.OntElement; 
    5963import org.slf4j.Logger; 
    6064import org.slf4j.LoggerFactory; 
     
    7175        /** The Constant LOG. */ 
    7276        private static final Logger LOGGER = LoggerFactory.getLogger(OntIngester.class); 
    73          
     77 
    7478        private final DocumentHelper dh = new DocumentHelper(); 
    7579        private final JAXBManager manager; 
     
    8488 
    8589        private String separator = ";;"; 
     90 
     91        // String sbjVal = null; 
     92        // String predVal = null; 
     93        // String predURI = null; 
     94 
     95        private enum TCOMPONENT { 
     96                SBJ_URI, OBJ_URI, PRED_URI, PRED_VAL, SBJ_VAL, OBJ_VAL 
     97        }; 
     98 
     99        private enum ACTION { 
     100                ADD_TRIPLE, ADD_LABEL, ADD_TRIPLE_LITERAL, ADD_COMMENT 
     101        }; 
    86102 
    87103        OntIngester(final InputStream ingesterConfig, final StatementSupport statementSupport, 
     
    105121                } 
    106122                xqe.bindNode(XQConstants.CONTEXT_ITEM, doc, null); 
    107                 ingest(ing.getAddTriple().iterator(), xqe); 
    108                 ingest(ing.getAddLabel().iterator(), xqe); 
    109                 ingest(ing.getAddTripleLiteral().iterator(), xqe); 
    110                 ingest(ing.getAddComment().iterator(), xqe); 
     123                ingest(ing.getAction().iterator(), xqe); 
    111124        } 
    112125 
     
    117130                        return; 
    118131                } 
    119                          
    120132 
    121133                if (ing.getConfiguration().getSeparator() != null) { 
    122134                        separator = ing.getConfiguration().getSeparator(); 
    123135                } 
    124                          
    125136 
    126137                for (org.badc.ndg.ontologyingester.Node node : ing.getConfiguration().getNode()) { 
     
    139150        } 
    140151 
    141         private <T> void ingest(final Iterator<T> ops, final XQExpression xqe) throws XPathExpressionException { 
    142                 while (ops.hasNext()) { 
    143                         T obj = ops.next(); 
     152        private void ingest(final Iterator<ActionDetail> actions, final XQExpression xqe) { 
     153                ActionDetail act = null; 
     154                while (actions.hasNext()) { 
     155                        act = actions.next(); 
    144156                        try { 
    145                                 if (obj instanceof AddLabel) { 
    146                                         process((AddLabel) obj, xqe); 
    147                                 } else if (obj instanceof AddTriple) { 
    148                                         process((AddTriple) obj, xqe);   
    149                                 } else if (obj instanceof AddTripleLiteral) { 
    150                                         process((AddTripleLiteral) obj, xqe); 
    151                                 } else if (obj instanceof AddComment) { 
    152                                         process((AddComment) obj, xqe); 
    153                                 } 
    154                                  
    155                         } catch (StatementSupportException e) { 
    156                                 if (LOGGER.isErrorEnabled()) { 
    157                                         LOGGER.error("Error! But continuing to loop. Detailed error follows ", e);                                       
    158                                 } 
     157                                XQResultSequence triples = executeXQuery(xqe, act.getXquery()); 
     158                                process(act.getActionType().getValue(), triples); 
    159159                        } catch (XQException e) { 
    160160                                if (LOGGER.isErrorEnabled()) { 
    161                                         LOGGER.error("Error! But continuing to loop. Detailed error follows ", e);                                       
     161                                        LOGGER.error("Error! But continuing to loop. Detailed error follows ", e); 
     162                                } 
     163                        } 
     164                } 
     165        } 
     166 
     167        private void process(final ActionDetailsType type, final XQResultSequence triples) throws XQException { 
     168                String atVal = null; 
     169                while (triples.next()) { 
     170                        atVal = triples.getAtomicValue().trim(); 
     171                        try { 
     172                                if (type instanceof AddLabelType) { 
     173                                        process((AddLabelType) type, atVal); 
     174                                } else if (type instanceof AddTripleType) { 
     175                                        process((AddTripleType) type, atVal); 
     176                                } else if (type instanceof AddTripleLiteralType) { 
     177                                        process((AddTripleLiteralType) type, atVal); 
     178                                } else if (type instanceof AddCommentType) { 
     179                                        process((AddCommentType) type, atVal); 
    162180                                } 
    163181                        } catch (Exception e) { 
    164182                                if (LOGGER.isErrorEnabled()) { 
    165                                         LOGGER.error("Error! But continuing to loop. Detailed error follows ", e);                                       
     183                                        LOGGER.error("Error! But continuing to loop. Detailed error follows ", e); 
    166184                                } 
    167185                        } 
    168186                } 
    169         } 
    170  
    171         private void process(final AddLabel item, final XQExpression xqe) throws XPathExpressionException, XQException, 
    172                         StatementSupportException { 
    173                 String sbjClass = item.getOntSubject().trim(); 
    174                 XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
    175  
    176                 while (triples.next()) { 
    177                         String atVal = triples.getAtomicValue().trim(); 
    178  
    179                         String[] values = doSplit(atVal); 
    180                         if (values.length != 2) { 
    181                                 continue;                                
    182                         } 
    183  
    184                         statementSupport.addLabel(sbjClass, values[0].trim(), values[1].trim()); 
    185                 } 
    186  
    187187                triples.close(); 
    188188        } 
    189189 
    190         private void process(final AddComment item, final XQExpression xqe) throws XPathExpressionException, XQException, 
    191                         StatementSupportException { 
    192                 String sbjClass = item.getOntSubject().trim(); 
    193                 XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
    194  
    195                 while (triples.next()) { 
    196                         String atVal = triples.getAtomicValue().trim(); 
    197  
    198                         String[] values = doSplit(atVal); 
    199                         if (values.length != 2) { 
    200                                 continue; 
    201                         }                                
    202                         statementSupport.addComment(sbjClass, values[0].trim(), values[1].trim()); 
    203                 } 
    204  
    205                 triples.close(); 
    206         } 
    207  
    208         private void process(final AddTripleLiteral item, final XQExpression xqe) throws XPathExpressionException, 
    209                         XQException, StatementSupportException { 
    210                 String sbjClass = item.getOntSubject().trim(); 
    211                 String ontPredicate = ""; 
     190        private void process(final AddLabelType item, final String atVal) throws StatementSupportException { 
     191                Properties prop = loadData(doSplit(atVal), ACTION.ADD_COMMENT, item.getOntSubject(), null, null); 
     192 
     193                statementSupport.addLabel(prop.getProperty(TCOMPONENT.SBJ_URI.toString()), prop.getProperty(TCOMPONENT.SBJ_VAL 
     194                                .toString()), prop.getProperty(TCOMPONENT.PRED_VAL.toString())); 
     195        } 
     196 
     197        private void process(final AddCommentType item, final String atVal) throws StatementSupportException { 
     198                Properties prop = loadData(doSplit(atVal), ACTION.ADD_COMMENT, item.getOntSubject(), null, null); 
     199                statementSupport.addComment(prop.getProperty(TCOMPONENT.SBJ_URI.toString()), prop 
     200                                .getProperty(TCOMPONENT.SBJ_VAL.toString()), prop.getProperty(TCOMPONENT.PRED_VAL.toString())); 
     201        } 
     202 
     203        private void process(final AddTripleLiteralType item, final String atVal) throws StatementSupportException { 
     204 
    212205                if (item.getOntPredicate() == null) { 
    213206                        throw new StatementSupportException("ontPredicate cannot be null!"); 
    214207                } 
    215                          
    216                 if (item.getOntPredicate().getUri() != null) { 
    217                         ontPredicate = item.getOntPredicate().getUri().trim(); 
    218                 } 
    219                          
    220  
    221                 XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
    222  
    223                 while (triples.next()) { 
    224                         String atVal = triples.getAtomicValue().trim(); 
    225  
    226                         String[] values = doSplit(atVal); 
    227                         String sbjURI = null; 
    228                         String objURI = null; 
    229                         String predURI = null; 
    230                         if (item.getOntPredicate().isDynamic() != null && item.getOntPredicate().isDynamic()) { 
    231                                 if (values.length != 3) { 
    232                                         continue; 
    233                                 }                                        
    234                                 sbjURI = values[0]; 
    235                                 objURI = values[1]; 
    236                                 predURI = values[2]; 
    237                         } else { 
    238                                 if (values.length != 2) { 
    239                                         continue; 
    240                                 }                                        
    241                                 sbjURI = values[0].trim(); 
    242                                 objURI = values[1].trim(); 
    243                                 predURI = ontPredicate; 
    244                         } 
    245                         statementSupport.addLiteral(sbjClass, sbjURI, predURI, objURI); 
    246                 } 
    247  
    248                 triples.close(); 
    249         } 
    250  
    251         private void process(final AddTriple item, final XQExpression xqe) throws XPathExpressionException, XQException, 
    252                         StatementSupportException { 
    253                 String sbjClass = item.getOntSubject().trim(); 
    254                 String objClass = item.getOntObject().trim(); 
    255                 String ontPredicate = item.getOntPredicate().getUri().trim(); 
    256  
    257                 XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
    258  
    259                 while (triples.next()) { 
    260                         String atVal = triples.getAtomicValue().trim(); 
    261  
    262                         String[] values = doSplit(atVal); 
    263                         if (values.length != 2) { 
    264                                 continue; 
    265                         } 
    266                                  
    267                         statementSupport.addProperty(sbjClass, values[0].trim(), ontPredicate, objClass, values[1].trim()); 
    268                 } 
    269  
    270                 triples.close(); 
     208 
     209                Properties prop = loadData(doSplit(atVal), ACTION.ADD_TRIPLE_LITERAL, item.getOntSubject(), item 
     210                                .getOntPredicate(), null); 
     211                statementSupport.addLiteral(prop.getProperty(TCOMPONENT.SBJ_URI.toString()), prop 
     212                                .getProperty(TCOMPONENT.SBJ_VAL.toString()), prop.getProperty(TCOMPONENT.PRED_URI.toString()), prop 
     213                                .getProperty(TCOMPONENT.PRED_VAL.toString())); 
     214        } 
     215 
     216        private void process(final AddTripleType item, final String atVal) throws StatementSupportException { 
     217                Properties prop = loadData(doSplit(atVal), ACTION.ADD_TRIPLE, item.getOntSubject(), item.getOntPredicate(), 
     218                                item.getOntObject()); 
     219 
     220                statementSupport.addProperty(prop.getProperty(TCOMPONENT.SBJ_URI.toString()), prop 
     221                                .getProperty(TCOMPONENT.SBJ_VAL.toString()), prop.getProperty(TCOMPONENT.PRED_URI.toString()), prop 
     222                                .getProperty(TCOMPONENT.OBJ_URI.toString()), prop.getProperty(TCOMPONENT.OBJ_VAL.toString())); 
     223        } 
     224 
     225        private Properties loadData(final String[] values, final ACTION action, final OntElement subject, 
     226                        final OntElement predicate, final OntElement object) throws StatementSupportException { 
     227                Properties ret = new Properties(); 
     228                if (subject != null && subject.getUri() != null) { 
     229                        ret.put(TCOMPONENT.SBJ_URI.toString(), subject.getUri().trim()); 
     230                } 
     231 
     232                if (predicate != null && predicate.getUri() != null) { 
     233                        ret.put(TCOMPONENT.PRED_URI.toString(), predicate.getUri().trim()); 
     234                } 
     235 
     236                if (object != null && object.getUri() != null) { 
     237                        ret.put(TCOMPONENT.OBJ_URI.toString(), object.getUri().trim()); 
     238                } 
     239 
     240                if (values.length == 5 && (predicate != null) && (object != null) 
     241                                && (predicate.isDynamic() != null && predicate.isDynamic()) 
     242                                && (object.isDynamic() != null && object.isDynamic())) { 
     243                        switch (action) { 
     244                        case ADD_TRIPLE: 
     245                                ret.put(TCOMPONENT.SBJ_VAL.toString(), values[0].trim()); 
     246                                ret.put(TCOMPONENT.PRED_VAL.toString(), values[1].trim()); 
     247                                ret.put(TCOMPONENT.PRED_URI.toString(), values[2].trim()); 
     248                                ret.put(TCOMPONENT.OBJ_VAL.toString(), values[3].trim()); 
     249                                ret.put(TCOMPONENT.OBJ_URI.toString(), values[4].trim()); 
     250                        default: 
     251                        } 
     252                        return ret; 
     253                } 
     254 
     255                if (values.length == 3 && (predicate != null) && (predicate.isDynamic() != null && predicate.isDynamic())) { 
     256                        switch (action) { 
     257                        case ADD_TRIPLE_LITERAL: 
     258                                ret.put(TCOMPONENT.SBJ_VAL.toString(), values[0].trim()); 
     259                                ret.put(TCOMPONENT.PRED_VAL.toString(), values[1].trim()); 
     260                                ret.put(TCOMPONENT.PRED_URI.toString(), values[2].trim()); 
     261                        default: 
     262                        } 
     263                        return ret; 
     264                } 
     265 
     266                if (values.length == 3 && (object != null) && (object.isDynamic() != null && object.isDynamic())) { 
     267                        switch (action) { 
     268                        case ADD_TRIPLE: 
     269                                ret.put(TCOMPONENT.SBJ_VAL.toString(), values[0].trim()); 
     270                                ret.put(TCOMPONENT.OBJ_VAL.toString(), values[1].trim()); 
     271                                ret.put(TCOMPONENT.OBJ_URI.toString(), values[2].trim()); 
     272                        default: 
     273                        } 
     274                        return ret; 
     275                } 
     276 
     277                if (values.length == 2) { 
     278                        switch (action) { 
     279                        case ADD_TRIPLE: 
     280                                ret.put(TCOMPONENT.SBJ_VAL.toString(), values[0].trim()); 
     281                                ret.put(TCOMPONENT.OBJ_VAL.toString(), values[1].trim()); 
     282                        default: 
     283                                ret.put(TCOMPONENT.SBJ_VAL.toString(), values[0].trim()); 
     284                                ret.put(TCOMPONENT.PRED_VAL.toString(), values[1].trim()); 
     285                        } 
     286                        return ret; 
     287                } 
     288                throw new StatementSupportException("No values can be loaded"); 
    271289        } 
    272290 
  • mauRepo/xml2owl/trunk/src/main/java/ndg/ontology/parser/support/ProtegeeOntSupport.java

    r7779 r7799  
    4545                }        
    4646                OWLIndividual individual = model.getOWLIndividual(indURI); 
    47                 if (individual == null || !individual.hasRDFType(clazz)) { 
     47                if (individual == null /*|| !individual.hasRDFType(clazz)*/) { 
    4848                        individual = clazz.createOWLIndividual(indURI); 
    4949                } 
     
    6464 
    6565        private RDFProperty getObjectProperty(final String propertyURI) throws IndividualException { 
    66                 Object ret = model.getOWLObjectProperty(propertyURI); 
     66                Object ret = null; 
     67                try { 
     68                        ret = model.getOWLObjectProperty(propertyURI); 
     69                } catch (ClassCastException ex) { 
     70                        ex.getMessage(); 
     71                } 
     72                 
    6773                if (ret == null) { 
    6874                        throw new IndividualException("Cannot create Property(" + propertyURI + ")"); 
  • mauRepo/xml2owl/trunk/src/test/java/ndg/ontology/parser/TestBindDOM.java

    r7797 r7799  
    5050                String rootPath = "/home/users/mnagni/workspace/ESGGateway/metafor/src/test/resources"; 
    5151 
    52                 //String path = rootPath + "/sample_cmip5qn_100930_mark.xml"; 
    53                 String path = rootPath + "/PersistedXML"; 
     52                String path = rootPath + "/sample_cmip5qn_100930_mark.xml"; 
     53                //String path = rootPath + "/PersistedXML"; 
    5454                 
    5555                File[] files = getPaths(path); 
     
    8181         
    8282        private InputStream getIngesterConfig() { 
    83                 //String sample = "/ingesterConfig.xml"; 
    84                 String sample = "/experimentIngestConfig.xml"; 
     83                String sample = "/ingesterConfig.xml"; 
     84                //String sample = "/experimentIngestConfig.xml"; 
    8585                return getClass().getResourceAsStream(sample); 
    8686        } 
  • mauRepo/xml2owl/trunk/src/test/resources/MetaforESGMapping.xml

    r7797 r7799  
    11<ndg:lookup xmlns:ndg="http://www.ndg.ac.uk"> 
     2 
     3        <!-- METAFOR_ESG_INPUT_TYPE_MAP -->      
    24        <ndg:entry metaforName="boundaryCondition" esgName="boundary" /> 
    35        <ndg:entry metaforName="initialCondition" esgName="initial" /> 
    46        <ndg:entry metaforName="ancillaryFile" esgName="ancillary" /> 
     7         
     8        <!-- METAFOR_ESG_TIME_TRANSFORMATION_MAP --> 
     9        <ndg:entry metaforName="TimeAverage" esgName="time_average" /> 
     10        <ndg:entry metaforName="TimeInterpolation" esgName="time_interpolation" /> 
     11         
     12        <!-- METAFOR_ESG_PHYSICAL_DOMAIN_MAP --> 
     13        <ndg:entry metaforName="aerosol" esgName="Atmosphere" /> 
     14        <ndg:entry metaforName="Aerosols" esgName="Atmosphere" /> 
     15        <ndg:entry metaforName="AtmosphericChemistry" esgName="Atmosphere" /> 
     16        <ndg:entry metaforName="atmos" esgName="Atmosphere" /> 
     17        <ndg:entry metaforName="atmosphere" esgName="Atmosphere" /> 
     18        <ndg:entry metaforName="Atmosphere" esgName="Atmosphere" /> 
     19        <ndg:entry metaforName="aerosol" esgName="Atmosphere" />         
     20        <ndg:entry metaforName="land" esgName="Land" /> 
     21        <ndg:entry metaforName="landIce" esgName="Land" /> 
     22        <ndg:entry metaforName="LandIce" esgName="Land" /> 
     23        <ndg:entry metaforName="LandSurface" esgName="Land" /> 
     24        <ndg:entry metaforName="ocean" esgName="Ocean" /> 
     25        <ndg:entry metaforName="OceanBiogeoChemistry" esgName="Ocean" /> 
     26        <ndg:entry metaforName="ocnBgchem" esgName="Ocean" /> 
     27        <ndg:entry metaforName="seaIce" esgName="Ice" /> 
    528</ndg:lookup> 
  • mauRepo/xml2owl/trunk/src/test/resources/experimentIngestConfig.xml

    r7779 r7799  
    66                <ndg:node external="lookup" path="/home/users/mnagni/workspace/ESGGateway/metafor/src/test/resources/lookup.xml"/> 
    77                --> 
    8                 <ndg:separator><![CDATA[;;]]></ndg:separator> 
     8                <separator><![CDATA[;;]]></separator> 
    99        </ndg:configuration> 
    1010         
    1111        <!-- NUMERICAL_REQUIREMENTS.label --> 
    12         <ndg:addLabel> 
    13                 <ndg:ontSubject> 
    14                         http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements                  
    15                 </ndg:ontSubject> 
    16                 <ndg:xquery> 
     12        <ndg:Action> 
     13                <ndg:addLabel> 
     14                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements"/>  
     15                </ndg:addLabel> 
     16                <xquery> 
    1717                        <![CDATA[ 
    1818                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    2222                                                concat($sn/id, ";;", $sn/id) 
    2323                ]]> 
    24                 </ndg:xquery> 
    25         </ndg:addLabel> 
     24                </xquery> 
     25        </ndg:Action> 
    2626 
    2727        <!-- NUMERICAL_REQUIREMENTS.comment --> 
    28         <ndg:addComment> 
    29                 <ndg:ontSubject> 
    30                         http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements 
    31                 </ndg:ontSubject>                
    32                 <ndg:xquery> 
     28        <ndg:Action> 
     29                <ndg:addComment> 
     30                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements"/>                          
     31                </ndg:addComment> 
     32                <xquery> 
    3333                        <![CDATA[ 
    3434                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    3737                                return 
    3838                                                concat($sn/id, ";;", $sn/description) 
    39                 ]]>             
    40                 </ndg:xquery>            
    41         </ndg:addComment> 
     39                ]]>   
     40                </xquery> 
     41        </ndg:Action>    
    4242         
    4343        <!-- NUMERICAL_REQUIREMENTS.triple --> 
    44         <ndg:addTriple> 
    45                 <ndg:ontSubject> 
    46                         http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements 
    47                 </ndg:ontSubject> 
    48                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputType"/> 
    49                 <ndg:ontObject> 
    50                         http://www.earthsystemgrid.org/esg.owl#InputCondition 
    51                 </ndg:ontObject> 
    52                 <ndg:xquery> 
     44        <ndg:Action> 
     45                <ndg:addTriple> 
     46                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements"/>  
     47                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputType"/>                    
     48                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/> 
     49                </ndg:addTriple> 
     50                <xquery> 
    5351                        <![CDATA[ 
    5452                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    6361                                        then concat($sn/id, ";;", 'ancillary') 
    6462                                        else empty 
    65                 ]]>   
    66                 </ndg:xquery> 
    67         </ndg:addTriple> 
     63                ]]>        
     64                </xquery> 
     65        </ndg:Action> 
     66 
    6867         
    6968        <!-- NUMERICAL_EXPERIMENT.label --> 
    70         <ndg:addLabel> 
    71                 <ndg:ontSubject> 
    72                         http://www.earthsystemgrid.org/esg.owl#Experiment                
    73                 </ndg:ontSubject> 
    74                 <ndg:xquery> 
     69        <ndg:Action> 
     70                <ndg:addLabel> 
     71                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     72                </ndg:addLabel> 
     73                <xquery> 
    7574                        <![CDATA[ 
    7675                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    7877                                concat(numericalExperiment/documentID, ";;", numericalExperiment/rationale) 
    7978             ]]> 
    80                 </ndg:xquery> 
    81         </ndg:addLabel>  
    82          
     79                </xquery> 
     80        </ndg:Action> 
     81 
     82 
    8383        <!-- NUMERICAL_EXPERIMENT.comment --> 
    84         <ndg:addComment> 
    85                 <ndg:ontSubject> 
    86                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    87                 </ndg:ontSubject> 
    88                 <ndg:xquery> 
     84        <ndg:Action> 
     85                <ndg:addComment> 
     86                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>                        
     87                </ndg:addComment> 
     88                <xquery> 
    8989                        <![CDATA[ 
    9090                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    9292                                concat(numericalExperiment/documentID, ";;", numericalExperiment/rationale) 
    9393             ]]> 
    94                 </ndg:xquery> 
    95         </ndg:addComment> 
     94                </xquery> 
     95        </ndg:Action>    
     96 
    9697         
    9798        <!-- NUMERICAL_EXPERIMENT.literals --> 
    98         <ndg:addTripleLiteral> 
    99                 <ndg:ontSubject> 
    100                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    101                 </ndg:ontSubject> 
    102                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentRationale"/>          
    103                 <ndg:xquery> 
     99        <ndg:Action> 
     100                <ndg:addTripleLiteral> 
     101                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     102                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentRationale"/>                  
     103                </ndg:addTripleLiteral> 
     104                <xquery> 
    104105                        <![CDATA[ 
    105106                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
    106107                                declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance"; 
    107108                                concat(numericalExperiment/documentID, ";;", numericalExperiment/rationale)                              
    108              ]]>             
    109                 </ndg:xquery>            
    110         </ndg:addTripleLiteral> 
     109             ]]>            
     110                </xquery> 
     111        </ndg:Action> 
    111112         
    112         <ndg:addTripleLiteral> 
    113                 <ndg:ontSubject> 
    114                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    115                 </ndg:ontSubject> 
    116                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentStartDate"/>          
    117                 <ndg:xquery> 
     113        <ndg:Action> 
     114                <ndg:addTripleLiteral> 
     115                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     116                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentStartDate"/>                  
     117                </ndg:addTripleLiteral> 
     118                <xquery> 
    118119                        <![CDATA[ 
    119120                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
    120121                                declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance"; 
    121122                                concat(numericalExperiment/documentID, ";;", numericalExperiment/numericalRequirement/requiredDuration/startDate) 
    122              ]]>             
    123                 </ndg:xquery>            
    124         </ndg:addTripleLiteral> 
     123             ]]>              
     124                </xquery> 
     125        </ndg:Action>    
    125126         
    126         <ndg:addTripleLiteral> 
    127                 <ndg:ontSubject> 
    128                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    129                 </ndg:ontSubject> 
    130                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentEndDate"/>            
    131                 <ndg:xquery> 
     127        <ndg:Action> 
     128                <ndg:addTripleLiteral> 
     129                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     130                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentEndDate"/>                    
     131                </ndg:addTripleLiteral> 
     132                <xquery> 
    132133                        <![CDATA[ 
    133134                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
    134135                                declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance"; 
    135136                                concat(numericalExperiment/documentID, ";;", numericalExperiment/numericalRequirement/requiredDuration/endDate)                          
    136              ]]>             
    137                 </ndg:xquery>            
    138         </ndg:addTripleLiteral>  
     137             ]]>                
     138                </xquery> 
     139        </ndg:Action> 
    139140         
    140         <ndg:addTripleLiteral> 
    141                 <ndg:ontSubject> 
    142                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    143                 </ndg:ontSubject> 
    144                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentNumber"/>             
    145                 <ndg:xquery> 
     141        <ndg:Action> 
     142                <ndg:addTripleLiteral> 
     143                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     144                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentNumber"/>                     
     145                </ndg:addTripleLiteral> 
     146                <xquery> 
    146147                        <![CDATA[ 
    147148                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
    148149                                declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance";                               
    149150                                concat(numericalExperiment/documentID, ";;", numericalExperiment/documentID) 
    150              ]]>             
    151                 </ndg:xquery>            
    152         </ndg:addTripleLiteral>  
     151             ]]>                    
     152                </xquery> 
     153        </ndg:Action>    
     154         
    153155         
    154156        <!-- NUMERICAL_EXPERIMENT.triple --> 
    155         <ndg:addTriple> 
    156                 <ndg:ontSubject> 
    157                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    158                 </ndg:ontSubject> 
    159                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasProject"/> 
    160                 <ndg:ontObject> 
    161                         http://www.earthsystemgrid.org/esg.owl#Project 
    162                 </ndg:ontObject> 
    163                 <ndg:xquery> 
     157        <ndg:Action> 
     158                <ndg:addTriple> 
     159                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     160                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasProject"/>                      
     161                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Project"/> 
     162                </ndg:addTriple> 
     163                <xquery> 
    164164                        <![CDATA[ 
    165165                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
    166166                                declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance"; 
    167167                                concat(numericalExperiment/documentID, ";;", 'cmip5')                            
    168              ]]>    
    169                 </ndg:xquery> 
    170         </ndg:addTriple>         
     168             ]]>         
     169                </xquery> 
     170        </ndg:Action> 
    171171         
    172         <ndg:addTriple> 
    173                 <ndg:ontSubject> 
    174                         http://www.earthsystemgrid.org/esg.owl#Experiment 
    175                 </ndg:ontSubject> 
    176                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalRequirement"/> 
    177                 <ndg:ontObject> 
    178                         http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements 
    179                 </ndg:ontObject> 
    180                 <ndg:xquery> 
     172        <ndg:Action> 
     173                <ndg:addTriple> 
     174                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Experiment"/>  
     175                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalRequirement"/>                      
     176                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalRequirements"/> 
     177                </ndg:addTriple> 
     178                <xquery> 
    181179                        <![CDATA[ 
    182180                                declare default element namespace "http://www.metaforclimate.eu/cim/1.4"; 
     
    185183                                        return 
    186184                                                        concat(numericalExperiment/documentID, ";;", $sn/id) 
    187              ]]>    
    188                 </ndg:xquery> 
    189         </ndg:addTriple> 
    190          
     185             ]]>           
     186                </xquery> 
     187        </ndg:Action>            
    191188</ndg:ingester>     
  • mauRepo/xml2owl/trunk/src/test/resources/ingesterConfig.xml

    r7797 r7799  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<ndg:ingester xmlns:ndg="http://ndg.badc.org/ontologyIngester"> 
     3 
    34         
    45        <ndg:configuration> 
    56                <ndg:node external="lookup" path="/home/users/mnagni/workspace/ESGGateway/metafor/src/test/resources/lookup.xml"/> 
    67                <ndg:node external="metaforMapping" path="/home/users/mnagni/workspace/ESGGateway/metafor/src/test/resources/MetaforESGMapping.xml"/> 
    7                 <ndg:separator><![CDATA[;;]]></ndg:separator> 
     8                <separator><![CDATA[;;]]></separator> 
    89        </ndg:configuration> 
    910         
    1011        <!-- PLATFORM --> 
    1112        <!-- PLATFORM.triples --> 
    12         <ndg:addTriple> 
    13                 <ndg:ontSubject> 
    14                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    15                 </ndg:ontSubject> 
    16                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasOperatingSystem"/> 
    17                 <ndg:ontObject> 
    18                         http://www.earthsystemgrid.org/esg.owl#OperatingSystem 
    19                 </ndg:ontObject> 
    20                 <ndg:xquery> 
     13        <ndg:Action> 
     14                <ndg:addTriple>                  
     15                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/> 
     16                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasOperatingSystem"/> 
     17                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#OperatingSystem"/> 
     18                </ndg:addTriple> 
     19                <xquery> 
    2120                        <![CDATA[ 
    2221                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    2726                                        $compVer in $plat/compiler/compilerVersion  
    2827                                return 
    29                                     concat($mac/machineName, "_", 
     28                                    concat($plat/documentID, "_", $mac/machineName, "_", 
    3029                                    $mac/machineVendor, "_", 
    3130                                    $compName, "_", 
    3231                                    $compVer, ";;", $obj)]]> 
    33                 </ndg:xquery> 
    34         </ndg:addTriple> 
    35  
    36         <ndg:addTriple> 
    37                 <ndg:ontSubject> 
    38                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    39                 </ndg:ontSubject> 
    40                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasProcessor"/> 
    41                 <ndg:ontObject> 
    42                         http://www.earthsystemgrid.org/esg.owl#Processor 
    43                 </ndg:ontObject> 
    44                 <ndg:xquery> 
     32                </xquery>                
     33        </ndg:Action> 
     34 
     35        <ndg:Action> 
     36                <ndg:addTriple> 
     37                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     38                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasProcessor"/> 
     39                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Processor"/> 
     40                </ndg:addTriple> 
     41                <xquery> 
    4542                        <![CDATA[ 
    4643                            declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    5148                                        $compVer in $plat/compiler/compilerVersion  
    5249                                return 
    53                                     concat($mac/machineName, "_", 
     50                                    concat($plat/documentID, "_", $mac/machineName, "_", 
    5451                                    $mac/machineVendor, "_", 
    5552                                    $compName, "_", 
    5653                                    $compVer, ";;", $obj)]]> 
    57                 </ndg:xquery> 
    58         </ndg:addTriple> 
    59          
    60         <ndg:addTriple> 
    61                 <ndg:ontSubject> 
    62                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    63                 </ndg:ontSubject> 
    64                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasHardwareType"/> 
    65                 <ndg:ontObject> 
    66                         http://www.earthsystemgrid.org/esg.owl#HardwareType 
    67                 </ndg:ontObject> 
    68                 <ndg:xquery> 
     54                </xquery> 
     55        </ndg:Action> 
     56         
     57        <ndg:Action> 
     58                <ndg:addTriple> 
     59                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     60                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasHardwareType"/> 
     61                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#HardwareType"/> 
     62                </ndg:addTriple> 
     63                <xquery> 
    6964                        <![CDATA[ 
    7065                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    7570                                        $compVer in $plat/compiler/compilerVersion  
    7671                                return 
    77                                         concat($mac/machineName, "_", 
     72                                        concat($plat/documentID, "_", $mac/machineName, "_", 
    7873                                        $mac/machineVendor, "_", 
    7974                                        $compName, "_", 
    8075                                        $compVer, ";;", $obj)]]> 
    81                 </ndg:xquery> 
    82         </ndg:addTriple> 
    83  
    84         <ndg:addTriple> 
    85                 <ndg:ontSubject> 
    86                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    87                 </ndg:ontSubject> 
    88                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInterconnectType"/> 
    89                 <ndg:ontObject> 
    90                         http://www.earthsystemgrid.org/esg.owl#InterconnectType 
    91                 </ndg:ontObject> 
    92                 <ndg:xquery> 
     76                </xquery> 
     77        </ndg:Action> 
     78         
     79        <ndg:Action> 
     80                <ndg:addTriple> 
     81                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     82                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInterconnectType"/> 
     83                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InterconnectType"/> 
     84                </ndg:addTriple> 
     85                <xquery> 
    9386                        <![CDATA[ 
    9487                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    9992                                        $compVer in $plat/compiler/compilerVersion 
    10093                                return 
    101                                         concat($mac/machineName, "_", 
     94                                        concat($plat/documentID, "_", $mac/machineName, "_", 
    10295                                        $mac/machineVendor, "_", 
    10396                                        $compName, "_", 
    10497                                        $compVer, ";;", $obj)]]> 
    105                 </ndg:xquery> 
    106         </ndg:addTriple> 
    107  
    108         <ndg:addTriple> 
    109                 <ndg:ontSubject> 
    110                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    111                 </ndg:ontSubject> 
    112                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompiler"/> 
    113                 <ndg:ontObject> 
    114                         http://www.earthsystemgrid.org/esg.owl#LanguageCompiler 
    115                 </ndg:ontObject> 
    116                 <ndg:xquery> 
     98                </xquery> 
     99        </ndg:Action>    
     100 
     101        <ndg:Action> 
     102                <ndg:addTriple> 
     103                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     104                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompiler"/> 
     105                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#LanguageCompiler"/> 
     106                </ndg:addTriple> 
     107                <xquery> 
    117108                        <![CDATA[ 
    118109                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    122113                                        $compVer in $plat/compiler/compilerVersion 
    123114                                return 
    124                                         concat($mac/machineName, "_", 
     115                                        concat($plat/documentID, "_", $mac/machineName, "_", 
    125116                                        $mac/machineVendor, "_", 
    126117                                        $compName, "_", 
    127118                                        $compVer, ";;", $compName, "_", $compVer)]]> 
    128                 </ndg:xquery> 
    129         </ndg:addTriple> 
     119                </xquery> 
     120        </ndg:Action> 
     121 
     122 
    130123 
    131124        <!-- PLATFORM.labels --> 
    132         <ndg:addLabel> 
    133                 <ndg:ontSubject> 
    134                         http://www.earthsystemgrid.org/esg.owl#LanguageCompiler 
    135                 </ndg:ontSubject> 
    136                 <ndg:xquery> 
     125        <ndg:Action> 
     126                <ndg:addLabel> 
     127                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#LanguageCompiler"/>  
     128                </ndg:addLabel> 
     129                <xquery> 
    137130                        <![CDATA[ 
    138131                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    141134                                        $compVer in $comp/compilerVersion  
    142135                                return 
    143                                         concat($compName, "_", $compVer, ";;", $compName, "_", $compVer)]]>                 
    144                 </ndg:xquery>            
    145         </ndg:addLabel> 
     136                                        concat($compName, "_", $compVer, ";;", $compName, "_", $compVer)]]> 
     137                </xquery> 
     138        </ndg:Action> 
    146139         
    147140        <!-- PLATFORM.literals --> 
    148         <ndg:addTripleLiteral> 
    149                 <ndg:ontSubject> 
    150                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    151                 </ndg:ontSubject> 
    152                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasMaxProcessors"/>                
    153                 <ndg:xquery> 
     141        <ndg:Action> 
     142                <ndg:addTripleLiteral> 
     143                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     144                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasMaxProcessors"/>                        
     145                </ndg:addTripleLiteral> 
     146                <xquery> 
    154147                        <![CDATA[ 
    155148                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    159152                                        $compVer in $plat/compiler/compilerVersion 
    160153                                return 
    161                                         concat($mac/machineName, "_", 
     154                                        concat($plat/documentID, "_", $mac/machineName, "_", 
    162155                                        $mac/machineVendor, "_", 
    163156                                        $compName, "_", 
    164                                         $compVer, ";;", $mac/machineMaximumProcessors)]]>               
    165                 </ndg:xquery>            
    166         </ndg:addTripleLiteral> 
    167          
    168         <ndg:addTripleLiteral> 
    169                 <ndg:ontSubject> 
    170                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    171                 </ndg:ontSubject> 
    172                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasCoresPerProcessor"/>            
    173                 <ndg:xquery> 
     157                                        $compVer, ";;", $mac/machineMaximumProcessors)]]>  
     158                </xquery> 
     159        </ndg:Action> 
     160         
     161        <ndg:Action> 
     162                <ndg:addTripleLiteral> 
     163                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/>  
     164                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasCoresPerProcessor"/>                    
     165                </ndg:addTripleLiteral> 
     166                <xquery> 
    174167                        <![CDATA[ 
    175168                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    179172                                        $compVer in $plat/compiler/compilerVersion 
    180173                                return 
    181                                         concat($mac/machineName, "_", 
     174                                        concat($plat/documentID, "_", $mac/machineName, "_", 
    182175                                        $mac/machineVendor, "_", 
    183176                                        $compName, "_", 
    184                                         $compVer, ";;", $mac/machineCoresPerProcessor)]]>               
    185                 </ndg:xquery>            
    186         </ndg:addTripleLiteral> 
    187  
    188         <ndg:addTripleLiteral> 
    189                 <ndg:ontSubject> 
    190                         http://www.earthsystemgrid.org/esg.owl#LanguageCompiler 
    191                 </ndg:ontSubject> 
    192                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompilerVersion"/>              
    193                 <ndg:xquery> 
     177                                        $compVer, ";;", $mac/machineCoresPerProcessor)]]>   
     178                </xquery> 
     179        </ndg:Action> 
     180         
     181        <ndg:Action> 
     182                <ndg:addTripleLiteral> 
     183                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#LanguageCompiler"/>  
     184                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompilerVersion"/>                      
     185                </ndg:addTripleLiteral> 
     186                <xquery> 
    194187                        <![CDATA[ 
    195188                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    199192                                return 
    200193                                        concat($compName, "_", 
    201                                         $compVer, ";;", $compVer)]]>               
    202                 </ndg:xquery>            
    203         </ndg:addTripleLiteral> 
     194                                        $compVer, ";;", $compVer)]]>    
     195                </xquery> 
     196        </ndg:Action>    
     197 
    204198 
    205199        <!-- SIMULATION_RUN --> 
    206200        <!-- SIMULATION_RUN.label --> 
    207         <ndg:addLabel> 
    208                 <ndg:ontSubject> 
    209                         http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance                   
    210                 </ndg:ontSubject> 
    211                 <ndg:xquery> 
     201        <ndg:Action> 
     202                <ndg:addLabel> 
     203                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance"/>                   
     204                </ndg:addLabel> 
     205                <xquery> 
    212206                        <![CDATA[ 
    213207                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
    214208                for $sn in //CIMRecord/simulationRun//conformance/requirement/reference 
    215209                        return 
    216                                 concat($sn/name, ";;", $sn/description) 
    217                 ]]> 
    218                 </ndg:xquery> 
    219         </ndg:addLabel> 
     210                                concat(//CIMRecord/simulationRun/documentID, "_", $sn/name, ";;", $sn/description) 
     211                ]]>    
     212                </xquery> 
     213        </ndg:Action>    
    220214 
    221215        <!-- SIMULATION_RUN.comment --> 
    222         <ndg:addComment> 
    223                 <ndg:ontSubject> 
    224                         http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance 
    225                 </ndg:ontSubject>                
    226                 <ndg:xquery> 
     216        <ndg:Action> 
     217                <ndg:addComment> 
     218                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance"/>                   
     219                </ndg:addComment> 
     220                <xquery> 
    227221                        <![CDATA[ 
    228222                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    230224                                $ref in $conf/requirement/reference 
    231225                                return 
    232                                     concat($ref/name, ";;", $ref/description)]]>               
    233                 </ndg:xquery>            
    234         </ndg:addComment> 
     226                                    concat(//CIMRecord/simulationRun/documentID, "_", $ref/name, ";;", $ref/description)]]>  
     227                </xquery> 
     228        </ndg:Action>    
     229 
    235230 
    236231        <!-- SIMULATION_RUN.literals --> 
    237         <ndg:addTripleLiteral> 
    238                 <ndg:ontSubject> 
    239                         http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance 
    240                 </ndg:ontSubject> 
    241                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformanceNote"/>          
    242                 <ndg:xquery> 
     232        <ndg:Action> 
     233                <ndg:addTripleLiteral> 
     234                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance"/>   
     235                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformanceNote"/>                  
     236                </ndg:addTripleLiteral> 
     237                <xquery> 
    243238                        <![CDATA[ 
    244239                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
    245240                                for $conf in  //CIMRecord/simulationRun/conformance, 
    246                                 $name in $conf/requirement/reference/name 
     241                                $reference in $conf/requirement/reference 
    247242                                return 
    248                                     concat($name, ";;", $conf/source/reference/description)]]>               
    249                 </ndg:xquery>            
    250         </ndg:addTripleLiteral> 
     243                                    concat(//CIMRecord/simulationRun/documentID, "_", $reference/name, ";;", $reference/description)]]> 
     244                </xquery> 
     245        </ndg:Action> 
    251246 
    252247 
    253248        <!-- MODEL_COMPONENT --> 
    254249        <!-- MODEL_COMPONENT.labels --> 
    255         <!-- model & childmodel--> 
    256         <ndg:addLabel> 
    257                 <ndg:ontSubject> 
    258                         http://www.earthsystemgrid.org/esg.owl#Model 
    259                 </ndg:ontSubject> 
    260                 <ndg:xquery> 
     250        <ndg:Action> 
     251                <ndg:addLabel> 
     252                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>                            
     253                </ndg:addLabel> 
     254                <xquery> 
     255                        <![CDATA[ 
     256                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     257                                for $comp in //CIMRecord//modelComponent  
     258                        let $coups := for $coup in $comp/composition//coupling 
     259                                let $ types := for $type in $coup/couplingSource/reference/type 
     260                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     261                                        return  
     262                                        concat($comp/documentID, "_", $type, "_", $var, ";;", $var) 
     263                        return $vars 
     264                        return $types 
     265                        return $coups]]>      
     266                </xquery> 
     267        </ndg:Action> 
     268 
     269        <!-- model & childmodel-->       
     270        <ndg:Action> 
     271                <ndg:addLabel> 
     272                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>                             
     273                </ndg:addLabel> 
     274                <xquery> 
    261275                        <![CDATA[ 
    262276                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    264278                        let $res := for $item in $comp/modelComponent | $comp/modelComponent/childComponent/modelComponent   
    265279                        return  
    266                         concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName) 
     280                        concat($item/documentID, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/documentID, ";;", $item/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName) 
    267281                        return $res                      
    268                 ]]> 
    269                 </ndg:xquery>            
    270         </ndg:addLabel>  
     282                ]]>      
     283                </xquery> 
     284        </ndg:Action> 
     285         
    271286        <!-- child's model component--> 
    272         <ndg:addLabel> 
    273                 <ndg:ontSubject> 
    274                         http://www.earthsystemgrid.org/esg.owl#ModelComponent                    
    275                 </ndg:ontSubject> 
    276                 <ndg:xquery> 
     287        <ndg:Action> 
     288                <ndg:addLabel> 
     289                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>                            
     290                </ndg:addLabel> 
     291                <xquery> 
    277292                        <![CDATA[ 
    278293                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    280295                                for $sn in $rt//childComponent/modelComponent/shortName 
    281296                                        return             
    282                                         concat($sn, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $sn, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName)  
    283                 ]]> 
    284                 </ndg:xquery>            
    285         </ndg:addLabel> 
     297                                        concat($sn/documentID, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/documentID, ";;", $sn/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName)  
     298                ]]>   
     299                </xquery> 
     300        </ndg:Action>    
     301 
    286302         
    287303        <!-- model & childmodel & child's model --> 
    288         <ndg:addLabel> 
    289                 <ndg:ontSubject> 
    290                         http://www.earthsystemgrid.org/esg.owl#Agency 
    291                 </ndg:ontSubject> 
    292                 <ndg:xquery> 
     304        <ndg:Action> 
     305                <ndg:addLabel> 
     306                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Agency"/>                            
     307                </ndg:addLabel> 
     308                <xquery> 
    293309                        <![CDATA[ 
    294310                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    309325                                             return $roles 
    310326                                  return $res 
    311                 return $nodes]]> 
    312                 </ndg:xquery>            
    313         </ndg:addLabel>  
    314          
    315          
     327                return $nodes]]>   
     328                </xquery> 
     329        </ndg:Action>    
    316330         
    317331        <!-- MODEL_COMPONENT.comment --> 
     332        <ndg:Action> 
     333                <ndg:addComment> 
     334                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>                            
     335                </ndg:addComment> 
     336                <xquery> 
     337                        <![CDATA[ 
     338                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     339                                for $comp in //CIMRecord//modelComponent  
     340                        let $coups := for $coup in $comp/composition//coupling 
     341                                let $ types := for $type in $coup/couplingSource/reference/type 
     342                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     343                                        return  
     344                                        concat($comp/documentID, "_", $type, "_", $var, ";;", $comp/description) 
     345                        return $vars 
     346                        return $types 
     347                        return $coups]]>  
     348                </xquery> 
     349        </ndg:Action>    
     350 
     351         
    318352        <!-- model & childmodel --> 
    319         <ndg:addComment> 
    320                 <ndg:ontSubject> 
    321                         http://www.earthsystemgrid.org/esg.owl#Model 
    322                 </ndg:ontSubject> 
    323                 <ndg:xquery> 
     353        <ndg:Action> 
     354                <ndg:addComment> 
     355                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>                             
     356                </ndg:addComment> 
     357                <xquery> 
    324358                        <![CDATA[ 
    325359                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    327361                        let $res := for $item in $comp/modelComponent | $comp/modelComponent/childComponent/modelComponent   
    328362                        return  
    329                         concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/description) 
    330                         return $res     ]]>               
    331                 </ndg:xquery>            
    332         </ndg:addComment> 
     363                        concat($item/documentID, ";;",  
     364                        if (string-length($item/description) > 0) then $item/description else "No description") 
     365                        return $res     ]]>         
     366                </xquery> 
     367        </ndg:Action> 
     368         
    333369        <!-- child's model component--> 
    334         <ndg:addComment> 
    335                 <ndg:ontSubject> 
    336                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    337                 </ndg:ontSubject> 
    338                 <ndg:xquery> 
     370        <ndg:Action> 
     371                <ndg:addComment> 
     372                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>                            
     373                </ndg:addComment> 
     374                <xquery> 
    339375                        <![CDATA[ 
    340376                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
    341377                        for $rt in //CIMRecord/modelComponent/childComponent/modelComponent 
    342378                                for $comp in $rt//childComponent/modelComponent 
    343                                         return             
    344                                         concat($comp/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $comp/description)]]>               
    345                 </ndg:xquery>            
    346         </ndg:addComment> 
    347  
     379                                        return                                       
     380                                        concat($comp/documentID, ";;",  
     381                                        if (string-length($comp/description) > 0) then $comp/description else "No description")]]>         
     382                </xquery> 
     383        </ndg:Action>    
    348384 
    349385        <!-- MODEL_COMPONENT.literals --> 
     386        <ndg:Action> 
     387                <ndg:addTripleLiteral> 
     388                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     389                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputFrequency"/>                       
     390                </ndg:addTripleLiteral> 
     391                <xquery> 
     392                        <![CDATA[ 
     393                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     394                                for $comp in //CIMRecord//modelComponent  
     395                        let $coups := for $coup in $comp/composition//coupling 
     396                                let $ types := for $type in $coup/couplingSource/reference/type 
     397                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     398                                        return  
     399                                        concat($comp/documentID, "_", $type, "_", $var, ";;", $coup/timeProfile/rate, " ", $coup/timeProfile/@units) 
     400                        return $vars 
     401                        return $types 
     402                        return $coups]]>          
     403                </xquery> 
     404        </ndg:Action> 
     405         
    350406        <!-- model and childmodel --> 
    351         <ndg:addTripleLiteral> 
    352                 <ndg:ontSubject> 
    353                         http://www.earthsystemgrid.org/esg.owl#Model 
    354                 </ndg:ontSubject> 
    355                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>             
    356                 <ndg:xquery> 
     407        <ndg:Action> 
     408                <ndg:addTripleLiteral> 
     409                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     410                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>                     
     411                </ndg:addTripleLiteral> 
     412                <xquery> 
    357413                        <![CDATA[ 
    358414                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    360416                        let $res := for $item in $comp/modelComponent | $comp/modelComponent/childComponent/modelComponent   
    361417                        return  
    362                         concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/longName) 
    363                         return $res]]>              
    364                 </ndg:xquery>            
    365         </ndg:addTripleLiteral> 
     418                        concat($item/documentID, ";;",  
     419                        if (string-length($item/longName) > 0) then $item/longName else "No longName") 
     420                        return $res]]>        
     421                </xquery> 
     422        </ndg:Action> 
    366423        <!-- child's model component--> 
    367         <ndg:addTripleLiteral> 
    368                 <ndg:ontSubject> 
    369                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    370                 </ndg:ontSubject> 
    371                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>             
    372                 <ndg:xquery> 
     424        <ndg:Action> 
     425                <ndg:addTripleLiteral> 
     426                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     427                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>                     
     428                </ndg:addTripleLiteral> 
     429                <xquery> 
    373430                        <![CDATA[ 
    374431                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    376433                                for $comp in $rt//childComponent/modelComponent 
    377434                                return 
    378                                         concat($comp/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $comp/longName)]]>              
    379                 </ndg:xquery>            
    380         </ndg:addTripleLiteral> 
     435                                        concat($comp/documentID, ";;",  
     436                                        if (string-length($comp/longName) > 0) then $comp/longName else "No longName")]]>        
     437                </xquery> 
     438        </ndg:Action>    
    381439         
    382440        <!-- model & childmodel & child's model -->      
    383         <ndg:addTripleLiteral> 
    384                 <ndg:ontSubject> 
    385                         http://www.earthsystemgrid.org/esg.owl#Contact 
    386                 </ndg:ontSubject> 
    387                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactName"/>          
    388                 <ndg:xquery> 
     441        <ndg:Action> 
     442                <ndg:addTripleLiteral> 
     443                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/>  
     444                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactName"/>                  
     445                </ndg:addTripleLiteral> 
     446                <xquery> 
    389447                        <![CDATA[ 
    390448                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    403461                                             return $roles 
    404462                                  return $res 
    405                 return $nodes]]>              
    406                 </ndg:xquery>            
    407         </ndg:addTripleLiteral> 
     463                return $nodes]]>         
     464                </xquery> 
     465        </ndg:Action>    
    408466 
    409467        <!-- model & childmodel & child's model -->      
    410         <ndg:addTripleLiteral> 
    411                 <ndg:ontSubject> 
    412                         http://www.earthsystemgrid.org/esg.owl#Contact 
    413                 </ndg:ontSubject> 
    414                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasEmail"/>                
    415                 <ndg:xquery> 
     468        <ndg:Action> 
     469                <ndg:addTripleLiteral> 
     470                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/>  
     471                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasEmail"/>                        
     472                </ndg:addTripleLiteral> 
     473                <xquery> 
    416474                        <![CDATA[ 
    417475                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    430488                                             return $roles 
    431489                                  return $res 
    432                 return $nodes]]>              
    433                 </ndg:xquery>            
    434         </ndg:addTripleLiteral> 
     490                return $nodes]]>         
     491                </xquery> 
     492        </ndg:Action> 
    435493         
    436494        <!-- model and childmodel -->    
    437         <ndg:addTripleLiteral> 
    438                 <ndg:ontSubject> 
    439                         http://www.earthsystemgrid.org/esg.owl#Model 
    440                 </ndg:ontSubject> 
    441                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>          
    442                 <ndg:xquery> 
     495        <ndg:Action> 
     496                <ndg:addTripleLiteral> 
     497                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     498                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>                  
     499                </ndg:addTripleLiteral> 
     500                <xquery> 
    443501                        <![CDATA[ 
    444502                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    451509                                                             return 
    452510                                                                if ($role = 'centre') 
    453                                                                 then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString)                                            
     511                                                                then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString)                                                  
    454512                                                            else empty 
    455513                                                     return $roles 
    456514                                          return $res 
    457                         return $nodes]]>              
    458                 </ndg:xquery>            
    459         </ndg:addTripleLiteral> 
     515                        return $nodes]]>         
     516                </xquery> 
     517        </ndg:Action> 
     518 
    460519        <!-- child's model component-->  
    461         <ndg:addTripleLiteral> 
    462                 <ndg:ontSubject> 
    463                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    464                 </ndg:ontSubject> 
    465                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>          
    466                 <ndg:xquery> 
     520        <ndg:Action> 
     521                <ndg:addTripleLiteral> 
     522                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     523                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>                  
     524                </ndg:addTripleLiteral> 
     525                <xquery> 
    467526                        <![CDATA[ 
    468527                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    475534                                             return 
    476535                                                if ($role = 'centre') 
    477                                                 then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString)                                            
     536                                                then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString)                                                  
    478537                                            else empty 
    479538                                     return $roles 
    480539                          return $res 
    481             return $nodes]]>              
    482                 </ndg:xquery>            
    483         </ndg:addTripleLiteral> 
     540            return $nodes]]>       
     541                </xquery> 
     542        </ndg:Action> 
    484543 
    485544 
    486545        <!-- model and childmodel -->    
    487         <ndg:addTripleLiteral> 
    488                 <ndg:ontSubject> 
    489                         http://www.earthsystemgrid.org/esg.owl#Model 
    490                 </ndg:ontSubject> 
    491                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>            
    492                 <ndg:xquery> 
     546        <ndg:Action> 
     547                <ndg:addTripleLiteral> 
     548                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     549                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>                    
     550                </ndg:addTripleLiteral> 
     551                <xquery> 
    493552                        <![CDATA[ 
    494553                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    499558                                        let $res := for $item in $res/citation 
    500559                                            return 
    501                                                 concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;",  
     560                                                concat($res/documentID, ";;",  
    502561                                                $item/gmd:CI_Citation/gmd:collectiveTitle/gco:CharacterString, " ", $item/gmd:CI_Citation/gmd:citationDetails/gco:CharacterString)                                                
    503562                                      return $res 
    504                                 return $nodes]]>              
    505                 </ndg:xquery>            
    506         </ndg:addTripleLiteral> 
     563                                return $nodes]]>       
     564                </xquery> 
     565        </ndg:Action> 
    507566         
    508567         
    509568        <!-- child's model component-->  
    510         <ndg:addTripleLiteral> 
    511                 <ndg:ontSubject> 
    512                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    513                 </ndg:ontSubject> 
    514                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>            
    515                 <ndg:xquery> 
     569        <ndg:Action> 
     570                <ndg:addTripleLiteral> 
     571                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     572                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>                    
     573                </ndg:addTripleLiteral> 
     574                <xquery> 
    516575                        <![CDATA[ 
    517576                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    522581                                let $res := for $item in $res//citation 
    523582                                                return  
    524                                                         concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:CI_Citation/gmd:collectiveTitle/gco:CharacterString, " ", $item/gmd:CI_Citation/gmd:citationDetails/gco:CharacterString) 
     583                                                        concat($res/documentID, ";;", $item/gmd:CI_Citation/gmd:collectiveTitle/gco:CharacterString, " ", $item/gmd:CI_Citation/gmd:citationDetails/gco:CharacterString) 
    525584                          return $res 
    526             return $nodes]]>              
    527                 </ndg:xquery>            
    528         </ndg:addTripleLiteral> 
    529  
     585            return $nodes]]>      
     586                </xquery> 
     587        </ndg:Action> 
    530588 
    531589 
    532590         
    533591        <!-- MODEL_COMPONENT.triples --> 
    534         <ndg:addTriple> 
    535                 <ndg:ontSubject> 
    536                         http://www.earthsystemgrid.org/esg.owl#Model 
    537                 </ndg:ontSubject> 
    538                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasComputingEnvironment"/> 
    539                 <ndg:ontObject> 
    540                         http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    541                 </ndg:ontObject> 
    542                 <ndg:xquery> 
     592        <ndg:Action> 
     593                <ndg:addTriple> 
     594                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     595                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputType"/>                    
     596                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputType"/> 
     597                </ndg:addTriple> 
     598                <xquery> 
     599                        <![CDATA[ 
     600                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";         
     601                                declare namespace xs = "http://www.w3.org/2001/XMLSchema";       
     602                                declare namespace ndg = "http://www.ndg.ac.uk";  
     603                                declare variable $metaforMapping external; 
     604                                declare function ndg:getValueFromMap  
     605                                        ($node as node()*, $arg as xs:string)  as xs:string* { 
     606                                        let $ret := for $el in $node 
     607                                             return 
     608                                             if (data($el/@metaforName) = $arg) 
     609                                                 then data($el/@esgName) 
     610                                                 else data(())                    
     611                                        return 
     612                                        if (count($ret) > 0) 
     613                                        then $ret[1] 
     614                                        else data(()) 
     615                                }; 
     616                                 
     617                                for $comp in //CIMRecord//modelComponent 
     618                                let $coups := for $coup in $comp/composition//coupling 
     619                                let $ types := for $type in $coup/couplingSource/reference/type 
     620                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     621                                        return  
     622                                        concat($comp/documentID, "_", $type, "_", $var, ";;", ndg:getValueFromMap($metaforMapping//ndg:entry, $coup/@purpose)) 
     623                        return $vars 
     624                        return $types 
     625                        return $coups]]>      
     626                </xquery> 
     627        </ndg:Action> 
     628 
     629        <ndg:Action> 
     630                <ndg:addTriple> 
     631                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     632                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputCondition"/>                       
     633                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/> 
     634                </ndg:addTriple> 
     635                <xquery> 
     636                        <![CDATA[ 
     637                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     638                                for $comp in //CIMRecord/modelComponent | //CIMRecord/modelComponent/childComponent/modelComponent 
     639                                let $coups := for $coup in $comp/composition//coupling 
     640                                let $ types := for $type in $coup/couplingSource/reference/type 
     641                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     642                                        return  
     643                                        concat($comp/documentID, ";;", $comp/documentID, "_", $type, "_", $var) 
     644                        return $vars 
     645                        return $types 
     646                        return $coups]]>        
     647                </xquery> 
     648        </ndg:Action>    
     649         
     650        <ndg:Action> 
     651                <ndg:addTriple> 
     652                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     653                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputSpatialRegriddingMethod"/>                         
     654                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputSpatialRegriddingMethod"/> 
     655                </ndg:addTriple> 
     656                <xquery> 
     657                        <![CDATA[ 
     658                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     659                                for $comp in //CIMRecord//modelComponent 
     660                                let $coups := for $coup in $comp/composition//coupling 
     661                                let $ types := for $type in $coup/couplingSource/reference/type 
     662                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     663                                        return  
     664                                            if ($coup/spatialRegridding/@conservativeSpatialRegridding = "true") 
     665                                                then concat($comp/documentID, "_", $type, "_", $var, ";;", "conservative") 
     666                                            else if ($coup/spatialRegridding/@conservativeSpatialRegridding = "false") 
     667                                                        then concat($comp/documentID, "_", $type, "_", $var, ";;", "non-conservative") 
     668                                                        else concat($comp/documentID, "_", $type, "_", $var, ";;", empty) 
     669                        return $vars 
     670                        return $types 
     671                        return $coups]]>         
     672                </xquery> 
     673        </ndg:Action> 
     674 
     675         
     676        <ndg:Action> 
     677                <ndg:addTripleLiteral> 
     678                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     679                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputSourceDataset"/>                   
     680                </ndg:addTripleLiteral> 
     681                <xquery> 
     682                        <![CDATA[ 
     683                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                   
     684                                for $comp in //CIMRecord//modelComponent 
     685                                let $coups := for $coup in $comp/composition//coupling 
     686                                let $ refs := for $ref in $coup/couplingSource/reference 
     687                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     688                                        where ($ref/type = "dataObject") 
     689                                        return 
     690                                                concat($comp/documentID, "_", $ref/type, "_", $var, ";;", $ref/id) 
     691                        return $vars 
     692                        return $refs 
     693                        return $coups]]>           
     694                </xquery> 
     695        </ndg:Action> 
     696         
     697        <!-- model and childmodel --> 
     698        <ndg:Action> 
     699                <ndg:addTriple> 
     700                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     701                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputSourceComponent"/>                         
     702                        <ndg:ontObject dynamic="true"/> 
     703                </ndg:addTriple> 
     704                <xquery> 
     705                        <![CDATA[ 
     706                        declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     707                        let $nodes := //CIMRecord/modelComponent | //CIMRecord/modelComponent/childComponent/modelComponent 
     708                        for $comp in //CIMRecord//modelComponent 
     709                        let $coups := for $coup in $comp/composition//coupling 
     710                        let $refs := for $ref in $coup/couplingSource/reference 
     711                        let $vars := for $var in $coup/connection/connectionTarget/reference/name 
     712                        where ($ref/type = "modelComponent") 
     713                        return 
     714                        for $md in $nodes 
     715                        return  
     716                        if ($md/documentID = $ref/id) 
     717                        then 
     718                        concat($comp/documentID, "_", $ref/type, "_", $var, ";;", $ref/id, ";;", "http://www.earthsystemgrid.org/esg.owl#Model") 
     719                        else ""                                                                  
     720                        return $vars 
     721                        return $refs 
     722                        return $coups]]>                                                 
     723                </xquery> 
     724        </ndg:Action>    
     725        <!-- child's model component--> 
     726        <ndg:Action> 
     727                <ndg:addTriple> 
     728                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     729                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputSourceComponent"/>                         
     730                        <ndg:ontObject dynamic="true"/> 
     731                </ndg:addTriple> 
     732                <xquery> 
     733                        <![CDATA[ 
     734                        declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     735                        let $nodes := //CIMRecord/modelComponent/childComponent/modelComponent//childComponent/modelComponent 
     736                        for $comp in //CIMRecord//modelComponent 
     737                        let $coups := for $coup in $comp/composition//coupling 
     738                        let $refs := for $ref in $coup/couplingSource/reference 
     739                        let $vars := for $var in $coup/connection/connectionTarget/reference/name 
     740                        where ($ref/type = "modelComponent") 
     741                        return 
     742                        for $md in $nodes 
     743                        return  
     744                        if ($md/documentID = $ref/id) 
     745                        then 
     746                        concat($comp/documentID, "_", $ref/type, "_", $var, ";;", $ref/id, ";;", "http://www.earthsystemgrid.org/esg.owl#ModelComponent") 
     747                        else ""                                                                  
     748                        return $vars 
     749                        return $refs 
     750                        return $coups]]>                                                 
     751                </xquery> 
     752        </ndg:Action> 
     753         
     754        <ndg:Action> 
     755                <ndg:addTriple> 
     756                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/>  
     757                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputTimeTransformationType"/>                  
     758                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputTimeTransformationType"/> 
     759                </ndg:addTriple> 
     760                <xquery> 
     761                        <![CDATA[ 
     762                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";         
     763                                declare namespace xs = "http://www.w3.org/2001/XMLSchema";       
     764                                declare namespace ndg = "http://www.ndg.ac.uk";  
     765                                declare variable $metaforMapping external; 
     766                                declare function ndg:getValueFromMap  
     767                                        ($node as node()*, $arg as xs:string)  as xs:string* { 
     768                                        let $ret := for $el in $node 
     769                                             return 
     770                                             if (data($el/@metaforName) = $arg) 
     771                                                 then data($el/@esgName) 
     772                                                 else data(())                    
     773                                        return 
     774                                        if (count($ret) > 0) 
     775                                        then $ret[1] 
     776                                        else data(()) 
     777                                }; 
     778                                 
     779                                for $comp in //CIMRecord//modelComponent 
     780                                let $coups := for $coup in $comp/composition//coupling 
     781                                let $ types := for $type in $coup/couplingSource/reference/type 
     782                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     783                                        return  
     784                                                if (exists(ndg:getValueFromMap($metaforMapping//ndg:entry, $coup/timeTransformation/mappingType/@value))) 
     785                                                then concat($comp/documentID, "_", $type, "_", $var, ";;", ndg:getValueFromMap($metaforMapping//ndg:entry, $coup/timeTransformation/mappingType/@value)) 
     786                                            else concat($comp/documentID, "_", $type, "_", $var, ";;", $coup/timeTransformation/mappingType/@value)                                      
     787                        return $vars 
     788                        return $types 
     789                        return $coups]]>          
     790                </xquery> 
     791        </ndg:Action>    
     792         
     793        <!-- child's model component--> 
     794        <ndg:Action> 
     795                <ndg:addTriple> 
     796                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     797                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInputCondition"/>                       
     798                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#InputCondition"/> 
     799                </ndg:addTriple> 
     800                <xquery> 
     801                        <![CDATA[ 
     802                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     803                        for $rt in //CIMRecord/modelComponent/childComponent/modelComponent 
     804                                for $comp in $rt//childComponent/modelComponent 
     805                                let $coups := for $coup in $comp/composition//coupling 
     806                                let $ types := for $type in $coup/couplingSource/reference/type 
     807                                        let $ vars := for $var in $coup/connection/connectionTarget/reference/name 
     808                                        return  
     809                                        concat($comp/documentID, ";;", $comp/documentID, "_", $type, "_", $var) 
     810                        return $vars 
     811                        return $types 
     812                        return $coups]]>         
     813                </xquery> 
     814        </ndg:Action> 
     815 
     816        <ndg:Action> 
     817                <ndg:addTriple> 
     818                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     819                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasComputingEnvironment"/>                         
     820                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment"/> 
     821                </ndg:addTriple> 
     822                <xquery> 
    543823                        <![CDATA[ 
    544824                            declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    549829                                        $compVer in $plat/compiler/compilerVersion  
    550830                                return 
    551                                     concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $mac/machineName, "_", 
     831                                    concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/documentID, ";;", $mac/machineName, "_", 
    552832                                    $mac/machineVendor, "_", 
    553833                                    $compName, "_", 
    554                                     $compVer)]]> 
    555                 </ndg:xquery> 
    556         </ndg:addTriple>                 
    557  
    558         <ndg:addTriple> 
    559                 <ndg:ontSubject> 
    560                         http://www.earthsystemgrid.org/esg.owl#Model 
    561                 </ndg:ontSubject> 
    562                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformance"/> 
    563                 <ndg:ontObject> 
    564                         http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance 
    565                 </ndg:ontObject> 
    566                 <ndg:xquery> 
     834                                    $compVer)]]>       
     835                </xquery> 
     836        </ndg:Action> 
     837 
     838        <ndg:Action> 
     839                <ndg:addTriple> 
     840                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     841                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformance"/>                      
     842                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance"/> 
     843                </ndg:addTriple> 
     844                <xquery> 
    567845                        <![CDATA[ 
    568846                            declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";     
     
    574852                                for $confName in //CIMRecord/simulationRun/conformance                                   
    575853                                return 
    576                                     concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $confName/requirement/reference/name)]]> 
    577                 </ndg:xquery> 
    578         </ndg:addTriple> 
     854                                    concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/documentID, ";;", $confName/requirement/reference/name)]]>      
     855                </xquery> 
     856        </ndg:Action> 
     857 
     858 
    579859 
    580860 
    581861        <!-- model and childmodel --> 
    582         <ndg:addTriple> 
    583                 <ndg:ontSubject> 
    584                         http://www.earthsystemgrid.org/esg.owl#Model 
    585                 </ndg:ontSubject> 
    586                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/> 
    587                 <ndg:ontObject> 
    588                         http://www.earthsystemgrid.org/esg.owl#PhysicalDomain 
    589                 </ndg:ontObject> 
    590                 <ndg:xquery> 
     862        <ndg:Action> 
     863                <ndg:addTriple> 
     864                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     865                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/>                       
     866                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#PhysicalDomain"/> 
     867                </ndg:addTriple> 
     868                <xquery> 
    591869                        <![CDATA[ 
    592870                        declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    597875                                                return 
    598876                                                if ($type = 'AtmosphericChemistry' or $type = 'atmosphere' or $type = 'Atmosphere' or $type = 'Aerosols') 
    599                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Atmosphere')                                          
     877                                                then concat($item/documentID, ";;", 'Atmosphere')                                                
    600878                                            else if ($type = 'LandIce') 
    601                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Ice') 
     879                                                then concat($item/documentID, ";;", 'Ice') 
    602880                                            else if ($type = 'LandSurface') 
    603                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Land')     
     881                                                then concat($item/documentID, ";;", 'Land')     
    604882                                            else if ($type = 'ocean' or $type = 'OceanBiogeoChemistry') 
    605                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Ocean') 
     883                                                then concat($item/documentID, ";;", 'Ocean') 
    606884                                            else empty 
    607885                                return $types 
    608                              return $res]]> 
    609                 </ndg:xquery> 
    610         </ndg:addTriple>         
     886                             return $res]]>      
     887                </xquery> 
     888        </ndg:Action> 
     889 
    611890        <!-- child's model component--> 
    612         <ndg:addTriple> 
    613                 <ndg:ontSubject> 
    614                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    615                 </ndg:ontSubject> 
    616                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/> 
    617                 <ndg:ontObject> 
    618                         http://www.earthsystemgrid.org/esg.owl#PhysicalDomain 
    619                 </ndg:ontObject> 
    620                 <ndg:xquery> 
     891        <ndg:Action> 
     892                <ndg:addTriple> 
     893                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     894                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/>                       
     895                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#PhysicalDomain"/> 
     896                </ndg:addTriple> 
     897                <xquery> 
    621898                        <![CDATA[ 
    622899                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    627904                                                        return 
    628905                                                        if ($type = 'AtmosphericChemistry' or $type = 'atmosphere' or $type = 'Atmosphere' or $type = 'Aerosols') 
    629                                                         then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Atmosphere')                                          
     906                                                        then concat($item/documentID, ";;", 'Atmosphere')                                                
    630907                                                    else if ($type = 'LandIce') 
    631                                                         then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Ice') 
     908                                                        then concat($item/documentID, ";;", 'Ice') 
    632909                                                    else if ($type = 'LandSurface') 
    633                                                         then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Land')     
     910                                                        then concat($item/documentID, ";;", 'Land')     
    634911                                                    else if ($type = 'ocean' or $type = 'OceanBiogeoChemistry') 
    635                                                         then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'Ocean') 
     912                                                        then concat($item/documentID, ";;", 'Ocean') 
    636913                                                    else empty 
    637914                                        return $types 
    638                                      return $res]]> 
    639                 </ndg:xquery> 
    640         </ndg:addTriple>         
     915                                     return $res]]>    
     916                </xquery> 
     917        </ndg:Action> 
    641918                         
    642919                         
    643920        <!-- model and childmodel --> 
    644         <ndg:addTriple> 
    645                 <ndg:ontSubject> 
    646                         http://www.earthsystemgrid.org/esg.owl#Model 
    647                 </ndg:ontSubject> 
    648                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/> 
    649                 <ndg:ontObject> 
    650                         http://www.earthsystemgrid.org/esg.owl#Topic 
    651                 </ndg:ontObject> 
    652                 <ndg:xquery> 
    653                 <![CDATA[ 
     921        <ndg:Action> 
     922                <ndg:addTriple> 
     923                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     924                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/>                        
     925                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Topic"/> 
     926                </ndg:addTriple> 
     927                <xquery> 
     928                        <![CDATA[ 
    654929                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
    655930                                for $comp in //CIMRecord  
     
    659934                                                return 
    660935                                                if ($type = 'AtmosphericChemistry' or $type = 'atmosphere' or $type = 'Atmosphere') 
    661                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'atmos')                                               
     936                                                then concat($item/documentID, ";;", 'atmos')                                             
    662937                                            else if ($type = 'LandIce') 
    663                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'landice') 
     938                                                then concat($item/documentID, ";;", 'landice') 
    664939                                            else if ($type = 'LandSurface') 
    665                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'land')     
     940                                                then concat($item/documentID, ";;", 'land')     
    666941                                            else if ($type = 'ocean') 
    667                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'ocean') 
     942                                                then concat($item/documentID, ";;", 'ocean') 
    668943                                            else empty 
    669944                                return $types 
    670                              return $res]]> 
    671                 </ndg:xquery> 
    672         </ndg:addTriple> 
     945                             return $res]]>   
     946                </xquery> 
     947        </ndg:Action> 
     948         
    673949        <!-- child's model component-->  
    674         <ndg:addTriple> 
    675                 <ndg:ontSubject> 
    676                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    677                 </ndg:ontSubject> 
    678                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/> 
    679                 <ndg:ontObject> 
    680                         http://www.earthsystemgrid.org/esg.owl#Topic 
    681                 </ndg:ontObject> 
    682                 <ndg:xquery> 
     950        <ndg:Action> 
     951                <ndg:addTriple> 
     952                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     953                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/>                        
     954                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Topic"/> 
     955                </ndg:addTriple> 
     956                <xquery> 
    683957                        <![CDATA[ 
    684958                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    689963                                                return 
    690964                                                if ($type = 'AtmosphericChemistry' or $type = 'atmosphere' or $type = 'Atmosphere') 
    691                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'atmos')                                               
     965                                                then concat($item/documentID, ";;", 'atmos')                                             
    692966                                            else if ($type = 'LandIce') 
    693                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'landice') 
     967                                                then concat($item/documentID, ";;", 'landice') 
    694968                                            else if ($type = 'LandSurface') 
    695                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'land')     
     969                                                then concat($item/documentID, ";;", 'land')     
    696970                                            else if ($type = 'ocean') 
    697                                                 then concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", 'ocean') 
     971                                                then concat($item/documentID, ";;", 'ocean') 
    698972                                            else empty 
    699973                                return $types 
    700974                             return $res]]> 
    701                 </ndg:xquery> 
    702         </ndg:addTriple> 
    703          
     975                </xquery> 
     976        </ndg:Action> 
     977 
     978 
    704979        <!-- model --> 
    705         <ndg:addTriple> 
    706                 <ndg:ontSubject> 
    707                         http://www.earthsystemgrid.org/esg.owl#Model 
    708                 </ndg:ontSubject> 
    709                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/> 
    710                 <ndg:ontObject> 
    711                         http://www.earthsystemgrid.org/esg.owl#Model 
    712                 </ndg:ontObject> 
    713                 <ndg:xquery> 
     980        <ndg:Action> 
     981                <ndg:addTriple> 
     982                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     983                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/>                  
     984                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Model"/> 
     985                </ndg:addTriple> 
     986                <xquery> 
    714987                        <![CDATA[ 
    715988                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    718991                    let $res := for $item in $nodes               
    719992                                        return 
    720                             concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName) 
     993                            concat(CIMRecordSet/CIMRecord/CIMRecord/modelComponent/documentID, ";;", $item/documentID) 
    721994             return $res]]> 
    722                 </ndg:xquery> 
    723         </ndg:addTriple> 
     995                </xquery> 
     996        </ndg:Action> 
     997 
     998 
    724999        <!-- child model --> 
    725         <ndg:addTriple> 
    726                 <ndg:ontSubject> 
    727                         http://www.earthsystemgrid.org/esg.owl#Model 
    728                 </ndg:ontSubject> 
    729                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/> 
    730                 <ndg:ontObject> 
    731                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    732                 </ndg:ontObject> 
    733                 <ndg:xquery> 
     1000        <ndg:Action> 
     1001                <ndg:addTriple> 
     1002                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1003                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/>                  
     1004                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/> 
     1005                </ndg:addTriple> 
     1006                <xquery> 
    7341007                        <![CDATA[ 
    7351008                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    7371010                                let $res := for $item in $comp/childComponent/modelComponent               
    7381011                                        return 
    739                             concat($comp/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName) 
     1012                            concat($comp/documentID, ";;", $item/documentID) 
    7401013                             return $res]]> 
    741                 </ndg:xquery> 
    742         </ndg:addTriple>                         
     1014                </xquery> 
     1015        </ndg:Action> 
     1016 
     1017 
     1018                         
    7431019        <!-- child's model component-->  
    744         <ndg:addTriple> 
    745                 <ndg:ontSubject> 
    746                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    747                 </ndg:ontSubject> 
    748                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/> 
    749                 <ndg:ontObject> 
    750                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    751                 </ndg:ontObject> 
    752                 <ndg:xquery> 
     1020        <ndg:Action> 
     1021                <ndg:addTriple> 
     1022                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1023                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasChildModelComponent"/>                  
     1024                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/> 
     1025                </ndg:addTriple> 
     1026                <xquery> 
    7531027                        <![CDATA[ 
    7541028                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    7571031                                let $res := for $item in $nodes                 
    7581032                                        return 
    759                             concat($comp/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName) 
     1033                            concat($comp/documentID, ";;", $item/documentID) 
    7601034                             return $res]]> 
    761                 </ndg:xquery> 
    762         </ndg:addTriple>         
     1035                </xquery> 
     1036        </ndg:Action> 
    7631037         
    7641038        <!-- model and childmodel --> 
    765         <ndg:addTriple> 
    766                 <ndg:ontSubject> 
    767                         http://www.earthsystemgrid.org/esg.owl#Model 
    768                 </ndg:ontSubject> 
    769                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/> 
    770                 <ndg:ontObject> 
    771                         http://www.earthsystemgrid.org/esg.owl#Agency 
    772                 </ndg:ontObject> 
    773                 <ndg:xquery> 
     1039        <ndg:Action> 
     1040                <ndg:addTriple> 
     1041                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1042                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/>                        
     1043                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Agency"/> 
     1044                </ndg:addTriple> 
     1045                <xquery> 
    7741046                        <![CDATA[ 
    7751047                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    7831055                                                        if ($role = 'funder') 
    7841056                                                        then if (exists($item/gmd:organizationName/gco:CharacterString)) 
    785                                                          then concat($res/shortName, ";;", $item/gmd:organizationName/gco:CharacterString)                                                
     1057                                                         then concat($res/documentID, ";;", $item/gmd:organizationName/gco:CharacterString)                                               
    7861058                                                         else if (exists($item/gmd:individualName/gco:CharacterString)) 
    787                                                               then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1059                                                              then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    7881060                                                              else empty 
    7891061                                                    else empty 
     
    7911063                                  return $res 
    7921064                return $nodes]]> 
    793                 </ndg:xquery> 
    794         </ndg:addTriple> 
     1065                </xquery> 
     1066        </ndg:Action> 
    7951067                         
    7961068        <!-- model and childmodel --> 
    797         <ndg:addTriple> 
    798                 <ndg:ontSubject> 
    799                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    800                 </ndg:ontSubject> 
    801                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/> 
    802                 <ndg:ontObject> 
    803                         http://www.earthsystemgrid.org/esg.owl#Agency 
    804                 </ndg:ontObject> 
    805                 <ndg:xquery> 
     1069        <ndg:Action> 
     1070                <ndg:addTriple> 
     1071                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1072                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/>                        
     1073                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Agency"/> 
     1074                </ndg:addTriple> 
     1075                <xquery> 
    8061076                        <![CDATA[ 
    8071077                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    8151085                                                        if ($role = 'funder') 
    8161086                                                        then if (exists($item/gmd:organizationName/gco:CharacterString)) 
    817                                                          then concat($res/shortName, ";;", $item/gmd:organizationName/gco:CharacterString)                                                
     1087                                                         then concat($res/documentID, ";;", $item/gmd:organizationName/gco:CharacterString)                                               
    8181088                                                         else if (exists($item/gmd:individualName/gco:CharacterString)) 
    819                                                               then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1089                                                              then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    8201090                                                              else empty 
    8211091                                                    else empty 
     
    8231093                                  return $res 
    8241094                        return $nodes]]> 
    825                 </ndg:xquery> 
    826         </ndg:addTriple> 
     1095                </xquery> 
     1096        </ndg:Action> 
     1097 
    8271098         
    8281099        <!-- model and childmodel --> 
    829         <ndg:addTriple> 
    830                 <ndg:ontSubject> 
    831                         http://www.earthsystemgrid.org/esg.owl#Model 
    832                 </ndg:ontSubject> 
    833                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/> 
    834                 <ndg:ontObject> 
    835                         http://www.earthsystemgrid.org/esg.owl#Contact 
    836                 </ndg:ontObject> 
    837                 <ndg:xquery> 
     1100        <ndg:Action> 
     1101                <ndg:addTriple> 
     1102                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1103                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/>                        
     1104                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/> 
     1105                </ndg:addTriple> 
     1106                <xquery> 
    8381107                        <![CDATA[ 
    8391108                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    8461115                                     return 
    8471116                                        if ($role = 'contact') 
    848                                          then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1117                                         then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    8491118                                         else empty 
    8501119                             return $roles 
    8511120                  return $res 
    8521121        return $nodes]]> 
    853                 </ndg:xquery> 
    854         </ndg:addTriple> 
     1122                </xquery> 
     1123        </ndg:Action> 
    8551124                         
    8561125        <!-- model and childmodel --> 
    857         <ndg:addTriple> 
    858                 <ndg:ontSubject> 
    859                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    860                 </ndg:ontSubject> 
    861                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/> 
    862                 <ndg:ontObject> 
    863                         http://www.earthsystemgrid.org/esg.owl#Contact 
    864                 </ndg:ontObject> 
    865                 <ndg:xquery> 
     1126        <ndg:Action> 
     1127                <ndg:addTriple> 
     1128                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1129                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/>                        
     1130                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/> 
     1131                </ndg:addTriple> 
     1132                <xquery> 
    8661133                        <![CDATA[ 
    8671134                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    8741141                                     return 
    8751142                                        if ($role = 'contact') 
    876                                          then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1143                                         then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    8771144                                         else empty 
    8781145                             return $roles 
    8791146                  return $res 
    8801147        return $nodes]]> 
    881                 </ndg:xquery> 
    882         </ndg:addTriple>         
     1148                </xquery> 
     1149        </ndg:Action> 
    8831150         
    8841151        <!-- model and childmodel --> 
    885         <ndg:addTriple> 
    886                 <ndg:ontSubject> 
    887                         http://www.earthsystemgrid.org/esg.owl#Model 
    888                 </ndg:ontSubject> 
    889                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/> 
    890                 <ndg:ontObject> 
    891                         http://www.earthsystemgrid.org/esg.owl#Contact 
    892                 </ndg:ontObject> 
    893                 <ndg:xquery> 
     1152        <ndg:Action> 
     1153                <ndg:addTriple> 
     1154                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1155                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/>                   
     1156                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/> 
     1157                </ndg:addTriple> 
     1158                <xquery> 
    8941159                        <![CDATA[ 
    8951160                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    9021167                                                     return 
    9031168                                                        if ($role = 'author' or $role = 'PI') 
    904                                                          then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1169                                                         then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    9051170                                                         else empty 
    9061171                                             return $roles 
    9071172                                  return $res 
    9081173                        return $nodes]]> 
    909                 </ndg:xquery> 
    910         </ndg:addTriple> 
    911                          
     1174                </xquery> 
     1175        </ndg:Action>            
    9121176                         
    9131177        <!-- model and childmodel --> 
    914         <ndg:addTriple> 
    915                 <ndg:ontSubject> 
    916                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    917                 </ndg:ontSubject> 
    918                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/> 
    919                 <ndg:ontObject> 
    920                         http://www.earthsystemgrid.org/esg.owl#Contact 
    921                 </ndg:ontObject> 
    922                 <ndg:xquery> 
     1178        <ndg:Action> 
     1179                <ndg:addTriple> 
     1180                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1181                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/>                   
     1182                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#Contact"/> 
     1183                </ndg:addTriple> 
     1184                <xquery> 
    9231185                        <![CDATA[ 
    9241186                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                         
     
    9311193                                                     return 
    9321194                                                        if ($role = 'author' or $role = 'PI') 
    933                                                          then concat($res/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/gmd:individualName/gco:CharacterString) 
     1195                                                         then concat($res/documentID, ";;", $item/gmd:individualName/gco:CharacterString) 
    9341196                                                         else empty 
    9351197                                             return $roles 
    9361198                                  return $res 
    9371199                        return $nodes]]> 
    938                 </ndg:xquery> 
    939         </ndg:addTriple>         
     1200                </xquery> 
     1201        </ndg:Action>            
    9401202         
    9411203        <!-- model and childmodel -->    
    942         <ndg:addTripleLiteral> 
    943                 <ndg:ontSubject> 
    944                         http://www.earthsystemgrid.org/esg.owl#Model 
    945                 </ndg:ontSubject> 
    946                 <ndg:ontPredicate dynamic="true"/>               
    947                 <ndg:xquery> 
     1204        <ndg:Action> 
     1205                <ndg:addTripleLiteral> 
     1206                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1207                        <ndg:ontPredicate dynamic="true"/>                       
     1208                </ndg:addTripleLiteral> 
     1209                <xquery> 
    9481210                        <![CDATA[ 
    9491211                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    9751237                                 let $props := for $prop in $item/componentProperties/componentProperty 
    9761238                                     return 
    977                                      concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", string-join(data($prop/value), ','), ";;", ndg:mapProperty($lookup//ndg:entry, concat($type, $prop/shortName))) 
     1239                                     concat($item/documentID, ";;", string-join(data($prop/value), ','), ";;", ndg:mapProperty($lookup//ndg:entry, concat($type, $prop/shortName))) 
    9781240                             return $props    
    9791241                       return $types 
    980                 return $res]]>             
    981                 </ndg:xquery>            
    982         </ndg:addTripleLiteral> 
     1242                return $res]]>  
     1243                </xquery> 
     1244        </ndg:Action> 
    9831245         
    9841246        <!-- child's model component-->  
    985         <ndg:addTripleLiteral> 
    986                 <ndg:ontSubject> 
    987                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    988                 </ndg:ontSubject> 
    989                 <ndg:ontPredicate dynamic="true"/>               
    990                 <ndg:xquery> 
     1247        <ndg:Action> 
     1248                <ndg:addTripleLiteral> 
     1249                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1250                        <ndg:ontPredicate dynamic="true"/>                       
     1251                </ndg:addTripleLiteral> 
     1252                <xquery> 
    9911253                        <![CDATA[ 
    9921254                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    10181280                                 let $props := for $prop in $item/componentProperties/componentProperty 
    10191281                                     return 
    1020                                      concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", string-join(data($prop/value), ','), ";;", ndg:mapProperty($lookup//ndg:entry, concat($type, $prop/shortName))) 
     1282                                     concat($item/documentID, ";;", string-join(data($prop/value), ','), ";;", ndg:mapProperty($lookup//ndg:entry, concat($type, $prop/shortName))) 
    10211283                             return $props    
    10221284                       return $types 
    1023                 return $res]]>             
    1024                 </ndg:xquery>            
    1025         </ndg:addTripleLiteral>          
     1285                return $res]]>  
     1286                </xquery> 
     1287        </ndg:Action> 
    10261288                         
    10271289        <!-- model and childmodel -->    
    1028         <ndg:addTripleLiteral> 
    1029                 <ndg:ontSubject> 
    1030                         http://www.earthsystemgrid.org/esg.owl#Model 
    1031                 </ndg:ontSubject> 
    1032                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#isConfigured"/>            
    1033                 <ndg:xquery> 
     1290        <ndg:Action> 
     1291                <ndg:addTripleLiteral> 
     1292                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1293                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#isConfigured"/>                    
     1294                </ndg:addTripleLiteral> 
     1295                <xquery> 
    10341296                        <![CDATA[ 
    10351297                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    10381300                                        let $res := for $item in $nodes               
    10391301                            return 
    1040                             concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", "true")    
     1302                            concat($item/documentID, ";;", "true")    
    10411303                                return $res]]> 
    1042                 </ndg:xquery>            
    1043         </ndg:addTripleLiteral> 
     1304                </xquery> 
     1305        </ndg:Action> 
     1306 
    10441307 
    10451308        <!-- child's model component-->  
    1046         <ndg:addTripleLiteral> 
    1047                 <ndg:ontSubject> 
    1048                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    1049                 </ndg:ontSubject> 
    1050                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#isConfigured"/>            
    1051                 <ndg:xquery> 
     1309        <ndg:Action> 
     1310                <ndg:addTripleLiteral> 
     1311                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1312                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#isConfigured"/>                    
     1313                </ndg:addTripleLiteral> 
     1314                <xquery> 
    10521315                        <![CDATA[ 
    10531316                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    10571320                                    let $res := for $item in $nodes               
    10581321                            return 
    1059                             concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", "true")    
     1322                            concat($item/documentID, ";;", "true")    
    10601323                                return $res]]> 
    1061                 </ndg:xquery>            
    1062         </ndg:addTripleLiteral>          
    1063          
    1064         <!-- model and childmodel -->    
    1065         <ndg:addTripleLiteral> 
    1066                 <ndg:ontSubject> 
    1067                         http://www.earthsystemgrid.org/esg.owl#Model 
    1068                 </ndg:ontSubject> 
    1069                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasVersion"/>              
    1070                 <ndg:xquery> 
     1324                </xquery> 
     1325        </ndg:Action> 
     1326 
     1327         
     1328        <!-- model and childmodel --> 
     1329        <ndg:Action> 
     1330                <ndg:addTripleLiteral> 
     1331                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1332                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasVersion"/>                      
     1333                </ndg:addTripleLiteral> 
     1334                <xquery> 
    10711335                        <![CDATA[ 
    10721336                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    10751339                let $res := for $item in $nodes                
    10761340                    return 
    1077                     concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName)    
     1341                    concat($item/documentID, ";;", $item/shortName)    
    10781342                return $res]]> 
    1079                 </ndg:xquery>            
    1080         </ndg:addTripleLiteral>  
     1343                </xquery> 
     1344        </ndg:Action> 
     1345         
    10811346        <!-- child's model component-->  
    1082         <ndg:addTripleLiteral> 
    1083                 <ndg:ontSubject> 
    1084                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    1085                 </ndg:ontSubject> 
    1086                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasVersion"/>              
    1087                 <ndg:xquery> 
     1347        <ndg:Action> 
     1348                <ndg:addTripleLiteral> 
     1349                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1350                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasVersion"/>                      
     1351                </ndg:addTripleLiteral> 
     1352                <xquery> 
    10881353                        <![CDATA[ 
    10891354                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    10931358                        let $res := for $item in $nodes               
    10941359                    return 
    1095                     concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/shortName, " ", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName)    
     1360                    concat($item/documentID, ";;", $item/shortName)    
    10961361                return $res]]> 
    1097                 </ndg:xquery>            
    1098         </ndg:addTripleLiteral>          
    1099  
    1100         <!-- model and childmodel -->    
    1101         <ndg:addTripleLiteral> 
    1102                 <ndg:ontSubject> 
    1103                         http://www.earthsystemgrid.org/esg.owl#Model 
    1104                 </ndg:ontSubject> 
    1105                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasYearReleased"/>                 
    1106                 <ndg:xquery> 
     1362                </xquery> 
     1363        </ndg:Action> 
     1364 
     1365        <!-- model and childmodel 
     1366        <ndg:Action> 
     1367                <ndg:addTripleLiteral> 
     1368                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1369                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasYearReleased"/>                         
     1370                </ndg:addTripleLiteral> 
     1371                <xquery> 
    11071372                        <![CDATA[ 
    11081373                                        declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     
    11111376                                        let $res := for $item in $nodes                
    11121377                                        return 
    1113                                         concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/releaseDate)    
     1378                                        concat($item/documentID, ";;", $item/releaseDate)    
    11141379                                return $res]]> 
    1115                 </ndg:xquery>            
    1116         </ndg:addTripleLiteral>  
    1117         <!-- child's model component-->  
    1118         <ndg:addTripleLiteral> 
    1119                 <ndg:ontSubject> 
    1120                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    1121                 </ndg:ontSubject> 
    1122                         <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasYearReleased"/>                 
    1123                 <ndg:xquery> 
     1380                </xquery> 
     1381        </ndg:Action> 
     1382        --> 
     1383 
     1384        <!-- child's model component 
     1385        <ndg:Action> 
     1386                <ndg:addTripleLiteral> 
     1387                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1388                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasYearReleased"/>                         
     1389                </ndg:addTripleLiteral> 
     1390                <xquery> 
    11241391                        <![CDATA[ 
    11251392                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                                                         
     
    11281395                                        let $res := for $item in $nodes               
    11291396                                    return 
    1130                                     concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/releaseDate)    
     1397                                    concat($item/documentID, ";;", $item/releaseDate)    
    11311398                                return $res]]> 
    1132                 </ndg:xquery>            
    1133         </ndg:addTripleLiteral>  
     1399                </xquery> 
     1400        </ndg:Action> 
     1401        --> 
    11341402 
    11351403 
    11361404        <!-- model and childmodel -->    
    1137         <ndg:addTripleLiteral> 
    1138                 <ndg:ontSubject> 
    1139                         http://www.earthsystemgrid.org/esg.owl#Model 
    1140                 </ndg:ontSubject> 
    1141                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPreviousVersion"/>              
    1142                 <ndg:xquery> 
     1405        <ndg:Action> 
     1406                <ndg:addTripleLiteral> 
     1407                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1408                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPreviousVersion"/>                      
     1409                </ndg:addTripleLiteral> 
     1410                <xquery> 
    11431411                        <![CDATA[ 
    11441412                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                 
     
    11471415                let $res := for $item in $nodes                
    11481416                    return 
    1149                     concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/documentGenealogy/relationship/documentRelationship/target/reference/name)    
     1417                    concat($item/documentID, ";;", 
     1418                        if (string-length($item/documentGenealogy/relationship/documentRelationship/target/reference/name) > 0)  
     1419                                then $item/documentGenealogy/relationship/documentRelationship/target/reference/name  
     1420                                else "No previous version")     
    11501421                return $res]]> 
    1151                 </ndg:xquery>            
    1152         </ndg:addTripleLiteral>  
     1422                </xquery> 
     1423        </ndg:Action> 
     1424 
     1425 
    11531426        <!-- child's model component-->  
    1154         <ndg:addTripleLiteral> 
    1155                 <ndg:ontSubject> 
    1156                         http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    1157                 </ndg:ontSubject> 
    1158                 <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPreviousVersion"/>              
    1159                 <ndg:xquery> 
     1427        <ndg:Action> 
     1428                <ndg:addTripleLiteral> 
     1429                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#ModelComponent"/>  
     1430                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPreviousVersion"/>                      
     1431                </ndg:addTripleLiteral> 
     1432                <xquery> 
    11601433                        <![CDATA[ 
    11611434                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";                                         
     
    11641437                        let $res := for $item in $nodes               
    11651438                    return 
    1166                     concat($item/shortName, "_", CIMRecordSet/CIMRecord/CIMRecord/simulationRun/shortName, ";;", $item/documentGenealogy/relationship/documentRelationship/target/reference/name)    
     1439                    concat($item/documentID, ";;", 
     1440                    if (string-length($item/documentGenealogy/relationship/documentRelationship/target/reference/name) > 0)  
     1441                                then $item/documentGenealogy/relationship/documentRelationship/target/reference/name  
     1442                                else "No previous version")       
    11671443                return $res]]> 
    1168                 </ndg:xquery>            
    1169         </ndg:addTripleLiteral>  
    1170                          
    1171                          
     1444                </xquery> 
     1445        </ndg:Action>            
     1446 
    11721447        <!-- hasPhysicalDomain ???? --> 
    1173         <!-- // Add the conformances and deployment info from the simulation. --> 
    1174         <!-- dealWithInputs -->  
     1448        <ndg:Action> 
     1449                <ndg:addTriple> 
     1450                        <ndg:ontSubject uri="http://www.earthsystemgrid.org/esg.owl#Model"/>  
     1451                        <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/>                       
     1452                        <ndg:ontObject uri="http://www.earthsystemgrid.org/esg.owl#PhysicalDomain"/> 
     1453                </ndg:addTriple> 
     1454                <xquery> 
     1455                        <![CDATA[ 
     1456                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5";         
     1457                                declare namespace xs = "http://www.w3.org/2001/XMLSchema";       
     1458                                declare namespace ndg = "http://www.ndg.ac.uk";  
     1459                                declare variable $metaforMapping external; 
     1460                                declare function ndg:getValueFromMap  
     1461                                        ($node as node()*, $arg as xs:string)  as xs:string* { 
     1462                                        let $ret := for $el in $node 
     1463                                             return 
     1464                                             if (data($el/@metaforName) = $arg) 
     1465                                                 then data($el/@esgName) 
     1466                                                 else data(())                    
     1467                                        return 
     1468                                        if (count($ret) > 0) 
     1469                                        then $ret[1] 
     1470                                        else data(()) 
     1471                                }; 
     1472                                 
     1473                                let $nodes :=  //CIMRecord/modelComponent |  //CIMRecord/modelComponent/childComponent/modelComponent 
     1474                                let $comps := for $comp in $nodes  
     1475                    let $types := for $type in $comp/type 
     1476                        where ($type/vocabularyServer/vocabularyName = "DRS") 
     1477                                return  
     1478                                   if (string-length(ndg:getValueFromMap($metaforMapping//ndg:entry, $type/@value)) > 0) 
     1479                                                then concat($comp/documentID, ";;", ndg:getValueFromMap($metaforMapping//ndg:entry, $type/@value)) 
     1480                                                else ()                                                          
     1481                        return $types 
     1482                        return $comps]]>      
     1483                </xquery> 
     1484        </ndg:Action> 
     1485 
     1486 
    11751487 
    11761488</ndg:ingester>     
Note: See TracChangeset for help on using the changeset viewer.