Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
09-09-2022 12:17 PM
I am referring to the tutorials which are provided by goingMeta. I would like to import the ontology and align the ontology with my CSV instance file. First, I tried this code
ttps://github.com/jbarrasa/goingmeta/blob/main/session5/Ontology_Driven_KG_creation.ipynb
However, when I run this code,
# processing the ontology...
g = rdflib.Graph()
g.parse(path, format='turtle')
simple_query = """
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?c
WHERE {
?c rdf:type owl:Class .
} """
for row in g.query(simple_query):
print(str(row.c), getLocalPart(str(row.c)), getNamespacePart(str(row.c)))
I met this error.
My turtle file is like this
https://github.com/mf093087/Ontology/blob/main/09092022_Test.ttl
Besides, if I can't use the code which is provided by goingmeta training session. I wanted to use data importer to import ontology, however, I met two problems.
1. I don't know how to convert my turtle file to a format that the data importer can load.
2. I can't use Neo4j sandbox now. I can use Neo4j aura DB, but I can't connect to the data importer. Is the server closed?
09-09-2022 12:19 PM
Besides, when I run this.
# read the onto and generate cypher (complete without mappings)
g = rdflib.Graph()
g.parse(path, format='turtle')
classes_and_props_query = """
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?curi (GROUP_CONCAT(DISTINCT ?propTypePair ; SEPARATOR=",") AS ?props)
WHERE {
?curi rdf:type owl:Class .
optional {
?prop rdfs:domain ?curi ;
a owl:DatatypeProperty ;
rdfs:range ?range .
BIND (concat(str(?prop),';',str(?range)) AS ?propTypePair)
}
} GROUP BY ?curi """
cypher_list = []
for row in g.query(classes_and_props_query):
cypher = []
cypher.append("unwind $records AS record")
cypher.append("merge (n:" + getLocalPart(row.curi) + " { `<id_prop>`: record.`<col with id>`} )")
for pair in row.props.split(","):
propName = pair.split(";")[0]
propType = pair.split(";")[1]
cypher.append("set n." + getLocalPart(propName) + " = record.`<col with value for " + getLocalPart(propName) + ">`")
cypher.append("return count(*) as total")
cypher_list.append(' \n'.join(cypher))
rels_query = """
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?rel ?dom ?ran #(GROUP_CONCAT(DISTINCT ?relTriplet ; SEPARATOR=",") AS ?rels)
WHERE {
?rel a ?propertyClass .
filter(?propertyClass in (rdf:Property, owl:ObjectProperty, owl:FunctionalProperty, owl:AsymmetricProperty,
owl:InverseFunctionalProperty, owl:IrreflexiveProperty, owl:ReflexiveProperty, owl:SymmetricProperty, owl:TransitiveProperty))
?rel rdfs:domain ?dom ;
rdfs:range ?ran .
#BIND (concat(str(?rel),';',str(?dom),';',str(?range)) AS ?relTriplet)
}"""
for row in g.query(rels_query):
cypher = []
cypher.append("unwind $records AS record")
cypher.append("match (source:" + getLocalPart(row.dom) + " { `<id_prop>`: record.`<col with source id>`} )")
cypher.append("match (target:" + getLocalPart(row.ran) + " { `<id_prop>`: record.`<col with target id>`} )")
cypher.append("merge (source)-[r:`"+ getLocalPart(row.rel) +"`]->(target)")
cypher.append("return count(*) as total")
cypher_list.append(' \n'.join(cypher))
for q in cypher_list:
print("\n\n" + q)
I met this error.
10-11-2022 03:32 PM
Hello! I'm a complete newbie, I'm also following the same tutorial and running into the same errors. Did you figure out how to fix them?
All the sessions of the conference are now available online