When I define property in ontology, how would I define that range of this property is a "blank" node? For example I want to define property hasPhoneNumber
with domain Person
. Than I know that person can have more than one phone numbers, so instance of Person
will have blank node attached to hasPhoneNumber
property and then phone numbers attached to this blank node.
问问题
818 次
1 回答
3
简而言之,你不能这样做。空白节点只是另一种资源。空白节点充当 RDF 中的存在变量;在图中使用空白节点表示某些资源存在并且与其他资源存在某种关系。例如,图表(没有空白节点):
:x :hasPhoneNumber :phoneNumberList .
:phoneNumbeList rdf:value "phone number 1", "phone number 2" .
需要下图(带有空白节点):
:x :hasPhoneNumber [ rdf:value "phone number 1", "phone number 2" ] .
有关此处理的更多信息,请参见1.5。W3C 推荐RDF Semantics中的空白节点作为存在变量。
在 RDF 和 RDFS 级别(您将定义域和属性范围)来区分资源是 URI 资源还是空白节点。如果可以的话,也不清楚这意味着什么。这么说
:p rdfs:domain :C ;
rdfs:range :D .
你的意思是,任何时候你看到使用:p
,例如,
:a :p :b .
您可以将以下三元组添加到图表中:
:a rdf:type :C .
:b rdf:type :D .
请注意,因为rdfs:domain
andrdfs:range
正在向图中添加更多三元组,所以使用(在本例中)的三元组的主语和宾语是:p
空白节点还是 URI 节点并不重要。:a
:b
如果您想为一个人提供多个电话号码,则可以使用多个三元组,并具有以下内容:
:p :hasPhoneNumber :phoneNumber1 , :phoneNumber2, :phoneNumber3 .
这是三个三元组:
:p :hasPhoneNumber :phoneNumber1 .
:p :hasPhoneNumber :phoneNumber2 .
:p :hasPhoneNumber :phoneNumber3 .
或者,如果您想模拟一个人可以拥有一些电话号码的集合,您可以使用 RDF 容器。例如,使用rdf:List
:
:p :hasPhoneNumber ( :phoneNumber1 :phoneNumber2 :phoneNumber3 ) .
可以写成
:p :hasPhoneNumber [ rdf:first :phoneNumber1 ;
rdf:rest [ rdf:first :phoneNumber2 ;
rdf:rest [ rdf:first :phoneNumber3 ;
rdf:rest rdf:nil ] ] ] .
于 2013-12-09T14:19:26.240 回答