Используя Jena для разбора json -ld файла, я не вижу rdfs: информацию о контейнере, проходящую через - PullRequest
0 голосов
/ 31 марта 2020

У меня есть файл jsonld, который я анализирую с помощью Jena. В файле есть @type @id "rdfs: label" и "rdfs: comment", а также диапазоны и домены. У меня есть код, подобный этому

Model m = ModelFactory.createDefaultModel ();

    Reader fileReader = new FileReader(fileName);
    Model model = m.read(fileReader, null, "JSON-LD");
    StmtIterator it = model.listStatements();
    Set<String> set = new HashSet<>();

    System.out.println("Labels");
    while (it.hasNext()) {
        Statement statement = it.next();

.... Кажется, что получает весь контент, но не видит операторов @type с RDFS: контейнер. Как мне получить эти операторы, используя этот синтаксический анализатор?

Фрагмент json -ld является {"@id": "aaa: bbb", "@type": ["rdfs: container" ], "rdfs: label": {"@language": "en", "@value": "cccc"}, "rdfs: comment": {"@language": "en", "@value" : "d ddd." }, "rdfs: member": [{"@id": "aaaa: eeee"}, {"@id": "aaaa: fffff"}],

Когда типом является rdfs: class - Я получаю оператор с предикатом "тип" и объектом в качестве RDFClass, но когда типом является rdfs: container - как в приведенном выше примере, я не получаю оператор. Я ожидал, что оператор получит предикат типа и субъект с localName bbb и объект, определяющий класс контейнера. Я не вижу такого заявления. Как мне определить в синтаксическом анализаторе наличие rdfs: container?

Я заметил, что у Джены есть концепция Контейнера: https://jena.apache.org/documentation/javadoc/jena/org/apache/jena/rdf/model/Container.html.

1 Ответ

0 голосов
/ 02 апреля 2020

Похоже, что объект шел как строка или http://www.w3.org/2000/01/rdf-schema#container. Так что я могу найти это.

...