在 RDFS 中为现有 class 定义额外属性?
Define extra properties for an existing class in 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>
Should I make my schema venue as a subclass of https://schema.org/Place and add new properties?
如果您要声明一个描述 class Venue 的地方,将其作为其他 的子class 是有意义的]Place class 其他人声明的,如果您想实现与该词汇表的某种互操作性措施。那只是意味着你会做 Venue rdfs:subClassOf Place.
If I use subclass, does the venue automatically have properties from the https://schema.org/Place?
RDFS(和OWL)classes 与面向对象编程语言中的classes 并不完全相同。属性不会 "belong" 到 classes,并且 classes 不会 "inherit" 来自它们的超级 classes.
的属性
当你说 属性 P 的定义域是 class D 时,这意味着当你有一个三元组 x P y ,你可以推断 x rdf:type D。
因此,您可以将具有域 Place 的任何属性与您的 Venue 实例一起使用,而您不会推断有关它们的任何其他信息(属性 断言除外)。
也就是说,如果您已经知道 v 是一个 Venue,并使用 属性 p的域是Place,你可以推断v是一个Place,但是你已经可以这样做了,因为您断言 Venue 是 Place 的子class。
Or instead of subclassing, I should just reuse https://schema.org/Place but declare extra properties for https://schema.org/Place? Something like the following code:
您也可以声明以 Place 作为域的新属性。域公理的全部意思是,如果 属性 与某个个体一起使用,那么您可以推断该个体是一个 地点 。
我想创建一个关于场地信息的 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>
Should I make my schema venue as a subclass of https://schema.org/Place and add new properties?
如果您要声明一个描述 class Venue 的地方,将其作为其他 的子class 是有意义的]Place class 其他人声明的,如果您想实现与该词汇表的某种互操作性措施。那只是意味着你会做 Venue rdfs:subClassOf Place.
If I use subclass, does the venue automatically have properties from the https://schema.org/Place?
RDFS(和OWL)classes 与面向对象编程语言中的classes 并不完全相同。属性不会 "belong" 到 classes,并且 classes 不会 "inherit" 来自它们的超级 classes.
的属性当你说 属性 P 的定义域是 class D 时,这意味着当你有一个三元组 x P y ,你可以推断 x rdf:type D。
因此,您可以将具有域 Place 的任何属性与您的 Venue 实例一起使用,而您不会推断有关它们的任何其他信息(属性 断言除外)。
也就是说,如果您已经知道 v 是一个 Venue,并使用 属性 p的域是Place,你可以推断v是一个Place,但是你已经可以这样做了,因为您断言 Venue 是 Place 的子class。
Or instead of subclassing, I should just reuse https://schema.org/Place but declare extra properties for https://schema.org/Place? Something like the following code:
您也可以声明以 Place 作为域的新属性。域公理的全部意思是,如果 属性 与某个个体一起使用,那么您可以推断该个体是一个 地点 。