3

我是一个编写 RDF 模式的初学者,我想知道我应该如何充分利用 URI 概念并创建一个简单感兴趣的 RDF 文档。我正在尝试创建以下语句的 RDF-

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

我应该如何根据这三个句子编写 RDF。对此的任何了解都会非常有帮助。

4

3 回答 3

6

我可以建议您不要使用 RDF/XML 吗?学习手写是一种相当复杂的语法格式。您最好使用Turtle语法之类的东西编写 RDF,在这种情况下,您的示例将类似于:

@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 等)从一种语法转换为另一种语法。

于 2012-08-15T02:21:10.257 回答
3

您可以使用 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(不在此处):声明到语义图另一个节点的链接

在您的情况下,您可以创建一个“运动”类,通过 ObjectProperty 更改 DatatypeProperty,更新范围并创建 2 个运动的实例。

于 2012-08-15T02:18:10.907 回答
2

泡沫

您可以将foaf:Person用于“Jeffy”(您可以使用foaf:name resp. foaf:givenName resp. foaf:nick给出名称)。

您可以使用foaf:interest来表示对瑜伽的兴趣(不过,您必须使用代表“瑜伽”的foaf:Document ;请参阅foaf:isPrimaryTopicOf)。或者你可以使用foaf:topic_interest(范围是owl:Thing)。

作为一名研究生可以(也许!)用foaf:Group建模。


请参阅Wikipedia 中的示例,它位于 Turtle 序列化中。

于 2012-08-15T16:39:40.067 回答