簡體   English   中英

比較一類本體和一個xml文檔節點

[英]comparing an classes of ontologies to an xml document nodes

我的目標是通過從文檔中搜索與本體類同名的節點來將本體與提供的XML文檔進行比較。 為此,我使用以下代碼:

public void freqConcept(String xmldoc,OWLClass node){
        try {
            String filepath = xmldoc;
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(filepath);
            doc.getDocumentElement().normalize();

    list = doc.getElementsByTagName(node.getIRI().getFragment());


        } catch (ParserConfigurationException pce) {
            pce.printStackTrace();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        } catch (SAXException sae) {
            sae.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

如您所見,我給函數提供了一個OWLClass作為參數,然后嘗試使用此行從XML文檔返回具有相同名稱的節點: list = doc.getElementsByTagName(node.getIRI().getFragment()); 它適用於People Ontology,因為上一行將類的名稱返回為String。 但是當我嘗試返回此node.getIRI().getFragment()時,我注意到來自DBPedia的類,我得到的是null而不是類的名稱,僅針對某些類而不是全部。 結果,只有具有正確名稱的類才被計數並存儲在列表中,其他類構成例外...

下圖顯示了結果。.僅正確地返回了一個類SpatialThing ,其他類為null,無法理解原因... 在此處輸入圖片說明

我想知道是否有一種方法可以將OWLClass視為節點,或者是否可以將OWLClass與xml文檔節點進行比較?

謝謝

一些IRI沒有片段。 這是設計使然,並在javadoc中進行了描述。

您必須找到一些無法解決的情況,然后找到您要匹配的XML的示例。 然后,您也許可以找到解決方案。

暫無
暫無

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

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