package arabi.tools.arwiki.welcome;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import arabi.tools.arwiki.tags.TagsProcessing;
import arabi.tools.arwiki.text.ArticleProcessing;
import arabi.tools.arwiki.text.WikiLang;
public class ArWikipediaToolsTester {
public static void main(String[] args) throws IOException, ParseException {
//example1();
//example2();
//example3();
//example4();
//example5();
//example6();
//example7();
//example8();
//example9();
//example10();
}
//مثال ١: قطعة برمجية تعمل على ارجاع معلومات مهيكلة لمقال عن "ابن الهيثم" في الويكيبيديا العربية:
public static void example1() throws IOException, ParseException {
// تحديد عنوان المقال المراد سحب بيانات مهيكلة منه
String article_title= "ابن الهيثم";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة القطعة البرمجية التي تسحب وتبني بيانات مهيكلة وتخزين الناتج في كائن من نوع نص
String struct_data = ap.getStructuredReport();
// طباعة النتيجة على الشاشة
System.out.println(struct_data);
// تخزين البيانات في كائن من نوع جايسون
//JSONObject jsonVersion = new JSONObject(struct_data);
//افعل ما يحلو لك في البيانات
}
//مثال ٢: قطعة برمجية تعمل على ايجاد عنوان مقال باسم "جامعة بيرزيت" في لغات اخرى في الويكيبيديا
public static void example2() throws IOException, ParseException {
// تحديد عنوان المقال المراد استخراج عنوانه بلغات اخرى في الويكيبيديا
String article_title= "جامعة بيرزيت";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تستخرج عنوان المقال بلغات اخرى و تخزين الناتج في كائن من نوع لغات ويكيبيديا
ArrayList<WikiLang> titles = ap.getArticleTitleInDiffrentLanguages();
// طباعة قائمة في النتائج على شكل رمز اللغة و العنوان بتلك اللغة
for (WikiLang title : titles) {
System.out.println(title.getLang_code() +" : "+title.getArticle_name_in_lang());
}
}
//مثال ٣: قطعة برمجية تستقبل عنوان مقال باللغة العربية وتعيد التصنيفات في ذلك المقال، مثال : بلاد الشام
public static void example3() throws IOException {
// تحديد عنوان المقال المراد استخراج عنوانه بلغات اخرى في الويكيبيديا
String article_title= "بلاد الشام";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تستخرج التصنيفات من المقال المُدخل
ArrayList<String> titles = ap.getTags();
// طباعة النتائج
System.out.println(titles);
}
//مثال ٤: القطعة البرمجية التالية تعيد المقالات تحت تصنيف الفيزياء
public static void example4() throws IOException {
//تحديد التصنيف المراد ايجاد المقالات التي تحتويه
String tag = "فيزياء";
// بناء كائن من نوع تحليل التصنيفات يحمل التصنيف المُدخل سابقاً
TagsProcessing tp = new TagsProcessing(tag);
// مناداة العملية التي تعمل على ارجاع المقالات ضمن تصنيف معين وتخزن النتيجة في قائمة
ArrayList<String> res = tp.getArticlesWithinATag();
// طباعة النتيجة
System.out.println(res);
}
//مثال ٥: قطعة البرنامج التالية تعيد التصنيفات ذات العلاقة مع تصنيف كيمياء
public static void example5() throws IOException {
//تحديد التصنيف المراد ايجاد المقالات التي تحتويه
String tag = "كيمياء";
// بناء كائن من نوع تحليل التصنيفات يحمل التصنيف المُدخل سابقاً
TagsProcessing tp = new TagsProcessing(tag);
// مناداة العملية التي تعمل على ارجاع التصنيفات المترابطة
ArrayList<String> res = tp.getConnectedTags();
// طباعة النتيجة
System.out.println(res);
}
//مثال ٦: قطعة برنامج تعيد العناوين المرتبطة بتصنيف اللغة العربية
public static void example6() throws IOException {
//تحديد التصنيف المراد ايجاد المقالات التي تحتويه
String tag = "اللغة العربية";
// بناء كائن من نوع تحليل التصنيفات يحمل التصنيف المُدخل سابقاً
TagsProcessing tp = new TagsProcessing(tag);
// مناداة العملية التي تعمل على ارجاع المقالات ، يجب تجديد عمق البحث
// عمق البحث هو الرقم المُدخل في العملية المذكورة والهدف منه تحديد كمية النصنيفات المراد سحب العناوين منها
ArrayList<String> res = tp.getArticlesWithInConnectedTags(4);
// طباعة النتيجة
System.out.println(res);
}
//مثال ٧: قطعة البرنامج التالية تعمل على سحب النصوص من مقال بعنوان "الخوارزمي" في الويكيبيديا العربية
public static void example7() throws IOException {
// تحديد عنوان المقال المراد استخراج النص العربي منه
String article_title= "الخوارزمي";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تستخرج النص العربي من المقال المُدخل
String content = ap.getArabicPlainText();
// طباعة النتائج
System.out.println(content);
}
//مثال ٨: قطعة البرنامج التالية تعمل على سحب المحتوى من مقال بعنوان "الخوارزمي" في الويكيبيديا العربية
public static void example8() throws IOException {
// تحديد عنوان المقال المراد استخراج النص العربي منه
String article_title= "الخوارزمي";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تستخرج المحتوى من المقال المُدخل
String content = ap.getPageContent();
// طباعة النتائج
System.out.println(content);
}
//مثال ٩: قطعة البرنامج التالية تعمل على اعادة مقال بعنوان "الخوارزمي" في الويكيبيديا العربية
public static void example9() throws IOException {
// تحديد عنوان المقال المراد استخراج النص العربي منه
String article_title= "الخوارزمي";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تعيد المقال كامل على شكل صيغة أتش تي أم أل
String content = ap.getPageHTML();
// طباعة النتائج
System.out.println(content);
}
//مثال ١٠: قطعة برنامج لإيجاد قصاصة لمقال مُدخل ، مثال الميكانيكا الكلاسيكية
public static void example10() throws IOException {
// تحديد عنوان المقال المراد استخراج النص العربي منه
String article_title= "الميكانيكا الكلاسيكية";
// بناء كائن من نوع تحليل المقالات يحمل العنوان المُدخل سابقاً
ArticleProcessing ap = new ArticleProcessing(article_title);
// مناداة العملية البرمجية التي تعيد قصاصة معلومات عن المقال المُدخل
String content = ap.getSnippet();
// طباعة النتائج
System.out.println(content);
}
}