- AutoGenerateArgumentation
- AutoGenerator
- src
- main
- java/ata
- Object
- Objects.java (Definition for Objects's attributes and methods)
- Phrase.java. (Definition for Phrase's attributes and methods)
- Picture.java (Definition for Picture's attributes and methods)
- Snippet.java (Definition for Snippet's attributes and methods)
- Util
- AlgorithmUtil.java (Algorithms for search, find , match, return required object)
- Generator.java (Generator for extracting required materials from JSON resource)
- JSONUtil.java (JSON utility for reading and writing JSON doc)
- PowerPointUtil.java (Utility for generating PPT)
- MainRunner.java (Main)
- resources
- images (images folder)
- JSONDATA.json (json data)
- package.jsonPersuasive technology is a relatively recent research area which studies the impact that digital interventions can have on people's behaviour or beliefs.
This project would use some persuasive technology research, combined with argumentation strategies, to produce a system that could dynamically create a collection of information to present to an audience in the form of a slide presentation on a topic, in order to claim a point, or present an argument.
The project, starting from an annotated collection of material (e.g. pictures, catch phrases, snippets of information), will produce an intelligent system able, on the basis of argumentation techniques, to automatically create a "narrative", a sequence of images and phrases, that can be presented in the form of a set of slides to a user.
Use only JSON Document or utilize NoSQL(MongoDB), depending on the Data Size.
If Data Size is in GB Unit , DB should be used because it is more scalable and convenient, otherwise use JSON document will be more light and with lower workload.
No matter how , the materials should be stored in the JSON style shown below. (Temporal Proposal)
Object includes all the information related to it / pictures ,parses will be object's attribute / easy for code,hard for logic
{
"ObjectName": String,
"ObjectID" : int,
"Keywords": String[],
"Pictures":[
{"ImageID": int,
"Strength": int,
"PointTo": String,
"URL": String,
"Keywords":String[]
}],
"Phrases":[{
"PhraseID": int,
"Strength": int,
"Content": String,
"Type": String,
"PointTo": String,
"Keywords":String[]
}],
"Snippets":[{
"SinppetID": int,
"Strength": int,
"Content": String,
"Type": String,
"PointTo": String,
"Keywords":String[]
}]
}
- general object
ObjectNameis marked for the Name of the Object such as Tomoto.ObjectIDis used for querying it.(AS Math.random a number to select which object will be utilized.)
- Pictures
Pictures[]is a array that stores images with attributes:ImageIDis used for querying it.Strengthis used to symbolize the strength of this material(range is [-3,3]), while-3denotes this material is strong negative,-2denotes this material is negative,-1denotes the material is weak negative,0denotes it is neutral. As is same for the number [0,3].PointTois used to denote which argument this image is pointed to, such as Price, Benefits, etc.URLis used to store the Hyperlink of this image.KeyWordsis used to store key feature of this object.
- Phrases
Phrases[]is a array that stores phrase with attributes:PhraseIDis used for querying it.Strengthis used to symbolize the strength of this material(range is [-3,3]), while-3denotes this material is strong negative,-2denotes this material is negative,-1denotes the material is weak negative,0denotes it is neutral. As is same for the number [0,3].Contentis used to store the text of this phrase.Typeis used to denote the type of this phrase, such as MP(Main Point),P(Point),Sum(Summary).PointTois used to denote which argument this phrase is pointed to, such as Price, Benefits, etc. Especially for Point Type.KeyWordsis used to store key feature of this object.
- Snippets
Snippets[]is a array that stores snippets with attributes:SnippetIDis used for querying it.Strengthis used to symbolize the strength of this material(range is [-3,3]), while-3denotes this material is strong negative,-2denotes this material is negative,-1denotes the material is weak negative,0denotes it is neutral. As is same for the number [0,3].Contentis used to store the text of this snippet.Typeis used to denote the type of this snippet, such as Reason(RS), Example(EX),etc.PointTois used to denote which argument this snippet is pointed to, such as Price, Benefits, etc.KeyWordsis used to store key feature of this object.
Each material will be a Object. They will be saved in three document, Pictures.json , Phrases.json, Snippets.json
// Hard for code, easy for logic.
{
"Objects":[
{
"ID": int,
"Strength": int,
"LinkTo": String,
"Type": String,
"PointTo": String,
"Content": String,
"Keywords":String[]
}
]
}
- Objects
Objects[]has several attributes:IDstores the ID of this objectStrengthdenotes the strength of this material,range is [-3,3] (same as above)LinkTodenotes the thing which this object is linked to ,such as tomoto,potato,etc.Typedenotes the type of this object such as MP,P,Sum,EX,RS.PointTois used to denote which argument this object is pointed to, such as Price, Benefits, etc.Contentis used to store the text of this object.KeyWordsis used to store key feature of this object.
{
"Pictures":[
{
"ID": int,
"Strength": int,
"LinkTo": String,
"PointTo": String,
"URL": String,
"Keywords":String[]
}
]
}
- Pictures
Pictures[]is a array that stores images with attributes:IDis used for querying it.Strengthis used to symbolize the strength of this material(range is [-3,3]), while-3denotes this material is strong negative,-2denotes this material is negative,-1denotes the material is weak negative,0denotes it is neutral. As is same for the number [0,3].LinkTodenotes the thing which this image is linked to ,such as tomoto,potato,etc.PointTois used to denote which argument this image is pointed to, such as Price, Benefits, etc.URLis used to store the Hyperlink of this image.KeyWordsis used to store key feature of this object.
IDEA: Function to generate a List(LinkedList or ArrayList) that stores the material in order.
Then use this list to generate HTML or Slide.
Several templates could be writen in HTML, and use switch key word to decide on which template it will utilize.
(In details, Use Math.random to generate number from 1 to 3, if number is 1,then go to case 1: which is a template)
The topic will be selected with Objects' ID (use random number) and strengh.
For example in method one, i can get Object[].size and use the size to random select a object, this presentation will be focused on this selected object. Now, the name of this Object is obtained. Randomly select a template and quried required material according to the template.
As is shown below:
pdenotes positive.ndenotes negative.PICdenotes picture.MPdenotes Main Point.pdenotes point.RSdenotes Reason.EXdenotes Example.Sumdenotes Summary.
For example, `pMP` denotes positive Main Point , etc.
Picture