这是对象(学生数据)的 Json 数组。我在 Jena 模型中加载了 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 获得单独的模型。
我怎样才能做到这一点?
欢迎提出任何建议。
最佳答案
首先,您可以使用 RDF Type定义 Student
类以及 StudentName
类的文字(不确定为什么需要将它们分开)。
然后您可以检查对象是否具有您正在寻找的属性。您可以在 Eclipse Lyo Jena provider 中看到我们是如何做到这一点的.
最后,你可以model your domain with Lyo modelling tools并生成 POJOs对于您的域,可以在单个方法调用中从/向 Jena 模型转换。
关于java - 将 Json-Ld 对象数组读入 Apache Jena 中的模型。如何从模型中检索单个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257953/