仅在protege中使用关键字不返回任何内容

时间:2017-06-23 08:13:09

标签: owl ontology protege

我有一个班级Movie,其中包含代表电影的2515159个实例和一个名为Country的班级,其中包含个人,如英国,美国,意大利,奥地利和其他国家。我还有一个角色hasCountry与电影中的国家/地区相匹配,例如:

2515159 hasCountry Italy
2515159 hasCountry Austria

(电影可以有很多国家)

现在出现问题: 我想创建一个名为Movie的{​​{1}}的子类,其中包含只有欧洲国家的个体。

在保护中创建名为EuropeanMovie的Movie的子类后,我尝试将等效于:

EuropeanMovie

也尝试过:

Movie and hasCountry only {Austria,Italy, ...all the EU countries...}

但上面只使用关键字不会返回任何内容,而只有欧盟国家的电影就像开头的例子一样。

经过大量的搜索,我发现了很多,但我认为这可能与猫头鹰的开放世界假设有关,但我不明白。

如果有人能提出任何建议,那将非常有帮助,谢谢!

2 个答案:

答案 0 :(得分:4)

确实这是开放世界假设(OWA)的结果。 OWA意味着可能存在本体中未描述的其他知识(但与其不矛盾)。特别是,如果本体包含

<manifestcertificatethumbprint>...</manifestcertificatethumbprint>
<manifestkeyfile>...</manifestkeyfile>
<generatemanifests>...</generatemanifests>
<signmanifests>...</signmanifests>

这并不意味着电影中没有其他国家。它可能很容易

<button type="submit" id="button" email-confirm></button>

$('#button').click(function (e) {
var type = $(this).attr('type:submit');
if (!$('#dialog').length) {
    $('body').append('<div id="dialog" class="modal modal-block" role="dialog"><p>Do you want to delete?</p><button id="dialogConfirm">Confirm</button><button id="dialogCancel" data-dismiss="modal">Cancel</button></div>');
} 
$('#dialogConfirm').attr('type:submit', type);
$('#dialog').modal({ show: true });
return false;
})

在本体中没有提到。这就是为什么2515159 hasCountry Italy 2515159 hasCountry Austria 的请求无法为您找到任何电影的原因。

为了获得2515159 hasCountry USA 查询的正确答案,您必须修改本体,以确保除了本体中明确提到的内容之外,影片中没有国家/地区。

例如,可以添加only语句来声明本体中的知识已完成。添加

only

可以确保电影2515159中没有其他国家。

答案 1 :(得分:1)

使用Protégé5.1.0和Pallet,我测试过:

Movie and hasCountry some ({Austria, Italy})

且没有括号:

 Movie and hasCountry some {Austria, Italy}

以及我建议的方法 - 将EuropeanCountry作为单独的类:

:EuropeanMovie rdf:type owl:Class ;
     owl:equivalentClass [ owl:intersectionOf ( :Movie
           [ rdf:type owl:Restriction ;
                  owl:onProperty :hasCountry ;                                                                
                     owl:someValuesFrom [ rdf:type owl:Class ;                                                              
                        owl:oneOf ( :Austria :Italy ) ] ] ) ;
                                     rdf:type owl:Class] ;
               rdfs:subClassOf :Movie .

然后将EuropeanMovie定义为:

Movie and hasCountry some EuropeanCountry