我设计了一套耶拿规则,其中一些规则会持续工作很长时间而不会返回结果。我试图减少我的 OWL 文件以检查规则是否进入无限循环。幸运的是,似乎没有无限循环,少量的类(例如,100 个)处理得非常快。但是,当我添加更多类时,即使只添加一个类,处理时间也会更长。
有没有办法为每个规则添加一个计时器,例如,如果规则花费的时间超过一定时间而没有返回结果,则终止规则?如果有可能,我该怎么做?如果没有,是否有一些解决方法可以达到类似的结果?
我的耶拿规则
[rule1: (?a rdf:type owl:Class) (?b rdf:type owl:Class) (?d rdf:type owl:Class)
equal(?a,?b) notEqual(?b,?d) notEqual(?a,?d) (?d rdfs:subClassOf ?a)
(?d rdf:type ?c)
-> (?a rdf:type ?c) print(?a,'is a Type of',?c)]
我的一些本体
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:dbpediaR="http://dbpedia.org/resource/" xmlns:dbpediaO="http://dbpedia.org/ontology/"
xmlns:dbpediaOP="http://dbpedia.org/ontology/PopulatedPlace/"
xmlns:dbpediaOW="http://dbpedia.org/ontology/Work/"
xmlns:dbpediaP2="http://dbpedia.org/property/2000"
xmlns:dbpediaP21="http://dbpedia.org/property/2010" xmlns:dbpediaP="http://dbpedia.org/property/"
xmlns:dbpedia="http://dbpedia.org/" xmlns:skos="http://www.w3.org/2004/02/skos/core#"
xmlns:w3prov="http://www.w3.org/ns/prov#"
xmlns:w3wgs84="http://www.w3.org/2003/01/geo/wgs84_pos#"
xmlns:georss="http://www.georss.org/georss/">
<owl:Class rdf:about="http://www.w3.org/2002/07/owl#Thing"/>
<owl:Class rdf:about="http://dbpedia.org/resource/Vrije">
<dbpediaO:wikiPageDisambiguates rdf:resource="dbpediaR:Het_Vrije_Volk"/>
<dbpediaO:wikiPageDisambiguates rdf:resource="dbpediaR:Vrije_Universiteit"/>
<dbpediaO:wikiPageDisambiguates rdf:resource="dbpediaR:Vrije_Universiteit_Brussel"/>
<dbpediaO:wikiPageDisambiguates rdf:resource="dbpediaR:Brugse_Vrije"/>
<foaf:isPrimaryTopicOf rdf:resource="http://en.wikipedia.org/wiki/Vrije"/>
<w3prov:wasDerivedFrom rdf:resource="http://en.wikipedia.org/wiki/Vrije%3Foldid%3D437015722"/>
</owl:Class>
</rdf:RDF>