如何说这个类在RDF中应该有这个属性?

如何说这个类在RDF中应该有这个属性?,rdf,semantic-web,Rdf,Semantic Web,我正在尝试阅读RDF规范。我知道什么是类、属性以及所有这些 但是规范似乎没有为我提供一种方式,例如,Person类型的对象应该有名字、姓氏等。规范似乎建议这超出RDF的范围 然而,当我查看FOAF数据库时,它们列出了一个人应该拥有的所有属性。发生什么事了?他们如何将这些属性与其Person类关联?它只是自然语言吗?RDF规范没有对类实例必须具有的属性实施任何约束。包括声明属性的域和范围的方法。换句话说。它允许指定,如果给定的资源具有给定的属性,那么它是特定类型的: foaf:knows a rd

我正在尝试阅读RDF规范。我知道什么是类、属性以及所有这些

但是规范似乎没有为我提供一种方式,例如,Person类型的对象应该有名字、姓氏等。规范似乎建议这超出RDF的范围


然而,当我查看FOAF数据库时,它们列出了一个人应该拥有的所有属性。发生什么事了?他们如何将这些属性与其Person类关联?它只是自然语言吗?

RDF规范没有对类实例必须具有的属性实施任何约束。包括声明属性的域和范围的方法。换句话说。它允许指定,如果给定的资源具有给定的属性,那么它是特定类型的:

foaf:knows a rdf:Property ;
           rdfs:domain foaf:Person .

<enridaga> foaf:knows <alexdma> .
从上面可以推断:

<enridaga> rdf:type foaf:Person .
指定更细粒度的方法来表示类和属性的功能。但是,所有这些规范都涉及指定特性的方法。利用它们、具体化可推断的三元组或最终执行约束检查取决于具体的程序


您所引用的列出了将foaf:Person声明为关系的域类的属性。

RDF规范不对类实例必须具有的属性实施任何约束。包括声明属性的域和范围的方法。换句话说。它允许指定,如果给定的资源具有给定的属性,那么它是特定类型的:

foaf:knows a rdf:Property ;
           rdfs:domain foaf:Person .

<enridaga> foaf:knows <alexdma> .
从上面可以推断:

<enridaga> rdf:type foaf:Person .
指定更细粒度的方法来表示类和属性的功能。但是,所有这些规范都涉及指定特性的方法。利用它们、具体化可推断的三元组或最终执行约束检查取决于具体的程序

您所引用的列表列出了将foaf:Person声明为关系的域类的属性。

指出了其中的要点。不过,还有一些评论

当我看到, 它列出了所有这些 一个人应该拥有的财产

不,没有。它列出了一组以foaf:Person或foaf:Person的子类作为域的属性。这意味着,如果这些属性作为主题与某些资源一起使用,那么该主题就是foaf:Person。例如,从

<https://stackoverflow.com/users/1281433/> foaf:lastName "Taylor"@en
我们可以推断用户是我!是一个foaf:Person。恩里达加的回答也描述了这一点。请注意,FOAF文档中说属性包括:在与domain Person列出一组属性之前

发生什么事了?他们怎么样 是否将这些属性与其Person类关联?只是 自然语言

不,这是rdfs:domain属性。RDFS没有指定任何方式来说明某些资源必须具有某个属性的值,除了实际断言关于该资源和属性的三元组。在OWL中,可以先使用DL语法,然后使用Manchester语法:

人员和SQQ子部分;∃知道,人 子类的人认识某人

这意味着每个人至少认识一个人。然而,这是一个逻辑公理,而不是数据验证规则。这意味着,如果你知道某件事是一个人,那么你就知道某个地方有一个某件事知道的人。它没有说它是什么,也没有说它必须在某个地方被明确断言。也就是说,如果一个给定的知识库没有告诉你某个人认识什么人,这就不是逻辑上的不一致。

抓住了这一点。不过,还有一些评论

当我看到, 它列出了所有这些 一个人应该拥有的财产

不,没有。它列出了一组以foaf:Person或foaf:Person的子类作为域的属性。这意味着,如果这些属性作为主题与某些资源一起使用,那么该主题就是foaf:Person。例如,从

<https://stackoverflow.com/users/1281433/> foaf:lastName "Taylor"@en
我们可以推断用户是我!是一个foaf:Person。恩里达加的回答也描述了这一点。请注意,FOAF文档中说属性包括:在与domain Person列出一组属性之前

发生什么事了?他们怎么样 是否将这些属性与其Person类关联?只是 自然语言

不,这是rdfs:domain属性。RDFS没有指定任何方式来说明某些资源必须具有某个属性的值,除了实际断言关于该资源和属性的三元组。在OWL中,可以先使用DL语法,然后使用Manchester语法:

人员和SQQ子部分;∃知道,人 子类的人认识某人

这意味着每个人至少认识一个人。然而,这是一个逻辑公理,而不是数据验证规则。这意味着,如果你知道某物是一个人,那么你就知道某处有一个人
有人知道。它没有说它是什么,也没有说它必须在某个地方被明确断言。即。,如果给定的知识库没有告诉您某些人知道什么人,那么这不是逻辑上的不一致。

您可以从RDF验证研讨会中查看RDF验证示例您可以从RDF验证研讨会中查看RDF验证示例您参考的FOAF文档列出了声明的属性foaf:作为关系的域类的Person。啊,对了,所以FOAF几乎是在搜索自己的数据库中的属性,并说嘿,我知道所有这些属性都将个人列为他们的域。它真的有点脆弱,不是吗。我想这就是重点…它真的有点脆弱,不是吗。您可能对此感到不舒服,但以这种方式记录RDF本体是非常有用的。RDF本体所做的是以一种正式的方式指定URI术语的语义。这方面独立于数据,数据可能尊重或不尊重这些规则。您仍然可以在RDF数据库中说ex:Car有一个foaf:name。语义/含义将是错误的,您的RDF不会。程序可能会使用本体规范来检查这一点。您参考的FOAF文档列出了将FOAF:Person声明为关系域类的属性。啊,对了,所以FOAF几乎是在搜索自己的数据库中的属性,并说嘿,我知道所有这些属性都将个人列为他们的域。它真的有点脆弱,不是吗。我想这就是重点…它真的有点脆弱,不是吗。您可能对此感到不舒服,但以这种方式记录RDF本体是非常有用的。RDF本体所做的是以一种正式的方式指定URI术语的语义。这方面独立于数据,数据可能尊重或不尊重这些规则。您仍然可以在RDF数据库中说ex:Car有一个foaf:name。语义/含义将是错误的,您的RDF不会。程序可能会使用本体规范来检查这一点。OWL听起来不错,RDF的一个方便的扩展。OWL听起来不错,RDF的一个方便的扩展。