由於unionOf和intersectionOf,我正在使用Apache Jena的API,其中圖形也包含一些匿名/空白節點。其中一個例子是:遍歷Jena中的匿名/空白節點
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity1"/>
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity2"/>
</owl:unionOf>
</owl:Class>
這是一個匿名節點/資源。當我試圖獲得其URI,它是這樣的:
「-50a5734d:15d839467d9:-1b8b」
我既不能夠使用這樣的URI(做SPARQL查詢由於異常的解析這些URI),也無法找到適當的Jena方法來處理它。
我正在尋找一種方法來爆炸這樣的節點並獲得它的所有嵌套資源。
例如在以下情況下,它應該返回<http:/.../Entity1>
,<http:/.../Entity2>
和<http:/.../Entity3>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity1"/>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity2"/>
<rdf:Description rdf:about="http://www.summyUrl.com/something#Entity3"/>
</owl:unionOf>
</owl:unionOf>
</owl:Class>
有沒有處理呢耶拿任何內置的方法?
如果不是,我該如何有效地做到這一點?
你應該總是看數據的龜序列化,而不是RDF/XML之一。然後你會看到你可以使用SPARQL屬性路徑。事實上,這對任意嵌套類不起作用,但因此,因爲它是OWL OWL推理器是要走的路 – AKSW
首先看到整個查詢將是很好的,但原則上常見模式是'?subclass rdfs:subClassOf /(owl:unionOf/rdf:rest */rdf:first)+?superclass'如果您正在尋找由OWL中的類聯合定義的超類。 – AKSW