Как кодировать RDF/XML, представляющий простой интерес

Я новичок в написании схемы RDF, и мне было интересно, как мне правильно использовать концепцию URI и создать документ RDF, представляющий простой интерес. Я пытаюсь создать RDF следующего оператора:

Jeffy is a Graduate student
Jeffy likes yoga
Jeffy is seeking Tennis.

Как мне написать RDF на основе этих трех предложений. Любой свет на это был бы действительно полезен.


person AKIWEB    schedule 15.08.2012    source источник


Ответы (3)


Могу ли я порекомендовать вам не использовать RDF/XML? Это довольно сложный синтаксический формат, чтобы научиться писать от руки. Вам лучше написать свой RDF, используя что-то вроде синтаксиса Turtle, и в этом случае ваш пример будет выглядеть примерно так:

@prefix my: <http://example.org/mynamespace/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

my:jeffy rdf:type my:GraduateStudent ;
         my:likes my:yoga ;
         my:isSeeking my:Tennis .

Если вам по той или иной причине необходим RDF/XML, рассмотрите возможность использования любого инструментария синтаксического анализа RDF (OpenRDF Sesame, Apache Jena, dotNetRDF и т. д.) для преобразования одного синтаксиса в другой.

person Jeen Broekstra    schedule 15.08.2012

Вы можете использовать OWL вместо RDF, потому что:

1) Это надмножество RDF

2) Он мощнее

Например:

<?xml version="1.0"?>

<!DOCTYPE rdf:RDF [
  <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
  <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
  <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
  <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
  <!ENTITY base "http://www.example.com/example/" >
  ]>

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns:owl="http://www.w3.org/2002/07/owl#"
   xmlns:base="http://www.example.com/example/"
   >

  <owl:Class rdf:about="#GraduateStudent" />

  <owl:DatatypeProperty rdf:about="&base;Likes">
    <rdfs:domain rdf:resource="&base;GraduateStudent" />
    <rdfs:range rdf:resource="string" />
  </owl:DatatypeProperty>

  <owl:DatatypeProperty rdf:about="&base;IsSeeking">
    <rdfs:domain rdf:resource="&base;GraduateStudent" />
    <rdfs:range rdf:resource="string" />
  </owl:DatatypeProperty>

  <base:GraduateStudent rdf:about="&base;GraduateStudent/001">
    <base:Likes>yoga</base:Likes>
    <base:IsSeeking>Tennis</base:IsSeeking>
  </base:GraduateStudent>

</rdf:RDF>

Вы можете заметить, что модель И данные находятся в одном файле.

3 важные особенности:

1) Класс: объявить класс

2) DatatypeProperty: объявить буквальное свойство

3) ObjectProperty (не здесь): объявить ссылку на другой узел семантического графа

В вашем случае вы можете создать класс «Спорт», изменить DatatypeProperty на ObjectProperty, обновить диапазон и создать экземпляры двух видов спорта.

person Galaad    schedule 15.08.2012
comment
Спасибо, Галаад, не могли бы вы уточнить, могу ли я использовать функцию друга (FOAF)? - person AKIWEB; 15.08.2012
comment
Хотя вы, конечно, правы в том, что OWL более выразителен, чем RDFS, я просто хотел бы указать, что ничто в приведенном вами реальном примере на самом деле не нуждается в выразительности OWL (единственное, что вы не можете выразить в RDFS, — это разница между DatatypeProperty и ObjectProperty, но сомнительно, необходимо ли это различие). - person Jeen Broekstra; 15.08.2012

FOAF:

Вы можете использовать foaf:Person для "Джеффи" (вы можете указать имя с помощью foaf:name соответственно foaf:givenName или foaf:nick ).

Вы можете использовать foaf:interest для интереса к йоге (вам нужно будет использовать foaf:Document, представляющий слово "йога", см. foaf:isPrimaryTopicOf). Или вы можете использовать foaf:topic_interest (диапазон owl:Thing).

Быть аспирантом можно (возможно!) смоделировать с помощью foaf:Group.


См. пример в Википедии, это сериализация Черепахи.

person unor    schedule 15.08.2012
comment
@unor- спасибо, не могли бы вы рассказать подробнее, приведя или показав какой-либо пример, я совершенно новичок в использовании функции FOAF. Это действительно поможет мне понять больше. Заранее спасибо! - person AKIWEB; 15.08.2012
comment
@ Nevzz03: я добавил ссылку на пример с синтаксисом Turtle. - person unor; 15.08.2012