ersoykadir / ReqTrace

0 stars 0 forks source link

Extract Actor-Action-Object #10

Open ersoykadir opened 9 months ago

ersoykadir commented 9 months ago

Expect a related artifact to contain the same action and object from the req, (most of the time syntactically same, sometimes similar or synonym) actors might be irrelevant

THE SIMPLE THE BETTER!! Dont forget that we are looking for the obvious relations

ersoykadir commented 9 months ago

Using stanford corenlp pos tagger and dependency parser.

1.1 User Requirements
ROOT: Requirements.NNS.2
Links: [('compound', User.NN.1)]
ACTION: None
ACTOR: None
OBJECT: None
----------------------
1.1.1 Authentication
ROOT: Authentication.NN.1
Links: []
ACTION: None
ACTOR: None
OBJECT: None
----------------------
1.1.1.1 Sign up
ROOT: Sign.VB.1
Links: [('compound:prt', up.RP.2)]
ACTION: Sign.VB.1
Links: [('compound:prt', up.RP.2)]
ACTOR: None
OBJECT: None
----------------------
1.1.1.1.1 Users shall provide a unique username, email, and a valid password to sign up.
ROOT: provide.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', username.NN.6), ('xcomp', sign.VB.15), ('punct', ....17)]
ACTION: provide.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', username.NN.6), ('xcomp', sign.VB.15), ('punct', ....17)]
ACTOR: Users.NNS.1
Links: []
OBJECT: username.NN.6
Links: [('det', a.DT.4), ('amod', unique.JJ.5), ('punct', ,.,.7), ('conj', email.NN.8), ('punct', ,.,.9), ('conj', password.NN.13)]
----------------------
1.1.1.1.2 Sign up shall be verified via email
ROOT: verified.VBN.5
Links: [('nsubj:pass', Sign.VB.1), ('aux', shall.MD.3), ('aux:pass', be.VB.4), ('obl', email.NN.7)]
ACTION: verified.VBN.5
Links: [('nsubj:pass', Sign.VB.1), ('aux', shall.MD.3), ('aux:pass', be.VB.4), ('obl', email.NN.7)]
ACTOR: None
OBJECT: None
----------------------
1.1.1.2 Login
ROOT: Login.NNP.1
Links: []
ACTION: None
ACTOR: None
OBJECT: None
----------------------
1.1.1.2.1 Users shall provide their usernames(or email) and passwords to login
ROOT: provide.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', usernames.NNS.5), ('obl', login.NN.13)]
ACTION: provide.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', usernames.NNS.5), ('obl', login.NN.13)]
ACTOR: Users.NNS.1
Links: []
OBJECT: usernames.NNS.5
Links: [('nmod:poss', their.PRP$.4), ('punct', (.-LRB-.6), ('conj', email.NN.8), ('punct', ).-RRB-.9), ('conj', passwords.NNS.11)]
----------------------
1.1.1.3 Sign Out
ROOT: Sign.VB.1
Links: [('compound:prt', Out.RP.2)]
ACTION: Sign.VB.1
Links: [('compound:prt', Out.RP.2)]
ACTOR: None
OBJECT: None
----------------------
1.1.1.3.1 Users shall be able to sign out from their account.
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('cop', be.VB.3), ('xcomp', sign.VB.6), ('punct', ....11)]
ACTION: sign.VB.6
Links: [('mark', to.TO.5), ('compound:prt', out.RP.7), ('obl', account.NN.10)]
ACTOR: Users.NNS.1
Links: []
OBJECT: None
----------------------
1.1.1.4 Change Password
ROOT: Change.VB.1
Links: [('obj', Password.NN.2)]
ACTION: Change.VB.1
Links: [('obj', Password.NN.2)]
ACTOR: None
OBJECT: Password.NN.2
Links: []
----------------------
1.1.1.4.1 Users should be able to change their passwords.
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', change.VB.6), ('punct', ....9)]
ACTION: change.VB.6
Links: [('mark', to.TO.5), ('obj', passwords.NNS.8)]
ACTOR: Users.NNS.1
Links: []
OBJECT: passwords.NNS.8
Links: [('nmod:poss', their.PRP$.7)]
----------------------
1.1.1.5 Forgot Password
ROOT: Forgot.VBD.1
Links: [('obj', Password.NN.2)]
ACTION: Forgot.VBD.1
Links: [('obj', Password.NN.2)]
ACTOR: None
OBJECT: Password.NN.2
Links: []
----------------------
1.1.1.5.1 Users shall enter their emails to get a code to reset password. Providing this code, users shall be able to change their passwords.
ROOT: a.DT.8
Links: [('advcl', Users.NNS.1), ('punct', their.PRP$.4), ('nsubj', emails.NNS.5), ('aux', to.TO.6), ('cop', get.VB.7), ('xcomp', to.TO.10), ('punct', ....13)]
ACTION: to.TO.10
Links: [('mark', code.NN.9), ('obj', password.NN.12)]
ACTOR: emails.NNS.5
Links: [('nmod:poss', their.PRP$.4)]
OBJECT: password.NN.12
Links: [('nmod:poss', reset.VB.11)]
----------------------
1.1.1.6 Delete Account
ROOT: Delete.VB.1
Links: [('obj', Account.NNP.2)]
ACTION: Delete.VB.1
Links: [('obj', Account.NNP.2)]
ACTOR: None
OBJECT: Account.NNP.2
Links: []
----------------------
1.1.1.5.1 Users should be able to delete their accounts
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', delete.VB.6)]
ACTION: delete.VB.6
Links: [('mark', to.TO.5), ('obj', accounts.NNS.8)]
ACTOR: Users.NNS.1
Links: []
OBJECT: accounts.NNS.8
Links: [('nmod:poss', their.PRP$.7)]
----------------------
1.1.2 Profile
ROOT: Profile.NNP.1
Links: []
ACTION: None
ACTOR: None
OBJECT: None
----------------------
1.1.2.1 Users shall have a profile page
ROOT: have.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', page.NN.6)]
ACTION: have.VB.3
Links: [('nsubj', Users.NNS.1), ('aux', shall.MD.2), ('obj', page.NN.6)]
ACTOR: Users.NNS.1
Links: []
OBJECT: page.NN.6
Links: [('det', a.DT.4), ('compound', profile.NN.5)]
----------------------
1.1.2.2 Users should be able to edit their profile photos, names, usernames
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('dep', edit.VB.6)]
ACTION: None
ACTOR: Users.NNS.1
Links: []
OBJECT: None
----------------------
1.1.2.3 Users should be able to list the games they played. They should be able to add and delete games from that list
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', list.VB.6), ('punct', ....11), ('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', list.VB.6)]
ACTION: list.VB.6
Links: [('mark', to.TO.5), ('obj', games.NNS.8), ('parataxis', played.VBD.10), ('mark', to.TO.5), ('conj', games.NNS.8), ('obj', they.PRP.9), ('obl', They.PRP.12)]
ACTOR: Users.NNS.1
Links: []
OBJECT: games.NNS.8
Links: [('det', the.DT.7), ('cc', the.DT.7)]
----------------------
1.1.2.4 Users should be able to put a link of their game store accounts
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', put.VB.6)]
ACTION: put.VB.6
Links: [('mark', to.TO.5), ('obj', link.NN.8)]
ACTOR: Users.NNS.1
Links: []
OBJECT: link.NN.8
Links: [('det', a.DT.7), ('nmod', accounts.NNS.13)]
----------------------
1.1.2.5 Users should be able to see their last activities
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', see.VB.6)]
ACTION: see.VB.6
Links: [('mark', to.TO.5), ('obj', activities.NNS.9)]
ACTOR: Users.NNS.1
Links: []
OBJECT: activities.NNS.9
Links: [('nmod:poss', their.PRP$.7), ('amod', last.JJ.8)]
----------------------
1.1.2.6 Users should be able to see list their achievements
ROOT: able.JJ.4
Links: [('nsubj', Users.NNS.1), ('aux', should.MD.2), ('cop', be.VB.3), ('xcomp', see.VB.6)]
ACTION: see.VB.6
Links: [('mark', to.TO.5), ('obj', list.NN.7)]
ACTOR: Users.NNS.1
Links: []
OBJECT: list.NN.7
Links: [('dep', achievements.NNS.9)]
ersoykadir commented 9 months ago

NEXT STEP

uskudarli commented 9 months ago

I like seeing my name near discussion

ersoykadir commented 9 months ago

There is a problem with sentences containing ":", like: 1.1.1.1 User Account Creation: Users shall be able to create an account on the system. Users are, by default, assigned the "victim" role.