Как назначить подкласс для форума SIOC в RDF? - PullRequest
0 голосов
/ 13 ноября 2018

Я использую rdflib для хранения нового SIOC: Forum на SOLID POD.https://www.w3.org/Submission/sioc-spec/#sec-modules-types утверждает, что SIOC: Forum может иметь подтип / подкласс ChatChannel.Как мне смоделировать мой запрос черепахи (.ttl) для хранения этого подкласса?

@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix types: <http://rdfs.org/sioc/types> .
@base <${uri}> .

:forum
  a sioc:Forum ;
  sioc:has_host <https://banyan.msg> ;
  sioc:has_owner <${owner}> ;
  rdf:type types:ChatChannel ; # <- is this correct?
  sioc:has_subscriber [
    a sioc:User ;
    sioc:account_of <${partner}>
  ] .

1 Ответ

0 голосов
/ 13 ноября 2018

Резюме

Мое первое предположение состоит в том, что вы пропускаете # в конце объявления префикса types. Должно быть @prefix types: <http://rdfs.org/sioc/types#> .

Другое замечание, благодаря @ timbl , заключается в том, что вы можете упростить это, просто перечислив несколько типов в одной строке a и удалив префикс rdf и использование в целом:

a sioc:Forum, types:ChatChannel ;

Подробнее

Использование #

Префиксы меняются местами непосредственно для их соответствующих prefix: использований в остальной части документа черепахи. Это означает, что ваша ссылка на types:ChatChannel будет переведена на http://rdfs.org/sioc/typesChatChannel, что явно не то, что вы хотите.

Обратите внимание, что вам не всегда нужен #. Это зависит от пространства имен. В этом случае вы пытаетесь сослаться на конкретную вещь, встроенную в более крупный документ, поэтому для этого вы используете сегмент URL. Некоторые пространства имен, такие как schema.org, назначают разные пути URL для каждой вещи. В этом случае префикс должен заканчиваться на /.

Использование a

Это совсем не очевидно, если вы еще не знаете, но ключевое слово a в черепахе является псевдонимом для того же предиката rdf:type. См. это одно предложение в документах по черепахе w3. И, учитывая, что это черепаха, вы всегда можете передать список объектов после предиката, используя запятую.

...