Here is the code, I have typed it so might have some mistakes.
OntModel model=ModelFactory.createOntologyModel();
InputStream in =FileManager.get().open("D://ont/soccer.owl");
if (in==null) {
throw new IllegalArgumentException( "File: " + " not
there");
} model.read(in,"");
String ns="
http://www.semanticweb.org/neha/ontologies/2016/6/untitled-ontology-11#";
OntClass team = model.getOntClass(ns + "Team");
OntProperty goals=model.getOntProperty(ns+ "Goals");
OntProperty wins=model.getOntProperty(ns+ "Wins");
//Goals and Wins are entered by admin, so I want to sum the newly entered
//goals with previous stored in ontology.
//This is why I need integer values from these properties.
SELECT *" +
" WHERE { ?x rdf:type ont:Team . ?x ont:Goals ?goal . ?x
ont:Wins ?wins} filter(?goal>10 && ?wins<?goal ) ";
//the query also gives error , not recognizing Filter.
Query query = QueryFactory.create(queryString) ;
QueryExecution qexec = QueryExecutionFactory.create(query,
model);
ResultSet results = qexec.execSelect() ;
while(results.hasNext()){
QuerySolution soln = results.nextSolution() ;
int lit = soln.getLiteral("goal").getInt() ;
int lit2=soln.getLiteral("wins").getInt() ;
System.out.println("goals"+lit);
[image: Inline image 2]
On Wed, Sep 28, 2016 at 4:28 AM, Chris Dollin <[email protected]>
wrote:
> On 28/09/16 12:15, neha gupta wrote:
>
>> I just want to get the integer value from data property "Goals".
>>
>
> I know. You said that. But you have ignored my suggestion.
>
> //Goals is already a data property in my owl file and it has integer value.
>>
>
> How do you know? Show us the data. Show us the code. Show us what
> soln.getLiteral("goals") is. Maybe it isn't the integer you think it
> is.
>
> OntProperty goals=model.getOntProperty(ns+ "Goals");
>>
>> How can I get this integer value for future arithmetic operations.
>>
>> On Wed, Sep 28, 2016 at 12:11 AM, Chris Dollin <
>> [email protected]
>>
>>> wrote:
>>>
>>
>> On 27/09/16 21:59, neha gupta wrote:
>>>
>>> int l = soln.getLiteral("goals").getInt() ;
>>>>
>>>> "goals" contain integer value but it gives me exception:
>>>>
>>>> Error converting typed value to a number.
>>>>
>>>>
>>> Print soln.getLiteral("goals") so that we can see the lexical
>>> form and type of the literal. Note that spaces are not permitted
>>> in integer lexical forms -- make sure there's no extra spaces
>>> in your print.
>>>
>>>
>>> Chris
>>>
>>> --
>>> "Always a BOM tomorrow." Unsaid
>>> /Babylon 5/
>>>
>>> Epimorphics Ltd, http://www.epimorphics.com
>>> Registered address: Court Lodge, 105 High Street, Portishead, Bristol
>>> BS20
>>> 6PT
>>> Epimorphics Ltd. is a limited company registered in England (number
>>> 7016688)
>>>
>>>
>>
> --
> "A facility for quotation covers the absence of original thought."/Gaudy
> Night/
>
>
> Epimorphics Ltd, http://www.epimorphics.com
> Registered address: Court Lodge, 105 High Street, Portishead, Bristol BS20
> 6PT
> Epimorphics Ltd. is a limited company registered in England (number
> 7016688)
>