Ich benutze die Apache Jena API, wo ein Graph auch einige anonyme/leere Knoten enthält, aufgrund von unionOf und intersectionOf. Eines dieser Beispiele ist:Verfahrende anonyme/leere Knoten in 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>
Dies ist ein anonymer Knoten/Ressource. Wenn ich versuche, seine URI zu bekommen, ist es so etwas wie:
„-50a5734d: 15d839467d9: -1b8b“
Ich bin weder in der Lage auf SPARQL-Abfrage unter Verwendung eines solchen URIs (aufgrund Ausnahme zu tun Parsing solcher URIs), noch in der Lage, geeignete Jena-Methode zu finden, um damit umzugehen.
Ich bin auf der Suche nach einer Möglichkeit, solche Knoten zu explodieren und alle verschachtelten Ressourcen davon zu bekommen.
Zum Beispiel in folgendem Fall sollte es zurückgeben <http:/.../Entity1>
, <http:/.../Entity2>
und <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>
Gibt es eine integrierte Methode von Jena es zu behandeln?
Wenn nicht, wie kann ich es effizient machen?
Sie immer an der Turtle Serialisierung der Daten aussehen sollte und nicht die RDF/XML ein. Dann werden Sie sehen, dass Sie SPARQL-Eigenschaftenpfade verwenden können. In der Tat funktioniert das nicht für beliebige verschachtelte Klassen, aber deshalb ist es wie OWL ein OWL-Reasoner – AKSW
Es wäre gut, zuerst die ganze Abfrage zu sehen, aber im Prinzip ist das allgemeine Muster '? Unterklasse rdfs: subClassOf/(owl: unionOf/rdf: rest */rdf: first) +? superclass' wenn Sie nach Superklassen suchen, die durch eine Union von Klassen in OWL definiert sind. – AKSW