0

我有一本选集,我创建了一个评估界面,或者有一个提交按钮。此按钮允许您计算旧值和值 20 之间的差异。我尝试使用 sparql 选择一个实例,我会评估一个实例减去值 20 的旧值。

valider.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            Model m=ModelFactory.createMemModelMaker().createModel(null);
            FileManager.get().readModel( m, owlFile );
            String myOntologyName = "ProjetHela";
            String uri="file:///C:/Project/Krs1.owl";
            // Définition de prefixe pour simplifier l'utilisation de SPARQL
            String reuses = "maj: <"+RDF.getURI()+">" ;
            // String myOntologyPrefix = "PREFIX "+myOntologyName+": <"+myOntologyNS+">" ;
            String myOntologyPrefix = "PREFIX "+myOntologyName+": <"+uri+">" ;
            // if (liste.getSelectedItem().toString().equals("GMP: Puissance=60352 Watt,limite supérieure= 73500 Watt")) {
            String queryString= 
                "PREFIX maj: <http://www.owl-ontologies.com/reuses.owl#>"
                + "SELECT ?hasnameevaluated"
                + " WHERE "
                + "{"
                + "?Besoin maj:hasnameevaluated ?hasnameevaluated "
                +"FILTER (?hasnameevaluated - 20)  "
                + " } ";
            Query query = QueryFactory.create(queryString) ;

            QueryExecution qexec = QueryExecutionFactory.create(query, m) ;
            try  {
                ResultSet rs = qexec.execSelect() ;

                // Affichage des resultats
                for ( ; rs.hasNext() ; ){
                //System.out.print("");
                QuerySolution rb = rs.nextSolution() ;
                String y = rb.getLiteral("hasnameevaluated").getString();
                System.out.println( " " + y);
                }}  finally {
                    qexec.close() ;

                    }
                }   
            }


    );

但它不起作用请帮助我

4

1 回答 1

0

过滤器(?已评估 - 20)

是一个测试,而不是一个值的分配。

你的意思是使用:

BIND (?hasnameevaluated - 20 AS ?newvalue)

或者

SELECT ?hasnameevaluated (?hasnameevaluated - 20 AS ?newvalue) WHERE

于 2012-10-10T17:24:34.817 回答