Changeset 7726


Ignore:
Timestamp:
12/11/10 16:28:45 (10 years ago)
Author:
mnagni
Message:

improved the schema

Location:
mauRepo/xml2owl/trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • mauRepo/xml2owl/trunk

    • Property svn:ignore set to
      target

      logs
  • mauRepo/xml2owl/trunk/protege.properties

    r7723 r7726  
    11#Protege Properties 
    2 #Thu Nov 11 16:32:44 GMT 2010 
     2#Fri Nov 12 14:53:05 GMT 2010 
     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

    r7721 r7726  
    3232package ndg.ontology; 
    3333 
     34import java.io.FileInputStream; 
     35import java.io.FileNotFoundException; 
     36import java.io.IOException; 
    3437import java.io.InputStream; 
    3538import java.io.OutputStream; 
     
    3740 
    3841import javax.xml.bind.JAXBException; 
     42import javax.xml.namespace.QName; 
     43import javax.xml.parsers.ParserConfigurationException; 
    3944import javax.xml.xpath.XPathExpressionException; 
    4045import javax.xml.xquery.XQConnection; 
     
    5560import org.badc.ndg.ontologyingester.AddTripleLiteral; 
    5661import org.badc.ndg.ontologyingester.Ingester; 
     62import org.slf4j.Logger; 
     63import org.slf4j.LoggerFactory; 
    5764import org.w3c.dom.Document; 
     65import org.xml.sax.SAXException; 
    5866 
    5967import edu.stanford.smi.protege.exception.OntologyLoadException; 
     
    6674class OntIngester { 
    6775 
     76        private final DocumentHelper dh = new DocumentHelper(); 
    6877        private final JAXBManager manager; 
    6978        private final XQDataSource xQDataSource; 
     
    7685    private XQItemType intType; 
    7786         
    78     private final String SEPARATOR = ";;"; 
     87    private String SEPARATOR = ";;"; 
     88 
     89        /** The Constant LOG. */ 
     90        private static final Logger logger = LoggerFactory.getLogger(OntIngester.class);     
    7991     
    8092        OntIngester(InputStream ingesterConfig, StatementSupport statementSupport, XQDataSource xQDataSource) throws ResourceNotAvailable, JAXBException, OntologyLoadException { 
     
    8799        public void ingest(Document doc) throws XPathExpressionException, XQException, StatementSupportException { 
    88100            XQExpression xqe = getXQConnection().createExpression(); 
     101            try { 
     102                        preapareParser(xqe); 
     103                } catch (ParserConfigurationException e) { 
     104                        logger.error(e.getMessage(), e); 
     105                } catch (SAXException e) { 
     106                        logger.error(e.getMessage(), e); 
     107                } catch (IOException e) { 
     108                        logger.error(e.getMessage(), e); 
     109                } 
    89110            xqe.bindNode(XQConstants.CONTEXT_ITEM, doc, null); 
    90111                ingest(ing.getAddTriple().iterator(), xqe); 
     
    94115        } 
    95116 
     117        private void preapareParser(XQExpression xqe) throws XQException, ParserConfigurationException, SAXException, IOException{ 
     118                if(ing.getConfiguration() == null || ing.getConfiguration().getNode() == null || ing.getConfiguration().getNode().size() == 0) 
     119                        return; 
     120                 
     121                if (ing.getConfiguration().getSeparator() != null) 
     122                        SEPARATOR = ing.getConfiguration().getSeparator(); 
     123                 
     124                for (org.badc.ndg.ontologyingester.Node node : ing.getConfiguration().getNode()){ 
     125                        QName qname = new QName(node.getExternal()); 
     126                        try { 
     127                                FileInputStream is = new FileInputStream(node.getPath()); 
     128                                xqe.bindNode(qname, dh.parseDocument(is), null); 
     129                        } catch (FileNotFoundException e) { 
     130                                logger.error("Cannot find configuration file: " + node.getPath()); 
     131                        } 
     132                } 
     133        } 
     134         
    96135        public void dump(OutputStream out) throws StatementSupportException{ 
    97136                statementSupport.dump(out); 
     
    144183        private void process(AddTripleLiteral item, XQExpression xqe) throws XPathExpressionException, XQException, StatementSupportException{ 
    145184                String sbjClass = item.getOntSubject().trim(); 
    146                 String ontPredicate = item.getOntPredicate().trim(); 
     185                String ontPredicate = item.getOntPredicate().getUri().trim(); 
    147186                XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
    148187                 
     
    162201                String sbjClass = item.getOntSubject().trim(); 
    163202                String objClass = item.getOntObject().trim(); 
    164                 String ontPredicate = item.getOntPredicate().trim(); 
     203                String ontPredicate = item.getOntPredicate().getUri().trim(); 
    165204                 
    166205                XQResultSequence triples = executeXQuery(xqe, item.getXquery()); 
  • mauRepo/xml2owl/trunk/src/test/resources/ingesterConfig.xml

    r7723 r7726  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <ndg:root xmlns:ndg="http://ndg.badc.org/ontologyIngester"> 
     2<ndg:ingester xmlns:ndg="http://ndg.badc.org/ontologyIngester"> 
     3         
     4        <ndg:configuration> 
     5                <ndg:node external="lookup" path="/home/users/mnagni/workspace/ESGGateway/metafor/src/test/resources/lookup.xml"/> 
     6                <ndg:separator><![CDATA[;;]]></ndg:separator> 
     7        </ndg:configuration> 
     8         
    39        <!-- PLATFORM --> 
    410        <!-- PLATFORM.triples --> 
     
    713                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    814                </ndg:ontSubject> 
    9                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasOperatingSystem 
    10                 </ndg:ontPredicate> 
     15                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasOperatingSystem"/> 
    1116                <ndg:ontObject> 
    1217                        http://www.earthsystemgrid.org/esg.owl#OperatingSystem 
     
    3237                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    3338                </ndg:ontSubject> 
    34                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasProcessor 
    35                 </ndg:ontPredicate> 
     39                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasProcessor"/> 
    3640                <ndg:ontObject> 
    3741                        http://www.earthsystemgrid.org/esg.owl#Processor 
     
    5761                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    5862                </ndg:ontSubject> 
    59                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasHardwareType 
    60                 </ndg:ontPredicate> 
     63                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasHardwareType"/> 
    6164                <ndg:ontObject> 
    6265                        http://www.earthsystemgrid.org/esg.owl#HardwareType 
     
    8285                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    8386                </ndg:ontSubject> 
    84                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasInterconnectType 
    85                 </ndg:ontPredicate> 
     87                <ndg:ontPredicate uri=">http://www.earthsystemgrid.org/esg.owl#hasInterconnectType"/> 
    8688                <ndg:ontObject> 
    8789                        http://www.earthsystemgrid.org/esg.owl#InterconnectType 
     
    107109                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    108110                </ndg:ontSubject> 
    109                 <ndg:ontPredicate> 
    110                         http://www.earthsystemgrid.org/esg.owl#hasLanguageCompiler 
    111                 </ndg:ontPredicate> 
     111                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompiler"/> 
    112112                <ndg:ontObject> 
    113113                        http://www.earthsystemgrid.org/esg.owl#LanguageCompiler 
     
    149149                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    150150                </ndg:ontSubject> 
    151                 <ndg:ontPredicate> 
    152                         http://www.earthsystemgrid.org/esg.owl#hasMaxProcessors 
    153                 </ndg:ontPredicate>              
     151                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasMaxProcessors"/>                
    154152                <ndg:xquery> 
    155153                        <![CDATA[ 
     
    171169                        http://www.earthsystemgrid.org/esg.owl#ComputingEnvironment 
    172170                </ndg:ontSubject> 
    173                 <ndg:ontPredicate> 
    174                         http://www.earthsystemgrid.org/esg.owl#hasCoresPerProcessor 
    175                 </ndg:ontPredicate>              
     171                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasCoresPerProcessor"/>            
    176172                <ndg:xquery> 
    177173                        <![CDATA[ 
     
    193189                        http://www.earthsystemgrid.org/esg.owl#LanguageCompiler 
    194190                </ndg:ontSubject> 
    195                 <ndg:ontPredicate> 
    196                         http://www.earthsystemgrid.org/esg.owl#hasLanguageCompilerVersion 
    197                 </ndg:ontPredicate>              
     191                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasLanguageCompilerVersion"/>              
    198192                <ndg:xquery> 
    199193                        <![CDATA[ 
     
    244238                        http://www.earthsystemgrid.org/esg.owl#ExperimentalConformance 
    245239                </ndg:ontSubject> 
    246                 <ndg:ontPredicate> 
    247                         http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformanceNote 
    248                 </ndg:ontPredicate>              
     240                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasExperimentalConformanceNote"/>          
    249241                <ndg:xquery> 
    250242                        <![CDATA[ 
     
    360352                        http://www.earthsystemgrid.org/esg.owl#Model 
    361353                </ndg:ontSubject> 
    362                 <ndg:ontPredicate> 
    363                         http://www.earthsystemgrid.org/esg.owl#hasFullName 
    364                 </ndg:ontPredicate>              
     354                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>             
    365355                <ndg:xquery> 
    366356                        <![CDATA[ 
     
    378368                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    379369                </ndg:ontSubject> 
    380                 <ndg:ontPredicate> 
    381                         http://www.earthsystemgrid.org/esg.owl#hasFullName 
    382                 </ndg:ontPredicate>              
     370                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFullName"/>             
    383371                <ndg:xquery> 
    384372                        <![CDATA[ 
     
    396384                        http://www.earthsystemgrid.org/esg.owl#Contact 
    397385                </ndg:ontSubject> 
    398                 <ndg:ontPredicate> 
    399                         http://www.earthsystemgrid.org/esg.owl#hasContactName 
    400                 </ndg:ontPredicate>              
     386                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactName"/>          
    401387                <ndg:xquery> 
    402388                        <![CDATA[ 
     
    425411                        http://www.earthsystemgrid.org/esg.owl#Contact 
    426412                </ndg:ontSubject> 
    427                 <ndg:ontPredicate> 
    428                         http://www.earthsystemgrid.org/esg.owl#hasEmail 
    429                 </ndg:ontPredicate>              
     413                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasEmail"/>                
    430414                <ndg:xquery> 
    431415                        <![CDATA[ 
     
    454438                        http://www.earthsystemgrid.org/esg.owl#Model 
    455439                </ndg:ontSubject> 
    456                 <ndg:ontPredicate> 
    457                         http://www.earthsystemgrid.org/esg.owl#hasInstitution 
    458                 </ndg:ontPredicate>              
     440                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>          
    459441                <ndg:xquery> 
    460442                        <![CDATA[ 
     
    480462                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    481463                </ndg:ontSubject> 
    482                 <ndg:ontPredicate> 
    483                         http://www.earthsystemgrid.org/esg.owl#hasInstitution 
    484                 </ndg:ontPredicate>              
     464                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasInstitution"/>          
    485465                <ndg:xquery> 
    486466                        <![CDATA[ 
     
    508488                        http://www.earthsystemgrid.org/esg.owl#Model 
    509489                </ndg:ontSubject> 
    510                 <ndg:ontPredicate> 
    511                         http://www.earthsystemgrid.org/esg.owl#hasReference 
    512                 </ndg:ontPredicate>              
     490                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>            
    513491                <ndg:xquery> 
    514492                        <![CDATA[ 
     
    533511                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    534512                </ndg:ontSubject> 
    535                 <ndg:ontPredicate> 
    536                         http://www.earthsystemgrid.org/esg.owl#hasReference 
    537                 </ndg:ontPredicate>              
     513                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>            
    538514                <ndg:xquery> 
    539515                        <![CDATA[ 
     
    564540                        http://www.earthsystemgrid.org/esg.owl#Model 
    565541                </ndg:ontSubject> 
    566                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain 
    567                 </ndg:ontPredicate> 
     542                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/> 
    568543                <ndg:ontObject> 
    569544                        http://www.earthsystemgrid.org/esg.owl#PhysicalDomain 
     
    595570                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    596571                </ndg:ontSubject> 
    597                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain 
    598                 </ndg:ontPredicate> 
     572                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPhysicalDomain"/> 
    599573                <ndg:ontObject> 
    600574                        http://www.earthsystemgrid.org/esg.owl#PhysicalDomain 
     
    628602                        http://www.earthsystemgrid.org/esg.owl#Model 
    629603                </ndg:ontSubject> 
    630                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasTopic 
    631                 </ndg:ontPredicate> 
     604                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/> 
    632605                <ndg:ontObject> 
    633606                        http://www.earthsystemgrid.org/esg.owl#Topic 
     
    659632                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    660633                </ndg:ontSubject> 
    661                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasTopic 
    662                 </ndg:ontPredicate> 
     634                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasTopic"/> 
    663635                <ndg:ontObject> 
    664636                        http://www.earthsystemgrid.org/esg.owl#Topic 
     
    692664                        http://www.earthsystemgrid.org/esg.owl#Model 
    693665                </ndg:ontSubject> 
    694                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasFundingSource 
    695                 </ndg:ontPredicate> 
     666                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/> 
    696667                <ndg:ontObject> 
    697668                        http://www.earthsystemgrid.org/esg.owl#Agency 
     
    724695                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    725696                </ndg:ontSubject> 
    726                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasFundingSource 
    727                 </ndg:ontPredicate> 
     697                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasFundingSource"/> 
    728698                <ndg:ontObject> 
    729699                        http://www.earthsystemgrid.org/esg.owl#Agency 
     
    757727                        http://www.earthsystemgrid.org/esg.owl#Model 
    758728                </ndg:ontSubject> 
    759                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasContactObject 
    760                 </ndg:ontPredicate> 
     729                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/> 
    761730                <ndg:ontObject> 
    762731                        http://www.earthsystemgrid.org/esg.owl#Contact 
     
    785754                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    786755                </ndg:ontSubject> 
    787                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasContactObject 
    788                 </ndg:ontPredicate> 
     756                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasContactObject"/> 
    789757                <ndg:ontObject> 
    790758                        http://www.earthsystemgrid.org/esg.owl#Contact 
     
    815783                        http://www.earthsystemgrid.org/esg.owl#Model 
    816784                </ndg:ontSubject> 
    817                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasPI 
    818                 </ndg:ontPredicate> 
     785                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/> 
    819786                <ndg:ontObject> 
    820787                        http://www.earthsystemgrid.org/esg.owl#Contact 
     
    843810                        http://www.earthsystemgrid.org/esg.owl#ModelComponent 
    844811                </ndg:ontSubject> 
    845                 <ndg:ontPredicate>http://www.earthsystemgrid.org/esg.owl#hasPI 
    846                 </ndg:ontPredicate> 
     812                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasPI"/> 
    847813                <ndg:ontObject> 
    848814                        http://www.earthsystemgrid.org/esg.owl#Contact 
     
    867833        </ndg:addTriple>         
    868834         
     835                        <!-- model and childmodel -->    
     836                        <ndg:addTripleLiteral> 
     837                                <ndg:ontSubject> 
     838                                        http://www.earthsystemgrid.org/esg.owl#Model 
     839                                </ndg:ontSubject> 
     840                                <ndg:ontPredicate uri="http://www.earthsystemgrid.org/esg.owl#hasReference"/>            
     841                                <ndg:xquery> 
     842                                        <![CDATA[ 
     843                                declare default element namespace "http://www.metaforclimate.eu/schema/cim/1.5"; 
     844                                declare namespace xs="http://www.w3.org/2001/XMLSchema"; 
     845                                declare namespace myx = "http://www.functx.com";  
     846                                declare function myx:commaSeperatedListValue  
     847                    ($arg as node())  as xs:string { 
     848                    let $res := '' 
     849                    for $prop in $arg/value 
     850                        let $ret := concat($res, "," , $prop) 
     851                    return $res 
     852                    };                           
     853                                for $comp in //CIMRecord  
     854                                    let $nodes := $comp/modelComponent | $comp/modelComponent/childComponent/modelComponent 
     855                                    let $res := for $item in $nodes               
     856                                            let $types := for $type in $item/type/@value 
     857                                                 let $props := for $prop in $item/componentProperties/componentProperty 
     858                                                     return 
     859                                                     concat($item/shortName, ";;", myx:commaSeperatedListValue($prop/value), ";;", "http://www.earthsystemgrid.org/esg.owl#has$type+$prop/shortName") 
     860                                             return $props    
     861                                       return $types 
     862                                return $res]]>              
     863                                </ndg:xquery>            
     864                        </ndg:addTripleLiteral> 
     865                         
    869866        <!-- hasPhysicalDomain ???? --> 
    870867         
    871 </ndg:root>     
     868</ndg:ingester>     
  • mauRepo/xml2owl/trunk/src/test/resources/sample_cmip5qn_100930_mark.xml

    r7721 r7726  
    1401114011                    <shortName>WaterPonds</shortName> 
    1401214012                    <longName>WaterPonds</longName> 
    14013                     <value></value> 
     14013                    <value>1.0</value> 
    1401414014                  </componentProperty> 
    1401514015                  <componentProperty represented="true"> 
Note: See TracChangeset for help on using the changeset viewer.