I will check it.

Thanks for your help.

2018-07-11 20:43 GMT+09:00 Andy Seaborne <[email protected]>:

> On 11/07/18 10:00, Myungjin Lee wrote:
>
>> Thank you for your help.
>>
>> As you know, there are several triple stores such as Virtuoso,
>> AllegroGraph,
>> and so forth.
>> So I want to develop Jena base interfaces for different triple stores.
>> I know that some triple stores already support Jena, but some triple
>> stores
>> that are not famous only support SPARQL endpoint.
>>
>
> Have you looked at Jena's RDFConnection?
>
>
>
>> For these triple stores, I need some classes that implements Jena
>> interfaces.
>> It is one of classes and methods to return NodeIterator from SPARQL
>> result.
>>
>> I thought there are, maybe, a simple way to create NodeIterator from
>> ResultSet.
>> But your code is a good solution for me.
>>
>> Thank you.
>>
>>
>>
>> -----Original Message-----
>> From: Lorenz Buehmann <[email protected]>
>> Sent: Wednesday, July 11, 2018 3:25 PM
>> To: [email protected]
>> Subject: Re: Create NodeIterator from SPARQL Result
>>
>> A NodeIterator for what? A ResultSet wraps an iterator of QuerySolution
>> objects, each of which contains the mapping of a variable name to the
>> corresponding RDF resource (if bound). Thus, each QuerySolution can wrap a
>> set of nodes...
>>
>> Clearly, you could generate a wrapping iterator by yourself. Just
>> implement
>> the NodeIterator interface and the corresponding methods. The constructor
>> indeed should take the ResultSet and a variable name as arguments (if you
>> want all nodes for each QuerySolution, it'S also
>> possible) - the rest is straightforward Java coding.
>>
>>
>> Untested stub:
>>
>>
>> class ResultSetWrappingNodeIterator implements NodeIterator {
>>
>> final ResultSet rs;
>>
>> final String varName;
>>
>> ResultSetWrappingNodeIterator(ResultSet rs, String varName) {
>>
>>     this.rs = rs;
>>
>>     this.varName = varName;
>>
>> }
>>
>>
>> public RDFNode next() {
>>
>>     return rs.next().get(varName).asNode();
>>
>> }
>>
>>
>> ...
>>
>> }
>>
>>
>>
>> On 11.07.2018 07:27, Myungjin Lee wrote:
>>
>>> Hi.
>>>
>>>
>>> I have a question. I am developing small application with Jena and ARQ.
>>>
>>>
>>> Is it possible to create NodeIterator instance from SPARQL result?
>>>
>>> In Jena and ARQ APIs, SPARQL query(qexec.execSelect() method) returns
>>> an instance of ResultSet interface.
>>>
>>>
>>> But I want to create a method that returns NodeIterator instance after
>>> executing SPARQL query like below.
>>>
>>>
>>> public NodeIterator getObjects(Resource s, Property p) {
>>>
>>>             String queryString = "SELECT ?o WHERE { <" + s.getURI() +
>>> "> <" +
>>> p.getURI() + "> ?o . }";
>>>
>>>             Query query = QueryFactory.create(queryString);
>>>
>>>             QueryExecution qexec =
>>> QueryExecutionFactory.sparqlService("SPARQL_ENDPOINT_ADDRESS", query);
>>>
>>>             ResultSet results = qexec.execSelect();
>>>
>>>             NodeIterator ni = ??? // to create NodeIterator instance
>>> from ResultSet
>>>
>>>             return ni;
>>>
>>> }
>>>
>>>
>>> Is it possible?
>>>
>>> Thank you for your help.
>>>
>>>
>>> Best regards,
>>>
>>> Myungjin Lee
>>>
>>>
>>>
>>
>>
>>

Reply via email to