Эквивалентные классы в тройках RDF

У меня есть несколько классов внутри файла онтологии и такое же количество классов с разными именами внутри файлов xml. Я создал тройное хранилище RDF из файлов XML. Теперь мне нужно изменить имена классов внутри тройного хранилища на те, что находятся внутри онтологии.

Может ли у кого-нибудь быть идея, как сделать эквивалентность с помощью запроса SPARQL? если это невозможно сделать с помощью запроса SPARQL, как лучше всего это сделать?

----------- Это небольшая часть RDF -------

<rdf:RDF
    xmlns:j.0="http://link/myLink/myOntology.rdf#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > 
  <rdf:Description rdf:about="http://myDomain/myLink/%a=class/class9/">
    <j.0:hadP>Sea Power</j.0:hadP>
    <j.0:hadP>Steel city</j.0:hadP>
    <j.0:hadP>Singer1</j.0:hadP>
    <j.0:hadV>20</j.0:hadV>
    <j.0:hadP>City</j.0:hadP>
    <j.0:hadP>Singer2</j.0:hadP>
    <j.0:hadP>Singer3</j.0:hadP>
    <j.0:hadV>80</j.0:hadV>
    <j.0:hadVEvent>web:V</j.0:hadVEvent>
    <j.0:hadP>Park</j.0:hadP>
    <j.0:hadP>Arctic</j.0:hadP>
    <j.0:hadP>Guns</j.0:hadP>
    <rdf:type rdf:resource="http://link/myLink/myOntology.rdf#**ClassName**"/>
    <j.0:hadP>City Center</j.0:hadP>
    <j.0:hadV>100</j.0:hadV>
    <j.0:hadV>40</j.0:hadV>
  </rdf:Description>
 </rdf:RDF>

Я хочу изменить имя (ClassName) на другое имя, например (ClassA). Могу я сделать это, написав SPARQL QUERY?

В качестве инструментария я использую гену. Я не уверен, что то, о чем я спрашиваю, возможно или нет!


person Mohammed Mohammed    schedule 11.05.2012    source источник
comment
Это довольно непонятно. Не могли бы вы рассказать больше о том, что вы пытаетесь сделать? Также было бы полезно уточнить, какой набор инструментов RDF вы используете (например, Jena, Sesame, Redland и т. Д.), Потому что детали обновления магазинов различаются от платформы к платформе. На первый взгляд, я не понимаю, какое отношение SPARQL имеет к тому, что вы говорите, но более четкое объяснение и пример могут помочь.   -  person Ian Dickinson    schedule 12.05.2012


Ответы (1)


В общем, ресурсы Jena неизменяемы: вы не можете изменить объект Resource после его создания. Это означает, что вы не можете изменить URI любого ресурса, включая классы.

Вместо этого вам нужно обновить модель, чтобы показать эффект переименования. Предположим, вы хотите переименовать ресурс R в S. Для каждой тройки:

R P O

вам нужно добавить новую тройку:

S P O

и удалим старую R P O тройку. Таким же образом следует удалить каждую тройку Q P R и добавить тройку Q P S.

Для этого в Jena API есть утилита: _ 9_. Если вы хотите придерживаться SPARQL, вы должны пройти тот же процесс добавления и удаления троек, но вы можете сделать это с помощью SPARQL Update, которое поддерживается в Йене .

person Ian Dickinson    schedule 13.05.2012