如何在门生中制作财产?



我有以下问题可以在猫头鹰中使用Protégé建模:

可以在不同的Performance s中执行多个Song s。每个Song可以由不同的Performance中的不同Arranger安排。

我已经知道如何使用对象属性将SongPerformance相关联。现在,如何将Song -Performance对映射到Arranger?(在关系数据库中,我将其称为多对多Song-Performance关系的"描述性属性"。

我知道我可以使用对对象属性的注释,但是我希望能够从该属性中推断出某些内容。(例如:哪个Song已安排了Arranger,在哪个Performance?)据我所知,我无法从注释中进行推断。

不必添加属性的属性来建模此方案,尽管属性是对象(uri),因此可以包括任何属性,而不仅仅是注释属性。RDFS:Subpropertyof是一个很好的例子。语句重新化也不需要。这是创建有关歌曲和表演信息的对象的问题。

这是一个代表编曲者与歌曲绩效的关系的模型:

ex:SongPerformance a owl:Class .
ex:Arranger a owl:Class .
ex:arranged rdfs:domain ex:Arranger ;
    rdfs:range ex:SongPerformance .
ex:songPerformed rdfs:domain ex:SongPerformance ;
    rdfs:range ex:Arranger .
ex:performedIn rdfs:domain ex:SongPerformance ;
    rdfs:range ex:Arranger .

给定此列表,一个示例实例是:

ex:Arranger-1 ex:arranged ex:SP1 .
ex:SP1 ex:performedIn ex:Performance_1 ;
    ex:songPerformed ex:Song1 .

然后,您可以通过以下SPARQL查询找到哪些歌曲在给定性能中安排了一个编曲者:

SELECT ?arranger ?song ?performance
WHERE {
   ?arranger a ex:Arranger ;
       ex:arranged ?sp .
   ?sp ex:songPerformed ?song ;
      ex:performedIn ?performance .
}

最新更新