Gibt es ein einfaches Tool um URIs in RDF-Daten zu ersetzen? Beispielsweise möchte ich wenn ich RDF-Daten bekomme alle Vorkommen von http://purl.org/dc/elements/1.1/title und http://purl.org/dc/terms/title auf eine der beiden URIs mappen, ohne mich mit Inference beschäftigen zu müssen. Was worauf gemappt wird, sollte per Datei konfigurierbar sein, möglichst auch per pattern, also alle URIs die mit http://purl.org/dc/elements/1.1/ beginnen bekommen stattdessen http://purl.org/dc/terms/ davor.
Als Konfiguration reicht eigentlich eine Liste von Triplen mit einem der Prädikate owl:sameAs, owl:equivalentProperty, rdfs:subClassOf, rdfs:subPropertyOf, skos:exactMatch, skos:broadMatch… und eine spezielle Property zum mappen von URI-Namesräumen, ??:sameUriSpace?
Ein Skript das sowas macht ist schnell erstellt, ich wollte aber lieber fragen, ob es nicht schon sowas gibt, ehe das Rad neu erfunden wird. Oder was nutzt ihr zur Konsolidierung von RDF-Daten mit Ontologien, die eigene Klassen und Properties definieren, auf bekanntere Ontologien?
Ich würde sowas wahrscheinlich mit rdflib und SPARQL update angehen, siehe etwa Querying with SPARQL — rdflib 7.1.0a0 documentation Kommt aber eigentlich auf den konkreten Anwendungsfall und bereits aufgesetze Verarbeitungsprozeese an, in die das integriert werden muss. Vielleicht hast du ja mehr Details…?
Danke für die Hinweise. Ich wollte aber nicht mit Kanonen auf Spatzen schießen sondern reines Suchen- und Ersetzen von URIs in einer NTriples-Datei. Wahrscheinlich reicht ein kurzes Skript in Perl oder Phython.
Das Skript ist doch etwas umfangreicher, da es gleich ein allgemeines Werkzeug geworden ist. Mit rdffilter lassen sich RDF-Tripel filtern und ersetzen.
Die Filter und Ersetzungsregeln sind jeweils kurze Node-Skripte z.B. um sicherzustellen, dass alle IRIs HTTP oder HTTPS-URLs sind:
Ein weiteres Beispiel aus der Praxis ist das Rausfiltern von relative IRIs, die in zu importierenden Daten eigentlich nicht vorkommen sollten. Weitere Beispiele werden hier gesammelt und zusammen mit dem Skript publiziert.