def __init__(self, domain_path=None, base_ontology_path=None, extention_ontology_path=None): self.domain_path = domain_path if domain_path is not None else "./Ontologies/smartbuildingprivacyvunl.ttl" self.base_ontology_path = base_ontology_path if base_ontology_path is not None else "./Ontologies/privacyvunl.ttl" self.extention_ontology_path = extention_ontology_path if extention_ontology_path is not None else "./Ontologies/privacyvunlv2.ttl" self.input_util = InputUtil(self.domain_path, self.base_ontology_path, self.extention_ontology_path) self.PRIVVULN = NSUtil.get_namespase_base_ontology() self.PRIVVULNV2 = NSUtil.get_namespase_extrantion_ontology() self.RDF = NSUtil.get_namespase_rdf() self.total_score = 0
def __init__(self, input_model, base_ontology_url, extention_ontology_url, domain_url): self.input_model = input_model self.PRIVVULN = NSUtil.get_namespase_base_ontology() self.PRIVVULNV2 = NSUtil.get_namespase_extrantion_ontology() self.RDF = NSUtil.get_namespase_rdf() self.base_ontology_url = base_ontology_url self.extention_ontology_url = extention_ontology_url self.domain_url = domain_url
def __init__(self, DOMAINNAMESPACE): self.RDF = util.get_namespase_rdf() self.RDFS = util.get_namespase_rdfs() self.OWL = util.get_namespase_owl() self.XSD = util.get_namespase_xsd() self.PRIVVULN = util.get_namespase_base_ontology() self.PRIVVULNV2 = util.get_namespase_extrantion_ontology() self.DOMAINNAMESPACE = DOMAINNAMESPACE self.graph = Graph()
from rdflib import Graph, Namespace, URIRef, Literal import rdflib from Framework.driver import Driver import Framework.namespace_util as NSUtil g1 = Graph() # source namespaces RDF = NSUtil.get_namespase_rdf() RDFS = NSUtil.get_namespase_rdfs() OWL = NSUtil.get_namespase_owl() XSD = NSUtil.get_namespase_xsd() PRIVVULN = NSUtil.get_namespase_base_ontology() PRIVVULNV2 = NSUtil.get_namespase_extrantion_ontology() SBUILDING = NSUtil.get_namespase_domain_smart_building() g1.bind('rdf' , RDF) g1.bind('rdfs', RDFS) g1.bind('owl' , OWL) g1.bind('xsd' , XSD) # custom namespace g1.bind('privvuln',PRIVVULN) g1.bind('privvulnv2',PRIVVULNV2) g1.bind('sbuilding',SBUILDING) # model namespace
def run_analyses(json): g1 = Graph() # source namespaces RDF = NSUtil.get_namespase_rdf() RDFS = NSUtil.get_namespase_rdfs() OWL = NSUtil.get_namespase_owl() XSD = NSUtil.get_namespase_xsd() PRIVVULN = NSUtil.get_namespase_base_ontology() PRIVVULNV2 = NSUtil.get_namespase_extrantion_ontology() SBUILDING = NSUtil.get_namespase_domain_smart_building() g1.bind('rdf', RDF) g1.bind('rdfs', RDFS) g1.bind('owl', OWL) g1.bind('xsd', XSD) # custom namespace g1.bind('privvuln', PRIVVULN) g1.bind('privvulnv2', PRIVVULNV2) g1.bind('sbuilding', SBUILDING) nodes = json["nodes"] links = json["links"] namespace = json["namespace"] M = Namespace(namespace) g1.bind('m', M) for node in nodes: if "name" not in node and "type" not in node: continue subject = M[node["name"]] g1.add((subject, RDF.type, rdflib.term.URIRef(node["type"]))) if "superType" in node and node["superType"] != "" and node[ "superType"] and node["superType"] != str(PRIVVULNV2.Context): g1.add((subject, RDF.type, rdflib.term.URIRef(node["superType"]))) if "attributes" in node: for attribute in node["attributes"]: if "name" not in attribute and "value" not in attribute and "dataType" not in attribute: continue if attribute["dataType"] == "int" or attribute[ "dataType"] == "double" or attribute[ "dataType"] == "string": if attribute["value"] != '' and attribute["value"] != None: g1.add( (subject, rdflib.term.URIRef( str(PRIVVULNV2) + attribute["name"]), Literal(attribute["value"], datatype=rdflib.term.URIRef( str(XSD) + attribute["dataType"])))) for link in links: if "subject" not in link and "predicate" not in link and "object" not in link: continue g1.add((rdflib.term.URIRef(link["subject"]), rdflib.term.URIRef(link["predicate"]), rdflib.term.URIRef(link["object"]))) driver = Driver(debug_mode=True) print("graph has %s statements." % len(g1)) g1, risk_results, graph = driver.run_with_output(g1) print("graph has %s statements." % len(g1)) returnJson = { 'graph': str(graph.source), 'privacy_report': risk_results, } return returnJson