在 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,但是你已经可以这样做了,因为您断言 VenuePlace 的子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 作为域的新属性。域公理的全部意思是,如果 属性 与某个个体一起使用,那么您可以推断该个体是一个 地点