这是Json对象数组(学生数据)。我在耶拿模型中加载了Json-Ld数据
[
{
"@context" : {
"myvocab" : "http://mywebsite.com/vocab/",
"name" : "myvocab:name",
"firstname" : "myvocab:firstname",
"lastname" : "myvocab:lastname",
"rollNumber" : "myvocab:rollNumber"
},
"name" : {
"firstname" : "Dhannan",
"lastname" : "Chaudhary"
},
"rollNumber" : "26"
},
{
"@context" : {
"myvocab" : "http://mywebsite.com/vocab/",
"name" : "myvocab:name",
"firstname" : "myvocab:firstname",
"lastname" : "myvocab:lastname",
"rollNumber" : "myvocab:rollNumber"
},
"name" : {
"firstname" : "Maakin",
"lastname" : "Dhayaal"
},
"rollNumber" : "69"
}
]
这是我上面示例的模型输出(通过使用SPARQL)
-------------------------------------------------------------------
| Subject | Predicate | Object |
===================================================================
| _:b0 | <http://mywebsite.com/vocab/lastname> | "Chaudhary" |
| _:b0 | <http://mywebsite.com/vocab/firstname> | "Dhannan" |
| _:b1 | <http://mywebsite.com/vocab/lastname> | "Dhayaal" |
| _:b1 | <http://mywebsite.com/vocab/firstname> | "Maakin" |
| _:b2 | <http://mywebsite.com/vocab/rollNumber> | "62" |
| _:b2 | <http://mywebsite.com/vocab/name> | _:b1 |
| _:b3 | <http://mywebsite.com/vocab/rollNumber> | "61" |
| _:b3 | <http://mywebsite.com/vocab/name> | _:b0 |
-------------------------------------------------------------------
从这个模型中我只想要每个学生的主题(耶拿的资源)(_:b2,_:b3)。
但是通过使用model.listSubjects(),它为所有主题提供迭代器(_:b0,_:b1,_:b2,_:b3)
我的主要目标是能够为学生1和学生2获得单独的模型。
我怎样才能做到这一点?
欢迎提出每一条建议。
答案 0 :(得分:0)
首先,您可以使用RDF Type字面值来定义Student
类以及StudentName
类(不确定为什么需要将它们分解)。
然后,您可以检查主题是否具有您要查找的属性。您可以在Eclipse Lyo Jena provider中看到我们如何执行此操作。
最后,您可以model your domain with Lyo modelling tools为您的域生成POJOs,可以在单个方法调用中从/向Jena模型转换。