예제 #1
0
파일: PlayMusic.py 프로젝트: iddi/sofia
 def forwardSong(self, event=None):
     """Forwards song 5s and adds **CueEvent** to smart space."""
     global playing
            
     sound.set_position(5000000)
     print(u"Forwarding..")
     
     if self.connected:
     	eventID = self.addEvent("CueEvent")
     	t = RDFTransactionList()
     	t.add_literal(eventID, ns + "cueAt", "5000")
     	self.ts.insert(t.get())
예제 #2
0
def addEvent(eventType, tagID, position):
    """Adds new event of *eventType* with metadata (**inXSDDateTime**, **hasRFIDTag** and **hasPosition**) to smart space"""
    t = RDFTransactionList()
    u1 = ns + "event" + str(uuid.uuid4())
    t.setType(u1, ns + eventType)
    #t.add_literal(u1, ns + "generatedBy", ns + self.deviceID)
    dt = datetime.now()
    xsddt = '"'+dt.strftime('%Y-%m-%dT%H:%M:%S%z')  + '"^^<http://www.w3.org/2001/XMLSchema#dateTime>'
    t.add_literal(u1, ns + "inXSDDateTime", xsddt)
    t.add_literal(u1, ns + "hasRFIDTag", "\"" + tagID + "\"^^<http://www.w3.org/2001/XMLSchema#string>");
    t.add_literal(u1, ns + "hasPosition", "\"" + str(position) + "\"^^<http://www.w3.org/2001/XMLSchema#integer>")
    print eventType, ": Object ", tagID, " next to position ", position
    ts.insert(t.get())
    return u1
예제 #3
0
    def forwardSong(self, event=None):
        """Forwards song 5s and sends notification"""
        global cueAt
               
        if self.connected and cueAt == 0: #If cueAt is 0, the button was pressed on this device
        	self.start_time = time.time()
        	eventID = self.addEvent("CueEvent")
        	t = RDFTransactionList()
        	t.add_literal(eventID, ns + "cueAt", '"5000"^^<http://www.w3.org/2001/XMLSchema#integer>')
        	self.ts.insert(t.get())

        self.m_media.seek(5000)
        self.note("Forwarding..")
        cueAt = 0
예제 #4
0
파일: wakeupKP.py 프로젝트: iddi/sofia
def registerDevice():
    t = RDFTransactionList()
    u1 = ie_ns + deviceID

    t.setType(u1, ie_ns + "SmartObject")
    # t.add_uri(u1,ie_ns + "functionalitySource",ie_ns + "AdjustLevel")
    # t.add_uri(u1,ie_ns + "functionalitySink",ie_ns + "Alarm")

    #    u2 = ns + "id" + str(uuid.uuid4())
    #    t.add_uri(u1, sofia_ns + "hasIdentification",u2)
    #    t.add_uri(u2, semint_ns + "ofIDType", semint_ns + "RFID_Mifare")
    #    t.add_literal(u2, semint_ns + "idValue", "\"" + RFID + "\"^^<http://www.w3.org/2001/XMLSchema#string>")

    ts.insert(t.get())
    print "Device registered."
예제 #5
0
파일: PlayMusic.py 프로젝트: iddi/sofia
 def addEvent(self, eventType):
 	"""Adds new event with metadata (**generatedBy**, **inXSDDateTime**) to smart space"""
     t = RDFTransactionList()
     u1 = ns + "event" + str(uuid.uuid4())
     t.setType(u1, ns + eventType)
     t.add_literal(u1, ns + "generatedBy", ns + self.deviceID)
     dt = datetime.now()
     xsddt = '"'+dt.strftime('%Y-%m-%dT%H:%M:%S%z')  + '"^^<http://www.w3.org/2001/XMLSchema#dateTime>'
     t.add_literal(u1, ns + "inXSDDateTime", xsddt)
     self.ts.insert(t.get())
     return u1
예제 #6
0
def addEvent(eventType, dataValue=None):
    """Adds new event with metadata (generatedBy, datetime) to smart space"""
    global ts

    t = RDFTransactionList()
    u1 = ie_ns + "event" + str(uuid.uuid4())
    t.setType(u1, ie_ns + eventType)
    t.add_uri(u1, ie_ns + "generatedBy", ie_ns + deviceID)
    dt = datetime.now()
    xsddt = '"'+dt.strftime('%Y-%m-%dT%H:%M:%S%z')  + '"^^<http://www.w3.org/2001/XMLSchema#dateTime>' # e.g. "2011-01-19T16:10:23"^^<http://www.w3.org/2001/XMLSchema#dateTime>
    t.add_literal(u1, ie_ns + "inXSDDateTime", xsddt)

    if(dataValue != None):
        print "Data value: " + str(dataValue)
        t.add_literal(u1, ie_ns + "dataValue", str(dataValue))
#        if type(dataValue).__name__=='int':
#            t.add_literal(u1, ie_ns + "dataValue", str(dataValue) + '^^<http://www.w3.org/2001/XMLSchema#integer>')

    ts.insert(t.get())
    return u1
예제 #7
0
파일: explorer.py 프로젝트: desmovalvo/mbp
    def __init__(self, ssd, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.trans = RDFTransactionList()
        self.smartSpaceData = ssd
        self.makeTransactionDialogUi = Ui_DialogMakeTransaction()
        self.makeTransactionDialogUi.setupUi(self)
	self.connect(self.makeTransactionDialogUi.pushButtonGenUUID4Subject,
                     QtCore.SIGNAL('clicked()'), 
                     self.genUUID4subject )
	self.connect(self.makeTransactionDialogUi.pushButtonPopulate,
                     QtCore.SIGNAL('clicked()'), 
                     self.populateComboBoxesWithURIs )
	self.connect(self.makeTransactionDialogUi.pushButtonPopulateNS,
                     QtCore.SIGNAL('clicked()'), 
                     self.populateComboBoxesWithNSs )
	self.connect(self.makeTransactionDialogUi.pushButtonAdd,
                     QtCore.SIGNAL('clicked()'), 
                     self.add )
예제 #8
0
파일: connectorKP.py 프로젝트: iddi/sofia
def connect(device1,device2, make):
    """Adds or removes a **connectedTo** relationship between *device1* and *device2* based on whether *make* is ``True`` or ``False``"""   
    if make:
        print "Connecting " + device1.split("#")[1] + " to " + device2.split("#")[1]
        pro = node.CreateInsertTransaction(smartSpace)
        triple = [((device1, ns+'connectedTo', device2), 'uri', 'uri')]
        pro.send(triple, confirm = True)
        node.CloseInsertTransaction(pro)
    else:
        print "Disconnecting " + device1.split("#")[1] + " from " + device2.split("#")[1]  
        t = RDFTransactionList()
        t.add_uri(device1,ns+'connectedTo', device2)
        t.add_uri(device2,ns+'connectedTo',device1)  
        ds = node.CreateRemoveTransaction(smartSpace)
        ds.remove(t.get(), confirm = True)
        node.CloseRemoveTransaction(ds)               
예제 #9
0
#-*- coding:utf-8 -*-

from TripleStore import *
import uuid
from datetime import datetime
from RDFTransactionList import * #helper functions for working with triples

class RdfMsgHandler:	
    def handle(self, added, removed):
        print "ok"


ts = TripleStore()

#insert something into smart space
t = RDFTransactionList()

'''
u1 = ns + "event" + str(uuid.uuid4())
#t.setType(u1, ns + "PlayEvent")
t.setType(u1, ns + "CueEvent")
t.add_literal(u1, ns + "generatedBy", ns+"nokiaN95")
t.add_literal(u1, ns + "cueAt", '"5000"^^<http://www.w3.org/2001/XMLSchema#integer>')
dt = datetime.now()
xsddt = '"'+dt.strftime('%Y-%m-%dT%H:%M:%S%z')  + '"^^<http://www.w3.org/2001/XMLSchema#dateTime>'
t.add_literal(u1, ns + "inXSDDateTime", xsddt)
ts.insert(t.get())
'''
prop = ns+"connectedTo"
#prop = ns+"is"
update_ins = []
예제 #10
0
파일: bootHSS.py 프로젝트: desmovalvo/mbp
	def createMediaEntries(self):
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/mediaCDS#"

		u1 = ns + str(uuid.uuid4())
		u2 = ns + str(uuid.uuid4())
		u3 = ns + str(uuid.uuid4())
		u4 = ns + str(uuid.uuid4())

		t.setType(u1, ns + "MediaTrack")
		print "**", ns + "MediaTrack"
		t.add_literal(u1, ns + "artist", "Peter Gabriel")		
		t.add_literal(u1, ns + "album", "Hit")
		t.add_literal(u1, ns + "genre", "Progessive")				
		t.add_literal(u1, ns + "title", "Solsbury Hill")				

		t.setType(u2, ns + "MediaTrack")
		t.add_literal(u2, ns + "artist", "Rush")		
		t.add_literal(u2, ns + "album", "2112")
		t.add_literal(u2, ns + "genre", "Progessive")				
		t.add_literal(u2, ns + "title", "Passage to Bangkok")				

		t.setType(u3, ns + "MediaTrack")
		t.add_literal(u3, ns + "artist", "Genesis")		
		t.add_literal(u3, ns + "album", "Lamb Lies Down")
		t.add_literal(u3, ns + "genre", "Progessive")				
		t.add_literal(u3, ns + "title", "Lamb Lies Down on Broadway")

		t.setType(u4, ns + "MediaTrack")
		t.add_literal(u4, ns + "artist", "Jaco Pastorius")		
		t.add_literal(u4, ns + "album", "Jazo Pastorius")
		t.add_literal(u4, ns + "genre", "Jazz")				
		t.add_literal(u4, ns + "title", "Portrait of Tracy")

		p1 = self.theNode.CreateInsertTransaction(self.theSmartSpace)
		p1.send( t.get() )
		self.theNode.CloseInsertTransaction(p1)
예제 #11
0
파일: bootHSS.py 프로젝트: desmovalvo/mbp
	def createUsers(self):
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/hssuser#"

		u1 = ns + str(uuid.uuid4())
		u2 = ns + str(uuid.uuid4())
		u3 = ns + str(uuid.uuid4())
		u4 = ns + str(uuid.uuid4())
		u5 = ns + str(uuid.uuid4())

		t.setType(u1, ns + "FamilyMember")
		t.setType(u2, ns + "FamilyMember")
		t.setType(u3, ns + "FamilyMember")
		t.setType(u4, ns + "Visitor")
		t.setType(u5, ns + "Visitor")

		t.add_literal(u1, ns + "name", "Ian")
		t.add_literal(u2, ns + "name", "Pekka")
		t.add_literal(u3, ns + "name", "Olli")
		t.add_literal(u4, ns + "name", "Jukka")
		t.add_literal(u5, ns + "name", "Seamus")

		p1 = self.theNode.CreateInsertTransaction(self.theSmartSpace)
		p1.send( t.get() )
		self.theNode.CloseInsertTransaction(p1)
예제 #12
0
파일: bootHSS.py 프로젝트: desmovalvo/mbp
	def createOntologicalStructures(self):
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/hssuser#"
		t.add_subClass(ns + "FamilyMember", ns + "HomeMember")
		t.add_subClass(ns + "Visitor", ns + "HomeMember")
		p1 = self.theNode.CreateInsertTransaction(self.theSmartSpace)
		p1.send( t.get() )
	
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/mediaCDS#"
		t.add_subClass(ns + "MediaTrack", ns + "MediaItem")
		t.add_subClass(ns + "MediaItem", ns + "MediaObject")
		p1.send( t.get() )
	
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/device#"
		t.add_subClass(ns + "TV", ns + "Device")
		t.add_subClass(ns + "Radio", ns + "Device")
		t.add_subClass(ns + "CDPlayer", ns + "Device")
		t.add_subClass(ns + "DVDPlayer", ns + "Device")
		t.add_subClass(ns + "ExternalSpeaker", ns + "Device")
		p1.send( t.get() )	
		self.theNode.CloseInsertTransaction(p1)
예제 #13
0
파일: bootHSS.py 프로젝트: desmovalvo/mbp
	def createUnificationExample(self):
		t = RDFTransactionList()

		ns = "http://donkey.eeor.disney.com/animals#"
		u1 = ns + str(uuid.uuid4())
		t.setType(u1, ns + "Donkey")
		t.add_literal(u1, ns + "petname", "Dobbin")
	
		ns="http://www.nokia.com/persons#"
		u2 = ns + str(uuid.uuid4())
		t.setType(u2, ns + "Person")
		t.add_literal(u2, ns + "number", "42")
		t.add_literal(u2, ns + "name", "Flash Gordon")

		t.unify(u1, u2)

		p1 = self.theNode.CreateInsertTransaction(self.theSmartSpace)
		p1.send( t.get() )
		self.theNode.CloseInsertTransaction(p1)
예제 #14
0
파일: bootHSS.py 프로젝트: desmovalvo/mbp
	def createDevices(self):
		t = RDFTransactionList()
		ns="http://hss.nrc.nokia.com/device#"
		
		u1 = ns + str(uuid.uuid4())
		u2 = ns + str(uuid.uuid4())
		u3 = ns + str(uuid.uuid4())
		u4 = ns + str(uuid.uuid4())	
		u5 = ns + str(uuid.uuid4())
		u6 = ns + str(uuid.uuid4())
		u7 = ns + str(uuid.uuid4())
		u8 = ns + str(uuid.uuid4())	

		t.setType(u1, ns + "TV")
		t.setType(u2, ns + "TV")
		t.setType(u3, ns + "Radio")
		t.setType(u4, ns + "Radio")	
		t.setType(u5, ns + "CDPlayer")
		t.setType(u6, ns + "DVDPlayer")
		t.setType(u7, ns + "ExternalSpeaker")
		t.setType(u8, ns + "ExternalSpeaker")

		t.add_uri(u6, ns + "connectedTo", u2)
		t.add_uri(u5, ns + "connectedTo", u7)
		t.add_uri(u5, ns + "connectedTo", u8)

		t.add_literal(u1, ns + "status", "StandBy")
		t.add_literal(u2, ns + "status", "Off")
		t.add_literal(u3, ns + "status", "On")
		t.add_literal(u4, ns + "status", "Off")
		t.add_literal(u5, ns + "status", "On")
		t.add_literal(u6, ns + "status", "Off")
		t.add_literal(u7, ns + "status", "On")
		t.add_literal(u8, ns + "status", "On")

		t.add_literal(u1, ns + "manufacturer", "Nokia")
		t.add_literal(u2, ns + "manufacturer", "Sony")
		t.add_literal(u3, ns + "manufacturer", "Sony")
		t.add_literal(u4, ns + "manufacturer", "Toshiba")
		t.add_literal(u5, ns + "manufacturer", "Toshiba")
		t.add_literal(u6, ns + "manufacturer", "Sanyo")
		t.add_literal(u7, ns + "manufacturer", "Bose")
		t.add_literal(u8, ns + "manufacturer", "Genelec")	

		p1 = self.theNode.CreateInsertTransaction(self.theSmartSpace)
		p1.send( t.get() )
		self.theNode.CloseInsertTransaction(p1)
예제 #15
0
파일: wakeupKP.py 프로젝트: iddi/sofia
def addEvent(eventType, dataValue=None, duration=None, additionalEventType=None):
    """Adds new event with metadata (generatedBy, datetime) to smart space"""
    global ts

    print "Adding event: " + eventType

    t = RDFTransactionList()
    u1 = ie_ns + "event" + str(uuid.uuid4())
    t.setType(u1, ie_ns + eventType)
    t.add_uri(u1, ie_ns + "generatedBy", ie_ns + deviceID)
    dt = datetime.now()
    xsddt = (
        '"' + dt.strftime("%Y-%m-%dT%H:%M:%S%z") + '"^^<http://www.w3.org/2001/XMLSchema#dateTime>'
    )  # e.g. "2011-01-19T16:10:23"^^<http://www.w3.org/2001/XMLSchema#dateTime>
    t.add_literal(u1, ie_ns + "inXSDDateTime", xsddt)

    if dataValue != None:
        print "Data value: " + str(dataValue)
        t.add_literal(u1, ie_ns + "dataValue", str(dataValue))
    #        if type(dataValue).__name__=='int':
    #            t.add_literal(u1, ie_ns + "dataValue", str(dataValue) + '^^<http://www.w3.org/2001/XMLSchema#integer>')

    if duration != None:
        print "Duration: " + str(duration)
        t.add_literal(u1, ie_ns + "duration", str(duration))
        # for xsd:duration, this should be declared as PT3S^^xsd:duration, where P=Period, T=Time and S=Seconds

    if additionalEventType != None:
        print "Additional event type: " + str(additionalEventType)
        t.add_uri(u1, "rdf:type", ie_ns + str(additionalEventType))

    ts.insert(t.get())
    return u1
예제 #16
0
파일: explorer.py 프로젝트: desmovalvo/mbp
class MakeTransactionsDialogUI(QtGui.QMainWindow):
    def __init__(self, ssd, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.trans = RDFTransactionList()
        self.smartSpaceData = ssd
        self.makeTransactionDialogUi = Ui_DialogMakeTransaction()
        self.makeTransactionDialogUi.setupUi(self)
	self.connect(self.makeTransactionDialogUi.pushButtonGenUUID4Subject,
                     QtCore.SIGNAL('clicked()'), 
                     self.genUUID4subject )
	self.connect(self.makeTransactionDialogUi.pushButtonPopulate,
                     QtCore.SIGNAL('clicked()'), 
                     self.populateComboBoxesWithURIs )
	self.connect(self.makeTransactionDialogUi.pushButtonPopulateNS,
                     QtCore.SIGNAL('clicked()'), 
                     self.populateComboBoxesWithNSs )
	self.connect(self.makeTransactionDialogUi.pushButtonAdd,
                     QtCore.SIGNAL('clicked()'), 
                     self.add )

    def reject(self):
	self.hide()

    def genUUID4subject(self):
	u=str(uuid.uuid4())
	self.makeTransactionDialogUi.lineEditSubject.setText(u)

    def add(self):
	#the rule is,:
	#if ns box is checked then prepend the nsuri combo box to the user entered data with a #
	subNS = str(self.makeTransactionDialogUi.comboBoxSubjectNS.currentText())
	preNS = str(self.makeTransactionDialogUi.comboBoxPredicateNS.currentText())
	objNS = str(self.makeTransactionDialogUi.comboBoxObjectNS.currentText())

	subU  = str(self.makeTransactionDialogUi.lineEditSubject.text())
	preU  = str(self.makeTransactionDialogUi.lineEditPredicate.text())
	objU  = str(self.makeTransactionDialogUi.lineEditObject.text())

	#0 = not checked, 2=checked,    1 is for tristate boxes which we do not use
	subC  = self.makeTransactionDialogUi.checkBoxSubjectUse.checkState()
	preC  = self.makeTransactionDialogUi.checkBoxPredicateUse.checkState()
	objC  = self.makeTransactionDialogUi.checkBoxObjectUse.checkState()

	#true if checked, False otherwise - these belong to the same parent widget so they're
 	#guaranteed to be mutually exclusive....hopefully QT4 got it right ;-)
	olit = self.makeTransactionDialogUi.radioButtonLiteral.isChecked()
	ouri = self.makeTransactionDialogUi.radioButtonLiteral.isChecked()  

	print "+->",olit,subNS,subU,subC

	transSubject = subU
	transPredicate = preU
	transObject = objU
	if subC==2:
		transSubject = subNS + "#" + transSubject
	if preC==2:
		transPredicate = preNS + "#" + transPredicate
	if objC==2:
		transObject = objNS + "#" + transObject

	print "-->", transSubject, transPredicate, transObject

	if olit==True:
		self.trans.add_literal(transSubject, 
                                       transPredicate, 
                                       transObject)
	else:
		self.trans.add_uri(transSubject,
                                   transPredicate,
                                   transObject)

	self.updateList()

    def updateList(self):
	self.makeTransactionDialogUi.listWidgetTriples.setColumnCount(4)
	self.makeTransactionDialogUi.listWidgetTriples.clear()
	tablerow=1
	for i in self.trans.get():
		lws = QtGui.QTableWidgetItem()
		lwp = QtGui.QTableWidgetItem()
		lwo = QtGui.QTableWidgetItem()
		lwot = QtGui.QTableWidgetItem()

		lws.setText(i[0][0])
		lws.setTextColor(QtGui.QColor(0, 0, 0))
		lwp.setText(i[0][1])
		lwp.setTextColor(QtGui.QColor(0, 0, 0))
		lwo.setText(i[0][2])
		lwo.setTextColor(QtGui.QColor(0, 0, 0))
		lwot.setText(i[1])
		lwot.setTextColor(QtGui.QColor(0, 128, 0))

		if i[1]=="literal":
			lwo.setTextColor(QtGui.QColor(32, 0, 255))

		print tablerow
		self.makeTransactionDialogUi.listWidgetTriples.setItem(tablerow,0,lws)
		self.makeTransactionDialogUi.listWidgetTriples.setItem(tablerow,1,lwp)
		self.makeTransactionDialogUi.listWidgetTriples.setItem(tablerow,2,lwo)
		self.makeTransactionDialogUi.listWidgetTriples.setItem(tablerow,3,lwot)

		tablerow = tablerow + 1

    def populateComboBoxesWithNSs(self):
	q = self.smartSpaceData.getNode().CreateQueryTransaction(self.smartSpaceData.getSmartSpace())
	r_properties = q.wql_values_query(("rdf:Property", False),"['inv', 'rdf:type']")
	r_allUris= subjectsRDF(q.rdf_query(((None, None, None), "uri")))
	r_namespaces = self.extractNamespaces(r_allUris + r_properties)

	for i in r_properties:
		self.makeTransactionDialogUi.comboBoxPredicateNS.addItem(i)
	
	for i in r_namespaces:
		self.makeTransactionDialogUi.comboBoxSubjectNS.addItem(i)
		self.makeTransactionDialogUi.comboBoxObjectNS.addItem(i)
		self.makeTransactionDialogUi.comboBoxPredicateNS.addItem(i)

    def populateComboBoxesWithURIs(self):
	q = self.smartSpaceData.getNode().CreateQueryTransaction(self.smartSpaceData.getSmartSpace())
	r_properties = q.wql_values_query(("rdf:Property", False), "['inv', 'rdf:type']")
	r_allUris= subjectsRDF(q.rdf_query(((None, None, None), "uri")))
	r_namespaces = self.extractNamespaces(r_allUris+r_properties)

	for i in r_properties:
		self.makeTransactionDialogUi.comboBoxPredicateNS.addItem(i)

	for i in r_allUris:
		self.makeTransactionDialogUi.comboBoxSubjectNS.addItem(i)
		self.makeTransactionDialogUi.comboBoxObjectNS.addItem(i)
	
	for i in r_namespaces:
		self.makeTransactionDialogUi.comboBoxSubjectNS.addItem(i)
		self.makeTransactionDialogUi.comboBoxObjectNS.addItem(i)
		self.makeTransactionDialogUi.comboBoxPredicateNS.addItem(i)
	

    def extractNamespaces(self,ls):
	print ls
	ns = []
	for i in ls:
		istr = str(i)
		if "#" in istr:
			n = istr.split("#")
			if n not in ns:
				ns.append(n[0])
	return ns