On 28/09/16 12:58, neha gupta wrote:
Here is the code, I have typed it so might have some mistakes.
Don't retype it. Any mistakes you make will confuse us -- we need
to see what you did. not something like it. Use cut-and-paste.
(Also send /complete/ examples, so that we can easily cut-and-paste
into our editors and check the code.)
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.
You haven't shown us the data. Print the model out:
model.write(System.out, "TTL");
This will display it in Turtle notation, which is often easier
to read than XML.
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.
Filters go inside the braces, not outside.
If the query gives an error, you're not going to get results
from the rest of your code.
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);
Inline image 2
No image here. I expect the attachment has been stripped.
Chris
On Wed, Sep 28, 2016 at 4:28 AM, Chris Dollin <[email protected]
<mailto:[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] <mailto:[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)
--
"If I were you, I would go to the crackpots." /They Shall Have Stars/
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)