Proposal talk:Object-oriented API for articles
There is a MediaWiki extension that does just this; it's called Semantic MediaWiki. It's an actively maintained extension, and as far as I know, the system developers are working on implementing it as part of the new Usability Initiative. X! 15:49, 13 August 2009 (UTC)
- But it may be integrated into the main MediaWiki package. -- Petru Dimitriu 16:24, 13 August 2009 (UTC)
- Great! Thanks for information. Fractaler 17:26, 13 August 2009 (UTC)
Yes that would be very nice! Additonaly to the Semantic MediaWiki-Extension I would like to see a common approach like Commons for images.--Avron 16:36, 15 August 2009 (UTC)
There is also http://www.mediawiki.org/wiki/API. It's not perfect but it's already much better than year ago. --Nk 11:25, 16 August 2009 (UTC)
- There are sets and operations over these sets. Wikipedia does not give the set in the form of a package of space of names (namespace packets) yet. I cannot (in Java, for exsample) to use a class, for example, Human and to receive all its methods and the data). Also no control function articles, templates a program code by languages of OOP. I.e., there is no converter OOP <-> Wikipedia's names (title of pages, lists, templates and fields and so on, and other Wikipedia types). Extensions is like convertor, but where proof, that semantic of Wikipedia types at conversion to Extensions (and then to other tools) is the same? We need Semantic OOP namespace packets of Wikipedia, but no Extension, not wikipedia-semantic API and so on. Fractaler 13:22, 9 September 2009 (UTC)
I sorta had the same idea
An API like such would be a great thing. By adding easily computed RSS/ATOM feeds, even a client-side development tool like javascript could be used to access data from Wikipedia.
- Human needs in local software with in-line structures like Wikipedia Semantic. Also some program can be "to talk" on "common" (Wikipedia) language: do navigation on semantic tree, do proposal add, remove some classes (articles, templates, fields) from that structures and so on. Fractaler 13:22, 9 September 2009 (UTC)
Just Use PHP + RegEx
Wikis are marked up well enough to be able to just rip pages off using PHP (or to make it even easier, if you have MySQL Read Access you can just read the wikicode) and then use regular expressions to grab the info you need. Perhaps somebody should write an engine in PHP (or C...might be a bit a faster) to handle these kinds of things generically.
But for now if you kinda know what kind of info you want to extract you can generally write a regular expression for it.
- RegEx is not "human" language. But OOP classes (sets) with "normal" names (World, Energy, Point and so on) with operation on this sets (functions) is more better for general user.
Clien<->Wikipedia "talking"
Thank you for your very good information!
But I don't understand how can I talk with Wikipedia, if my program, for example, can not to see wikipedia's pages (titles, fields in templetes, content), knows only common words (and it "guesses" (has hypothesis), that Wikipedia also have the same "namespace"). It "want" communicates (to ask) with Wikipedia on common "alphabet", "language", "basic system", "reference system", "axes of reference", "benchmark" (of course, by programmer). It's need a specification (standart for a name of categories, pages, templates, fields and so on). About problem (because now we have not that standart) yet one my proposal on Proposal:Semantic wiki-web
So, about some problem with API: after somebody add template1 (Field1:content1*content2, Field2:content1) to, for example, Page1, how can I (using wikipedia API for Java (or C#)) use code like:
- con=connectToWikipediaAPI(login, password);
- page=con.Objects.Articles("?Page1?"); (something like Page1)
- allTemplates=page.getListsAlltemplateOnPage();
- if (allTemplates "have something like (or disambigous) template1") then TemplateName=getTemplateName();
- ContentField=TemplateName.getContentField1();
- Print ContentField1; (print content1, content2)
- ContentField=TemplateName.getContentField2();
- Print ContentField; (print content1)
Impact?
Some proposals will have massive impact on end-users, including non-editors. Some will have minimal impact. What will be the impact of this proposal on our end-users? -- Philippe 00:04, 3 September 2009 (UTC)
- End-users: programs and programmers. Programs must have the same structure ("semantic tree" or "semantic net") as in Wikipedia (categories, list of templates in some page, list of fields in some templetes). It must be updatable structures (from Wikipedia). Every device with Wikipedia's structures will be able to communicate (because the same "language") with Wikipedia and one to other. It propose concern tools only for programers (wich makes tools of getting of information from Wikipedia for human and programs) under Wikipedia, not for editors (human) of Wikipedia. Fractaler 13:22, 9 September 2009 (UTC)