diff rdfpy/writeCuidado.py @ 18:d5012016bf64 tip

added rdfpy and rdfonto directories
author nothing@tehis.net
date Tue, 23 Apr 2013 11:49:20 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rdfpy/writeCuidado.py	Tue Apr 23 11:49:20 2013 +0100
@@ -0,0 +1,93 @@
+import rdflib, os, fnmatch, urllib2
+from rdflib import Graph, RDF, RDFS, plugin, URIRef, Literal, OWL, XSD, Namespace
+
+graph = Graph()
+
+af = Namespace('http://sovarr.c4dm.eecs.qmul.ac.uk/features/')
+graph.bind('local', af)
+
+dc = Namespace('http://purl.org/dc/elements/1.1/')
+graph.bind('dc', dc)
+
+categories = [
+    "Temporal",
+    "Energy",
+    "Spectral",
+    "Harmonic",
+    "Perceptual",
+    "Various"
+]
+
+subcategories = {
+    "Temporal": ["Global Temporal Feature", "Instantaneous Temporal Feature"],
+    "Spectral": ["Spectral Shape", "Global Spectral Shape Description"],
+    "Harmonic": ["Harmonic Spectral Shape"],
+    "Perceptual": ["Perceptual Spectral Envelope Shape"],
+    
+}
+
+flat = []
+
+lines = [line.strip() for line in open('pdfextract/cuidado.txt')]
+
+category = "Temporal"
+subcategory = "Global Temporal Feature"
+
+lineIndex = 5
+
+for line in lines[5:]:
+    addFeature = True
+    if line.find("Features") > -1:
+        addFeature = False
+        if categories.count(line[0:line.find("Features")-1]) > 0:
+            if line[0:line.find("Features")-1] != category:
+                category = line[0:line.find("Features")-1]
+                subcategory = ""
+    for sub in flat:
+        if line == sub:
+            addFeature = False
+            if subcategory != line:
+                subcategory = line
+            
+    if line.count(":") == 0 and line.count("_") == 0 and len(line) > 2 and addFeature:
+        id = af + line.title().replace(" ", "")
+        graph.add((
+            URIRef(id),
+            RDF.type,
+            RDFS.Resource
+        ))
+        graph.add((
+            URIRef(id),
+            af['feature'],
+            Literal(line)
+        ))
+        graph.add((
+            URIRef(id),
+            URIRef(af+"Dimensions"),
+            Literal(lines[lineIndex+2])
+        ))
+                    
+        graph.add((
+            URIRef(id),
+            URIRef(af+"FrameBased"),
+            Literal(lines[lineIndex+1])
+        ))
+        
+        if subcategory == "":
+            graph.add((
+                URIRef(id),
+                af['typeOfFeature'],
+                Literal(category + " Feature")
+            ))
+        else:
+            graph.add((
+                URIRef(id),
+                af['typeOfFeature'],
+                Literal(subcategory.replace(" ", ""))
+            ))
+
+    lineIndex += 1
+            
+
+graph.serialize('/Users/alo/MusicOntology/features/rdf/af-cuidado.rdf')
+graph.serialize('/Users/alo/MusicOntology/features/rdfn3/af-cuidado.n3', format="n3")
\ No newline at end of file