2012-08-15 44 views
3

我是一名初学者,正在编写一个RDF模式,并想知道如何良好地使用URI概念并创建一个简单感兴趣的RDF文档。我正在尝试创建以下RDF语句 -如何编码一个简单感兴趣的RDF/XML

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

我应该如何根据这三个句子编写RDF。任何灯光都会对你有所帮助。

回答

3

你可以使用OWL而不是径向分布函数,因为:

1)它是径向分布函数

的一个超集

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 importants特征:

1)类别:声明类

2)DatatypeProperty属性:声明文字属性

3)OBJECTPROPERTY(未在这里):声明一个链接到另一个节点语义图

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

+0

谢谢Galaad,如果我可以使用功能的朋友(FOAF),你能清除我吗? – AKIWEB 2012-08-15 02:27:34

+3

虽然你当然是正确的,OWL比RDFS更具表现力,但我只想指出,你给出的实际示例中没有任何内容需要OWL的表达能力(在RDFS中唯一不能表达的唯一东西就是差异在一个DatatypeProperty和一个ObjectProperty之间,但是这个区别是否必要是值得怀疑的)。 – 2012-08-15 02:28:52

6

我可以推荐你不使用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等)从一种语法转换为另一种语法。

2

FOAF

你可以使用foaf:Person为 “杰菲”(。你可以用foaf:name RESP foaf:givenName RESP foaf:nick有的名称)。

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

作为一名研究生,可以(或许!)模仿foaf:Group


查看example in Wikipedia,它在Turtle序列化中。

+0

@ unor-谢谢你,你能否通过给出或者展示任何例子来详细说明,我完全是使用FOAF函数的新手。这将帮助我更好地理解。提前致谢! – AKIWEB 2012-08-15 17:29:31

+0

@ Nevzz03:我用Turtle语法添加了一个示例链接。 – unor 2012-08-15 19:10:31