簡體   English   中英

在SPARQL過濾器中引用OWL類

[英]Refering OWL Class In SPARQL Filter Stament

我開發了一個本體,您可以使用下面的代碼中存在的鏈接訪問。 代碼工作正常,除了FILTER部分。 如果我在FILTER中使用相等的運算符,它不會返回任何內容。 如果我使用不等於運算符(!=),它不會過濾任何東西。 我想我在本體論中用“貓頭鷹:品牌”參考Brands課程是行不通的。 我縮短了網址,因為我不希望它被網絡抓取工具編入索引。 我在代碼中使用原始URL。 您可以使用縮短的網址訪問原始網址。 您可以通過編輯器瀏覽本體。 我很確定“貓頭鷹:品牌”不起作用,我嘗試了許多其他可能性,但無法弄清楚如何使其工作。

沒有FILTER語句,它的作用等於“FILTER(?sub!= owl:Brands)”,因為沒有任何東西與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)

我只能假設您錯誤地轉錄了您的示例,或者rdflib有錯誤。 我加載了你的本體,執行了你的查詢(使用你的本體的擴展URL)並得到了一個結果,啤酒。 但是,我沒有使用RDFlib。 您可以嘗試將其提取到單個測試用例並將其提供給RDFlib作者,以便他們可以解決問題,和/或查看使用其他數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM