Hello, Lorenz!
Thanks for your answer.
Changing
val obj = prop.`object`
to
val obj = prop.`object`.`as`(RDFList::class.java)
did the trick.
> But I can't tell anymore without seeing method findStatement()
open fun findStatement(property:String, resource:Resource):Statement? {
val stmts = resource.model.listStatements()
var res:Statement? = null
while (stmts.hasNext() && (res == null)) {
val stmt = stmts.nextStatement()
if (stmt.predicate.uri == property) {
res = stmt
}
}
return res
}
Question mark at the end of a type (e. g. Statement?) means that the respective
variable may be null (res may be null, stmts is always non-null).
Best regards
Dmitri Pisarenko
25.03.2017, 14:15, "Lorenz B." <[email protected]>:
> According to your data it is in fact stored as RDFList. You could try to
> call
>
> obj.as( RDFList.class )
>
> since RDFList is a subinterface of Resource.
>
> But I can't tell anymore without seeing method findStatement()
>
>> Hello!
>>
>> I have a Jena-based database with an individual batch in it. A batch is a
>> structure, which has (among other things) a list companyIds (elements are
>> strings). In this particular example the batch number 1 has a list with
>> following company IDs:
>>
>> 136648473
>> 136648520
>> 136648577
>>
>> My goal is to retrieve this list. For this, I execute the following code:
>>
>> open fun batchStatusLogic(ds: Dataset, batchId: Int):
>> FailableOperationResult<Bp2BatchStatus> {
>> val sparql = """SELECT ?x
>> WHERE { ?x <$Bp2BatchNumber> $batchId }"""
>> val query = createQuery(sparql)
>> val qexec = createQueryExecution(ds, query)
>> val rs = qexec.execSelect()
>> if (!rs.hasNext()) {
>> return FailableOperationResult<Bp2BatchStatus>(
>> false,
>> "Batch not found.",
>> null
>> )
>> }
>> val sol = rs.nextSolution()
>> val rec = sol["x"]
>> val prop = findStatement(Bp2BatchCompanyIds, rec as Resource)
>> if (prop == null) {
>> return FailableOperationResult<Bp2BatchStatus>(
>> false,
>> "Company list not found.",
>> null
>> )
>> }
>> val obj = prop.`object`
>> if (!(obj is RDFList)) {
>> return FailableOperationResult<Bp2BatchStatus>(false, "Internal
>> logic error.", null)
>> }
>>
>> obj is not RDFList, but ResourceImpl with obj.enhGraph being displayed as
>> the XML given below.
>>
>> How can I read all elements of the list (136648473, 136648520, 136648577) ?
>>
>> If there is a problem with the way the list is stored, please also tell.
>>
>> Thanks in advance
>>
>> Dmitri Pisarenko
>>
>> obj.enhGraph contents:
>>
>> <ModelCom {http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7
>> @http://www.w3.org/2001/vcard-rdf/3.0#EMAIL "[email protected]";
>> http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7
>> @http://www.w3.org/2001/vcard-rdf/3.0#N -1bac0f47:15a5c92e655:-7fff;
>> http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7
>> @http://mycompany.com/data/person/firstContactDateTime
>> "2017-02-20T17:30:15.515Z"^^http://www.w3.org/2001/XMLSchema#dateTime;
>> http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7
>> @http://mycompany.com/data/person/telegramUserId
>> "338329909"^^http://www.w3.org/2001/XMLSchema#integer;
>> http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7 @/bp1add
>> "true"^^http://www.w3.org/2001/XMLSchema#boolean;
>> -1bac0f47:15a5c92e655:-7fff @http://www.w3.org/2001/vcard-rdf/3.0#NICKNAME
>> "mw"; http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd
>> @http://mycompany.com/data/bp-2/batch/batchNumber
>> "1"^^http://www.w3.org/2001/XMLSchema#integer;
>> http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd
>> @http://mycompany.com/data/bp-2/batch/persona "FD";
>> http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd
>> @http://mycompany.com/data/bp-2/batch/companyIds 1d387ae6:15b01db5f1f:-7fff;
>> 1d387ae6:15b01db5f1f:-7fff @http://www.w3.org/1999/02/22-rdf-syntax-ns#first
>> "136648473"^^http://www.w3.org/2001/XMLSchema#integer;
>> 1d387ae6:15b01db5f1f:-7fff @http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
>> 1d387ae6:15b01db5f1f:-7ffe; 1d387ae6:15b01db5f1f:-7ffe
>> @http://www.w3.org/1999/02/22-rdf-syntax-ns#first
>> "136648520"^^http://www.w3.org/2001/XMLSchema#integer;
>> 1d387ae6:15b01db5f1f:-7ffe @http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
>> 1d387ae6:15b01db5f1f:-7ffd; 1d387ae6:15b01db5f1f:-7ffd
>> @http://www.w3.org/1999/02/22-rdf-syntax-ns#first
>> "136648577"^^http://www.w3.org/2001/XMLSchema#integer;
>> 1d387ae6:15b01db5f1f:-7ffd @http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#nil} |
>> [http://mycompany.com/data/p-7cc217a5
>> -4d35-495c-880c-3d0a512eaaf7, http://www.w3.org/2001/vcard-rdf/3.0#EMAIL,
>> "[email protected]"]
>> [http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7,
>> http://www.w3.org/2001/vcard-rdf/3.0#N, -1bac0f47:15a5c92e655:-7fff]
>> [http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7,
>> http://mycompany.com/data/person/firstContactDateTime,
>> "2017-02-20T17:30:15.515Z"^^http://www.w3.org/2001/XMLSchema#dateTime]
>> [http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7,
>> http://mycompany.com/data/person/telegramUserId,
>> "338329909"^^http://www.w3.org/2001/XMLSchema#integer]
>> [http://mycompany.com/data/p-7cc217a5-4d35-495c-880c-3d0a512eaaf7, /bp1add,
>> "true"^^http://www.w3.org/2001/XMLSchema#boolean]
>> [-1bac0f47:15a5c92e655:-7fff, http://www.w3.org/2001/vcard-rdf/3.0#NICKNAME,
>> "mw"]
>> [http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd,
>> http://mycompany.com/data/bp-2/batch/batchNumber,
>> "1"^^http://www.w3.org/2001/XMLSchema#integer]
>> [http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd,
>> http://mycompany.com/data/bp-2/batch/persona, "FD"]
>> [http://mycompany.com/data/bp-2/b-7406478b-9c33-4b51-bb46-3b854fc633cd,
>> http://mycompany.com/data/bp-2/batch/companyIds, 1d387ae6:15b01db5f1f:-7fff]
>> [1d387ae6:15b01db5f1f:-7fff,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#first,
>> "136648473"^^http://www.w3.org/2001/XMLSchema#integer]
>> [1d387ae6:15b01db5f1f:-7fff,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#rest, 1d387ae6:15b01db5f1f:-7ffe]
>> [1d387ae6:15b01db5f1f:-7ffe,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#first,
>> "136648520"^^http://www.w3.org/2001/XMLSchema#integer]
>> [1d387ae6:15b01db5f1f:-7ffe,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#rest, 1d387ae6:15b01db5f1f:-7ffd]
>> [1d387ae6:15b01db5f1f:-7ffd,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#first,
>> "136648577"^^http://www.w3.org/2001/XMLSchema#integer]
>> [1d387ae6:15b01db5f1f:-7ffd,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#rest,
>> http://www.w3.org/1999/02/22-rdf-syntax-ns#nil]>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center