新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     >>W3CHINA.ORG讨论区<<     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> Web服务(Web Services,WS), 语义Web服务(Semantic Web Services, SWS)讨论区: WSDL, SOAP, UDDI, DAML-S, OWL-S, SWSF, SWSL, WSMO, WSML,BPEL, BPEL4WS, WSFL, WS-*,REST, PSL, Pi-calculus(Pi演算), Petri-net,WSRF,
    [返回] W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWLW3CHINA.ORG讨论区 - Web新技术讨论『 Web Services & Semantic Web Services 』 → 求助:owl-s api 中的matchmaker 例子出错,高人请指教 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 14332 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 求助:owl-s api 中的matchmaker 例子出错,高人请指教 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     tianshiwgq 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:23
      积分:148
      门派:XML.ORG.CN
      注册:2007/9/10

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给tianshiwgq发送一个短消息 把tianshiwgq加入好友 查看tianshiwgq的个人资料 搜索tianshiwgq在『 Web Services & Semantic Web Services 』的所有贴子 引用回复这个贴子 回复这个贴子 查看tianshiwgq的博客楼主
    发贴心情 求助:owl-s api 中的matchmaker 例子出错,高人请指教

    修改后的原代码:
    public class Matchmaker {    
        OWLKnowledgeBase kb;
        
        public static class Match {
            public static String[] MATCHES = {"EXACT", "SUBSUME", "RELAXED", "FAIL"};
            public static int EXACT   = 0;
            public static int SUBSUME = 1;
            public static int RELAXED = 2;
            public static int FAIL    = 3;        
            
            int matchType;
            boolean listMatch;
            Service outputService;
            Output output;
            Service inputService;
            Input input;
            
            public Match(int matchType, Output output, Input input) {
                this.matchType = matchType;
                this.outputService = output.getService();
                this.output = output;
                this.inputService = input.getService();
                this.input = input;
            }
            
            public String toString() {
                String str = "";
                
                str += MATCHES[matchType] + " ";
                if(listMatch)
                    str += ".LIST";
                str += outputService.getLocalName() + "." + output.getLocalName();
                str += " -> ";
                str += inputService.getLocalName() + "." + input.getLocalName();
                
                return str;
            }
        }
        
        public Matchmaker() {
            kb = OWLFactory.createKB();
      
           kb.setReasoner("Pellet");
        }

        public void addOntology( String ont )  throws FileNotFoundException, URISyntaxException {
            System.out.println( "Reading " + ont );
            kb.read( new URI( ont ) );
        }
        
        public void addOntology( URI ont )  throws FileNotFoundException {
            System.out.println( "Reading " + ont );
            kb.read( ont );
        }
        
        public List findServices(boolean getProducers) {
            String hasParameter = getProducers ? "process:hasOutput" : "process:hasInput";
            
            String queryString =
                "SELECT * " +            
                "WHERE " +
                "    (?process rdf:type process:Process)" +
                "    (?process " + hasParameter + " ?param)" +
                "USING " +
                "      process FOR <http://www.daml.org/services/owl-s/1.1/Process.owl#>";

            return kb.query( queryString );
        }

        public List findOutputs() {
            return findServices(true);
        }
        
        public List findInputs() {
            return findServices(false);        
        }
        
        public int getMatchType(OWLType outputType, OWLType inputType) {
            if(outputType.isEquivalent(inputType))
               return Match.EXACT;
            else if(outputType.isSubTypeOf(inputType))
               return Match.SUBSUME;        
            else if(inputType.isSubTypeOf(outputType))
                return Match.RELAXED;
            else
                return Match.FAIL;
        }

     public List displayAllMatches() {
      List matches = new ArrayList();
      
      System.out.println( "Computing matches..." );
      
      List producers = findOutputs();
      List consumers = findInputs();
      
      Iterator i = producers.iterator();
      while( i.hasNext() ) {
          ValueMap binding = (ValueMap) i.next();
          Output output = (Output) ((OWLIndividual) binding.getValue("param")).castTo(Output.class);
          OWLType outputType = output.getParamType();
          
          Iterator j = consumers.iterator();
          while( j.hasNext() ) {
              binding = (ValueMap) j.next() ;
           Input input = (Input) ((OWLIndividual) binding.getValue("param")).castTo(Input.class);
           OWLType inputType = input.getParamType();
           
    //       System.out.println("Trying " +
    //           URIUtils.getLocalName(outputType.getURI()) + " " +
    //           URIUtils.getLocalName(inputType.getURI()) + " " +
    //           producer.getLocalName() + " " +
    //           output.getLocalName() + " " +
    //           consumer.getLocalName() + " " +
    //           input.getLocalName()
    //       );
           
              int matchType = getMatchType(outputType, inputType);
              if(matchType != Match.FAIL)
                  matches.add(new Match(matchType, output, input));           
          }
      }
      
      return matches;
     }

        public static void printIterator(Iterator i) {
            if(i.hasNext()) {
             while (i.hasNext())
                 System.out.println( i.next() );
            }       
            else
                System.out.println("<EMPTY>");
            
            System.out.println();
        }
     
        public static void main(String[] args) throws FileNotFoundException, URISyntaxException {
            Matchmaker matchmaker = new Matchmaker();
            
            matchmaker.addOntology("http://localhost:8080/BNPrice.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/BookFinder.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/CurrencyConverter.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/Dictionary.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/ZipCodeFinder.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/FindLatLong.owl");
            matchmaker.addOntology("http://www.mindswap.org/2004/owl-s/1.1/BabelFishTranslator.owl#");
            
            List matches = matchmaker.displayAllMatches();
            System.out.println();
            System.out.println("Matches:");        
            printIterator(matches.iterator());
        }
    }
    运行错误,如下,不知道为什么,总是读不到顶极本体
    Reading http://localhost:8080/BNPrice.owl
    WARNING: Cannot read file http://www.daml.org/services/owl-s/1.1/Service.owl
    WARNING: The import file http://www.daml.org/services/owl-s/1.1/Service.owl cannot be parsed
    WARNING: Cannot read file http://www.daml.org/services/owl-s/1.1/Process.owl
    WARNING: The import file http://www.daml.org/services/owl-s/1.1/Process.owl cannot be parsed
    WARNING: Cannot read file http://www.daml.org/services/owl-s/1.1/generic/ObjectList.owl
    WARNING: The import file http://www.daml.org/services/owl-s/1.1/generic/ObjectList.owl cannot be parsed
    WARNING: Cannot read file http://www.daml.org/services/owl-s/1.1/generic/Expression.owl
    WARNING: The import file http://www.daml.org/services/owl-s/1.1/generic/Expression.owl cannot be parsed
    WARNING: Cannot read file http://www.daml.org/services/owl-s/1.1/Service.owl
    WARNING: The import file http://www.daml.org/services/owl-s/1.1/Service.owl cannot be parsed
    WARNING: Cannot read file http://www.mindswap.org/ontologies/bibtex.owl
    WARNING: The import file http://www.mindswap.org/ontologies/bibtex.owl cannot be parsed
    WARNING: Cannot read file http://www.mindswap.org/2004/owl-s/concepts.owl
    WARNING: The import file http://www.mindswap.org/2004/owl-s/concepts.owl cannot be parsed
    WARNING: Cannot read file http://localhost:8080/Grounding.owl
    WARNING: The import file http://localhost:8080/Grounding.owl cannot be parsed
    Reading http://www.mindswap.org/2004/owl-s/1.1/BookFinder.owl
    WARNING: Cannot read file http://www.mindswap.org/2004/owl-s/1.1/BookFinder.owl
    Exception in thread "main" java.io.FileNotFoundException: The file http://www.mindswap.org/2004/owl-s/1.1/BookFinder.owl cannot be parsed
     at impl.jena.OWLReaderImpl.createInputSource(OWLReaderImpl.java:125)
     at impl.jena.OWLReaderImpl.createInputSource(OWLReaderImpl.java:109)
     at impl.jena.OWLReaderImpl.read(OWLReaderImpl.java:169)
     at impl.jena.OWLKnowledgeBaseImpl.read(OWLKnowledgeBaseImpl.java:245)
     at examples.Matchmaker.addOntology(Matchmaker.java:76)
     at examples.Matchmaker.main(Matchmaker.java:170)


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/12/5 12:05:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Web Services & Semantic Web Services 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 3:13:10

    本主题贴数10,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  求助:owl-s api 中的matchmaker 例子出错,高人请..(7562字) - tianshiwgq,2008年12月5日
        回复:  服务器代理的问题,找找空间商,看看他那是不是出错了。[url=http://www.xtzt...(193字) - zkblsb,2012年6月6日
        回复:  匹配(40字) - hyb22ndf,2012年4月26日
        回复:  不包括mindswap提供的本体和其他领域本体的话,加起来只用到了以下owl文件:ActorDe..(352字) - charliezon,2010年6月2日
        回复:  能全部都下下来吧(16字) - charliezon,2010年6月1日
        回复:  求:从一个owl-s服务文档中提取precondition部分的谓词,用的Maryland的API..(70字) - xiaoliwu,2009年4月15日
        回复:  谢谢,问题已解决,确实是代理的问题(34字) - tianshiwgq,2008年12月22日
            回复:  [quote][b]以下是引用[i]tianshiwgq在2008-12-22 9:30:00[/..(237字) - yhxiao1983,2009年8月14日
        回复:  可能是使用代理上网 的 原因(26字) - Patty,2008年12月21日
        回复:  我也有这样的问题,请问你解决了没有啊,网络上的这些文件貌似都不能访问, BNPrice.o..(346字) - Patty,2008年12月20日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms