جاوا اسکریپت
جاوا و جاوا اسکریپت

سیستم به سرورهای وب امکان می‌دهد تا برنامه‌های کوچکی (که اپلت (applet) نامیده می‌شوند) را مستقیماً در شبکه اطلاعات بازیابی شده قرار دهند و این اپلت‌ها که در کامپیوتر کاربر اجرا می‌شوند تعامل کاربر با اینترنت را سرعت می‌بخشد. در نهایت این سیستم به عنوان ابزاری برای تولید محتویات پیچیده طرف سرور مورد استفاده قرار گرفت. شرکت سان تلاش می‌کرد جاوا را به عنوان یک پلاتفرم برای اپلت‌های طرف مشتری مطرح کند اما به دلایلی مانند عدم وجود یکپارچگی با محتوا (اپلت‌ها به جعبه‌های کوچکی محدود می‌شدند که درون صفحه قرار داشتند) و عملکرد ضعیف (مخصوصاً شروع با تأخیر) ماشین مجازی بر روی سخت‌افزارهای PCهای آن زمان این امر هرگز محقق نشد.





با این وجود، جاوا اسکریپت یک زبان برنامه‌نویسی اسکریپتی است که برای صفحات وب طراحی شده است. نسخه استاندارد آن ECMAScript نام دارد. اگر چه نام آن شبیه جاوا است اما توسط شرکت ارتباطات نت اسکیپ (Netscape) طراحی شده است و تقریباً هیچ ارتباطی با جاوا که ساخت شرکت میکروسیستم‌های سان است ندارد. تنها شباهت آن با جاوا در این است که نحوه نگارش آن از زبان برنامه نویسی C گرفته شده است. جاوا اسکریپت مانند جاوا برنامه نویسی شیءگرا است اما شبیه سی پلاس پلاس و بر خلاف جاوا امکان استفاده از کدهای درهم (مخلوط) یعنی استفاده هم زمان از زبان برنامه‌نویسی شیء گرا و برنامه‌نویسی رویه‌ای را فراهم می‌آورد. جاوا اسکریپت در کنار مدل شیء سند به زبان برنامه‌نویسی بسیار قوی‌ای تبدیل شده که حتی طراحان آن چنین تصوری از موفقیت آن نداشتند. گاهی اوقات در مورد آن از کلمه HTML پویا (DHTML) استفاده می‌شود تا گذر از صفحات HTML "ایستا" بیشتر حس می‌شود.

(برنامه‌نویسی) آجاکس یک فناوری مبتنی بر جاوا اسکریپت است که تأثیر زیادی بر شکل‌گیری تور جهان گستر داشته است. در این روش در زمان‌های لازم، تنها بخشی از صفحه وب که مورد نیاز کاربر است به روز می‌شود تا سرعت کاربر بالاتر برود. آجاکس یکی از جنبه‌های مهم وب 2.0 محسوب می‌شود.




تأثیر بر روابط اجتماعی

وب در دنیای امروزی تبادل اطلاعات بین افراد در سراسر جهان را بسیار ساده و آسان نموده است و این امر با این حجم وسیع هرگز در تاریخ بشر سابقه نداشته است. افرادی که در گوشه و کنار جهان قرار دارند و هزاران کیلومتر از یکدیگر فاصله می‌توانند افکار خود را به راحتی مبادله کنند و یا از روحیات و خط مشی زندگی خود با دیگران صحبت کنند. تجربه‌های عاطفی، عقاید سیاسی، رسوم فرهنگی، ضرب‌المثل‌های ریتم‌دار، پندهای تجاری، کارهای هنری، تصاویر و عکس‌ها، قطعات ادبی بدون هیچ سرمایه‌گذاری از جانب کاربر به راحتی در اختیار وی قرار می‌گیرد. اگر چه کارایی وب به فناوری مادی آن وابسته است اطلاعات موجود روی آن به شیوه کتابخانه و یا مطبوعات به صورت فیزیکی ارائه نمی‌شوند. بنابراین انتشارات اطلاعات از طریق وب اینترنت به کتاب‌ها و مجله‌های فیزیکی و مادی محدود نمی‌شود و نیاز به کپی کردن فیزیکی اطلاعات وجود ندارد. اطلاعات موجود روی وب به صورت دیجیتال ارائه می‌شوند و بنابراین جستجو در آنها به سرعت زیادی صورت می‌گیرد. که بسیار سریع‌تر از جستجو در کتابخانه است و حتی فردی که در اینترنت جستجو می‌کند نسبت به فردی که از پست نامه، تلفن، تلگراف و یا وسایل ارتباطی دیگر استفاده می‌کند با سرعت بیشتری اطلاعات را بازیابی می‌کند.

وب مهم‌ترین ابزار تبادل اطلاعات است که در کره زمین رونق فراوانی یافته است. این قابلیت به کاربران اجازه می‌دهد تا با افراد و گروه‌های مختلفی که در سراسر جهان پراکنده هستند و در فضا و مکان متفاوتی قرار دارند ارتباط برقرار کنند و نیاز به برقراری ارتباط فیزیکی میان افراد را مرتفع می‌سازد.

از آنجا که وب در سراسر جهان فعال است، عده‌ای آن را عامل ایجاد تفاهم میان افراد ساکن در سراسر جهان می‌دانند. وب پتانسیل فراوانی برای ایجاد روابط اجتماعی دارد و می‌تواند حس نوع‌دوستی و درک متقابل را افزایش دهد و یا حتی باعث شو که خشونت به صورت وسیعی رواج یابد و یا رژیم‌های ظالم و عوام فریب به خواسته‌های خود که در طول تاریخ از دستیابی به آنها عاجز بودند بترسند.

امروزه در وب انواع مختلف اطلاعات را می‌توان یافت و افرادی که تمایل دارند با جوامع و فرهنگ‌های مختلف آشنا شدند مراجعه به وب ساده‌ترین راه است. اگر بخواهیم به شهری دور دست سفر کنید، وب بهترین مرجع ممکن برای یافتن اطلاعات مربوط به آن شهر است مخصوصاً اگر شهر مورد نظرتان در یکی از کشورهای توسعه نیافته قرار داشته باشد. روزنامه‌های محلی، مطبوعات دولتی و غیره از طریق اینترنت به راحتی قابل دسترسی هستند و به همین دلیل است که کاربران اینترنت روز به روز افزایش می‌یابند.





انتشار صفحات وب

صفحات وب در دسترس همه رسانه‌های جمعی قرار دارد. برای آنکه بتوانید یک صفحه وب را "منتشر" کنید لازم نیست به سراغ یک ناشر یا مؤسسه رسانه‌ای که در سرتاسر جهان مشاهده می‌شوند بروید. ابر متن، برخلاف کتاب و اسناد، دارای یک نظم خطی از ابتدا تا انتها نیست. ابر متن به بخش‌های فصل، زیر فصل و عناوین که در کتاب‌ها دیده می‌شود تقسیم‌بندی نمی‌شود.

اگر چه برخی از وب سایت‌ها به چند زبان عرضه می‌شوند بسیاری از آنها فقط به یک زبان ارائه می‌شوند. همه برنامه‌های کامپیوتری همه کاراکترهای خاص و متون دو سویه RTL را در بر نمی‌گیرند. این عوامل این ادعا را که تور جهان گستر، جهان را به سمت یکپارچه شدن پیش می‌برد به چالش می‌کشد. فرصت مناسب برای انتشار اطلاعات در صفحات وب شخصی و همچنین صفحات خانوادگی تجارت‌های خرد و غیره توسط خدمات رایگان میزبانی وب به اوج خود رسیده است.




سرعت در وب

نگرانی موجود در مورد ازدحام اطلاعات روی زیر ساختار اینترنت و تأخیر زیاد در دسترسی به داده‌ها به باعث شده است که نام World Wide Web به "World Wide Wait" تغییر کند! افزایش سرعت اینترنت مسأله‌ای مهم در بحث‌های مربوط به استفاده از همتا سازی و کیفیت خدمات (QOS) است. راه حل‌های ممکن برای کاهش انتظار برای مشاهده صفحات وب در سایت W3C ارائه شده است.

راهنمای استانداردهای موجود برای پاسخ زمانی ایده‌آل صفحات وب (مطابق کتاب نیلسن، چاپ 1999، صفحه 42) عبارتند از:

1/0 ثانیه (یک دهم ثانیه). زمان ایده‌آل پاسخ کاربر هیچ گونه تأخیری را حس نمی‌کند.
1 ثانیه. حداکثر زمان قابل قبول. زمان دانلود بیش از 1 ثانیه کاربر را خسته می‌کند.
10 ثانیه. زمان غیر قابل قبول. کاربر خسته شده و دوست دارد سایت را ترک کند. این اعداد برای طراحی ظرفیت سرور کاربرد زیادی دارند.



www در نام‌های وب‌سایت‌ها

از لحاظ فنی هیچ دلیلی وجود ندارد که نام سایت حتماً با www آغاز شود و اولین سرور وب در "info.cern.ch" قرار داشت. استفاده از پیشوند www یک توافق است که بین سازمان‌های ارائه دهنده خدمات وب انجام شده است تا تمامی نام‌های میزبان از یک پروتکل تبعیت کنند؛ برای مثال، بسیاری از سازمان‌ها نام سرور اصلی پروتکل گوفر خرد را به صورت gopher.wherever.edu تعریف می‌کنند و از پیشوندهای دیگری استفاده می‌کنند تا بتوان از چندین سرور وب استفاده کنند. برخی از مرورگرها به صورت خودکار www را به ابتدا و ".com" را به انتهای URL تایپ شده اضافه می‌کنند. در مرورگرهای اینترنت اکسپلورر و فایرفاکس موزیلا با فشردن همزمان کلیدهای ctrl و Enter پیشوند "http://www." و پسوند "com." به انتهای URL اضافه می‌شوند.




تلفظ "www

در زبان انگلیسی، WWW طولانی‌ترین تلفظ ممکن تور جهان گستر است که یک سرواژه سه حرفی است که به نه سیلاب نیاز دارد. داگلاس آدامز اظهار داشت: World Wide Web تنها عبارتی است که تلفظ شکل مختصر آن سه برابر بیشتر از تلفظ خود آن طول می‌کشد.

نسخه‌های کوتاه‌تر عبارتنداز "triple double 'u'"، "triple dub"، "dub dub dub"، "wuh wuh wuh" و "all the 'double u's". در زبان‌های دیگر "WWW" را اغلب "VVV" تلفظ می‌کنند. در زبان چینی، World Wide Web را به صورت wàn wéi wǎng تلفظ می‌کنند (به چینی: 万维网) که به معنای "شبکه ده هزار بعدی" است.




وب ۲٫۰
در وب ۲٫۰، کاربران قادرند خود به ایجاد و خلق محتوا در فضای اینترنت پرداخته، و دیگران را در داشته‌ها و اطّلاعات خود شریک سازند، و یا کارهای موجود از ناحیه دیگران را به صورتی مستقیم و بی واسطه مورد نقد و تغییر قرار دهند.





وب معنایی

وب معنایی یک جنبش مشترک است که توسط w۳c رهبری می شود که فرمت های رایج داده را روی شبکه گسترده جهانی ترویج می کند. با تشویق به گنجاندن محتوی معنایی در صفحات وب، وب معنایی به تبدیل شدن وب حاضر مشتمل بر اسناد ساختار نایافته به یک "وبی از داده ها" کمک می کند. این در چارچوب شرح منابع (RDF) از w۳c ساخته می شود.

بنابر w۳c، " وب معنایی یک چارچوب مشترک فراهم می آورد که اجازه می دهد داده ها به اشتراک گذاشته شوند و در سراسر مرزهای کاربردی، اقتصادی و اجتماعی دوباره استفاده شوند."

این واژه توسط تیم برنزلی،مخترع وب گسترده جهانی و گرداننده w۳c،ابداع شد که هم اکنون بر توسعه استانداردهای مطرح شده وب معنایی نظارت دارد. او وب معنایی را این گونه معنی کرد که " تارنمایی از داده که می تواند مستقیم و غیر مسقیم توسط ماشین مورد پردازش قرار بگیرد. " درحالی که منتقدان پرسش هایی درباره امکان پذیر بودن آن دارند، طرفداران استدلال می کنند که برنامه های کاربردی در صنعت، زیست شناسی و تحقیقات علوم انسانی، در حال حاضر، اعتبار مفهوم اصلی را ثابت کرده است.





تاریخچه

مفهوم مدل شبکه معنایی در اوایل دهه شصت توسط دانشمند شناختیAllan M.Collins، زبان شناس M. Ross Quillian و روان شناس Elizabeth F.Loftus در نشریات مختلف به عنوان یک فرم برای نمایش دادن دانش ساخت یافته معنایی، ابداع شد. با قراردادن ابرداده قابل خواندن توسط ماشین ،درباره صفحات و چگونگی ارتباط آن ها با یکدیگر، فعال کردن عامل های خودکارشده برای دسترسی هوشمندانه تر وب و انجام وظایف از طرف کاربران موجب گسترش یافتن شبکه صفحات وب ابرپیوند شده که تنها توسط انسان قابل خواندن بود، شد.

خیلی از فناوری هایی که توسط w۳c مطرح شده است قبل از این که زیر چتر w۳cقرار بگیرند، وجود داشته اند. این ها در زمینه های مختلف استفاده شده است، به خصوص برخورد با اطلاعاتی است که شامل یک دامنه محدود و تعریف شده است، و جایی که داده به اشتراک گذاشته شده یک نیاز مشترک است، مانند تحقیقات علمی یا داده های تبدیل شده مابین کسب و کارها. به علاوه، فناوری هایی با هدف مشترک ، مانند microformat ها، ظهور کرده اند.




هدف

اصلی ترین هدف وب معنایی قادر ساختن کاربران برای پیداکردن، اشتراک گذاشتن و راحت تر ترکیب کردن اطلاعات جهت تکامل بخشیدن وب حاضر است. انسان ها توانایی استفاده از وب را برای پیش بردن وظایفی مانند پیدا کردن معادل ایرلندی کلمه "پوشه"، رزرو کردن یک کتاب از کتابخانه و جستجو برای پایین ترین قیمت یک DVD را دارند. به هرحال، ماشین ها نمی توانند تمام این وظایف را بدون دستورالعمل انسان انجام دهند، چرا که صفحات وب طوری طراحی شده اند که توسط مردم خوانده شود، نه ماشین ها. وب معنایی یک چشم انداز از اطلاعات است که می تواند به آسانی توسط ماشین تفسیر شود، بنابرین ماشین ها می توانند بسیاری از کارهای خسته کننده شامل پیداکردن، ترکیب کردن و اقدام بر اساس اطلاعات بر روی وب را انجام دهند. وب معنایی، همان طور که در ابتدا پیش بینی می شد، سیستمی است که ماشین ها را به کار می اندازد که "بفهمند" و به درخواست های پیچیده انسان براساس معنای آن ها پاسخ دهند. چنین "فهمیدن" مستلزم آن است که منابع اطلاعاتی مربوطه به طور معنایی ساختار یافته شوند،یک کار چالش برانگیز. تیم برنز لی در ابتدا چشم انداز وب معنایی را این گونه توصیف کرد:

من رویایی دارم برای وب که در آن کامپیوتر ها توانایی تحلیل تمام داده های روی وب، مثل محتوی،پیوندها و تراکنش های بین مردم و کامپیوتر ها را دارند. یک وب معنایی، که این امر را ممکن می سازد، فعلا در حال ظهور است، اما زمانی که کامل شود، روال های روزانه تجارت ، بروکراسی و زندگی روزمره ما توسط گفتگوی بین ماشین ها انجام می شود. عامل های هوشمند بین مردم برای دوره ای که نهایتا این امر محقق شود تبلیغ می کنند.

وب معنایی به عنوان یک جمع کننده بین تمام محتوی مختلف،سیستم ها و برنامه های کاربردی اطلاعاتی در نظر گرفته شده است. برنامه های کاربردی در زمینه نشر، وبلاگ نویسی و خیلی سطوح دیگر وجود دارد.

معمولا واژه های معناشناسی، ابرداده، هستی شناسی و وب معنایی متناقض استفاده می شوند. به طور خاص، این واژه ها به عنوان کلمات فنی هر روز توسط محققین و پزشکان،جهت پوشش یک گستره وسیعی از زمینه های مختلف فن آوری، مفاهیم و سطوح برنامه های کاربردی استفاده می شوند. به علاوه، با توجه به وضعیت فعلی، نسبت به فعال کردن فناوری هایی که برای تحقق وب معنایی پیش بینی می شد، سردرگمی وجود دارد. در یک مقاله که توسط Greber,Barnard, Van der Merwe ارائه شد، چشم انداز وب معنایی جدول بندی شده و خلاصه ای از واژگان و فناوری های راه انداز ارائه شده است. مدل معماری مطرح شده توسط تیم برنزلی به عنوان مبنایی که مدل وضعیت فناوری های حال حاضر و در حال ظهور را ارائه می کند، استفاده می شود.




محدودیت های HTML

بسیاری از فایل های روی یک کامپیوتر معمولی را می توان آزادانه به اسناد قابل خواندن توسط انسان و داده های قابل خواندن برای ماشین تقسیم کرد. اسناد مثل پیام نامه ها، گزارشات و بروشورها توسط انسان خوانده می شود. داده، مثل تقویم، دفترچه آدرس،لیست پخش و صفحات گسترده از یک برنامه کاربردی برای نمایش، جستجو و ترکیب در حالات مختلف استفاده می کنند.

در حال حاضر، تارنمای گسترده جهانی عمدتا بر مبنای اسنادی است که با HTML نوشته شده است، یک استاندارد نشانه گذاری که برای کدینگ مجموعه ای از متن در خلال عناصر چند رسانه ای مانند تصاویر و فرم های تعاملی استفاده شده است. تگ های ابر داده روشی را فراهم می آورد که هر کامپیوتر می تواند محتوی صفحات وب را دسته بندی کند .

با HTML و ابزاری برای نمایش خروجی آن (مثل مرورگر های وب) هرکسی می تواند صفحه ای برای لیست کردن مواردی برای فروش، بسازد و نمایش دهد. HTML این صفحه کاتالوگ می تواند اظهاراتی از قبیل "عنوان این سند سوپرمارکت ویجت است" را به ما بدهد، اما این ظرفیت در HTML نیست که واضح اظهار کند که مثلا کالا شماره X586172 یک Acme Gizmo است با قیمت خرده فروشی €199 ، یا این که یک کالای برای مصرف کننده است. بلکه ،HTML می تواند تنها بگوید که محدوده متن " X586172" چیزی است که باید نزدیک Acme" Gizmo" و "€199" قرار می گیرد. هیچ راهی وجود ندارد که بگوید "این یک کاتالوگ است" یا حتی تصدیق کردن این که "Acme Gizmo" بخشی از عنوان است یا "€199" یک قیمت است. همچنین هیچ راهی وجود ندارد که توصیف کند این تکه های از اطلاعات کنار هم قرار گرفته اند تا یک مورد را جدا از موارد دیگری که احتمالا در صفحه قرار دارند، توصیف کند.

HTML معنایی اشاره به عمل HTML سنتی در قصد نشانه گذاری ها دارد به جای این که مستقیما جزئیات چینش را مشخص کند. برای مثال کاربرد <em> برای نشان دادن "تاکید" است، بیشتر از <i> که ایتالیک شدن را مشخص می کند. جزئیات چینش در ترکیب با CSS ها در سمت مرورگر است. اما این عمل برای مشخص کردن معانی عناصر مثل موارد فروش و قیمت ناکارآمد است.

Microformat ها تلاش های غیر رسمی گسترش تگ های HTML را برای ایجاد نشانه گذاری معنایی قابل خواندن برای ماشین درباره عناصری مثل فروشگاه های خرده فروشی و موارد برای فروش را نشان می دهد.





راهکارهای وب معنایی

وب معنایی راه کارهای اضافه تری دارد که شامل نشر زبان هایی که مختص داده طراحی شده اند، مثل چهارچوب شرح منابع(RDF)، زبان هستی شناسی وب(OWL) و زبان نشانه گذاری توسعه پذیر(XML)، می شود. HTML اسناد و پیوند های بین آن ها را توصیف می کند. RDF،OWL وXML ،با تضاد،می توانند اشیا دلخواه را از قبیل مردم، دیدارها یا قطعات هواپیما توصیف کنند.

این فناوری ها به منظور فراهم آوردن شرحی که محتوی اسناد وب را تکمیل یا جایگزین کند، ترکیب شده اند. بنابرین، محتوی ممکن است به عنوان داده های توصیفی ذخیره شده در پایگاه داده های قابل دسترس وب ، یا نشانه گذاری دربین اسناد بروز کند(خصوصا، در HTML توسعه پذیر(XHTML) با XML پراکنده ، یا اغلب مواقع خالص در XML، با چینش یا ). توضیحات قابل خواندن برای ماشین، مدیران محتوی را به کار می اندازند تا معنی به محتوی اضافه کنند که توصیف کند ساختار دانشی که ما درباره محتوی داریم. در همین راستا، یک ماشین می تواند خودش دانش را ، به جای متن، با استفاده از پردازشی شبیه به استنتاج و استقرا انسان پردازش کند، در نتیجه نتایج معنی دار بیشتری به دست می آورد و به کامپیوتر ها برای اجرا خودکار جمع آوری اطلاعات و پژوهش کمک می کند.

تیم برنز لی شبکه حاصل از داده های پیوند داده شده را، در تضاد با تارنمای گسترده جهانی بر پایه HTML، نمودار عظیم جهانی می نامد. برنز لی فرض کرد که اگر گذشته اسناد به اشتراک گذاشته می شدند، در آینده داده ها به اشتراک گذاشته می شوند. جواب او به این سوال که "چگونه؟"، سه دستورالعمل به همراه داشت. اول، یک URL باید به داده اشاره داشته باشد.دوم، هرکسی که به URL دسترسی پیدا کرد باید داده را برگرداند. سوم، روابط در داده باید به URL های اضافی به همراه داده اشاره داشته باشد.





وب 3

تیم برنز لی وب معنایی را جزئی از وب 3 توصیف کرد.

مردم همراه می پرسند که وب 3 چیست؟ من فکر میکنم شاید وقتی شما یک پوشش از گرافیک های برداری مقیاس پذیر(همه چیز ناهوار و شناور به صورت مبهم)در وب2 دارید و دسترسی به یک وب معنایی که جمع کننده حجم زیادی از داده داشته باشید، شما به یک منبع داده باور نکردنی دسترسی خواهید داشت .




تیم برنز لی 2006

"وب معنایی" گاهی اوقات هم معنی "وب3" به کار می رود، در حالی که هر کدام معنی متفاوتی دارند.



مثال ها

وقتی ما درباره وب معنایی حرف می زنیم، ما درباره بسیاری از "چگونه" هایی صحبت می کنیم که معمولا دور از فهم اند چراکه مردم نسبت به مفاهیم مورد نیاز زبان شناسی بی توجه اند. بنابرین، ما ترجیح می دهیم چگونگی ظهور وب معنایی در آینده را تصور کنیم .




سایت های از نوع ویکی روبه رشدند. مدیران آنها و عناصر آنها می تواند بسیار متنوع باشد. این ویکی ها بسیار بسیار تخصصی شده اند. اما بسیاری از ویکی ها موتور های جستجو را از لحاظ شاخص گذاری آنها محدود می کنند زیرا این موتورهای جستجو کارآمدی ویکی ها را کاهش می دهد و صفحاتی که منسوخ شده اند را نگه می دارند، به بیانی، خارج از ویکی(به روز رسانی دائم). ابر موتورهای جستجو قصد دارند نتایج بدست آمده از درخواست های انحصاری از هرکدام از این ویکی ها را جمع کنند. ویکی سوله ای از داده دردسترس برای همفکری توسط مردم و ماشین ها شده است .




چالش ها

برخی از چالش های وب معنایی شامل وسعت، ابهام، تردید، تناقض و فریب. سیستم های استدلال کننده خودکار مجبور خواهد بود با تمام این مسائل مقابله کند به جای این که وعده وب معنایی را ارئه دهد.

وسعت : تارنمای گسترده جهانی شامل میلیاردها صفحه شده است. SNOMED CT هستی شناسی واژه شناسی پزشکی به تنهایی شامل 370,000 نام کلاس است و فناوری موجود هنوز قادر نبوده است که واژهای تکراری از جهت معنا را ازبین ببرد. هر سیستم استدلال کننده خودکاری مجبور است با ورودی های واقعا بزرگ مفابله کند.

ابهام : وجوه مبهمی مانند "جوان" و "بلند" وجود دارد. این ناشی می شود از ابهام درخواست کاربران، از وجوه ارائه شده توسط گردآورندگان محتوی، از انطباق واژه های درخواست با واژه های گرداورندگان و از تلاش برای ترکیب مبانی دانش های مختلف با وجوه مشترک ولی جنبه های متفاوت. منطق فازی رایج ترین تکنیک برای مقابله با ابهام است.

عدم قطعیت : وجوه دقیقی با ارزش های مشکوک وجود دارد. برای مثال، یک بیمار ممکن است مجموعه ای از علائم را که هرکدام متناظر با تشخیص مشخص و احتمال متفاوت باشد، را ارائه کند. روش های استدلال احتمالاتی به طور کلی کار برای رسیدگی به عدم قطعیت است.

تناقض : تناقضات منطقی ای وجود دارد که به ناچار در طول توسعه هستی شناسی بزرگ، و زمانی که هستی شناسی ها از منابع جدا با هم ترکیب شده اند، بوجود خواهد آمد. استدلال استقرایی یا قیاسی با شکست روبروست وقتی با تناقض مواجه است، زیرا "هر چیزی به دنبال یک تناقض" است. استدلال فسخ کردنی و استدلال paraconsistent، دو روش است که می تواند برای مقابله با تناقض به کار رود.

فریب : زمانی رخ می دهد که تهیه کننده اطلاعات عمدا مصرف کننده اطلاعات را گمراه کند. تکنیک های رمز نگاری در حال حاضر برای کاهش این تهدید مورد استفاده قرار می گیرند.

این لیست چالش ها بیش از این که کامل باشد، روشنگر است و روی چالش های لایه های "منطق وحدت" و "برهان" از وب معنایی، تمرکز دارد .گزارش آخر گروه رشد برای استدلال عدم قطعیت W3C، تمام این مشکلات را تحت عنوان "عدم قطعیت" جمع کرد. خیلی از تکنیک های ذکر شده در اینجا الحاقاتی نیاز خواهند داشت به زبان هستی شناسی وب مثلا برای حاشیه نویسی احتمالات شرطی.این منطقه از پژوهش فعال است.



استانداردها

استانداردسازی وب معنایی در وب3 تحت پوشش W3C می باشد.





اجزا

واژه "وب معنایی" معمولا استفاده می شود برای اشاره به فرمت ها و فناوری هایی که آنرا به کار می اندازند.جمع آوری، ساختاربندی و بازیابی داده های پیوندشده با فناوری ها یی که یک توضیح رسمی از وجوه،واژه ها و روابط در خلال یک دامنه دانش داده شده فراهم می آورد. این فن آوری ها طبق استانداردهای W3C مشخص شده اند و شامل این موارد می شود :

چارچوب تشریح منابع (RDF) یک روش عمومی برای توصیف اطلاعات

شمای RDF (RDFS)

سیستم سازمانی دانش ساده (SKOS)

SPARQL یک زبان پرس و جوی RDF

نشان گذاری3 (N3)، طراحی شده با توانایی خواندن انسان در ذهن

N-Triples، فرمتی برای ذخیره کردن و انتقال داده

لاک پشت[سه تایی](زبان RDF سه مختصر و مفید)

زبان هستی شناسی وب(OWL)، یک خانواده از زبان های ارائه دانش

پشته وب معنایی روشنگر معماری وب معنایی است. توابع و روابط اجزا می تواند به صورت زیر خلاصه شود :

XML یک گرامر عنصری برای ساختار محتوی داخل اسناد فراهم می آورد.XML در حال حاضر یکی از اجزا لازم فناوری های وب معنایی در خیلی از موارد نیست، به عنوان جایگزین گرانرهای موجود، از قبیل لاک پشت. لاک پشت یک استاندارد بالفعل است اما از طریق یک فرآیند استاندارد رسمی نبوده است.

شمای XML یک زبان برای فراهم آوردن و محدود کردن ساختار و محتوی عناصری است که در اسناد XML وجود دارند.

RDF یک زبان ساده برای توصیف مدل های داده است که به اشیا ("منابع") و روابطشان اشاره دارد. یک مدل برپایه RDFمی تواند در گرامرهای مختلفی ارائه شود، مثل RDF/XML،N3،لاک پشت و RDFa. RDF یک استاندارد پایه ای از وب معنایی است.

شما RDF، RDF را توسعه داده است و یک لغت برای توصیف ویژگی ها و کلاس های منابع بر پایه RDF، با معانی برای تعمیم سلسله مراتب از خواص و طبقات است.

OWL لغات بیشتری برای توصیف ویژگی ها و کلاس ها اضافه می کند: از بین آن ها،روابط بین کلاس ها(disjointness)، cardinality(برای مثال "دقیقا یک" )، برابری،نوع سازی غنی تر از ویژگی ها، مشخصات ویژگی ها وشمارش کلاس ها.

SPARQL یک پروتکل و زبان کوئری از مبانع وب معنایی است.



وضعیت فعلی استاندارد سازی

استاندارد سازی های در حال پیشرفت فعلی شامل :

قانون فرمت تبادل(RIF) به عنوان لایه ای از پشته وب معنایی.

لایه هایی که هایی که هنوز به طور کامل بیرون نیامده اند شامل :

لایه های منطق وحدت و مدرک تحت تحقیقات فعال هستند.

مقصود بالابردن قابلیت استفاده و فایده وب است و ارتباط تنگاتنگ آن با منابع از طریق :

سرورهایی سیستم های داده ای موجود را با استفاده از RDF و SPARQL نشان می دهند.خیلی تبدیل کننده ها به RDF از برنامه های کاربردی مختلف وجود دارد.پایگاه داده های رابطه ای یک منبع مهم هستند. سرور وب معنایی بدون تاثیر گذاری بر عملکرد سیستم موجود به آن پیوست می شود.

اسناد "نشانه گداری شده" با اطلاعات معنایی(یک توسعه از تگ <meta>در HTML در صفحات وب امروزی برای تامین اطلاعات موتورهای جستجوی وب، با استفاده از وب خزنده، به کاربرده می شود). این می تواند اطلاعات قابل فهم برای ماشین درباره محتوی اسناد قابل فهم برای انسان باشد(از قبیل تولید کننده،عنوان،توضیحات اسناد) یا می تواند صرفا ابرداده نمایش دهنده مجموعه ای از حقایق باشد(از قبیل منابع و خدمات در هرکجای سایت ها).(توجه کنید که هرچیزی که بتواند با شناسه منبع یکنواخت شناسایی (URI) شود، می تواند توصیف شود، بنابرین وب معنایی می تواند درباره حیوانات،مردم،اماکن،ایده ها استدلال کند.) نشانه گذاری معنایی معمولا خودکار، تا به صورت دستی، تولید می شود.

واژگان ابرداده رایج(هستی شناسی ها) و نگاشت بین واژگان که به خالقان اسناد اجازه می دهد بدانند که چگونه اسنادشان را نشانه گذاری کنند، بنابرین عامل ها می توانند اطلاعات در ابرداده تامین شده را استفاده کنند( بنابرین مولف درمقام 'مولف صفحه' با مولف در مقام مولف کتابی که موضوع مرور یک کتاب است، اشتباه گرفته نمی شود. )



عامل های خودکارشده برای اجرای وظایف برای کاربران وب معنایی با استفاده از این داده

خدمات برپایه وب(معمولا با عامل های خودشان) برای تامین اطلاعات مخصوص عامل ها(برای مثال یک خدمت مورد اعتماد که یک عامل بتواند درباره تاریخچه خدمات ضعیف یا هرزه نگاری برخی فروشگاه های برخط بپرسد)

واکنش های شکاک



امکان سنجی عملی

منتقدان شدنی بودن تحقق کامل یا جزئی وب معنایی را می پرسند.بحران Cory Doctorow ("ابرچرند") از دورنمای رفتار انسان و ارجحییات شخصی هست. برای مثال، مردم ممکن است برای گمراه کردن موتور های وب معنایی که فرض را بر صحت ابرداده می گذارند، ابرداده جعلی به صفحات وب وارد کنند. این پدیده در ابرتگ ها شناخته شده بود که الگوریتم رتبه بندی آلتاویستا را با بالابردن رتبه صفحات وب بخصوص فریب می داد : موتور شاخص گذاری گوگل خصوصا به دنبال چنین تلاش هایی برای دست کاری است. Peter Gärdenfors و Timo Honkela اشاره می کنند که فناوری های وب معنایی برپایه منطق، تنها یکسری از پدیده های مربوط به هستی شناسی را پوشش می دهند.

جایی که فناوری های وب معنایی درجه پذیرش عملی بالاتری پیدا کرد، تمایل بیشتری به بودن آن در هسته جوامع تخصصی و سازمان های برای پروژه های درون سازمانی است. محدودیت ها به سوی پذیرش عملی، در دامنه ها و حوزه های محدود تر از چالش کمتری نسبت به عامه مردم و تارنمای گسترده جهانی دارد.





پتانسیل یک ایده در حال پیشرفت سریع

مقاله ابتکاری Scientific American در سال 2001 توسط برنزلی تکامل مورد انتظار از وب موجود به وب معنایی را توصیف کرد . یک تکامل کامل چنان که توسط برنزلی توصیف شد فعلا در حال اتفاق افتادن است. در 2006 برنزلی و همکارانش اظهار داشتند که : "این ایده ساده، به هر حال، تا حد زیادی تحقق نیافته باقی مانده است. " در حالی که ایده هنوز در حال ساخت است، به نظر می رسد به سرعت در حال تکامل است و الهام بخش بسیاری بوده است. بین 2007-2010 بسیاری محققان پتانسیل اجتماعی وب معنایی را در کسب و کار و بخش سلامت و برای شبکه سازی اجتماعی، بررسی کرده اند. آنها همچنین مرز تکامل دموکراسی را بررسی کرده اند: چگونه یک جامعه خواست مشترکش را به یک شیوه دموکراتیک از طریق وب معنایی فرم می دهد.





سانسور و حفظ حریم خصوصی

اشتیاق درباره وب معنایی می تواند با نگرانی ها درمورد سانسور و حفظ حریم خصوصی تعدیل شود. برای مثال، فناوری های تحلیل متن حالا می توانند با استفاده از کلمات دیگر به راحتی کنار گذاشته شود، مثلا استعاره ها، یا با استفاده از تصاویر به جای متن. یک اجرا حرفه ای از وب معنایی کنترل بر روی مشاهد و آفرینش اطلاعات آنلاین را برای دولت ها بسیار آسان تر می کند؛ چرا که فهمیدن این اطلاعات برای یک ماشین مسدود کننده محتوی خودکار، راحت تر است. به علاوه،این مسئله مطرح شده است که با استفاده از فایل های FOAF و ابرداده منطقه جغرافیایی، کمتر کسی حاضر به فاش شدن نامش در نگارش یک مقاله در یک وبلاگ شخصی خواهد شد. برخی از این نگرانی ها درخطاب به پروژه "وب آگاه سیاسی" بودند و یک عنوان فعال تحقیق و توسعه ای هستند.





دوبرابر شدن فرمت های خروجی

انتقاد دیگر به وب معنایی این است که زمان بیشتری صرف ساخت و انتشار محتوی می شود، چرا که برای یک تکه از داده به دو فرمت نیاز است: یکی برای نمایش انسان و یکی برای ماشین ها. به هرحال، بسیاری از برنامه های کاربردی در حال توسعه وب، در حال پرداختن به این موضوع از طریق ایجاد یک فرمت قابل خواندن برای ماشین پس از انتشار داده یا درخواست ماشین برای پنین داده هستند. توسعه microformat ها واکنشی دیگر به این نوع از انتقاد است. یکی دیگر از استدلال ها در دفاع از امکان سنجی وب معنایی، احتمالا قیمت در حال سقوط وظایف هوش انسانی در بازار کار دیجیتال،مثلAmazon Mechanical Turk است.

مشخصات از قبیل eRDF و RDFa، به داده های دلخواه RDF اجازه می دهد در صفحات HTML تعبیه بشوند.مکانیزم GRDDL (خوشه چین توضیحات منابع از گویش های زبان) به ماده موجود (شامل میکرو فرمت ها) اجازه می دهد به طور خودکار به عنوان RDF تفسیر شوند؛ بنابرین ناشران تنها نیاز به استفاده از یک فرمت،مثل HTML، را دارند.




پروژه ها

این بخش بعضی از پروژه ها و ابزار بسیاری را که جهت ایجاد راه حل های وب معنایی وجود دارد لیست می کند:




DBpedia

DBpedia یک تلاش برای برای انتشار داده ساختاریافته استخراج شده از ویکی پدیا است: داده در RDF منتشر شده و برای استفاده در وب تحت لیسانس مستندسازی آزاد GNU قابل دسترس می شود، بنابرین به عامل های وب معنایی اجازه می دهد استنتاج و query گرفتن پیشرفته بر روی مجموعه داده مشتق شده از ویکی پدیا را فراهم بیاورند و استفاده مجدد و توسعه در دیگر منابع داده را تسهیل کنند.




FOAF

یک واژه پرطرفدار در وب معنایی دوستِ دوست است که از RDF برای توصیف روابط مردم با دیگر مردم در "چیزهای" اطراف آن ها، استفاده می کند.FOAF به عامل های هوشمند، برای درک هزاران ارتباطی که مردم با یکدیگر دارند،مشاغل آن ها و موارد مهم در زندگی آنها، مجوز می دهد؛ ارتباطاتی که ممکن است در موتورهای جستتجوی سنتی برشمرده بشود یا نشود. زیرا ارتباطات از لحاظ تعداد بسیار گسترده است و تفسیر انسان از این اطلاعات ممکن است بهترین راه برای تحلیل آن ها نباشد.




SIOC

پروژه جوامع آنلاین معنایی پیوسته (SIOC،"شاک" تلفظ می شود) یک واژگان از اصطلاحات و روابط را که فضاهای داده وب را مدل می کند، فراهم می آورد. مثال هایی از این نوع فضاهای داده شامل : تالارهای گفتگو،بلاگ ها،پست های بلاگ/خبرخوان ها،لیست های پستی، به اشتراک گذاری بوک مارک ها و گالری عکس ها، می شود.




NextBIO

یک پایگاه داده تقویت کننده علوم زیستی بالا تجربی داده های تگ شده و با استفاده از هستی شناسی پزشکی مرتبط شده اند. NextBio با استفاده از یک رابط موتور جستجو قابل دسترسی است. محققان می توانند یافته های خود را برای الحاق به پایگاه داده کمک کنند. پایگاه داده در حال حاضر از توضیحات داده پروتئین و ژن و توالی داده های محوری پشتیبانی می کند و به طور پیوسته در حال گسترش برای حمایت از انواع دیگر داده های بیولوژیکی است.





خدمات وب
با کمک فناوری خدمات وب (Web services) می‌شود سرویس‌ها و خدمتهای گوناگون را در روی اینترنت پراکنده کرد. منظور از خدمت، واحدی کوچک یا بزرگ از نرم‌افزار آماده به کار است که می‌تواند کار یا خدمتی را برای مشترکان خود انجام دهد.




میزبانی صفحات وب

میزبانی در واقع فضای مورد نیاز شما را برای ساخت وب‌گاه در اختیار شما قرار می‌دهد.




مزایای مربوط به خدمات وب'

بزرگ‌ترین مزیت روش نو از ناحیهٔ حضور اکس‌ام‌ال در اکثر ساختارهای مربوط به خدمات وب می‌آید. نیاز به آنهمه اکس‌ام‌ال به خاطر غلبه بر عدم مقیاس‌پذیری (scalability) شیوه‌های پیشین در مهندسی و ساخت اینترنت است. از آنجا که اکس‌ام‌ال متن گراست text-based، شمه‌ای از نرمی و انعطاف پذیری شگفت آوری که در زبان انسان موجود است با سختی و شکنندگی روشهای ماشینی ترکیب شده و ما را به ساخت سامانه‌های بسیار گسترش‌پذیر توانا می‌گرداند.




استانداردهای خدمات وب




پروتکل دسترسی ساده به شیء (SOAP)

بر اساس پروتکل دستیابی ساده به شیء است که تمامی خدمات وب به گردش در می‌آید. منظور از پروتکل، مجموعه شرح قواعد و فرمت‌های مربوط به ارسال پیامهای مخابراتی از یک ماشین به ماشین دیگر است. SOAP پروتکل ساده‌ای ست که به منظور سازگاری (compatibility) با سکوهای (platforms) مختلف و نیز سیستم‌های عامل (operating systems) گوناگون نوشته شده است. هدف اساسی این پروتکل را باید امکان پذیری مخابرات ماشین به ماشین در محیط‌های محاسباتی نامتجانس (heterogeneous) ذکر کرد.




زبان توصیف خدمات وب (WSDL)

هر چه بیشتر پرتکل‌های مخابراتی و فرمت پیامها بر روی وب به سمت استاندارد شدن پیش می‌رود، امکان و اهمیت توصیف مخابرات و امور تبادل یافته، به شیوه‌های ساختارپذیر (structured) نیز فزونی می‌یابد. زبان توصیف خدمات وب درست به منظور برآورده نمودن همین نیاز ابداع گردیده است، و این مهم را با تعریف یک گرامر اکس‌ام‌ال انجام می‌دهد. این گرامر به خصوص، خدمات موجود در شبکه را به صورت مجموعه‌هایی از نقاط پایانی مخابراتی بیان می‌نماید که قادرند به تبادل پیام‌های مخابراتی بپردازند مبادرت ورزند.




شرح، کشف، و یکپارچه‌سازی جهانی (UDDI)

به وسیله فناوری شرح، کشف، و یکپارچه‌سازی فراگیر (Universal Description، Discovery، and Integration) می‌توان به انتشار و نیز جستجوی خدمات وب اقدام کرد. این فناوری، خدمات وب را سامان داده، و پس از شرح آن ها، اطلاعات بدست آمده را در یک جایگاه مرکزی قرار می‌دهد.

دراینجا بیشتر تاکیدمان برتعامل با منابعی است که حالتپذیر(Statefull) هستند به جای استفاده از پیغامها و یا عملیاتها.


انواع سبک‌های استفاده از وب سرویسها




روش فراخوانی از راه دور - RPC

وب سرویس‌های این نوع، توابع توزیع شده ای رااجرا می کنند که فراخوانی شان بسیار برای تولیدگرها آشناست، بطور معمول ساده‌ترین واحد این مدل فراخوانی یک عملیاتی است که یک wsdl در پی دارد روشهای دیگری که با کارکرد مشابه به عنوان شی RPC می توان نام برد، Object Management Group's (OMG) و Common Object Request Broker Architecture (CORBA) و Microsoft's Distributed Component Object Model (DCOM) و یا سان مایکروسیستم جاوا ست که همان (RMI)نامیده میشود.




معماری سرویس گرا - Service-oriented architecture

وب سرویس‌ها را برای پیاده سازی معماری با رویکرد به مفاهیم معماری سرویس گرا (SOA) می توان اجرا کرد که مبتنی است بر ساده‌ترین واحدهای ارتباطی که همان پیغام‌ها میباشند در تقابل با اعمال (operation)، به همین دلیل است که غالباً با نام سرویس‌های پیغام گرا نامیده میشوند . این دست از وب سرویسها توسط اکثر تولیدکنندگان نرم‌افزار عمده در دنیا پشتیبانی می گردد، بر خلاف RPC در این مدل امکان اتصالات سست(loose coupling ) محقق تر است بدلیل اینکه تاکید بر روی CONTRACT ی است که WSDL تولید کرده به جای اینکه بروی جزئیات زمینه اجرا باشد.




نمایانگر حالت انتقال - (Representational state transfer (REST)

این مدل تلاشی است در جهت توصیف و یا ساخت معماری هایی که از http و یا پروتکل‌های مشابه ای استفاده می کنند که هدفشان محدود کردن واسطه(interface) هاست به استفاده از اعمال شناخته شده واستاندارد (مثل GET، POST، PUT، DELETE بروی HTTP) دراینجا بیشتر تاکیدمان برتعامل با منابعی است که حالتپذیر(State-full) هستند به جای استفاده از پیغامها و یا عملیاتها. یک معماری مبتنی بر REST که REST-full نامیده می‌شود می تواند برای تعریف یک پیغام سوپ از WSDL بروی HTTP استفاده کند یا می تواند یک کلاس انتزاعی باشد که صرفاً بروی سوپ بنا شده باشد، یا می تواند تماماً بدون هیچ استفاده ای از سوپ ساخته شود. WSDL ۲ نه تنها اتصال به همه متدهای ورژن یک را امکانپذیر می‌کند بلکه تمامی متدهای اتصال به http را پشتیبانی می‌کند، بنابراین به نظر می رسد که برای وب سرور هایی از نوع REST این اجرا بهترین باشد، هر جند که پشتیبانی از این مشخصات فنی معماری، درون کیت‌های برنامه نویسی روز دنیا هنوز ضعیف می باشد. این برنامه‌ها معمولاً به سمت تولید ابزارهایی برای WSDL ۱ تمایل دارند.
page1 - page2 - page3 - page4 - page5 - page7 - page8 - | 4:33 am
تعاریف

ویژگی‌هایی که غالباً برای تشکیل یک زبان برنامه نویسی مهم شمرده می‌شوند:

تابع :یک زبان برنامه نویسی، زبانی است که برای نوشتن برنامه‌های رایانه‌ای به کار می‌رود که رایانه‌ای را برای انجام محاسبات یا اجرای الگوریتم و یا احتمالاً کنترل دستگاه‌های خارجی مثل چاپگر، ربات و... درگیر می‌کنند.





هدف: زبان‌های برنامه نویسی با زبان‌های طبیعی تفاوت دارند و آن اینکه زبان‌های طبیعی فقط برای فعل و انفعالات بین مردم به کار می‌روند، در حالیکه زبان‌های برنامه نویسی همچنین به انسانها اجازه می‌دهد که از طریق دستورات با ماشین‌ها ارتباط برقرار کنند. برخی زبان‌های برنامه نویسی بوسیله یک دستگاه استفاده می‌شوند تا دستگاه دیگری را کنترل کند. برای مثال برنامه‌های پست اسکریپت(post script) غالباً توسط برنامه دیگری برای کنترل یک چاپگر و یا نمایشگر ایجاد می‌شوند.
ساختارها: زبان‌های برنامه نویسی ممکن است ساختارهایی برای تعریف و تغییر داده ساختارها یا کنترل جریان اجرا داشته باشند.
توان بیانگر: نظریه محاسبات، زبان‌ها را بوسیله محاسباتی که توان بیان آنها را دارند طبقه بندی می‌کند. تمام زبان‌های "کامل تورینگ" می‌توانند مجموعه یکسانی از الگوریتم‌ها را پیاده سازی کنند.ANSI/ISO SQL و Charity مثال‌هایی هستند از زبان‌هایی که کامل تورینگ نیستند، ولی غالباً زبان برنامه نویسی نامیده می‌شوند.

برخی مولفین اصطلاح" زبان برنامه نویسی" را محدود به آنهایی می‌کنند که می‌توانند تمام الگوریتم‌های ممکن را پیاده سازی کنند، گاهی اوقات اصطلاح" زبان رایانه" برای زبان‌های برنامه نویسی محدودتر به کار می‌رود. زبان‌های غیر محاسباتی، مانند زبان‌های مارک آپ(markup) HTML یا گرامرهای قراردادی مثل BNF، معمولاً زبان برنامه نویسی محسوب نمی‌شوند. یک زبان برنامه نویسی(که می‌تواند کامل تورینگ نباشد) ممکن است در این زبان‌های غیر محاسباتی (میزبان) تعبیه شوند.


کاربرد

زبان برنامه نویسی یک مکانیزم ساخت یافته برای تعریف داده‌ها، و عملیات یا تبدیل‌هایی که ممکن است بطور اتوماتیک روی آن داده انجام شوند، فراهم می‌کند. یک برنامه نویس از انتزاعات آماده در زبان استفاده می‌کند تا مفاهیم به کار رفته در محاسبات را بیان کند. این مفاهیم به عنوان یک مجموعه از ساده‌ترین عناصر موجود بیان می‌شوند(مفاهیم ابتدایی نامیده می‌شوند). زبان‌های برنامه نویسی با غالب زبان‌های انسانی تفاوتی دارد و آن این است که نیاز به بیان دقیق تر و کامل تری دارد. هنگام استفاده از زبان‌های طبیعی برای ارتباط با دیگر انسان‌ها، نویسندگان و گویندگان می‌توانند مبهم باشند و اشتباهات کوچک داشته باشند، و همچنان انتظار داشته باشند که مخاطب آنها متوجه شده باشد. اگرچه، مجازا، رایانه‌ها "دقیقاً آنچه که به آنها گفته شده را انجام می‌دهند." و نمی‌توانند "بفهمند" که نویسنده دقیقاً چه کدی مد نظر نویسنده بوده‌است] البته امروزه برنامه‌هایی برای انجام این کار تولید شده‌اند و تلاش‌های بسیاری در این زمینه انجام شده ولی هنوز به نتیجهٔ رضایت بخشی نرسیده است[. ترکیب تعریف زبان، یک برنامه، و ورودی برنامه بطور کامل رفتار خروجی را به هنگام اجرای برنامه (در محدوده کنترل آن برنامه) مشخص می‌کند. برنامه‌های یک رایانه ممکن است در یک فرایند ناپیوسته بدون دخالت انسان اجرا شوند، یا یک کاربر ممکن است دستورات را در یک مرحله فعل و انفعال مفسر تایپ کند.در این حالت "دستور"ها همان برنامه‌ها هستند، که اجرای آنها زنجیروار به هم مرتبطند.به زبانی که برای دستور دادن به برنامه‌ای استفاده می‌شود، زبان اسکریپت می‌گویند. بسیاری از زبان‌ها کنار گذاشته شده‌اند، برای رفع نیازهای جدید جایگزین شده‌اند، با برنامه‌های دیگر ترکیب شده‌اند و در نهایت استعمال آنها متوقف شده‌است. با وجود اینکه تلاش‌هایی برای طراحی یک زبان رایانه" کامل" شده‌است که تمام اهداف را تحت پوشش قرار دهد، هیچ یک نتوانستند بطور کلی این جایگاه را پر کنند. نیاز به زبان‌های رایانه‌ای گسترده از گستردگی زمینه‌هایی که زبان‌ها استفاده می‌شوند، ناشی می‌شود:

محدوده برنامه‌ها از متون بسیار کوچک نوشته شده توسط افراد عادی تا سیستم‌های بسیار بزرگ نوشته شده توسط صدها برنامه نویس است
توانایی برنامه نویس‌ها: از تازه کارهایی که بیش از هر چیز به سادگی نیاز دارند تا حرفه‌ای‌هایی که با پیچیدگی قابل توجهی کنار می‌آیند.
برنامه‌ها باید سرعت، اندازه و سادگی را بسته به سیستم‌ها از ریزپردازندها تا ابر رایانه‌ها متناسب نگه دارند.
برنامه‌ها ممکن است یک بار نوشته شوند و تا نسل‌ها تغییر نکنند، و یا ممکن است پیوسته اصلاح شوند.
در نهایت، برنامه نویس‌ها ممکن است در علایق متفاوت باشند: آنها ممکن است به بیان مسائل با زبانی خاص خو گرفته باشند.

یک سیر رایج در گسترش زبان‌های برنامه نویسی این است که قابلیت حل مسائلی با درجات انتزاعی بالاتری را اضافه کنند. زبان‌های برنامه نویسی اولیه به سخت‌افزار رایانه گره خورده بودند. همانطور که زبان‌های برنامه نویسی جدید گسترش پیدا کرده‌اند، ویژگی‌هایی به برنامه‌ها افزوده شده که به برنامه نویس اجازه دهد که ایده‌هایی که از ترجمه ساده به دستورات سخت‌افزار دورتر هستند نیز استفاده کند. چون برنامه نویس‌ها کمتر به پیچیدگی رایانه محدود شده‌اند، برنامه‌های آنها می‌تواند محاسبات بیشتری با تلاش کمتر از سوی برنامه نویس انجام دهند. این به آنها این امکان را می‌دهد که کارایی بیشتردر واحد زمان داشته باشند. "پردازنده‌های زبان طبیعی" به عنوان راهی برای ازبین بردن نیاز به زبان‌های اختصاصی برنامه نویسی پیشنهاد شده‌اند. هرچند، این هدف دور است و فواید آن قابل بحث است. "ادسگر دیجسترا" موافق بود که استفاده از یک زبان رسمی برای جلوگیری از مقدمه سازی ساختارهای بی معنی واجب است، و زبان برنامه نویسی طبیعی را با عنوان "احمقانه" رد کرد، "آلن پرلیس" نیز مشابها این ایده را رد کرد. مطابق با متدولوژی نامتجانس استفاده شده توسط langpop.com در سال ۲۰۰۸، ۱۲ زبان پرکاربرد عبارتند از: C, C++, C#, Java, JavaScript, Perl, PHP, Python, Ruby, Shell, SQL, and Visual Basic.



المان‌ها
تمام زبان‌های بزنامه نویسی تعدادی بلوک‌های ابتدایی برای توضیح داده و پردازش یا تبدیل آنها(مانند جمع کردن دو عدد با انتخاب یک عضو از یک مجموعه)دارند. این " عناصرابتدایی" بوسیله قوانین معناشناسی و دستوری تعریف می‌شوند که ساختار و معنای مربوطه را توضیح می‌دهند.
دستور(
syntax)

فرم سطحی یک زبان برنامه نویسی دستور آن نامیده می‌شود. غالب زبان‌های برنامه نویسی کاملاً متنی اند؛ و از دنبالهٔ متون شامل کلمات، اعداد، نشانگذاری، بسیار شبیه زبان نوشتاری طبیعی استفاده می‌کنند. از طرف دیگر، برنامه‌هایی نیز وجود دارند که بیشتر گرافیکی اند، و از روابط بصری بین سمبل‌ها برای مشخص کردن برنامه استفاده می‌کنند. دستور یک زبان ترکیبات ممکن سمبل‌ها برای ایجاد یک برنامهٔ درست را از نظر دستوری مشخص می‌کند. معنایی که به یک ترکیب سمبل‌ها داده می‌شود با معناشناسی اداره می‌شود(قراردادی یا نوشته شده در پیاده سازی منبع). از آنجا که اغلب زبان‌ها متنی هستند، این مقاله دستور متنی را مورد بحث قرار می‌دهد.

دستور زبان برنامه نویسی معمولاً بوسیله ترکیب عبارات معین(برای ساختار لغوی) و فرم توضیح اعمال(برای ساختار گرامری) تعریف می‌شوند. متن زیر یک گرامر ساده، به زبان lisp است: expression ::= atom | list atom ::= number | symbol number ::= [+-]?['۰'-'۹']+ symbol ::= ['A'-'Za'-'z'].* list ::= '(' expression* ')' این گرامر موارد ذیل را مشخص می‌کند:

یک عبارت یا atom است و یا یک لیست
یک atom یا یک عدد است و یا یک سمبل
یک عدد دنباله ناشکسته‌ای از یک یا تعداد بیشتری اعداد دهدهی است، که یک علامت مثبت و یا منفی می‌تواند پیش از آن بیاید.
یک سمبل حرفی است که بعد از هیچ یا تعدادی کاراکتر (جز فاصله) می‌آید.
یک لیست تعدادی پرانتز است که می‌تواند صفر یا چند عبارت در خود داشته باشد.

"۱۲۳۴۵"، "()"، "(a b c۲۳۲ (۱))" مثال‌هایی هستند از دنباله‌های خوش فرم در این گرامر.

همه برنامه‌هایی که از لحاظ دستوری درست هستند، از نظر معنا درست نیستند. بسیاری از برنامه‌های درست دستوری، بد فرم اند، با توجه به قوانین زبان؛ و ممکن است (بسته به خصوصیات زبان و درست بودن پیاده سازی) به خطای ترجمه و یا استثنا(exception) منتج شود. در برخی موارد، چنین برنامه‌هایی ممکن است رفتار نامشخصی از خود نشان دهند. حتی اگر یک برنامه در یک زبان به خوبی بیان شده باشد، ممکن است دقیقاً مطلوب نویسنده آن نبوده باشد.

به عنوان مثال در زبان طبیعی، ممکن نیست به برخی از جملات درست از لحاظ گرامری، معنای خاصی اطلاق کرد و یا ممکن است جمله نادرست باشد:

"ایده‌های بی رنگ سبز با خشم می‌خوابند."از نظر دستوری خوش فرم است ولی معنای مورد قبولی ندارد.
"جان یک مجرد متاهل است." از نظر دستوری درست است، ولی معنایی را بیان می‌کند که نمی‌تواند درست باشد.

این قسمت از زبان C از نظر دستوری درست است، اما دستوری را انجام می‌دهد که از نظرمعنایی تعریف نشده است(چون p یک اشاره گر خالی است، عمل p->real,p->im معنای خاصی ندارد.) complex *p = NULL; complex abs_p = sqrt (p->real * p->real + p->im * p->im);

گرامر مورد نیاز برای مشخص کردن یک زبان برنامه نویسی می‌تواند با جایگاهش در "سلسله مراتب چامسکی" طبقه بندی شود. دستور اغلب زبان‌های برنامه نویسی می‌تواند بوسیله یک گرامر نوع ۲ مشخص گردد، برای مثال، گرامرهای مستقل از متن.




معناشناسی ایستا
معناشناسی ایستا محدودیت‌هایی بر روی ساختار مجاز متن‌ها تعیین می‌کند که بیان آنها در فرمول دستوری استاندارد مشکل و یا غیر ممکن است. مهمترین این محدودیت‌ها به وسیله سیستم نوع گذاری انجام می‌شود.


سیستم نوع گذاری
یک سیستم نوع گذاری مشخص می‌کند که یک زبان برنامه نویسی چگونه مقادیر و عبارات را در نوع(type) دسته بندی می‌کند، چگونه می‌تواند آن نوع‌ها را تغییر دهد و رفتار متقابل آن‌ها چگونه‌است. این کارعموما توضیح داده ساختارهایی که می‌توانند در آن زبان ایجاد شوند را شامل می‌شود. طراحی و مطالعه سیستم‌های نوع گذاری بوسیله ریاضیات قراردادی را تئوری نوع گذاری گویند.
زبان‌های نوع گذاری شده و بدون نوع گذاری

یک زبان نوع گذاری شده‌است اگر مشخصات هر عملیات، نوع داده‌های قابل اجرا توسط آن را با نشان دادن نوع‌هایی که برای آنها قابل اجرا نیست، تعیین کند. برای مثال، "این متن درون گیومه قرار دارد" یک رشته‌است. در غالب زبان‌های برنامه نویسی، تقسیم یک رشته با یک عدد معنایی ندارد. در نتیجه غالب زبان‌های برنامه نویسی مدرن ممکن است اجرای این عملیات را توسط برنامه‌ها رد کنند. در برخی زبان‌ها، عبارات بی معنی ممکن است هنگام ترجمه(compile) پیدا شود(چک کننده نوع ایستا)، و توسط کامپایلر رد شود، در حالی که در سایر برنامه‌ها، هنگام اجرا پیدا شود.(چک کننده نوع دینامیک) که به استثنای در حال اجرا منتج شود(runtime exception). حالت خاص زبان‌های نوع دار زبان‌های تک نوعند. این زبان‌ها غالباً اسکریپتی و یا مارک آپ هستند، مانند rexx وSGML و فقط یک داده گونه دارند—غالباً رشته‌های کاراکتری که هم برای داده‌های عددی و هم برای داده‌های سمبلی کاربرد دارند. در مقابل، یک زبان بدون نوع گذاری، مثل اکثر زبان‌های اسمبلی، این امکان را می‌دهد که هر عملیاتی روی هر داده‌ای انجام شود، که معمولاً دنباله‌ای از بیت‌ها با طول‌های متفاوت در نظر گرفته می‌شوند. زبان‌های سطح بالا که بی نوع هستند شامل زبان‌های ساده رایانه‌ای و برخی از انواع زبان‌های نسل چهارم.

در عمل، در حالیکه تعداد بسیار کمی از دیدگاه نظریه نوع، نوع گذاری شده تلقی می‌شوند(چک کردن یا رد کردن تمام عملیات‌ها)، غالب زبان‌های امروزی درجه‌ای از نوع گذاری را فراهم می‌کنند. بسیاری از زبان‌های تولیدکننده راهی را برای گذشتن یا موقوف کردن سیستم نوع فراهم می‌کنند.
ساعت : 4:33 am | نویسنده : admin | مطلب قبلی | مطلب بعدی
بهینه سازهای وب | next page | next page