Java 如何获取资源的值(对象)';谁的财产?

Java 如何获取资源的值(对象)';谁的财产?,java,rdf,kotlin,jena,apache-jena,Java,Rdf,Kotlin,Jena,Apache Jena,我有下面的代码,在其中我通过电子邮件找到一个资源 val varn = "x" val query = createQuery("""SELECT ?${varn} WHERE { ?x <http://www.w3.org/2001/vcard-rdf/3.0#EMAIL> "${email}" }""") val qexec = createQueryExecution(ds, query) val rs = qexec.execSel

我有下面的代码,在其中我通过电子邮件找到一个资源

val varn = "x"
val query = createQuery("""SELECT ?${varn}
                    WHERE { ?x  <http://www.w3.org/2001/vcard-rdf/3.0#EMAIL>  "${email}" }""")
val qexec = createQueryExecution(ds, query)
val rs = qexec.execSelect()
if (rs.hasNext()) {
    val solution = rs.nextSolution()
    val rec = solution[varn]
    // Here I need to find the value of the property FirstContactTime
}
val varn=“x”
val query=createQuery(“”选择?${varn}
其中{x“${email}”}”“”)
val qexec=createQueryExecution(ds,查询)
val rs=qexec.execSelect()
if(rs.hasNext()){
val solution=rs.nextSolution()
val rec=溶液[varn]
//在这里,我需要第一次找到属性的值
}
现在我想知道
rec
是否有一个属性
FirstContactTime
,如果是,它的值

我尝试了rec.model.listObjectsOfProperty(ds.defaultModel.createProperty(FirstContactTime)),但它没有返回任何内容。调试器说,
rec
确实有一个属性
FirstContactTime


如何在代码中获取
FirstContactTime
2017-03-03T10:35:00Z
)的值?

请注意,数据中的属性是
FirstContactDateTime
而不是
FirstContactTime

你要找的SPARQL是这样的--

前缀vcard:
前缀ex:
选择?用户?电子邮件?第一联系人
哪里
{?x vcard:电子邮件?电子邮件。
可选{?x ex:firstContactDateTime?firstcontact}
}

屏幕截图很难使用。请用文本替换屏幕截图。不需要突出显示。
PREFIX  vcard:  <http://www.w3.org/2001/vcard-rdf/3.0#>
PREFIX     ex:  <http://example.com/schema/person/>

SELECT ?user ?email ?firstcontact
 WHERE
   {               ?x  vcard:EMAIL              ?email         .
      OPTIONAL  {  ?x  ex:firstContactDateTime  ?firstcontact  }
   }