2012-08-15 23 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