以下のコードにあるリンクからアクセスできるオントロジーを開発しました。FILTERセクションを除いてコードは正常に動作しています。FILTER で equal 演算子を使用すると、何も返されません。不等号演算子 (!=) を使用すると、何もフィルタリングされません。「owl:Brands」を使用したオントロジーの Brands クラスの参照が機能していないと思います。Webクローラーにインデックスされたくないので、URLを短くしました。コードで元の URL を使用しています。短縮されたURLで元のURLにアクセスできます。エディターでオントロジーを閲覧できます。「owl:Brands」が機能していないことは確かです。他の多くの可能性を試しましたが、機能させる方法がわかりませんでした。
FILTER ステートメントがないと、owl:Brands に一致するものがないため、「FILTER(?sub!=owl:Brands)」と同じように機能します。参考までに、私は python と rdflib を使用しています。
plugin.register(
'sparql', rdflib.query.Processor,
'rdfextras.sparql.processor', 'Processor')
plugin.register(
'sparql', rdflib.query.Result,
'rdfextras.sparql.query', 'SPARQLQueryResult')
qres = g.query(
"""
PREFIX owl: <http://goo.gl/ZwwgT>
SELECT ?class WHERE { ?sub rdfs:subClassOf ?class .
FILTER(?sub=owl:Brands)}
""")
for row in qres.result:
print(row)