java - 将 Json-Ld 对象数组读入 Apache Jena 中的模型。如何从模型中检索单个对象?

标签 java jena semantic-web json-ld apache-jena

这是对象(学生数据)的 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/

相关文章:

java - 从 SPARQL 查询中仅获取 "#"之后的名称

java - 布局中的 Android 微调器

java - 使用 com.sun.net.httpserver.HttpsServer - 如何指定协议(protocol)?

java - 一维数组和多维数组的 array.clone() 的不同输出

html - 同一页面上的多个对象需要 rel=canonical URI

nlp - 语义网的自然语言接口(interface)

SPARQL 中的 boolean 检查,检查语句是否存在

java - 数字证书如何在SSL之上提供额外的安全性

java - 在外部 Java 项目中使用自定义内置函数

java - 使用 Jena API 编写 Tbox 模型