Преобразование N-троек в зашифрованный текст

У меня есть дамп N-Triples, который я хочу преобразовать в Cypher Text, чтобы он мог быть загружен непосредственно в базу данных Neo4j. Для простых онтологий, таких как rdf-syntax-ns#type Я могу легко конвертировать, используя скрипт, т.е.

<http://www.foo.org/triple1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.foo.org/Human>

Может быть легко преобразовано в

CREATE (t1:Human { type : "triple1" })

и это точно и как я хочу, чтобы это было. Но для сложных вещей, таких как <http://www.w3.org/2002/07/owl#equivalentProperty> это чертовски плохо.

Таким образом, мой вопрос - Как конвертировать любую тройку, используя <http://www.w3.org/2002/07/owl#equivalentProperty> как предикат для шифровального текста?

1 ответ

Решение

Смотрите этот связанный вопрос для общих вопросов о том, как получить RDF в Neo4J.

Для конкретно equivalentProperty вещи, причина, по которой вы тут запутались, в том, что equivalentProperty является мета-оператором, который ссылается на саму модель; именно в этом случае он делает заявление о свойствах, а не о данных. В Neo4J у вас нет явной модели в базе данных (мы надеемся, что со временем она может измениться, но пока это так). Таким образом, вы не можете говорить о собственности вообще как таковой. Вероятно, вам лучше всего создать новый тип узла, который заменяет метаданные этого свойства.

Например, если у вас был RDF:

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#equivalentProperty> <http://my-ns.org/vocab#foobar>

Тогда вы можете превратить это в:

MERGE (p1:Property { ns: "http://www.w3.org/1999/02/22-rdf-syntax-ns#", name:"type" },
      (p2:Property { ns: "http://my-ns.org/vocab#", name: "foobar" }),
      (p1)-[:equivalentProperty]->(p2);

Это работает потому, что мы создаем :Property узлы, которые делают свойства метаданных реальными. Вы не получите этого по умолчанию с neo4j, тогда как в RDF, в силу того факта, что эти свойства имеют свои собственные URI, они являются "узлами" в RDF.

Другие вопросы по тегам