Giter Club home page Giter Club logo

esri / geoportal-server-catalog Goto Github PK

View Code? Open in Web Editor NEW
95.0 35.0 60.0 19.5 MB

Esri Geoportal Server is a next generation open-source metadata catalog and editor, based on elasticsearch.

Home Page: https://www.esri.com/en-us/arcgis/products/geoportal-server/overview

License: Apache License 2.0

Java 4.72% XSLT 20.98% JavaScript 60.30% HTML 10.32% CSS 1.97% Python 0.02% Shell 0.01% C# 1.52% Dockerfile 0.01% TypeScript 0.15%
publishing-sharing geoportal-server geoportal esri-geoportal-server metadata elasticsearch catalog metadata-editing csw iso

geoportal-server-catalog's Introduction

Esri Geoportal Server Catalog

apache licensed

Esri Geoportal Server v2 is Esri's free and open source metadata catalog and search application, based on elasticsearch.

Esri Geoportal Server v2 now provides the catalog and harvesting capabilities as separate modules. Separate modules are useful when users need the catalog capabilities without needing metadata harvesting, or possibly even metadata editing.

This repository contains the capability of Geoportal Server Catalog, while it's sibling Geoportal Server Harvester is managed in a separate repository.

(Note: The long-lived Esri Geoportal Server v1 is now retired; its archive is available here.)

Releases and Downloads

  • 2.7.1 - released, December 21, 2023.
  • 2.7.0-patch1 - released Sep 11, 2023.
  • 2.6.5 - released December 17, 2021. Note that this version includes resolution to the Log4j2 vulnerability identified in December 2021.
  • All releases.

Can't Wait to Get Started?

  • Try the sandbox site and learn what Geoportal 2 is all about!
  • A different configuration that contains several 100,000 images as its catalog

Features

  • Metadata editor - Create and edit metadata in ArcGIS Metadata, FGDC, ISO 19115 (Data), ISO 19119 (Service), ISO 19115-2 (Imagery and Gridded Data), INSPIRE 2.0.1 (Data), INSPIRE 2.0.1 (Service), GEMINI (Data), GEMINI (Service)
  • Faceted Search - Configure different facets to allow your user to filter from the hay stack to the needle
  • Scalability - Thank you elasticsearch for providing multi-node configuration support
  • OGC CSW 3.0.0 and CSW 2.0.2 - Standards compliant catalog service interface, includes CSW2 requirements for INSPIRE Discovery Service
  • Many metadata formats - Extend the configuration with your favorite XML format
  • Built-in Viewer - Use the app we include or build one using Web AppBuilder and hook it up!
  • No more database - Yes that's a feature!

Requirements

  • Elasticsearch 7.x or OpenSearch 2.12
  • Tomcat 9.x

Installation

Issues

Find a bug or want to request a new feature? Please let us know by submitting an issue.

Documentation

  • Please refer to the Wiki.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2003 - 2023 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's license file.

geoportal-server-catalog's People

Contributors

as0050629 avatar chandanmahapatra avatar dependabot[bot] avatar grosa1 avatar jsaligoe avatar kathleenpate avatar kbperri avatar kyunam avatar lak15 avatar lindhor avatar mdandini avatar mhogeweg avatar pandzel avatar ringleng avatar rsignell-usgs avatar umacgillivray avatar valentinedwv avatar zguo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geoportal-server-catalog's Issues

Topic category synonym file

How might we add a synonym_path file to elasticsearch mappings file, so it can be reliably deployed.
This would be ideal for the 'topic category' field where words are munged together, but also for generic keywords, where US and United States might be remapped.

Command Line Evaluator

It would be good to have the ability to run the Evaluator stack from the command line,
or a maven command to enable testing when customizing evaluators

ISO (Citation, Publication, Revised) date

fix apiso_PublicationDate_dt use iden not root
allow for apiso_*Date_dt to have a gco:DateTime

   /* dates */
      G.evalDate(task, item, root, "apiso_Modified_dt", "gmd:dateStamp/gco:Date | gmd:dateStamp/gco:DateTime");
      G.evalDate(task, item, iden, "apiso_CreationDate_dt", "gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='creation'] | gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:DateTime[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='creation']");
      G.evalDate(task, item, iden, "apiso_RevisionDate_dt", "gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='revision'] | gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:DateTime[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='revision']");
      G.evalDate(task, item, iden, "apiso_PublicationDate_dt", "gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:Date[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='publication'] | gmd:citation/gmd:CI_Citation/gmd:date/gmd:CI_Date/gmd:date/gco:DateTime[../../gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='publication']");

reindex as command line

Would it be possible to have reindex as a command line tool?
For large collections, this would be beneficial.

Have 600k records. when doing development, if you update a file, the app restarts.

Modifying item cards and json mappings

Trying to determine the best way to add some links to an item card, and create a custom field in the json mappings (where these links might be stored).
Basically, how to handle customization in a way that would have the least impact on keeping code in sync

Adding an Aggregation Component?

We want to add hierarchical terms in a tree. I would like to add a tree component for path_hierarchy field we have populated

I tried to start by making copies of the TermsAggregation(js/html) and adding them to main/SearchPanel(js/html).
But I can't make even this show up on the search panel. Am I missing some dojo trick?

Bulk upload capability?

Is there an option to upload multiple metadata files at once? Or is this a feature of the geoportal-server-harvester?

Thanks

Active Directory Security configuration

Hi,

Can you please advise if it possible to configure this version of Geoportal with Windows Active Directory, and if so what are the required changes to make. If this could be added to the wiki that would be helpful.

Thanks,

Marc

Replacing file and thumbnail path through JS?

I have a bit of a dilemma. All of our links inside existing XML metadata point to a network drive.
For example \\servername\blahblah.mxd and\\servername\blahblah.mxd.jpgfor thumbnails.

Now these will not show up in Chrome due to cross-origin sharing restrictions.

So I will host this \servername on an IIS server accessible through HTTP
\\servername\blahblah.mxd will now become http://servername/blahblah.mxd

That is great, but is there a way to route those XML built in \\servername\blahblah.mxd links to the new IIS link within Geoportal? Without changing every single actual XML file?

Thanks!

Steps to Customize Search filter

I am having issues trying to get a custom search filter working, please guide me on what I might be missing?

  1. Add ISO path to EvaluatorFor_ISO.js
    G.evalProps(task,item,root,"business_area_s","//gmd:CI_ResponsibleParty/gmd:ciBusinessAreaName/gco:CharacterString");

  2. Add the string title "Business Area" to resources.js
    search: { criteria: { businessArea: "Business Area"},

  3. Add a new div for business_area_s in SearchPanel.html

</div>    
    <div data-dojo-type="app/search/TermsAggregation"
        data-dojo-props="field:'business_area_s',label:'${i18n.search.criteria.businessArea}'">
</div>

Keyword Improvements

Improvements for Keywords

  • Can the Keywords be made into an autocomplete field?
  • Sort Alpha sort, or mouseover note on sproket to note ability change sort

Include KML as an opensearch output format

Similar to returning search results in ATOM format from the API, include support for KML as a format. A request like http://geoss.esri.com/geoportal2/opensearch?q=water&from=1&f=kml would result in:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>Geoportal GeoRSS.</name>
    <open>1</open>
    <description>Most recently updated metadata documents.</description>
    <Style id="main">
      <LineStyle>
        <width>1.5</width>
      </LineStyle>
      <PolyStyle>
        <color>7d0000ff</color>
      </PolyStyle>
    </Style>
    <Placemark>
      <name>GeoBolivia</name>
      <description><![CDATA[El presente catalogo contiene los metadatos de la Infraestructura de Datos Espaciales del Estado Plurinacional de Bolivia.]]></description>
      <styleUrl>#main</styleUrl>
      <Polygon>
        <extrude>0</extrude>
        <altitudeMode>clampToGround</altitudeMode>
        <outerBoundaryIs>
          <LinearRing>
            <coordinates>-180.0,90.0,0 180.0,90.0,0 180.0,-90.0,0 -180.0,-90.0,0 -180.0,90.0,0</coordinates>
          </LinearRing>
        </outerBoundaryIs>
      </Polygon>
    </Placemark>
...

iso19115-2 Not finding anchors

We are using the NOAA NODC style Anchors. These are not being transformed to keywords:
http://hydro10.sdsc.edu/metadata/NODC/00026049-853D-4C29-B621-F7AD2470AC21.xml

http://132.249.238.151:8080/cinergi/waf/CZO_Datasets/http_____71_185_29_35__stroudwater__StroudData__chemistry__CZO_CRB_WCC_0110_CHEM_AUTO_HEADER_csv.xml

<gmd:descriptiveKeywords>
<!--Cinergi keyword enhanced at Sat Jun 25 02:00:45 UTC 2016-->
<gmd:MD_Keywords>
<gmd:keyword>
<gmx:Anchor xlink:href="http://sweet.jpl.nasa.gov/2.3/realmHydro.owl#HydrosphereFeature">Creek</gmx:Anchor>
</gmd:keyword>
<gmd:keyword>
<gmx:Anchor xlink:href="http://sweet.jpl.nasa.gov/2.3/realmHydro.owl#HydrosphereFeature">River</gmx:Anchor>
</gmd:keyword>
<gmd:type>
<gmd:MD_KeywordTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" codeListValue="theme">theme</gmd:MD_KeywordTypeCode>
</gmd:type>
<gmd:thesaurusName>
<gmd:CI_Citation>
<gmd:title>
<gco:CharacterString>Feature > Hydrologic Feature</gco:CharacterString>
</gmd:title>
<gmd:date>
<gmd:CI_Date>
<gmd:date>
<gco:Date>2016-06-25</gco:Date>
</gmd:date>
<gmd:dateType>
<gmd:CI_DateTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" codeListValue="publication">publication</gmd:CI_DateTypeCode>
</gmd:dateType>
</gmd:CI_Date>
</gmd:date>
<gmd:otherCitationDetails>
<gco:CharacterString>Cinergi keyword enhanced at Sat Jun 25 02:00:45 UTC 2016</gco:CharacterString>
</gmd:otherCitationDetails>
</gmd:CI_Citation>
</gmd:thesaurusName>
</gmd:MD_Keywords>
</gmd:descriptiveKeywords>

path_hierarchy Aggregation search component

Terminology is often in a hierarchy, but this is cannot be expressed as a simple keyword lists.

Sometimes metadata creators may express such paths in their keywords, eg Science Domain > Earth Sciences > Geology The HierarchyAggregation allows for the generation of tree widgets in the search panel to allow for searching of of such hierarchies.

This allows for the use of fields that have been indexed by the path_hierarchy analyzer

paths: Science Domain > Earth Sciences > Geology
multiple root paths can be displayed seperately

Explain the map tab better

Currently, when I open the map tab and click on map search, the Catalogs offered are 'Caliornia Geoportal', 'Geoportal Sandbox', and 'USGIN Geoportal'. I don't see the catalog that the server application is attached to; shouldn't that be the default. Is there any documentation on what the map tab is supposed to to and how to confgure the Search to use the active catalog by default? I see nothing in the Wiki.
thanks

Flag records with duplicate fileIdentifier on harvest

Currently, ISO metadata records with the same fileIdentifier can be harvested via different brokers without raising any notice. A process to check if an identifier already exists during a harvest process would be good to avoid duplicating metadata.

Include GeoRSS output in geoportal search REST API

Similar to returning search results in ATOM format from the API, include support for GeoRSS as a format. A request like http://geoss.esri.com/geoportal2/opensearch?q=water&from=1&f=georss would result in:

<rss version="2.0" xmlns:georss="http://www.georss.org/georss" 
  xmlns:georss10="http://www.georss.org/georss/10"
  xmlns:media="http://search.yahoo.com/mrss/"
  xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:geoportal="http://www.esri.com/geoportal">
  <channel>
    <title>Geoportal GeoRSS.</title>
    <description>Most recently updated metadata documents.</description>
    <link>http://gptogc.esri.com/geoportal</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <category>GeoRSS</category>
    <generator>Geoportal</generator>
    <managingEditor>[email protected]</managingEditor>
    <webMaster>[email protected]</webMaster>
    <atom:link rel="search" type="application/opensearchdescription+xml" href="http://geoss.esri.com/geoportal2/opensearch/description" title="Geoportal Search"/>
    <opensearch:totalResults>29611</opensearch:totalResults>
    <opensearch:startIndex>1</opensearch:startIndex>
    <opensearch:itemsPerPage>10</opensearch:itemsPerPage>
    <atom:link href="http://geoss.esri.com/geoportal2/opensearch?f=georss" rel="self" type="application/rss+xml"/>
    <item>
      <link>http://geoss.esri.com/geoportal2/rest/metadata/item/%7B093CBDB1-9D7A-4602-9937-2EC89359E633%7D</link>
      <guid isPermaLink="true">http://gptogc.esri.com/geoportal/rest/document?id=%7B093CBDB1-9D7A-4602-9937-2EC89359E633%7D</guid>
      <title>GeoBolivia</title>
      <pubDate>Mon, 25 Jul 2016 09:50:31 -0700</pubDate>
      <source url="http://gptogc.esri.com/geoportal/rest/find/document?f=georss">Geoportal GeoRSS.</source>
      <description><![CDATA[El presente catalogo contiene los metadatos de la Infraestructura de Datos Espaciales del Estado Plurinacional de Bolivia.]]</description>
      <category>unknown</category>
      <georss:polygon>90.0 -180.0 90.0 180.0 -90.0 180.0 -90.0 -180.0 90.0 -180.0</georss:polygon>
      <geoportal:resourceUrl resourceType="csw">http://geo.gob.bo/geonetwork/srv/spa/csw?request=GetCapabilities&amp;service=CSW&amp;version=2.0.2</geoportal:resourceUrl>
    </item>
...

Option: Edit uploaded metadata

I noticed when metadata has been either created or uploaded there is no option to edit it once it is saved within geoportal.
Current options include; Upload Metadata, Change Owner, Delete Item

The 1.2.x version had the capability to edit any of the entries once uploaded.
Is there a way to switch this on? Otherwise I would like to make a request to include this in a future version.

Changing Item Card Properties eg. Title, Owner

Hello, I am trying to find a way to change the search results Item Card properties a little bit.
For example instead of the Title showing up at the top of the card in Bold, I would like the Filename there in bold and the Title within the description text underneath.

Would somebody be able to point me into the right direction on how to make this change?
image

Thanks!

Keyword searching only returns exact matches?

I'm using the out-of-the-box configuration of Geoportal 2.0 and the descriptive text for one metadata entry is:

The dataset contains airports / landing strips for the respective StreetPro region. Major airports in capital cities are represented by regions showing layout of landing strips etc. Minor airports / landing strips are represented by point objects.

I'm finding that a keyword search on "airport" returns nothing, whereas "airports" returns a match. Shouldn't "airport" be considered a match?

airports

airport

Here is the file that I uploaded: Airports.xml

Let me know if you need any further info.

Support Solr in addition to Elasticsearch

The Greater London Authority is evaluating this product to support a London DataStore enhancement, however we use Solr as our technical standard. Adopting this product would be much easier if there was an option to use Solr.

Where are new metadata entry XMLs stored?

As the new Geoportal does not use a database, I was wondering where the user created metadata (through metadata editor) files stored?

When a user creates metadata is it stored as an XML file on the server? If not, can this be configured to do so?

Thank you.

HTML Links not working

{
error: {
message: "Could not make xslt template from /metadata/details/iso-details/xml-to-html-ISO.xsl"
}
}

found in the exploded war file at:
webapps/geoportal/WEB-INF/classes/metadata/details

Default Filters/Relavance tweaks

Use cases for configuring a server side filters:

  • tweaking relevance ranking
    • per user tweaking
  • default filter to allow for subsetting of elasticsearch repository

Log Queries

General thought for an enhancement considering the power of ElasticSearch/LogStash/Kibana

Log queries, and clicks on metadata to ElasticSearch.

How to handle searching in ISO with RoleCodes

ISO standards include tags that are structured identically except they have coded values. For example "originator" and "user" values are both structured as:

<gmd:contact>
    <gmd:CI_ResponsibleParty>
        <gmd:individualName>
            <gco:CharacterString>Originators Name Here</gco:CharacterString>
        </gmd:individualName>
        <gmd:role>
            <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="originator" codeSpace="ISOTC211/19115">originator</gmd:CI_RoleCode>
        </gmd:role>
    </gmd:CI_ResponsibleParty>
</gmd:contact>
<gmd:contact>
    <gmd:CI_ResponsibleParty>
        <gmd:individualName>
            <gco:CharacterString>User's Name Here</gco:CharacterString>
        <gmd:role>
            <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="user" codeSpace="ISOTC211/19115">user</gmd:CI_RoleCode>
        </gmd:role>
    </gmd:CI_ResponsibleParty>
</gmd:contact>

What is the best way to decipher this in Geoportal? Can we use a dict / key system?
In the EvaluatorFor_ISO.js file we have the entry:
G.evalProps(task,item,root,"contact_people_s","//gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString");

And if I add the following the search panel, it only displays the first entry of "gmd:contact"
<div data-dojo-type="app/search/TermsAggregation" data-dojo-props="field:'contact_people_s',label:'${i18n.search.criteria.contactPeople}'"> </div>

Adding a New Tab and Custom Link to a Search Result

Hello everyone!,

I'm just wondering how to add a customized "Details" link for the search intem result in this new version (Geoportal 2.5.0), in this case I will create my own form consuming the metadata information and presenting info in user friendly way (not XML, JSON or integrated HTML), the same to create my custom gallery tab.

Best Regards,

Vladymir

Facet/field search on url

I'd say implement:
Filter-FES-KVP-Advanced/Filter-CQL

But honestly, can we think simpler approach.
facet=apiso_ServiceType_s:WMS

About tab

Basic about tab, with version number. (for harvester, too)

Will this work with SDE metadata?

This has been asked with the previous incarnation of Geoportal but I could not find an answer. I would like to know how Geoportal 2.0 will work with SDE metadata. How will harvesting, viewing as well as editing work? Is it even possible?

Thanks!

How to purge Index?

How would one go and delete either portions of the index or all entries? I am looking to reharvest my geoportal index. Do I do this directly with elastic search? Or is there a simple way through geoportal?

Seems to be a disconnect between the extent centrepoints in the map and the extents

I have 4 datasets in my geoportal 2.0.1 test instance. 3 have the same extent, 1 had a different extent. The centrepoints have aggregated so that there are three in one location, and one in another location, but they seem incorrect compared to the highlighted extents. I would have expected the points to be in the centre of the extents, but perhaps they are aligned to a grid or something?

I have attached some screenshots that show what I mean.

Thanks,
Marc

aggregated
extent1
extent2

French translation / i18n support

Hi
For translating the main app in french, I had to add a resources.js file in the app/nls/fr directory and fixe the app/nls/resources .js file in order to load french file.
(like it's done in the viewer repository)

The application is loading well the french translation, but don't display the french / latin character like "é" .

What do I miss in order to succed the translation ?

I Use GeoPortal-Server 2.0.1

2016-12-02 15-31-25

Can't find the XSLT details files

Hello there,

I am having a lot of trouble finding the xslt stylesheets for many types, especially the arcgis-details.xslt
The file seems to be referenced into :
"arcgis": {
key: "arcgis",
evaluator: G.evaluators.arcgis,
interrogationXPath: "/metadata/Esri/ArcGISFormat",
identifier: "ArcGIS-Metadata",
detailsXslt: "metadata/details/arcgis-details.xslt",
}
But it is not included in the code and I can't find it anywhere.

Thank you for your help !!

An error occured - elasticsearch

After deleting the index. I tried to reharvest a folder. Harvester says the files succeeded but when I try opening Geoportal I get the dreaded "an error occured"

I trace the error to:
{"error":{"root_cause":[{"type":"search_parse_exception","reason":"No mapping found for [title.sort] in order to sort on"}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"metadata","node":"RKTEL3vvS7O5Uyvz2t2PJg","reason":{"type":"search_parse_exception","reason":"No mapping found for [title.sort] in order to sort on"}}]},"status":400}

Was I supposed to change anything after deleting the old index? I restarted elasticsearch and apache to no avail.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.