2015-05-19 19 views
0

我想創建一個關於會場信息的RDFS模式,其中包含例如:爲RDFS中的現有類定義額外的屬性?

地址信息和xxx信息。

我發現它的另一個模式:https://schema.org/Place。它包含更多有關地址信息的屬性,但沒有關於xxx的信息。

所以

我應該讓我的架構場地作爲https://schema.org/Place 子類,並添加新的特性?

<?xml version="1.0"?> 

    <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:place="https://schema.org/Place#" 
    xml:base="http://localhost:3000/VenueSchema#"> 
    <rdfs:Class rdf:ID="Venue"> 
    <rdfs:subClassOf rdf:resource="https://schema.org/Place"/> 
    </rdfs:Class> 
    <rdf:Property rdf:ID="xxx"> 
     <rdfs:domain rdf:resource= "#Venue"> 
     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
    </rdf:Property> 

    </rdf:RDF> 

如果我使用的子類,並會場自動擁有從https://schema.org/Place屬性?或者不是繼承,我應該重用https://schema.org/Place,但是爲https://schema.org/Place聲明額外的屬性?類似下面的代碼:

<?xml version="1.0"?> 

<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:place="https://schema.org/Place#" 
xml:base="http://localhost:3000/VenueSchema#"> 

<rdf:Property rdf:ID="xxx"> 
    <rdfs:domain rdf:resource= "https://schema.org/Place"> 
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/> 
</rdf:Property> 

</rdf:RDF> 
+1

請問爲什麼您使用RDF/XML代替更人性化的RDF序列化(如Turtle)? – unor

+0

@unor也許是因爲其他人呢?谷歌「rdfs示例」,看看你想出了什麼(非)多種語法。 –

回答

2

我應該讓我的架構場地作爲https://schema.org/Place子類,並添加新的特性?

如果你聲明描述一類地點,是有意義的把它安排在其他地方類的子類,別人已經宣佈,如果要實現互操作性的一些措施與那個詞彙。這只是意味着你會做Venue rdfs:subClassOf Place

如果我使用子類,會場是否自動具有https://schema.org/Place的屬性?

RDFS(和OWL)類與面向對象編程語言中的類並不完全相同。屬性不屬於類,並且類不從其超類繼承「屬性」。

當你說一個屬性P的域名是一個類d,這意味着,當你有一個三重X P Y [,則可以推斷出X RDF:類型d

所以,你可以使用任何具有域地點實例的屬性,你將不會被推斷關於他們的任何其他信息(除了屬性斷言)。
也就是說,如果你已經知道v地點,並使用屬性p,其域名爲廣場有了它,你可以推斷出v廣場,但你可能已經這樣做了,因爲您聲稱地點的子類地點

或代替子類,我應該只是重用https://schema.org/Placehttps://schema.org/Place聲明額外的屬性?類似下面的代碼:

你可以聲明有廣場爲域以及新屬性。領域公理的意思是,如果財產與某個人一起使用,那麼您可以推斷個人是地方