我,
我需要一些关于本体论之间属性继承的精确性。
我希望创建一个本体,它将尽可能多地使用标准本体中定义的属性(例如: foaf、vcard、bio等)。我只是不想重新创建一个类的属性,如果它已经存在于另一个(或许多其他)智能定义的本体中。
让我们举个例子。
我得描述一个人。我的本体中的"Person“有一些已经在foaf中描述过的标准属性。但是,在我的例子中,它还有一些特定于我的业务的属性(假设我在“客户关系”域中工作),以及一些特定于我的组织的属性。
我已经找出了一些解决办法:
是否有另一种适当的解决办法?
提前谢谢你!
发布于 2016-08-27 10:29:54
我试着给你一个可能是部分的答案。首先,当然要知道,FOAF本体是纯RDF,而不是OWL。
rdfs:subClassOf本体不包含类foaf:Person的foaf:Person公理(在曼彻斯特OWL语法中)
Class: Person
SubClassOf: Agent, SpatialThing如果您的person类是foaf:Person的一个子类,那么通过推断您将得到的唯一好处是您的类也是foaf:Agent和foaf:SpatialThing的子类。
您在文档中看到的属性列表只是其域为foaf:Person的属性。例如,对于foaf:surname,FOAF本体包含公理
foaf:surname rdfs:domain foaf:Person这不同于subClass公理,即每个人都有一个姓,这是一个字符串值(用奇怪的RDF三重表示法):
foaf:surname rdfs:subClassOf _:x .
_:x rdf:type owl:Restriction .
_:x owl:onProperty foaf:surname .
_:x owl:someValuesFrom xsd:string .相反,域名只是说“任何有姓氏的东西都是人”的语法糖。
owl:sameAs用于表示两个个体表示同一个真实世界实体,因此,它不用于类。在RDFS中,您可以在两个方向上使用rdfs:subClassOf,OWL有一个快捷方式,称为owl:equivalentClass。
rdf:type用于向类断言个人。
发布于 2016-08-31 04:57:01
除非我完全误解了你的情况,否则你不需要为此做任何“困难”的事情。只需使用标准的FOAF Person类,并添加您认为合适的附加属性。例如,您可以定义自己的自定义属性如下:
ex:myCustomerRelationProperty a owl:ObjectProperty ;
rdfs:domain foaf:Person .然后有这样一个人的数据:
ex:person0001 a foaf:Person ;
foaf:surname "Doe";
foaf:firstName "John";
.... // etc other FOAF properties
ex:myCustomerRelationProperty ex:someValue .好了。没有继承,没有sameAs映射,或者任何其他必需的东西。
https://stackoverflow.com/questions/39166586
复制相似问题