Подкласс OWL, определенный в черепахе
Я пытаюсь добавить немного онтологии в (общедоступный) набор данных RDF (wordnet), в частности, мне нужно различать LexicalEntries
для глаголов и существительных, разделенных на два подкласса. Следуя примерам в Интернете и в стандарте OWL, я предположил, что
:LexicalEntryNoun a owl:Class ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty wn:part_of_speech ;
owl:hasValue wn:noun
] .
должен построить класс LexicalEntryNoun
, но запрос (у жены фусеки)
prefix : <http://gerastree.at/2017/litonto#>
SELECT *
WHERE {
?s a :LexicalEntryNoun.
}
дает пустой результат. Два URI, которые должны быть возвращены, включены в класс, представленный пустым узлом, который обозначает ограничение, но не сообщается как LexicalEntryNoun
как сообщается в других запросах.
я новичок в OWL и не нахожу много примеров OWL в синтаксисе черепахи. Где моя ошибка? Спасибо за помощь!
Я построил очень маленькое подмножество данных, которое загружается вместе с рассуждением OWL http://jena.hpl.hp.com/2003/OWLFBRuleReasoner
:
@prefix wn31: <http://wordnet-rdf.princeton.edu/wn31> .
@prefix lemon: <http://lemon-model.net/lemon#> .
@prefix nlp: <http://gerastree.at/nlp_2015#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix lit: <http://gerastree.at/lit_2014#> .
@prefix wn: <http://wordnet-rdf.princeton.edu/ontology#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ns: <http://www.example.org/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix : <http://gerastree.at/2017/litonto#> .
<http://wordnet-rdf.princeton.edu/wn31/%27s+Gravenhage-n>
a _:b0 , owl:Thing , rdfs:Resource , lemon:LexicalEntry ;
lemon:canonicalForm <http://wordnet-rdf.princeton.edu/wn31/%27s+Gravenhage-n#CanonicalForm> ;
lemon:sense <http://www.lexvo.org/page/wordnet/30/noun/%27s_gravenhage_1_15_00> , <http://wordnet-rdf.princeton.edu/wn31/%27s+Gravenhage-n#1-n> ;
wn:part_of_speech wn:noun ;
owl:sameAs <http://wordnet-rdf.princeton.edu/wn31/%27s+Gravenhage-n> .
<http://wordnet-rdf.princeton.edu/wn31/%27hood-n>
a _:b0 , owl:Thing , rdfs:Resource , lemon:LexicalEntry ;
lemon:canonicalForm <http://wordnet-rdf.princeton.edu/wn31/%27hood-n#CanonicalForm> ;
lemon:sense <http://www.lexvo.org/page/wordnet/30/noun/%27hood_1_15_00> , <http://wordnet-rdf.princeton.edu/wn31/%27hood-n#1-n> ;
wn:part_of_speech wn:noun ;
owl:sameAs <http://wordnet-rdf.princeton.edu/wn31/%27hood-n> .
:LexicalEntryNoun a owl:Class ;
rdfs:subClassOf
[ a owl:Restriction ;
owl:onProperty wn:part_of_speech ;
owl:hasValue wn:noun
] .
1 ответ
Как уже было размещено в списке рассылки Apache Jena Users, ответ:
Измените подкласс на эквивалентность. Поскольку оба ресурса:
http://wordnet-rdf.princeton.edu/wn31/%27s+Gravenhage-n
http://wordnet-rdf.princeton.edu/wn31/%27hood-n
попадет внутрь класса:LexicalEntryNoun и появится в его запросе SPARQL.
С уважением, Барри